From c2664b6aacc5fca1cdc71bc8e746c727eda5b806 Mon Sep 17 00:00:00 2001 From: David Capello Date: Fri, 29 Mar 2013 16:20:32 -0300 Subject: [PATCH] ADd Entry::set/getSuffix() property --- src/skin/skin_theme.cpp | 9 +++++++-- src/ui/entry.cpp | 7 ++++++- src/ui/entry.h | 4 ++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/skin/skin_theme.cpp b/src/skin/skin_theme.cpp index d6c3d41d8..2b5cfd32d 100644 --- a/src/skin/skin_theme.cpp +++ b/src/skin/skin_theme.cpp @@ -975,7 +975,9 @@ void SkinTheme::paintEntry(PaintEvent& ev) Entry* widget = static_cast(ev.getSource()); bool password = widget->isPassword(); int scroll, caret, state, selbeg, selend; - const char *text = widget->getText(); + std::string textString = widget->getText() + widget->getSuffix(); + int suffixIndex = widget->getTextSize(); + const char* text = textString.c_str(); int c, ch, x, y, w; int x1, y1, x2, y2; int caret_x; @@ -1022,7 +1024,10 @@ void SkinTheme::paintEntry(PaintEvent& ev) } // Disabled - if (!widget->isEnabled()) { + if (!widget->isEnabled() || (c >= suffixIndex)) { + if (widget->hasFocus()) + break; + bg = ColorNone; fg = getColor(ThemeColor::Disabled); } diff --git a/src/ui/entry.cpp b/src/ui/entry.cpp index 41a749aca..ef8883588 100644 --- a/src/ui/entry.cpp +++ b/src/ui/entry.cpp @@ -145,6 +145,12 @@ void Entry::deselectText() invalidate(); } +void Entry::setSuffix(const std::string& suffix) +{ + m_suffix = suffix; + invalidate(); +} + void Entry::getEntryThemeInfo(int* scroll, int* caret, int* state, int* selbeg, int* selend) { @@ -641,4 +647,3 @@ void Entry::backwardWord() } } // namespace ui - diff --git a/src/ui/entry.h b/src/ui/entry.h index 850555928..227ac72ba 100644 --- a/src/ui/entry.h +++ b/src/ui/entry.h @@ -32,6 +32,9 @@ namespace ui { void selectText(int from, int to); void deselectText(); + void setSuffix(const std::string& suffix); + const std::string& getSuffix() { return m_suffix; } + // for themes void getEntryThemeInfo(int* scroll, int* caret, int* state, int* selbeg, int* selend); @@ -82,6 +85,7 @@ namespace ui { bool m_readonly : 1; bool m_password : 1; bool m_recent_focused : 1; + std::string m_suffix; }; } // namespace ui