menuitem.h

Go to the documentation of this file.
00001 
00011 #ifndef _MENUITEM_H_
00012 #define _MENUITEM_H_
00013 
00014 #include "../jnilib.h"
00015 #include "listeners.h"
00016 
00017 #ifdef __cplusplus
00018 extern "C" {
00019 #endif
00020 
00022 #define CLS_MENUITEM "java/awt/MenuItem"
00023 
00024 struct MenuItem_;
00025 
00026 struct MenuItemCPP_;
00027 
00028 #ifdef __cplusplus
00029    typedef MenuItemCPP_ MenuItem; 
00030    #define createMenuItem createMenuItemCPP 
00031    #define deleteMenuItem deleteMenuItemCPP 
00032 #else
00033    typedef struct MenuItem_ MenuItem; 
00034    #define createMenuItem createMenuItemC 
00035    #define deleteMenuItem deleteMenuItemC 
00036 #endif
00037 
00041 typedef struct MenuItemData {
00042    jclass clsmenuitem; 
00043    jobject menuitem; 
00044    jmethodID mgetLabel; 
00045    jmethodID msetLabel; 
00046    jmethodID msetEnabled; 
00047    jmethodID misEnabled; 
00048 } MenuItemData;
00049 
00053 typedef struct MenuItem_ {
00054    MenuItemData menuitem;
00055    jobject (*getObject)(MenuItem* menuitem);
00056    char* (*getLabel)(MenuItem* menuitem);
00057    void (*setLabel)(MenuItem* menuitem, const char* label);
00058    void (*setEnabled)(MenuItem* menuitem, jboolean enable);
00059    jboolean (*isEnabled)(MenuItem* menuitem);
00060    ActionListener (*addActionListener)(MenuItem* menuitem, void (*func)(Component));
00061    void (*removeActionListener)(MenuItem* menuitem, ActionListener al);
00062 } MenuItem_;
00063 
00067 typedef struct MenuItemCPP_ {
00068    MenuItemData menuitem;
00069    struct MenuItem_ *functions;
00070 
00071 #ifdef __cplusplus
00072    jobject getObject() {
00073       return functions->getObject(this);
00074    }
00075 
00076    char* getLabel() {
00077       return functions->getLabel(this);
00078    }
00079 
00080    void setLabel(const char* label) {
00081       functions->setLabel(this, label);
00082    }
00083 
00084    void setEnabled(jboolean enable) {
00085       functions->setEnabled(this, enable);
00086    }
00087 
00088    jboolean isEnabled() {
00089       return functions->isEnabled(this);
00090    }
00091 
00092    ActionListener addActionListener(void (*func)(Component)) {
00093       return functions->addActionListener(this, func);
00094    }
00095 
00096    void removeActionListener(ActionListener al) {
00097       functions->removeActionListener(this, al);
00098    }
00099 
00100 #endif
00101 } MenuItemCPP_;
00102 
00103 
00104 void createMenuItemC(MenuItem_* menuitem);
00105 void createMenuItemCPP(MenuItemCPP_* menuitem);
00106 void deleteMenuItemC(MenuItem_* menuitem);
00107 void deleteMenuItemCPP(MenuItemCPP_* menuitem);
00108 
00109 #ifdef __cplusplus
00110 } /* extern "C" */
00111 #endif
00112 
00113 #endif /* _MENUITEM_H_ */
00114 
00115 /* end of file menuitem.h */

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