* Added shortcut handling to the boot loader menu (in preparation of adopting

ticket #5312).
* Added shortcut 'b' to continue booting, 'r' to reboot.
* Consolidated asterisk style.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36310 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2010-04-15 18:07:40 +00:00
parent 1cae99d78e
commit 868aa7a0e0
3 changed files with 204 additions and 114 deletions
+18 -2
View File
@@ -13,7 +13,8 @@
class Menu;
class MenuItem;
typedef bool (*menu_item_hook)(Menu *, MenuItem *);
typedef bool (*menu_item_hook)(Menu* menu, MenuItem* item);
typedef void (*shortcut_hook)(char key);
enum menu_item_type {
@@ -52,6 +53,9 @@ public:
void SetHelpText(const char* text);
const char* HelpText() const { return fHelpText; }
void SetShortcut(char key);
char Shortcut() const { return fShortcut; }
const char* Label() const { return fLabel; }
Menu* Submenu() const { return fSubMenu; }
@@ -70,6 +74,7 @@ private:
Menu* fSubMenu;
const void* fData;
const char* fHelpText;
char fShortcut;
};
@@ -122,13 +127,23 @@ public:
{ fChoiceText = text; }
const char* ChoiceText() const { return fChoiceText; }
void Run();
void AddShortcut(char key, shortcut_hook function);
shortcut_hook FindShortcut(char key) const;
MenuItem* FindItemByShortcut(char key);
void Run();
private:
friend class MenuItem;
void Draw(MenuItem* item);
private:
struct shortcut {
shortcut* next;
shortcut_hook function;
char key;
};
const char* fTitle;
const char* fChoiceText;
int32 fCount;
@@ -136,6 +151,7 @@ private:
MenuItemList fItems;
menu_type fType;
MenuItem* fSuperItem;
shortcut* fShortcuts;
};