00001
00015 #ifndef CUI_SCROLLABLETEXTBOX_H
00016 #define CUI_SCROLLABLETEXTBOX_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
00040 class GLGUI_ENTRY CUI_ScrollableTextBox : public CUI_Control
00041 {
00042 public:
00044 CUI_ScrollableTextBox(
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
00049 int columns = 28, int rows = 26, IUI_Font *font = NULL,
00050 IUI_Shader *scrollShader = NULL, IUI_Shader *sliderShader = NULL,
00051 bool wordwrap = true
00052 );
00053
00055 virtual ~CUI_ScrollableTextBox();
00056
00058 virtual bool SetUI( CUI_UI *ui );
00059
00061 virtual bool ProcessKey( unsigned long key );
00062
00064
00067 virtual bool CallbackFunc( int id, int numparam, void *param );
00068
00070 virtual bool GotoBottom();
00071
00073 virtual bool GotoTop();
00074
00076
00078 virtual char *GetText( void )
00079 { return m_textBox->GetText(); }
00080
00082 virtual CUI_TextBox * GetTextBox()
00083 { return m_textBox; }
00084
00086 virtual bool SetText( char *text );
00087
00089 virtual bool SetFont( IUI_Font *font );
00090
00092 virtual bool SetFlag( unsigned long flag, bool set )
00093 { return m_textBox->SetFlag( flag, set ); }
00094
00096 virtual bool SetScrollShader( IUI_Shader *shader )
00097 { m_horizontalBar->SetShader(shader); return m_verticalBar->SetShader(shader); }
00098
00100 virtual bool SetSliderShader( IUI_Shader *shader )
00101 { m_horizontalBar->SetBarShader(shader); return m_verticalBar->SetBarShader(shader); }
00102
00104 virtual bool SetTextBoxSize( int columns, int rows )
00105 { return m_textBox->SetSize( columns, rows ); }
00106
00108 virtual bool SetWordWrap( bool wordwrap )
00109 { return m_textBox->SetWordWrap( wordwrap ); }
00110
00112 virtual bool CatText( const char *text );
00113
00114 protected:
00115
00117 IUI_Shader *m_scrollShader;
00118
00120 IUI_Shader *m_sliderShader;
00121
00123 CUI_TextBox *m_textBox;
00124
00126 CUI_SliderBar *m_horizontalBar;
00127
00129 CUI_SliderBar *m_verticalBar;
00130
00131 };
00132
00133 #endif