00001
00011 #include "menuitem.h"
00012 #include "component.h"
00013
00014 #ifdef __cplusplus
00015 extern "C" {
00016 #endif
00017
00025 jobject getMenuItemObject(MenuItem* menuitem) {
00026 return menuitem->menuitem.menuitem;
00027 }
00028
00037 void setMenuItemLabel(MenuItem* menuitem, const char* label) {
00038 jstring jlabel = createJString(label);
00039 callVoidMethod(menuitem->menuitem.menuitem, menuitem->menuitem.msetLabel, jlabel);
00040 deleteGlobalReference(jlabel);
00041 }
00042
00052 char* getMenuItemLabel(MenuItem* menuitem) {
00053 char* label;
00054 jstring jlabel;
00055 jlabel = (jstring) callObjectMethod(menuitem->menuitem.menuitem, menuitem->menuitem.mgetLabel);
00056 label = convertJString(jlabel);
00057 deleteLocalReference(jlabel);
00058 return label;
00059 }
00060
00069 void setMenuItemEnabled(MenuItem* menuitem, jboolean enable) {
00070 callVoidMethod(menuitem->menuitem.menuitem, menuitem->menuitem.msetEnabled, enable);
00071 }
00072
00082 jboolean isMenuItemEnabled(MenuItem* menuitem) {
00083 return callBooleanMethod(menuitem->menuitem.menuitem, menuitem->menuitem.misEnabled);
00084 }
00085
00097 ActionListener addMenuItemActionListener(MenuItem* menuitem, void (*func)(Component)) {
00098 return addActionListener(menuitem->menuitem.menuitem, func);
00099 }
00100
00110 void removeMenuItemActionListener(MenuItem* menuitem, ActionListener al) {
00111 removeActionListener(menuitem->menuitem.menuitem, al);
00112 }
00113
00119 void initMenuItem_(MenuItem_* menuitem) {
00120 menuitem->getObject = &getMenuItemObject;
00121 menuitem->getLabel = &getMenuItemLabel;
00122 menuitem->setLabel = &setMenuItemLabel;
00123 menuitem->setEnabled = &setMenuItemEnabled;
00124 menuitem->isEnabled = &isMenuItemEnabled;
00125 menuitem->addActionListener = &addMenuItemActionListener;
00126 menuitem->removeActionListener = &removeMenuItemActionListener;
00127 }
00128
00135 void createMenuItem_(MenuItem* menuitem) {
00136 menuitem->menuitem.clsmenuitem = findClass(CLS_MENUITEM);
00137 menuitem->menuitem.mgetLabel = findMethod(menuitem->menuitem.clsmenuitem, "getLabel", "()Ljava/lang/String;");
00138 menuitem->menuitem.msetLabel = findMethod(menuitem->menuitem.clsmenuitem, "setLabel", "(Ljava/lang/String;)V");
00139 menuitem->menuitem.misEnabled = findMethod(menuitem->menuitem.clsmenuitem, "isEnabled", "()Z");
00140 menuitem->menuitem.msetEnabled = findMethod(menuitem->menuitem.clsmenuitem, "setEnabled", "(Z)V");
00141
00142 menuitem->menuitem.menuitem = newObjectBySignature(menuitem->menuitem.clsmenuitem, "()V");
00143 }
00144
00151 void createMenuItemCPP(MenuItemCPP_* menuitem) {
00152 menuitem->functions = (MenuItem_*)malloc(sizeof(MenuItem_));
00153 initMenuItem_(menuitem->functions);
00154 createMenuItem_((MenuItem*)menuitem);
00155 }
00156
00163 void createMenuItemC(MenuItem_* menuitem) {
00164 initMenuItem_(menuitem);
00165 createMenuItem_((MenuItem*)menuitem);
00166 }
00167
00173 void deleteMenuItem_(MenuItem* menuitem) {
00174 deleteGlobalReference(menuitem->menuitem.menuitem);
00175 deleteGlobalReference(menuitem->menuitem.clsmenuitem);
00176 }
00177
00183 void deleteMenuItemCPP(MenuItemCPP_* menuitem) {
00184 deleteMenuItem_((MenuItem*)menuitem);
00185 free(menuitem->functions);
00186 }
00187
00193 void deleteMenuItemC(MenuItem_* menuitem) {
00194 deleteMenuItem_((MenuItem*)menuitem);
00195 }
00196
00197 #ifdef __cplusplus
00198 }
00199 #endif
00200
00201