Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

CUI_Menu.h

Go to the documentation of this file.
00001 
00015 #ifndef CUI_MENU_H
00016 #define CUI_MENU_H
00017 
00018 #include "UI_Lib.h"
00019 #include "UI_types.h"
00020 #include "CUI_ListBox.h"
00021 #include "CUI_MenuItem.h"
00022 
00024 
00039 class GLGUI_ENTRY CUI_Menu : public CUI_ListBox
00040 {
00041 public:
00042         CUI_Menu(       // frame
00043                                 CUI_UI *ui = NULL, float x = 0, float y = 0, float x2 = 1, float y2 = 1,
00044                                 CUI_Frame *parent = NULL, IUI_Shader *shader = NULL,
00045                                 IUI_Shader *cursor = NULL, CUI_CoordSys *coordsys = NULL,
00046                                 // list box
00047                                 IUI_Shader *itemshader = NULL, IUI_Shader *hovershader = NULL,
00048                                 IUI_Shader *selectedshader = NULL, IUI_Border *itemborder = NULL,
00049                                 IUI_Font *font = NULL,
00050                                 // menu
00051                                 IUI_Shader *submenuicon = NULL
00052                                 );
00053 
00055         virtual ~CUI_Menu();
00056 
00058         virtual bool AddItem( char *text = NULL, unsigned int itemID = 0, IUI_Shader *icon = NULL,
00059                                                         unsigned short flags = UI_ITEM_BUTTON, void *sublist = NULL );
00060 
00062         virtual bool AddItem( CUI_MenuItem *item );
00063 
00065         virtual bool RemoveItem( unsigned int itemID );
00066 
00068         virtual bool ProcessKey( unsigned long key );
00069 
00071 
00074         virtual bool Render( double dtime, IUI_Renderer *renderer );
00075 
00077 
00080         virtual bool CallbackFunc( int id, int numparam, void *param );
00081 
00083         virtual bool Select( CUI_Frame *frame );
00084 
00086 
00089         virtual bool ActivateSubMenu( bool select );
00090 
00092         virtual bool DeactivateSubMenu( bool updateselect );
00093 
00095         virtual bool GetSubMenuPosition( float &x, float &y );
00096 
00098 
00099         virtual bool UpdateView( );
00100 
00102         virtual bool SetSubMenuIcon( IUI_Shader *icon )
00103         { m_subMenuIcon = icon; return false; }
00104 
00106         virtual bool SetParentMenu( CUI_Menu *parent )
00107         { m_parentMenu = parent; return false; }
00108 
00110         virtual CUI_Menu *GetParentMenu( )
00111         { return m_parentMenu; }
00112 
00114 
00115         virtual bool SetFlag( unsigned long flag, bool set );
00116 
00117 protected:
00119         virtual CUI_MenuItem *FindItem( unsigned int itemID );
00120 
00122 
00123         virtual bool SelectNext( bool open );
00124 
00126 
00127         virtual bool SelectPrevious( bool open );
00128 
00130         CUI_MenuItem *m_selected;
00131 
00133         typedef std::list<CUI_MenuItem*> MENUITEMLIST;
00134 
00136         MENUITEMLIST m_itemList;
00137 
00139         IUI_Shader *m_subMenuIcon;
00140 
00142         CUI_Menu *m_parentMenu;
00143 
00145         CUI_Menu *m_subMenu;
00146 
00147 };
00148 
00149 #endif

Generated on Mon Sep 29 23:07:02 2003 for glGUI by doxygen 1.3.4