diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-05-24 15:45:13 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-05-24 15:45:13 +0300 |
commit | 351e16d2f290a5b30981b7beae87d5d8a1a30662 (patch) | |
tree | ba64ab4843a87678cfff6d45e13d18648d132a11 /src/gui/widgets/checkbox.h | |
parent | 07cef0090ecb3f9b904afbaeaf7b2e2449f34794 (diff) | |
download | manaplus-351e16d2f290a5b30981b7beae87d5d8a1a30662.tar.gz manaplus-351e16d2f290a5b30981b7beae87d5d8a1a30662.tar.bz2 manaplus-351e16d2f290a5b30981b7beae87d5d8a1a30662.tar.xz manaplus-351e16d2f290a5b30981b7beae87d5d8a1a30662.zip |
Improve checkbox draw speed.
Use local text image and improve a bit calculations in draw.
Diffstat (limited to 'src/gui/widgets/checkbox.h')
-rw-r--r-- | src/gui/widgets/checkbox.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/gui/widgets/checkbox.h b/src/gui/widgets/checkbox.h index d3ed8b12f..0aa3a6faf 100644 --- a/src/gui/widgets/checkbox.h +++ b/src/gui/widgets/checkbox.h @@ -69,6 +69,10 @@ #include "listeners/keylistener.h" #include "listeners/tooltiplistener.h" +#include "listeners/widgetlistener.h" + +#include "gui/fonts/textchunk.h" + #include "gui/widgets/widget.h" #include "localconsts.h" @@ -82,7 +86,8 @@ class Skin; */ class CheckBox final : public Widget, public ToolTipListener, - public KeyListener + public KeyListener, + public WidgetListener { public: /** @@ -165,13 +170,16 @@ class CheckBox final : public Widget, * @param caption The caption of the check box. * @see getCaption, adjustSize */ - void setCaption(const std::string& caption) - { mCaption = caption; } + void setCaption(const std::string& caption); void mouseClicked(MouseEvent& event) override final; void mouseDragged(MouseEvent& event) override final; + void setParent(Widget *widget) override final; + + void widgetHidden(const Event &event) override final; + private: void toggleSelected(); @@ -185,12 +193,16 @@ class CheckBox final : public Widget, */ std::string mCaption; + TextChunk mTextChunk; + int mPadding; int mImagePadding; int mImageSize; int mSpacing; + int mTextX; bool mHasMouse; bool mDrawBox; + bool mTextChanged; static int instances; static Skin *mSkin; |