00001
00010 #include "menubar.h"
00011 #include "component.h"
00012
00013 #ifdef __cplusplus
00014 extern "C" {
00015 #endif
00016
00024 jobject getMenuBarObject(MenuBar* menubar) {
00025 return menubar->menubar.menubar;
00026 }
00027
00036 void addMenuBarMenu(MenuBar* menubar, Menu* menu) {
00037 callObjectMethod(menubar->menubar.menubar, menubar->menubar.maddMenu, menu->menu.menu);
00038 }
00039
00048 void removeMenuBarMenu(MenuBar* menubar, Menu* menu) {
00049 callVoidMethod(menubar->menubar.menubar, menubar->menubar.mremoveMenu, menu->menu.menu);
00050 }
00051
00059 jint getMenuBarMenuCount(MenuBar* menubar) {
00060 return callIntMethod(menubar->menubar.menubar, menubar->menubar.mgetMenuCount);
00061 }
00062
00069 void setMenuBarHelpMenu(MenuBar* menubar, Menu* menu) {
00070 jobject jmenu = NULL;
00071
00072 if (menu != NULL) {
00073 jmenu = menu->menu.menu;
00074 }
00075
00076 callVoidMethod(menubar->menubar.menubar, menubar->menubar.msetHelpMenu, jmenu);
00077 }
00078
00079
00085 void initMenuBar_(MenuBar_* menubar) {
00086 menubar->getObject = &getMenuBarObject;
00087 menubar->addMenu = &addMenuBarMenu;
00088 menubar->removeMenu = &removeMenuBarMenu;
00089 menubar->getMenuCount = &getMenuBarMenuCount;
00090 menubar->setHelpMenu = &setMenuBarHelpMenu;
00091 }
00092
00099 void createMenuBar_(MenuBar* menubar) {
00100 menubar->menubar.clsmenubar = findClass(CLS_MENUBAR);
00101 menubar->menubar.maddMenu = findMethod(menubar->menubar.clsmenubar, "add", "(Ljava/awt/Menu;)Ljava/awt/Menu;");
00102 menubar->menubar.mremoveMenu = findMethod(menubar->menubar.clsmenubar, "remove", "(Ljava/awt/MenuComponent;)V");
00103 menubar->menubar.mgetMenuCount = findMethod(menubar->menubar.clsmenubar, "getMenuCount", "()I");
00104 menubar->menubar.msetHelpMenu = findMethod(menubar->menubar.clsmenubar, "setHelpMenu", "(Ljava/awt/Menu;)V");
00105
00106 menubar->menubar.menubar = newObjectBySignature(menubar->menubar.clsmenubar, "()V");
00107 }
00108
00115 void createMenuBarCPP(MenuBarCPP_* menubar) {
00116 menubar->functions = (MenuBar_*)malloc(sizeof(MenuBar_));
00117 initMenuBar_(menubar->functions);
00118 createMenuBar_((MenuBar*)menubar);
00119 }
00120
00127 void createMenuBarC(MenuBar_* menubar) {
00128 initMenuBar_(menubar);
00129 createMenuBar_((MenuBar*)menubar);
00130 }
00131
00137 void deleteMenuBar_(MenuBar* menubar) {
00138 deleteGlobalReference(menubar->menubar.menubar);
00139 deleteGlobalReference(menubar->menubar.clsmenubar);
00140 }
00141
00147 void deleteMenuBarCPP(MenuBarCPP_* menubar) {
00148 deleteMenuBar_((MenuBar*)menubar);
00149 free(menubar->functions);
00150 }
00151
00157 void deleteMenuBarC(MenuBar_* menubar) {
00158 deleteMenuBar_((MenuBar*)menubar);
00159 }
00160
00161 #ifdef __cplusplus
00162 }
00163 #endif
00164
00165