aboutsummaryrefslogtreecommitdiff
path: root/src/FbTk/Menu.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/FbTk/Menu.hh')
-rw-r--r--src/FbTk/Menu.hh17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/FbTk/Menu.hh b/src/FbTk/Menu.hh
index 43b77a1..c77b0c0 100644
--- a/src/FbTk/Menu.hh
+++ b/src/FbTk/Menu.hh
@@ -41,6 +41,7 @@
41#include "MenuTheme.hh" 41#include "MenuTheme.hh"
42#include "Timer.hh" 42#include "Timer.hh"
43#include "FbString.hh" 43#include "FbString.hh"
44#include "TypeAhead.hh"
44 45
45namespace FbTk { 46namespace FbTk {
46 47
@@ -87,10 +88,8 @@ public:
87 virtual void raise(); 88 virtual void raise();
88 /// lower this window 89 /// lower this window
89 virtual void lower(); 90 virtual void lower();
90 /// select next item 91 /// cycle through menuitems
91 void nextItem(int failsafe = -1); 92 void cycleItems(bool reverse);
92 /// select previous item
93 void prevItem(int failsafe = -1);
94 void enterSubmenu(); 93 void enterSubmenu();
95 void enterParent(); 94 void enterParent();
96 95
@@ -186,7 +185,7 @@ protected:
186 int drawItem(FbDrawable &pm, unsigned int index, 185 int drawItem(FbDrawable &pm, unsigned int index,
187 bool highlight = false, 186 bool highlight = false,
188 bool exclusive_drawable = false); 187 bool exclusive_drawable = false);
189 void clearItem(int index, bool clear = true); 188 void clearItem(int index, bool clear = true, int search_index = -1);
190 void highlightItem(int index); 189 void highlightItem(int index);
191 virtual void redrawTitle(FbDrawable &pm); 190 virtual void redrawTitle(FbDrawable &pm);
192 virtual void redrawFrame(FbDrawable &pm); 191 virtual void redrawFrame(FbDrawable &pm);
@@ -209,6 +208,14 @@ private:
209 ImageControl &m_image_ctrl; 208 ImageControl &m_image_ctrl;
210 Menuitems menuitems; 209 Menuitems menuitems;
211 210
211 TypeAhead<Menuitems, MenuItem *> m_type_ahead;
212 Menuitems m_matches;
213
214 void resetTypeAhead();
215 void drawTypeAheadItems();
216 void drawLine(int index, int size);
217 void fixMenuItemIndices();
218
212 int m_screen_x, m_screen_y; 219 int m_screen_x, m_screen_y;
213 unsigned int m_screen_width, m_screen_height; 220 unsigned int m_screen_width, m_screen_height;
214 bool m_moving; ///< if we're moving/draging or not 221 bool m_moving; ///< if we're moving/draging or not