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

CUI_UI.h

Go to the documentation of this file.
00001 
00015 #ifndef CUI_UI_H
00016 #define CUI_UI_H
00017 
00018 #include "UI_Lib.h"
00019 #include "UI_types.h"
00020 #include "CUI_Registry.h"
00021 #include "CUI_Frame.h"
00022 #include "CUI_ErrorHandler.h"
00023 
00024 #include <map>
00025 #include <string>
00026 #include <list>
00027 
00029 #define UI_LBUTTONDOWN  0x0001
00030 
00031 #define UI_RBUTTONDOWN  0x0002
00032 
00033 #define UI_MBUTTONDOWN  0x0004
00034 
00035 #define UI_KEY_ENTER    0x0100
00036 #define UI_KEY_ESCAPE   0x0101
00037 #define UI_KEY_PAGEUP   0x0102
00038 #define UI_KEY_PAGEDOWN 0x0103
00039 #define UI_KEY_SPACE    0x0104
00040 #define UI_KEY_LEFT             0x0105
00041 #define UI_KEY_UP               0x0106
00042 #define UI_KEY_RIGHT    0x0107
00043 #define UI_KEY_DOWN             0x0108
00044 #define UI_KEY_TAB              0x0109
00045 
00046 
00048 
00059 class GLGUI_ENTRY CUI_UI
00060 {
00061 public:
00063         typedef bool (*callbackfunc)(int id, int numparam, void *param);
00064 
00065         
00067         CUI_UI( int xres = 0, int yres = 0, char *file = NULL );
00068 
00070 
00071         virtual ~CUI_UI();
00072 
00074 
00086         virtual bool UpdateCursor( float x, float y, unsigned short state );
00087 
00089 
00092         virtual bool ProcessKey( unsigned long key );
00093 
00095 
00099         virtual bool SetResolution( unsigned int x, unsigned int y );
00100 
00102 
00105         virtual bool SaveUI( char *filename );
00106 
00107 #ifndef NO_XML
00108 
00109 
00111         virtual bool LoadUI( char *filename );
00112 
00114 
00118         virtual bool LoadUI( char *docBytes, unsigned long byteCount, const char *bufferName );
00119 #endif // NO_XML
00120 
00122 
00123         virtual bool Render( double dtime );
00124 
00126 
00127         virtual bool UpdateStatus( );
00128 
00130         virtual bool SetRenderer( IUI_Renderer *renderer );
00131 
00133         virtual IUI_Renderer *GetRenderer();
00134 
00136         virtual const CUI_Registry *GetRegistry( void );
00137 
00139         virtual bool SetErrorHandler( CUI_ErrorHandler *errh )
00140         { m_errorHandler = errh; return false; }
00141 
00143         virtual const CUI_ErrorHandler *GetErrorHandler( void )
00144         { return m_errorHandler; }
00145 
00147         virtual void ReportError( CUI_ErrorHandler::errorType errtype, char *message )
00148         { if( m_errorHandler ) m_errorHandler->ProcessError( errtype, message ); }
00149 
00151         virtual bool Select( CUI_Frame *frame );
00152 
00154         virtual bool SelectNext( void );
00155 
00157         virtual bool SelectPrevious( void );
00158 
00160         virtual bool AddRootFrame( const char *name, CUI_Frame *frame, callbackfunc callback = NULL );
00161 
00163 
00166         virtual bool SetActiveRootFrame( const char *name );
00167 
00169         virtual bool SetCallbackFunc( const char *rootname, callbackfunc callback = NULL );
00170 
00172         virtual bool ActivateFrame( CUI_Frame *frame, bool active );
00173 
00175         virtual bool EnableFrame( CUI_Frame *frame, bool enable );
00176 
00178         virtual CUI_Registry::FRAMEVECTOR *FlushRegistryFrames( CUI_Registry::FRAMEVECTOR *vec = NULL )
00179         { return m_registry->FlushFrames( vec ); }
00180 
00182         virtual CUI_Registry::SHADERVECTOR *FlushRegistryShaders( CUI_Registry::SHADERVECTOR *vec = NULL )
00183         { return m_registry->FlushShaders( vec ); }
00184 
00186         virtual CUI_Registry::FONTVECTOR *FlushRegistryFonts( CUI_Registry::FONTVECTOR *vec = NULL )
00187         { return m_registry->FlushFonts( vec ); }
00188 
00190         virtual CUI_Registry::COORDSYSVECTOR *FlushRegistryCoordSys( CUI_Registry::COORDSYSVECTOR *vec = NULL )
00191         { return m_registry->FlushCoordSys( vec ); }
00192 
00194         virtual CUI_Registry::BORDERVECTOR *FlushRegistryBorders( CUI_Registry::BORDERVECTOR *vec = NULL )
00195         { return m_registry->FlushBorders( vec ); }
00196 
00198         virtual bool AddFrame( CUI_Frame *frame );
00199 
00201         virtual CUI_Frame *GetFrame( unsigned long id )
00202         { return m_registry->GetFrame( id ); }
00203         
00205         virtual bool AddShader( const char *name, IUI_Shader *shader )
00206         { return m_registry->AddShader( name, shader ); }
00207 
00209         virtual IUI_Shader *GetShader( const char *name )
00210         { return m_registry->GetShader( name ); }
00211 
00213         virtual bool AddFont( const char *name, IUI_Font *font )
00214         { return m_registry->AddFont( name, font ); }
00215 
00217         virtual IUI_Font *GetFont( const char *name )
00218         { return m_registry->GetFont( name ); }
00219 
00221         virtual bool AddCoordSys( const char *name, CUI_CoordSys *coordsys )
00222         { return m_registry->AddCoordSys( name, coordsys ); }
00223 
00225         virtual CUI_CoordSys *GetCoordSys( const char *name )
00226         { return m_registry->GetCoordSys( name ); }
00227 
00229         virtual bool AddBorder( const char *name, IUI_Border *border )
00230         { return m_registry->AddBorder( name, border); }
00231 
00233         virtual IUI_Border *GetBorder( const char *name )
00234         { return m_registry->GetBorder( name ); }
00235 
00237         virtual bool CallbackFunc( int id, int numparam, void *param );
00238 
00240         virtual CUI_Frame *GetDefaultToolTipFrame()
00241         { return m_toolTipFrame; }
00242 
00244         virtual bool SetDefaultToolTipFrame( CUI_Frame *frame )
00245         { m_toolTipFrame = frame; return false; }
00246 
00248         virtual bool SetFrameAnimation( bool anim )
00249         { m_frameAnimation = anim; return false; }
00250 
00252         virtual bool GetFrameAnimation( )
00253         { return m_frameAnimation; }
00254 
00256         virtual void Delete( unsigned char *ptr )
00257         { delete []ptr; }
00258 
00259 protected:
00260         typedef std::map<std::string, CUI_Frame*, std::less<std::string> > FRAMEMAP;
00261         typedef std::list<CUI_Frame*> FRAMELIST;
00262 
00264         FRAMEMAP m_frames;
00265 
00267         CUI_Frame* m_activeframe;
00268 
00270         typedef std::list<callbackfunc> CALLBACKLIST;
00271 
00273         CALLBACKLIST m_callbackList;
00274 
00276         callbackfunc m_activecallback;
00277 
00279 
00280         FRAMELIST m_clickableFrames;
00281 
00283         unsigned int m_selected;
00284 
00286         CUI_Frame *m_selected_p;
00287 
00289         CUI_Frame* m_hoverframe;
00291         CUI_Frame* m_clickframe;
00292 
00294         float m_cursorx;
00296         float m_cursory;
00297 
00299         float m_lastcursorx;
00301         float m_lastcursory;
00302 
00304         unsigned int m_resolutionx;
00306         unsigned int m_resolutiony;
00307 
00309         unsigned short m_cursorstate;
00310 
00312         IUI_Renderer *m_renderer;
00313 
00315         CUI_Registry *m_registry;
00316 
00318         CUI_ErrorHandler *m_errorHandler;
00319 
00321         IUI_Shader *m_defaultShader;
00322 
00324         IUI_Border *m_defaultBorder;
00325 
00327         CUI_CoordSys *m_defaultCoordSys;
00328 
00330         IUI_Font *m_defaultFont;
00331 
00333         CUI_Frame *m_toolTipFrame;
00334 
00336         bool m_displayToolTip;
00337 
00339         bool m_newToolTip;
00340 
00342         bool m_frameAnimation;
00343 
00344 };
00345 
00346 #endif

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