diff options
-rw-r--r-- | data/graphics/gui/colors.xml | 1 | ||||
-rw-r--r-- | data/themes/blacknblack/colors.xml | 1 | ||||
-rw-r--r-- | data/themes/blackwood/colors.xml | 1 | ||||
-rw-r--r-- | data/themes/enchilado/colors.xml | 1 | ||||
-rw-r--r-- | data/themes/mana/colors.xml | 1 | ||||
-rw-r--r-- | data/themes/pink/colors.xml | 1 | ||||
-rw-r--r-- | data/themes/unity/colors.xml | 1 | ||||
-rw-r--r-- | data/themes/wood/colors.xml | 1 | ||||
-rw-r--r-- | src/gui/theme.cpp | 1 | ||||
-rw-r--r-- | src/gui/theme.h | 1 | ||||
-rw-r--r-- | src/gui/widgets/textfield.cpp | 12 | ||||
-rw-r--r-- | src/gui/widgets/textfield.h | 3 | ||||
-rw-r--r-- | src/guichan/widgets/textfield.cpp | 8 |
13 files changed, 23 insertions, 10 deletions
diff --git a/data/graphics/gui/colors.xml b/data/graphics/gui/colors.xml index ca3d61926..71b09b172 100644 --- a/data/graphics/gui/colors.xml +++ b/data/graphics/gui/colors.xml @@ -1,6 +1,7 @@ <colors> <color id="BROWSERBOX" color="#000000" /> <color id="TEXT" color="#000000" /> + <color id="CARET" color="#000000" /> <color id="SHADOW" color="#000000" /> <color id="OUTLINE" color="#000000" /> <color id="BORDER" color="#000000" /> diff --git a/data/themes/blacknblack/colors.xml b/data/themes/blacknblack/colors.xml index e802e470f..aaf09d892 100644 --- a/data/themes/blacknblack/colors.xml +++ b/data/themes/blacknblack/colors.xml @@ -1,6 +1,7 @@ <colors> <color id="BROWSERBOX" color="#ffffff" /> <color id="TEXT" color="#ffffff" /> + <color id="CARET" color="#ffffff" /> <color id="SHADOW" color="#000000" /> <color id="OUTLINE" color="#555555" /> <color id="BORDER" color="#00c000" /> diff --git a/data/themes/blackwood/colors.xml b/data/themes/blackwood/colors.xml index cbc7d1d69..3a21c5ef7 100644 --- a/data/themes/blackwood/colors.xml +++ b/data/themes/blackwood/colors.xml @@ -1,6 +1,7 @@ <colors> <color id="BROWSERBOX" color="#7a7972" /> <color id="TEXT" color="#7a7972" /> + <color id="CARET" color="#7a7972" /> <color id="SHADOW" color="#000000" /> <color id="OUTLINE" color="#000000" /> <color id="BORDER" color="#000000" /> diff --git a/data/themes/enchilado/colors.xml b/data/themes/enchilado/colors.xml index cb64bfc95..47f49d240 100644 --- a/data/themes/enchilado/colors.xml +++ b/data/themes/enchilado/colors.xml @@ -1,6 +1,7 @@ <colors> <color id="BROWSERBOX" color="#000000" /> <color id="TEXT" color="#000000" /> + <color id="CARET" color="#000000" /> <color id="SHADOW" color="#000000" /> <color id="OUTLINE" color="#000000" /> <color id="BORDER" color="#000000" /> diff --git a/data/themes/mana/colors.xml b/data/themes/mana/colors.xml index 59e87a047..bd001e28d 100644 --- a/data/themes/mana/colors.xml +++ b/data/themes/mana/colors.xml @@ -1,6 +1,7 @@ <colors> <color id="BROWSERBOX" color="#000000" /> <color id="TEXT" color="#000000" /> + <color id="CARET" color="#000000" /> <color id="SHADOW" color="#000000" /> <color id="OUTLINE" color="#000000" /> <color id="BORDER" color="#000000" /> diff --git a/data/themes/pink/colors.xml b/data/themes/pink/colors.xml index b8a0139f9..52ea46d6f 100644 --- a/data/themes/pink/colors.xml +++ b/data/themes/pink/colors.xml @@ -1,6 +1,7 @@ <colors> <color id="BROWSERBOX" color="#FF00FF" /> <color id="TEXT" color="#FF00FF" /> + <color id="CARET" color="#FF00FF" /> <color id="SHADOW" color="#000000" /> <color id="OUTLINE" color="#000000" /> <color id="BORDER" color="#000000" /> diff --git a/data/themes/unity/colors.xml b/data/themes/unity/colors.xml index eaddc0147..098451a5b 100644 --- a/data/themes/unity/colors.xml +++ b/data/themes/unity/colors.xml @@ -1,6 +1,7 @@ <colors> <color id="BROWSERBOX" color="#E0E0E0" /> <color id="TEXT" color="#E0E0E0" /> + <color id="CARET" color="#E0E0E0" /> <color id="SHADOW" color="#000000" /> <color id="OUTLINE" color="#000000" /> <color id="PROGRESS_BAR" color="#ffffff" /> diff --git a/data/themes/wood/colors.xml b/data/themes/wood/colors.xml index b73b65e9c..2b07e8005 100644 --- a/data/themes/wood/colors.xml +++ b/data/themes/wood/colors.xml @@ -1,6 +1,7 @@ <colors> <color id="BROWSERBOX" color="#000000" /> <color id="TEXT" color="#000000" /> + <color id="CARET" color="#000000" /> <color id="SHADOW" color="#000000" /> <color id="OUTLINE" color="#000000" /> <color id="BORDER" color="#000000" /> diff --git a/src/gui/theme.cpp b/src/gui/theme.cpp index 7b85c8764..730471ceb 100644 --- a/src/gui/theme.cpp +++ b/src/gui/theme.cpp @@ -696,6 +696,7 @@ static int readColorType(const std::string &type) { "BROWSERBOX", "TEXT", + "CARET", "SHADOW", "OUTLINE", "BORDER", diff --git a/src/gui/theme.h b/src/gui/theme.h index a32237be1..ee9352794 100644 --- a/src/gui/theme.h +++ b/src/gui/theme.h @@ -166,6 +166,7 @@ class Theme final : public Palette, public ConfigListener { BROWSERBOX = 0, TEXT, + CARET, SHADOW, OUTLINE, BORDER, diff --git a/src/gui/widgets/textfield.cpp b/src/gui/widgets/textfield.cpp index eb4e2f7cb..ac29eac25 100644 --- a/src/gui/widgets/textfield.cpp +++ b/src/gui/widgets/textfield.cpp @@ -56,10 +56,10 @@ TextField::TextField(const std::string &text, const bool loseFocusOnTab, mMinimum(0), mMaximum(0), mLoseFocusOnTab(loseFocusOnTab), - mLastEventPaste(false) + mLastEventPaste(false), + mCaretColor(&Theme::getThemeColor(Theme::CARET)) { setFrameSize(2); - mForegroundColor = Theme::getThemeColor(Theme::TEXTFIELD); if (instances == 0) @@ -440,3 +440,11 @@ void TextField::handleCopy() const std::string text = getText(); sendBuffer(text); } + +void TextField::drawCaret(gcn::Graphics* graphics, int x) +{ + const gcn::Rectangle clipArea = graphics->getCurrentClipArea(); + + graphics->setColor(*mCaretColor); + graphics->drawLine(x, clipArea.height - 2, x, 1); +} diff --git a/src/gui/widgets/textfield.h b/src/gui/widgets/textfield.h index 72d679052..97048ccba 100644 --- a/src/gui/widgets/textfield.h +++ b/src/gui/widgets/textfield.h @@ -104,6 +104,8 @@ class TextField : public gcn::TextField { mSendAlwaysEvents = b; } protected: + void drawCaret(gcn::Graphics* graphics, int x) override; + bool mSendAlwaysEvents; private: @@ -119,6 +121,7 @@ class TextField : public gcn::TextField unsigned mMaximum; bool mLoseFocusOnTab; int mLastEventPaste; + const gcn::Color *mCaretColor; }; #endif diff --git a/src/guichan/widgets/textfield.cpp b/src/guichan/widgets/textfield.cpp index 7a2bde46e..52aefee54 100644 --- a/src/guichan/widgets/textfield.cpp +++ b/src/guichan/widgets/textfield.cpp @@ -96,14 +96,6 @@ namespace gcn void TextField::drawCaret(Graphics* graphics, int x) { - // Check the current clip area as a clip area with a different - // size than the widget might have been pushed (which is the - // case in the draw method when we push a clip area after we have - // drawn a border). - const Rectangle clipArea = graphics->getCurrentClipArea(); - - graphics->setColor(mForegroundColor); - graphics->drawLine(x, clipArea.height - 2, x, 1); } void TextField::mousePressed(MouseEvent& mouseEvent) |