diff options
Diffstat (limited to 'src/IntResMenuItem.cc')
-rw-r--r-- | src/IntResMenuItem.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/IntResMenuItem.cc b/src/IntResMenuItem.cc index a1595a6..30aead1 100644 --- a/src/IntResMenuItem.cc +++ b/src/IntResMenuItem.cc | |||
@@ -21,8 +21,11 @@ | |||
21 | 21 | ||
22 | // $Id$ | 22 | // $Id$ |
23 | 23 | ||
24 | #include "FbTk/Menu.hh" | ||
25 | |||
24 | #include "IntResMenuItem.hh" | 26 | #include "IntResMenuItem.hh" |
25 | #include "PixmapWithMask.hh" | 27 | #include "PixmapWithMask.hh" |
28 | |||
26 | #ifdef HAVE_CSTDIO | 29 | #ifdef HAVE_CSTDIO |
27 | #include <cstdio> | 30 | #include <cstdio> |
28 | #else | 31 | #else |
@@ -41,8 +44,8 @@ std::string appendIntValue(const std::string &label, int value) { | |||
41 | 44 | ||
42 | }; | 45 | }; |
43 | 46 | ||
44 | IntResMenuItem::IntResMenuItem(const char *label, FbTk::Resource<int> &res, int min_val, int max_val): | 47 | IntResMenuItem::IntResMenuItem(const char *label, FbTk::Resource<int> &res, int min_val, int max_val, FbTk::Menu &host_menu): |
45 | FbTk::MenuItem(label), m_org_label(FbTk::MenuItem::label()), | 48 | FbTk::MenuItem(label, host_menu), m_org_label(FbTk::MenuItem::label()), |
46 | m_max(max_val), m_min(min_val), m_res(res) { | 49 | m_max(max_val), m_min(min_val), m_res(res) { |
47 | setLabel(appendIntValue(m_org_label, *m_res).c_str()); | 50 | setLabel(appendIntValue(m_org_label, *m_res).c_str()); |
48 | } | 51 | } |
@@ -72,4 +75,11 @@ void IntResMenuItem::click(int button, int time) { | |||
72 | setLabel(appendIntValue(m_org_label, *m_res).c_str()); | 75 | setLabel(appendIntValue(m_org_label, *m_res).c_str()); |
73 | // call other commands | 76 | // call other commands |
74 | FbTk::MenuItem::click(button, time); | 77 | FbTk::MenuItem::click(button, time); |
78 | |||
79 | // show new value, which for us means forcing a full menu update | ||
80 | // since the text is drawn onto the background! | ||
81 | if (menu()) { | ||
82 | menu()->frameWindow().updateBackground(false); | ||
83 | menu()->clearWindow(); | ||
84 | } | ||
75 | } | 85 | } |