00001
00015 #ifndef CUI_SCROLLABLEFRAME_H
00016 #define CUI_SCROLLABLEFRAME_H
00017
00018 #include "UI_Lib.h"
00019 #include "UI_types.h"
00020 #include "CUI_TextBox.h"
00021 #include "CUI_SliderBar.h"
00022 #include "CUI_Control.h"
00023
00024
00026
00038 class GLGUI_ENTRY CUI_ScrollableFrame : public CUI_Control
00039 {
00040 public:
00042 CUI_ScrollableFrame(
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
00047 float width = 1.0, float height = 1.0,
00048 IUI_Shader *scrollShader = NULL, IUI_Shader *sliderShader = NULL
00049 );
00050
00052 virtual ~CUI_ScrollableFrame();
00053
00055 virtual bool SetUI( CUI_UI *ui );
00056
00058 virtual bool ProcessKey( unsigned long key );
00059
00061
00064 virtual bool CallbackFunc( int id, int numparam, void *param );
00065
00067
00068 virtual bool AddChild( CUI_Frame *frame, bool back = false )
00069 { return m_frame->AddChild( frame, back ); }
00070
00072
00073 virtual bool SetCoordSys( CUI_CoordSys *coordsys );
00074
00076 virtual bool SetScrollShader( IUI_Shader *shader )
00077 { m_horizontalBar->SetShader(shader); return m_verticalBar->SetShader(shader); }
00078
00080 virtual bool SetSliderShader( IUI_Shader *shader )
00081 { m_horizontalBar->SetBarShader(shader); return m_verticalBar->SetBarShader(shader); }
00082
00084 virtual bool SetViewArea( float width, float height );
00085
00086 protected:
00087
00089 IUI_Shader *m_scrollShader;
00090
00092 IUI_Shader *m_sliderShader;
00093
00095 CUI_Frame *m_frame;
00096
00098 float m_viewWidth;
00099
00101 float m_viewHeight;
00102
00104 CUI_SliderBar *m_horizontalBar;
00105
00107 CUI_SliderBar *m_verticalBar;
00108
00109 };
00110
00111 #endif