00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _GUI_MENU_HH_
00019 #define _GUI_MENU_HH_
00020
00021 #if defined(_WIN32) && defined(_MSC_VER)
00022 # ifdef VOSGUI_EXPORTS
00023 # define VOSGUI_API __declspec(dllexport)
00024 # else
00025 # define VOSGUI_API __declspec(dllimport)
00026 # endif
00027 #else
00028 # define VOSGUI_API
00029 #endif
00030
00031 #include <vos/corelibs/vos/vos.hh>
00032 #include <vos/metaobjects/property/property.hh>
00033
00034 namespace VOSGUI {
00035
00036
00037
00038
00039
00040
00041 class VOSGUI_API Menu : public virtual MetaObject
00042 {
00043
00044
00045 protected:
00046 PropertyAccessControl* accessControl;
00047
00048
00049 public:
00050
00051
00052 Menu(MetaObject* superobject);
00053
00054
00055 virtual ~Menu();
00056
00057
00058 virtual const string getType();
00059
00060
00061 static void registerExtenders();
00062
00063
00064 virtual void setPropertyAccessControl(PropertyAccessControl* ac);
00065
00066
00067 virtual PropertyAccessControl* getPropertyAccessControl();
00068
00069 };
00070
00071
00072
00073
00074 class LocalMenu : public virtual Menu
00075 {
00076
00077 public:
00078
00079
00080 LocalMenu(MetaObject* superobject);
00081
00082
00083 ~LocalMenu();
00084
00085
00086 virtual void initialize(PropertyAccessControl* ac);
00087
00088
00089
00090
00091
00092
00093 virtual void initialize();
00094
00095
00096 static MetaObject* new_LocalMenu(MetaObject* superobject, const string& type);
00097
00098
00099 virtual void sendMessage(Message* m);
00100
00101
00102
00103 };
00104
00105
00106
00107 class RemoteMenu : public virtual Menu
00108 {
00109 public:
00110
00111
00112 RemoteMenu(MetaObject* superobject);
00113
00114
00115 virtual ~RemoteMenu();
00116
00117
00118 static MetaObject* new_RemoteMenu(MetaObject* superobject, const string& type);
00119
00120
00121 void sendUpdateMessage(Message *m);
00122
00123
00124 };
00125
00126
00127 }
00128 #endif // #ifdef _MENU_HH_
00129