settings_menu: Create a dedicated class for the settings

This commit is contained in:
2026-01-12 21:34:41 +01:00
parent 24d8a092e4
commit 416d3a2be9
13 changed files with 286 additions and 161 deletions

View File

@@ -0,0 +1,46 @@
/*
* File name: settings_menu.hpp
* Author: lejulien
* Date created: 01-01-1970 00:59:59
// Date modified: 12-01-2026 22:16:29
* ------
*/
#pragma once
#include <memory>
#include <context.hpp>
namespace gol {
class SettingsMenu {
public:
SettingsMenu(std::shared_ptr<ctx> context);
~SettingsMenu() = default;
void update();
void display();
bool isOpen();
void Toogle();
// Getter/Setters
int getFPS();
void setFPS(int);
int getCellSize();
void setCellSize(int);
int getWidth();
void setWidth(int);
int getHeight();
void setHeight(int);
private:
std::shared_ptr<ctx> context_ = nullptr;
int fps_ctrl_ = false;
int cell_size_ctrl_ = false;
bool settings_window_ = false;
int width_ctrl_ = false;
int height_ctrl_ = false;
bool dark_theme_ctrl_ = false;
bool apply_ctrl_ = false;
};
} // namespace gol