00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _GLWTEXTBOX_H_
00022 #define _GLWTEXTBOX_H_
00023
00024 #include <string>
00025 #include <GLW/GLWidget.h>
00026
00027 class GLWTextBoxI
00028 {
00029 public:
00030 virtual void textChanged(unsigned int id, const LangString &text) = 0;
00031 };
00032
00033 class GLWTextBox : public GLWidget
00034 {
00035 public:
00036 enum TextFlags
00037 {
00038 eFlagPassword = 1
00039 };
00040
00041 GLWTextBox(float x = 0.0f, float y = 0.0f,
00042 float w = 0.0f,
00043 const LangString &startText = LangString(),
00044 unsigned int flags = 0);
00045 virtual ~GLWTextBox();
00046
00047 void setHandler(GLWTextBoxI *handler) { handler_ = handler; }
00048
00049 virtual void setParent(GLWPanel *parent);
00050 virtual void draw();
00051 virtual void simulate(float frameTime);
00052 virtual void keyDown(char *buffer, unsigned int keyState,
00053 KeyboardHistory::HistoryElement *history, int hisCount,
00054 bool &skipRest);
00055 virtual void mouseDown(int button, float x, float y, bool &skipRest);
00056
00057 void setCurrent();
00058 void setAllowUnicode(bool allowUnicode) { allowUnicode_ = allowUnicode; }
00059
00060 std::string &getText();
00061 LangString &getLangString() { return text_; }
00062 void setText(const LangString &text);
00063 void setMaxTextLen(unsigned int maxLen) { maxTextLen_ = maxLen; }
00064
00065 REGISTER_CLASS_HEADER(GLWTextBox);
00066
00067 protected:
00068 float ctime_;
00069 bool cursor_, current_;
00070 bool allowUnicode_;
00071 unsigned int maxTextLen_, flags_;
00072 LangString text_;
00073 GLWTextBoxI *handler_;
00074
00075 };
00076
00077 #endif