#pragma once #include #include #include #include #include "ui/ui_renderer.h" struct MenuItem { std::string label; std::function action; }; struct Menu { std::string label; std::vector items; bool is_open = false; }; class MenuBar { public: MenuBar(int height); ~MenuBar(void); void add_menu(const std::string& label); void add_menu_item(const std::string& menu_label, const std::string& item_label, std::function action); void handle_event(SDL_Event* event, int window_x, int window_y); void render(UIRenderer* ui_renderer, int x, int y, int width); int get_height(void) const; private: int _height; std::vector _menus; int _open_menu_index = -1; };