menu.h

Go to the documentation of this file.
00001 
00011 #ifndef _MENU_H_
00012 #define _MENU_H_
00013 
00014 #include "../jnilib.h"
00015 
00016 #ifdef __cplusplus
00017 extern "C" {
00018 #endif
00019 
00021 #define CLS_MENU "java/awt/Menu"
00022 
00023 struct Menu_;
00024 
00025 struct MenuCPP_;
00026 
00027 #ifdef __cplusplus
00028    typedef MenuCPP_ Menu; 
00029    #define createMenu createMenuCPP 
00030    #define deleteMenu deleteMenuCPP 
00031 #else
00032    typedef struct Menu_ Menu; 
00033    #define createMenu createMenuC 
00034    #define deleteMenu deleteMenuC 
00035 #endif
00036 
00040 typedef struct MenuData {
00041    jclass clsmenu; 
00042    jobject menu; 
00043    jmethodID mgetLabel; 
00044    jmethodID msetLabel; 
00045    jmethodID maddMenuItem; 
00046    jmethodID mremoveMenuItem; 
00047    jmethodID mremoveAll; 
00048    jmethodID mgetItemCount; 
00049    jmethodID maddSeparator; 
00050 } MenuData;
00051 
00055 typedef struct Menu_ {
00056    MenuData menu;
00057    jobject (*getObject)(Menu* menu);
00058    char* (*getLabel)(Menu* menu);
00059    void (*setLabel)(Menu* menu, const char* label);
00060    void (*addMenuItem)(Menu* menu, jobject menuitem);
00061    void (*removeMenuItem)(Menu* menu, jobject menuitem);
00062    void (*removeAll)(Menu* menu);
00063    jint (*getItemCount)(Menu* menu);
00064    void (*addSeparator)(Menu* menu);
00065 } Menu_;
00066 
00070 typedef struct MenuCPP_ {
00071    MenuData menu;
00072    struct Menu_ *functions;
00073 
00074 #ifdef __cplusplus
00075    jobject getObject() {
00076       return functions->getObject(this);
00077    }
00078 
00079    char* getLabel() {
00080       return functions->getLabel(this);
00081    }
00082 
00083    void setLabel(const char* label) {
00084       functions->setLabel(this, label);
00085    }
00086 
00087    void addMenuItem(jobject menuitem) {
00088       functions->addMenuItem(this, menuitem);
00089    }
00090 
00091    void removeMenuItem(jobject menuitem) {
00092       functions->removeMenuItem(this, menuitem);
00093    }
00094 
00095    void removeAll() {
00096       functions->removeAll(this);
00097    }
00098 
00099    jint getItemCount() {
00100       return functions->getItemCount(this);
00101    }
00102 
00103    void addSeparator() {
00104       functions->addSeparator(this);
00105    }
00106 
00107 #endif
00108 } MenuCPP_;
00109 
00110 
00111 void createMenuC(Menu_* menu);
00112 void createMenuCPP(MenuCPP_* menu);
00113 void deleteMenuC(Menu_* menu);
00114 void deleteMenuCPP(MenuCPP_* menu);
00115 
00116 #ifdef __cplusplus
00117 } /* extern "C" */
00118 #endif
00119 
00120 #endif /* _MENU_H_ */
00121 
00122 /* end of file menu.h */

Generated on Sat Nov 19 14:11:11 2005 for GrubC by  doxygen 1.4.4