00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef FIFE_GUI_WIDGETS_CLICKLABEL_H
00023 #define FIFE_GUI_WIDGETS_CLICKLABEL_H
00024
00025
00026 #include <string>
00027
00028
00029 #include <guichan.hpp>
00030
00031
00032
00033
00034
00035
00036 namespace FIFE {
00037 class GuiFont;
00038 }
00039
00040 namespace gcn {
00041
00042 class ClickLabel : public Widget, public MouseListener, public KeyListener, public FocusListener {
00043 public:
00044 ClickLabel();
00045 ClickLabel(const std::string& caption);
00046 virtual ~ClickLabel();
00047
00048 virtual void setWidth(int width);
00049 virtual void setCaption(const std::string& caption);
00050 virtual const std::string& getCaption() const;
00051
00052 virtual void draw(Graphics* graphics);
00053
00054 virtual void adjustSize();
00055
00056 void setTextWrapping(bool);
00057 bool isTextWrapping() const;
00058
00059
00060
00061 virtual void focusLost(const Event& event);
00062
00063
00064
00065
00066 virtual void mousePressed(MouseEvent& mouseEvent);
00067
00068 virtual void mouseReleased(MouseEvent& mouseEvent);
00069
00070 virtual void mouseEntered(MouseEvent& mouseEvent);
00071
00072 virtual void mouseExited(MouseEvent& mouseEvent);
00073
00074 virtual void mouseDragged(MouseEvent& mouseEvent);
00075
00076
00077
00078
00079 virtual void keyPressed(KeyEvent& keyEvent);
00080
00081 virtual void keyReleased(KeyEvent& keyEvent);
00082
00083 protected:
00084 void wrapText();
00085
00086 FIFE::GuiFont* mGuiFont;
00087 bool mTextWrapping;
00088 std::string mCaption;
00089 std::string mWrappedText;
00090
00091 bool mHasMouse;
00092 bool mKeyPressed;
00093 bool mMousePressed;
00094 };
00095 }
00096
00097 #endif
00098