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

CUI_ListBox.h

Go to the documentation of this file.
00001 
00015 #ifndef CUI_LISTBOX_H
00016 #define CUI_LISTBOX_H
00017 
00018 #include "UI_Lib.h"
00019 #include "UI_types.h"
00020 #include "CUI_Control.h"
00021 #include "CUI_ListItem.h"
00022 
00024 
00039 class GLGUI_ENTRY CUI_ListBox : public CUI_Control
00040 {
00041 
00042 public:
00044         CUI_ListBox(// frame
00045                                 CUI_UI *ui = NULL, float x = 0, float y = 0, float x2 = 1, float y2 = 1,
00046                                 CUI_Frame *parent = NULL, IUI_Shader *shader = NULL,
00047                                 IUI_Shader *cursor = NULL, CUI_CoordSys *coordsys = NULL,
00048                                 // list box
00049                                 IUI_Shader *itemshader = NULL, IUI_Shader *hovershader = NULL,
00050                                 IUI_Shader *selectedshader = NULL, IUI_Border *itemborder = NULL,
00051                                 IUI_Font *font = NULL
00052                                 );
00053 
00055         virtual ~CUI_ListBox();
00056 
00058         virtual bool AddItem( char *text = NULL, unsigned int itemID = 0, IUI_Shader *icon = NULL,
00059                                                         unsigned short flags = UI_ITEM_BUTTON );
00060 
00062         virtual bool AddItem( CUI_ListItem *item );
00063 
00065         virtual bool RemoveItem( unsigned int itemID );
00066 
00068         virtual bool EnableItem( unsigned int itemID, bool enable = true );
00069 
00071         virtual bool ProcessKey( unsigned long key );
00072 
00074         virtual bool Render( double dtime, IUI_Renderer *renderer );
00075 
00077 
00080         bool CallbackFunc( int id, int numparam, void *param );
00081 
00083         virtual bool Select( CUI_Frame *frame );
00084 
00086         virtual bool Select( unsigned int id )
00087         { m_selected = FindItem(id); return false; }
00088 
00090         virtual bool SetItemSize( float size )
00091         { m_itemSize = size; return false; }
00092 
00094         virtual bool SetItemFlag( unsigned int itemID, unsigned short flag, bool enable = true );
00095 
00097         virtual bool SetItemIcon( unsigned int itemID, IUI_Shader *icon );
00098 
00100         virtual bool SetHoverShader( IUI_Shader *shader )
00101         { m_hoverShader = shader; return false; }
00102 
00104         virtual bool SetSelectedShader( IUI_Shader *shader )
00105         { m_selectedShader = shader; return false; }
00106 
00108         virtual bool SetItemShader( IUI_Shader *shader )
00109         { m_itemShader = shader; return false; }
00110 
00112         virtual bool SetItemBorder( IUI_Border *border )
00113         { m_itemBorder = border; return false; }
00114 
00116 
00117         virtual bool UpdateView( );
00118 
00120         virtual int GetActiveItems()
00121         { return m_activeItems; }
00122 
00124         virtual char *GetSelectedText()
00125         { if( m_selected ) return m_selected->GetText(); else return NULL; }
00126 
00128         virtual int GetSelectedID()
00129         { if( m_selected ) return m_selected->GetItemID(); else return 0; }
00130 
00132         virtual IUI_Shader *GetSelectedIconShader()
00133         { if( m_selected ) return m_selected->GetIconShader(); else return NULL; }
00134 
00136         virtual bool SetToggleIcons( IUI_Shader *off, IUI_Shader *on )
00137         { m_toggleOnIcon = on; m_toggleOffIcon = off; return false; }
00138 
00139 protected:
00140 
00142         CUI_ListItem *FindItem( unsigned int itemID );
00143 
00145         bool SelectNext();
00146 
00148         bool SelectPrevious();
00149 
00151 
00152         float m_itemSize;
00153 
00155         CUI_ListItem *m_selected;
00156 
00158         IUI_Shader *m_itemShader;
00159 
00161         IUI_Border *m_itemBorder;
00162 
00164         IUI_Shader *m_selectedShader;
00165 
00167         typedef std::list<CUI_ListItem*> LISTITEMLIST;
00168 
00170         LISTITEMLIST m_itemList;
00171 
00173         int m_activeItems;
00174 
00176         IUI_Shader *m_hoverShader;
00177 
00179         IUI_Shader *m_toggleOnIcon;
00180 
00182         IUI_Shader *m_toggleOffIcon;
00183 
00184 };
00185 
00186 
00187 #endif

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