From 793dd31cad280ed331e174b52829aa82c5281fad Mon Sep 17 00:00:00 2001 From: Arnon Gilboa Date: Sun, 17 Oct 2010 11:44:13 +0200 Subject: spicec: add menu id & find_sub() --- client/menu.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'client/menu.cpp') diff --git a/client/menu.cpp b/client/menu.cpp index 0f7a7e86..17438218 100644 --- a/client/menu.cpp +++ b/client/menu.cpp @@ -20,10 +20,11 @@ #include "utils.h" #include "debug.h" -Menu::Menu(CommandTarget& target, const std::string& name) +Menu::Menu(CommandTarget& target, const std::string& name, int id) : _refs (1) , _target (target) , _name (name) + , _id (id) { } @@ -115,6 +116,21 @@ Menu* Menu::sub_at(int pos) return ((Menu*)_items[pos].obj)->ref(); } +Menu* Menu::find_sub(int id) +{ + Menu* sub; + + if (_id == id) { + return ref(); + } + for (unsigned int i = 0; i < _items.size(); i++) { + if (_items[i].type == MENU_ITEM_TYPE_MENU && (sub = ((Menu*)_items[i].obj)->find_sub(id))) { + return sub; + } + } + return NULL; +} + void Menu::clear() { for (unsigned int i = 0; i < _items.size(); i++) { -- cgit