From c668dff52caa82d22384d6b48dd02a100e4aad20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 22 Jun 2004 00:39:40 +0000 Subject: [PATCH] A MenuItem now maintains a "user data" pointer. Menu::Run() now calls platform_run_menu(). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8113 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kernel/boot/loader/menu.cpp | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/kernel/boot/loader/menu.cpp b/src/kernel/boot/loader/menu.cpp index 4efeeed362..db45b5ef7b 100644 --- a/src/kernel/boot/loader/menu.cpp +++ b/src/kernel/boot/loader/menu.cpp @@ -1,6 +1,6 @@ /* ** Copyright 2003-2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved. -** Distributed under the terms of the OpenBeOS License. +** Distributed under the terms of the Haiku License. */ @@ -28,7 +28,8 @@ MenuItem::MenuItem(const char *label, Menu *subMenu) fIsSelected(false), fType(MENU_ITEM_STANDARD), fMenu(NULL), - fSubMenu(subMenu) + fSubMenu(subMenu), + fData(NULL) { } @@ -39,14 +40,14 @@ MenuItem::~MenuItem() } -void +void MenuItem::SetTarget(menu_item_hook target) { fTarget = target; } -void +void MenuItem::SetMarked(bool marked) { if (fIsMarked == marked) @@ -66,7 +67,7 @@ MenuItem::SetMarked(bool marked) } -void +void MenuItem::Select(bool selected) { if (fIsSelected == selected) @@ -86,13 +87,20 @@ MenuItem::Select(bool selected) } -void +void MenuItem::SetType(menu_item_type type) { fType = type; } +void +MenuItem::SetData(void *data) +{ + fData = data; +} + + void MenuItem::SetMenu(Menu *menu) { @@ -266,6 +274,7 @@ Menu::Draw(MenuItem *item) void Menu::Run() { + platform_run_menu(this); } @@ -342,7 +351,7 @@ user_menu(Directory **_bootVolume) menu->AddSeparatorItem(); menu->AddItem(item = new MenuItem("Continue booting")); - platform_run_menu(menu); + menu->Run(); return B_OK; }