00001 00010 #ifndef _MENUBAR_H_ 00011 #define _MENUBAR_H_ 00012 00013 #include "../jnilib.h" 00014 #include "menu.h" 00015 00016 #ifdef __cplusplus 00017 extern "C" { 00018 #endif 00019 00021 #define CLS_MENUBAR "java/awt/MenuBar" 00022 00023 struct MenuBar_; 00024 00025 struct MenuBarCPP_; 00026 00027 #ifdef __cplusplus 00028 typedef MenuBarCPP_ MenuBar; 00029 #define createMenuBar createMenuBarCPP 00030 #define deleteMenuBar deleteMenuBarCPP 00031 #else 00032 typedef struct MenuBar_ MenuBar; 00033 #define createMenuBar createMenuBarC 00034 #define deleteMenuBar deleteMenuBarC 00035 #endif 00036 00040 typedef struct MenuBarData { 00041 jclass clsmenubar; 00042 jobject menubar; 00043 jmethodID maddMenu; 00044 jmethodID mremoveMenu; 00045 jmethodID mgetMenuCount; 00046 jmethodID msetHelpMenu; 00047 } MenuBarData; 00048 00052 typedef struct MenuBar_ { 00053 MenuBarData menubar; 00054 jobject (*getObject)(MenuBar* menubar); 00055 void (*addMenu)(MenuBar* menubar, Menu* menu); 00056 void (*removeMenu)(MenuBar* menubar, Menu* menu); 00057 jint (*getMenuCount)(MenuBar* menubar); 00058 void (*setHelpMenu)(MenuBar* menubar, Menu* menu); 00059 } MenuBar_; 00060 00064 typedef struct MenuBarCPP_ { 00065 MenuBarData menubar; 00066 struct MenuBar_ *functions; 00067 00068 #ifdef __cplusplus 00069 jobject getObject() { 00070 return functions->getObject(this); 00071 } 00072 00073 void addMenu(Menu* menu) { 00074 functions->addMenu(this, menu); 00075 } 00076 00077 void removeMenu(Menu* menu) { 00078 functions->removeMenu(this, menu); 00079 } 00080 00081 jint getMenuCount() { 00082 return functions->getMenuCount(this); 00083 } 00084 00085 void setHelpMenu(Menu* menu) { 00086 functions->setHelpMenu(this, menu); 00087 } 00088 00089 #endif 00090 } MenuBarCPP_; 00091 00092 00093 void createMenuBarC(MenuBar_* menubar); 00094 void createMenuBarCPP(MenuBarCPP_* menubar); 00095 void deleteMenuBarC(MenuBar_* menubar); 00096 void deleteMenuBarCPP(MenuBarCPP_* menubar); 00097 00098 #ifdef __cplusplus 00099 } /* extern "C" */ 00100 #endif 00101 00102 #endif /* _MENUBAR_H_ */ 00103 00104 /* end of file menubar.h */