Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members | Related Pages | Examples

vos/gui/gui/menu.hh

Go to the documentation of this file.
00001 /* $Id: menu.hh,v 1.6 2003/07/24 05:18:26 tetron Exp $ */
00002 
00003 
00004 /* This file was generated by otd2cpp.pl, a script for VOS by Reed Hedges <reed@zerohour.net>
00005    and Peter Amstutz <tetron@interreality.org>
00006 
00007    Search for TODO for stuff that needs editing. You will want to especially fill in constructors,
00008    destructors, message handlers, non-property subobjects...
00009 
00010    I can make no guarantee that this code will work, or even that it even is safe to run.
00011    Use it at your own risk.
00012 */
00013 
00014 /** @file menu.hh Defines MetaObject class for "menu" type (revision 0).
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 /** MetaObject implementing Menu Object Type. 
00037     
00038     Contains a list of selectable items and/or submenus.
00039   
00040 */
00041 class VOSGUI_API Menu : public virtual MetaObject
00042 {
00043 
00044 
00045 protected:
00046     PropertyAccessControl* accessControl;
00047 
00048 
00049 public:
00050 
00051     /** Constructor */
00052     Menu(MetaObject* superobject);
00053 
00054     /** Destructor */
00055     virtual ~Menu();
00056 
00057     /** Return type string ("gui:menu") */
00058     virtual const string getType();
00059 
00060     /** Register Extenders */
00061     static void registerExtenders();
00062 
00063     /** Set default access control policy */
00064     virtual void setPropertyAccessControl(PropertyAccessControl* ac);
00065 
00066     /** Get default access control policy */
00067     virtual PropertyAccessControl* getPropertyAccessControl();
00068         
00069 };
00070 
00071 
00072 
00073 /** Local version of Menu. */
00074 class LocalMenu : public virtual Menu
00075 {
00076 
00077 public:
00078 
00079     /** Constructor */
00080     LocalMenu(MetaObject* superobject);
00081 
00082     /** Destructor */
00083     ~LocalMenu();
00084 
00085     /** Initialize required subproperties with given access control. */
00086     virtual void initialize(PropertyAccessControl* ac);
00087 
00088     /** Initialize required subproperties. If access control has been
00089     previously set with initialize(PropertyAccessControl*) or
00090     setPropertyAccessControl(), then that policy will be used. Otherwise,
00091     NoPropertyAccessControl will be used.
00092     */
00093     virtual void initialize();
00094 
00095     /** Static generator, for factory. */
00096     static MetaObject* new_LocalMenu(MetaObject* superobject, const string& type);
00097 
00098     /** Called when this object gets a message */
00099     virtual void sendMessage(Message* m);
00100 
00101 
00102 
00103 };
00104 
00105 
00106 /** Remote version of Menu. */
00107 class RemoteMenu : public virtual Menu
00108 {
00109 public:
00110 
00111     /** Constructor */
00112     RemoteMenu(MetaObject* superobject);
00113 
00114     /** Destructor */
00115     virtual ~RemoteMenu();
00116 
00117     /** Static generator, for factory. */
00118     static MetaObject* new_RemoteMenu(MetaObject* superobject, const string& type);
00119 
00120     /** Called when this object gets an update message from its Local master across the network. */
00121     void sendUpdateMessage(Message *m);
00122 
00123 
00124 };
00125 
00126 
00127 } // end of namespace VOSGUI
00128 #endif // #ifdef _MENU_HH_
00129 

Generated on Tue Aug 12 03:55:43 2003 for Interreality Project - VOS by doxygen 1.3.2