Files
radiantwave/src/settings.h
T
2026-08-07 14:51:41 -05:00

42 lines
986 B
C++

#pragma once
#include "page.h"
#include <SDL3_ttf/SDL_ttf.h>
#include <string>
#include <vector>
class Settings : public Page {
public:
void onPush(AppState& state) override;
void onResume(AppState& state) override;
void onPause(AppState& state) override;
void onPop(AppState& state) override;
void handleEvent(const SDL_Event& event) override;
void update(float dt) override;
void render(SDL_Renderer* renderer) override;
private:
struct MenuItem {
std::string label;
SDL_Texture* texture = nullptr;
float width = 0;
float height = 0;
float y = 0;
};
void createTextures(AppState& state);
void destroyTextures();
AppState* state_ = nullptr;
int selectedItem_ = 0;
std::vector<MenuItem> items_;
SDL_Texture* bgTexture_ = nullptr;
float bgWidth_ = 0;
float bgHeight_ = 0;
SDL_Texture* titleTexture_ = nullptr;
float titleWidth_ = 0;
float titleHeight_ = 0;
};