00001
00015 #ifndef CUI_LISTITEM_H
00016 #define CUI_LISTITEM_H
00017
00018 #include "UI_Lib.h"
00019 #include "UI_types.h"
00020
00021
00022 #include "IUI_Border.h"
00023 #include "IUI_Renderer.h"
00024 #include "IUI_Font.h"
00025 #include "CUI_CoordSys.h"
00026 #include "CUI_Frame.h"
00027 #include "CUI_Widget.h"
00028 #include "CUI_Button.h"
00029
00031 #define UI_ITEM_INACTIVE 0x0001
00032
00033 #define UI_ITEM_DISABLED 0x0002
00034
00035 #define UI_ITEM_BUTTON 0x1000
00036
00037 #define UI_ITEM_TOGGLE 0x2000
00038
00039
00041
00053 class GLGUI_ENTRY CUI_ListItem
00054 {
00055 public:
00057 CUI_ListItem( const char *text = NULL, unsigned int itemID = 0,
00058 IUI_Shader *icon = NULL,
00059 unsigned short flags = UI_ITEM_BUTTON );
00060
00062 virtual ~CUI_ListItem();
00063
00065 virtual bool CreateElements( CUI_UI *ui, CUI_Frame *parent,
00066 IUI_Shader *itemShader, IUI_Shader *hoverShader,
00067 IUI_Border *itemBorder, IUI_Font *font );
00068
00070 virtual bool SetText( char *text );
00071
00073 virtual char *GetText( )
00074 { return m_text; }
00075
00077 virtual bool SetItemID( unsigned int itemID )
00078 { m_itemID = itemID; return false; }
00079
00081 virtual unsigned int GetItemID( )
00082 { return m_itemID; return false; }
00083
00085 virtual bool SetIcon( IUI_Shader *icon );
00086
00088 virtual bool SetTextFrame( CUI_Widget *frame )
00089 { m_textFrame = frame; return false; }
00090
00091 virtual CUI_Widget *GetTextFrame( )
00092 { return m_textFrame; }
00093
00095 virtual bool SetIconFrame( CUI_Frame *frame )
00096 { m_iconFrame = frame; return false; }
00097
00098 virtual CUI_Frame *GetIconFrame( )
00099 { return m_iconFrame; }
00100
00102 virtual bool SetFlag( unsigned long flag, bool set );
00103
00105 virtual bool GetFlag( unsigned long flag );
00106
00108
00109 virtual bool IsSelectable();
00110
00112 virtual CUI_Button *GetButton()
00113 { return m_button; }
00114
00116 virtual IUI_Shader *GetIconShader()
00117 { return m_iconFrame->GetShader(); }
00118
00120 virtual bool SetOwned( bool owned )
00121 { m_owned = owned; return false; }
00122
00124
00125 virtual bool ToggleState( );
00126
00127 protected:
00128
00130 char *m_text;
00131
00133
00134 unsigned int m_itemID;
00135
00137 IUI_Shader *m_icon;
00138
00140 unsigned short m_flags;
00141
00143 CUI_Button *m_button;
00144
00146 CUI_Widget *m_textFrame;
00147
00149 CUI_Frame *m_iconFrame;
00150
00152 bool m_state;
00153
00154 private:
00156 bool m_owned;
00157
00158 };
00159
00160 #endif