More fixes
This commit is contained in:
@@ -9,6 +9,9 @@ void Menu::registerEntry(std::string name, void (*drawHandler)(void* ctx), void*
|
||||
item.drawHandler = drawHandler;
|
||||
item.ctx = ctx;
|
||||
items[name] = item;
|
||||
if (!isInOrderList(name)) {
|
||||
order.push_back(name);
|
||||
}
|
||||
}
|
||||
|
||||
void Menu::removeEntry(std::string name) {
|
||||
@@ -18,7 +21,21 @@ void Menu::removeEntry(std::string name) {
|
||||
void Menu::draw() {
|
||||
MenuItem_t item;
|
||||
for (std::string name : order) {
|
||||
if (items.find(name) == items.end()) {
|
||||
continue;
|
||||
}
|
||||
item = items[name];
|
||||
item.drawHandler(item.ctx);
|
||||
if (ImGui::CollapsingHeader(name.c_str(), ImGuiTreeNodeFlags_DefaultOpen)) {
|
||||
item.drawHandler(item.ctx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool Menu::isInOrderList(std::string name) {
|
||||
for (std::string _name : order) {
|
||||
if (_name == name) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user