From 351e16d2f290a5b30981b7beae87d5d8a1a30662 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 24 May 2015 15:45:13 +0300 Subject: Improve checkbox draw speed. Use local text image and improve a bit calculations in draw. --- src/gui/widgets/checkbox.h | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/gui/widgets/checkbox.h') 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; -- cgit v1.2.3-60-g2f50