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

CUI_MultipleStateButton.h

Go to the documentation of this file.
00001 
00015 #ifndef CUI_MULTIPLESTATEBUTTON_H
00016 #define CUI_MULTIPLESTATEBUTTON_H
00017 
00018 #include "UI_Lib.h"
00019 #include "UI_types.h"
00020 #include "CUI_Button.h"
00021 
00023 typedef void (*actionfunc_state)( int );
00024 
00026 typedef IUI_Shader *IUI_Shader_p;
00027 
00029 
00041 class GLGUI_ENTRY CUI_MultipleStateButton : public CUI_Button
00042 {
00043 public:
00045         CUI_MultipleStateButton( 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                                 // widget
00049                                 char *text = NULL, IUI_Font *font = NULL, float textscale = 0.8,
00050                                 IUI_Border *border = NULL,
00051                                 // button
00052                                 IUI_Shader *hover = NULL, IUI_Shader *disable = NULL,
00053                                 IUI_Shader *click = NULL,
00054                                 // multiplestatebutton
00055                                 int numberofstates = 1, int initialstate = 0,
00056                                 actionfunc_state stateaction = NULL
00057                                 );
00059 
00060         virtual ~CUI_MultipleStateButton();
00061 
00063         virtual bool Render( double dtime, IUI_Renderer *renderer );
00064 
00066 
00071         virtual unsigned int AddState( IUI_Shader *shader = NULL, IUI_Shader *hover = NULL,
00072                                                 IUI_Shader *disable = NULL, IUI_Shader *click = NULL );
00073 
00075         virtual unsigned int GetState( void );
00076 
00078 
00083         virtual bool SetShader( IUI_Shader *shader, int state = 0 );
00084 
00086 
00087         virtual bool SetHoverShader( IUI_Shader *shader, int state = 0 );
00089 
00090         virtual bool SetDisableShader( IUI_Shader *shader, int state =0 );
00092 
00093         virtual bool SetClickShader( IUI_Shader *shader, int state = 0 );
00094 
00096 
00099         virtual bool Click( int &id, int &numparam, void **param );
00100 
00102 
00104         virtual void DeleteParam( void *param ) { delete [] (int*) param; };
00105 
00107         virtual bool Reset( )
00108         { m_currentstate = 0; return false; }
00109 
00111         virtual bool SetState( unsigned short state )
00112         { m_currentstate = state; return false; }
00113 
00115         virtual unsigned short GetNumStates( )
00116         { return m_numstates; }
00117 
00118 protected:
00119 
00121         unsigned short m_numstates;
00123         unsigned int m_currentstate;
00124 
00126         IUI_Shader **m_defaultShaders;
00128         IUI_Shader **m_hoverShaders;
00130         IUI_Shader **m_disableShaders;
00132         IUI_Shader **m_clickShaders;
00133 
00134 };
00135 
00136 #endif

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