selection_menu: Move it to it's dedicated class

This commit is contained in:
2026-01-13 13:03:36 +01:00
parent 416d3a2be9
commit f45c83dd77
5 changed files with 156 additions and 80 deletions

View File

@@ -18,12 +18,14 @@ class Render;
namespace gol {
class SettingsMenu;
class SelectionMenu;
typedef struct ctx {
std::shared_ptr<World> world = nullptr;
std::shared_ptr<Rules> rules = nullptr;
std::shared_ptr<Render> render = nullptr;
std::shared_ptr<SettingsMenu> settings_menu = nullptr;
std::shared_ptr<SelectionMenu> selection_menu = nullptr;
nlohmann::json config_json;
} ctx;

View File

@@ -0,0 +1,38 @@
/*
* File name: selection_menu.hpp
* Author: lejulien
* Date created: 13-01-2026 22:12:44
// Date modified: 13-01-2026 22:18:58
* ------
*/
#pragma once
#include <memory>
#include <string>
#include <imgui.h>
#include <raylib.h>
#include <rlImGui.h>
#include <context.hpp>
namespace gol {
class SelectionMenu {
public:
SelectionMenu(std::shared_ptr<ctx> context);
~SelectionMenu();
void update();
void display();
void setSelection(std::vector<uint32_t> selection);
void open();
private:
std::shared_ptr<ctx> context_;
RenderTexture2D selectionTexture_;
std::vector<uint32_t> sel_data_ = {};
bool sel_ctrl_ = false;
char patern_name_[255];
};
} // namespace gol