2023-07-26 12:24:18 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "./screen.hpp"
|
|
|
|
|
2024-04-21 14:17:50 +02:00
|
|
|
#include "./chat_gui/theme.hpp"
|
2024-04-20 17:57:11 +02:00
|
|
|
#include "./chat_gui/file_selector.hpp"
|
2023-08-03 13:05:19 +02:00
|
|
|
|
2024-05-30 11:46:58 +02:00
|
|
|
#include <solanaceae/util/simple_config_model.hpp>
|
|
|
|
|
2023-08-03 13:05:19 +02:00
|
|
|
#include <vector>
|
|
|
|
#include <string>
|
|
|
|
|
2023-07-26 20:09:57 +02:00
|
|
|
// fwd
|
|
|
|
extern "C" {
|
|
|
|
struct SDL_Renderer;
|
|
|
|
} // C
|
|
|
|
|
2023-07-26 12:24:18 +02:00
|
|
|
struct StartScreen final : public Screen {
|
2023-07-26 20:09:57 +02:00
|
|
|
SDL_Renderer* _renderer;
|
2024-04-21 14:17:50 +02:00
|
|
|
Theme& _theme;
|
2024-05-30 11:46:58 +02:00
|
|
|
SimpleConfigModel _conf;
|
2023-08-03 13:05:19 +02:00
|
|
|
FileSelector _fss;
|
|
|
|
|
2023-08-28 15:33:36 +02:00
|
|
|
bool _new_save {false};
|
2024-04-20 19:53:41 +02:00
|
|
|
std::string _user_name {"unnamed-tomato"};
|
2023-08-28 15:33:36 +02:00
|
|
|
|
|
|
|
bool _show_password {false};
|
|
|
|
std::string _password;
|
|
|
|
|
2024-04-20 19:53:41 +02:00
|
|
|
std::string _tox_profile_path {"unnamed-tomato.tox"};
|
2023-08-03 13:05:19 +02:00
|
|
|
std::vector<std::string> queued_plugin_paths;
|
2023-07-26 20:09:57 +02:00
|
|
|
|
|
|
|
StartScreen(void) = delete;
|
2024-05-30 11:46:58 +02:00
|
|
|
StartScreen(const std::vector<std::string_view>& args, SDL_Renderer* renderer, Theme& theme);
|
2023-07-26 12:24:18 +02:00
|
|
|
~StartScreen(void) = default;
|
|
|
|
|
|
|
|
// return nullptr if not next
|
|
|
|
// sets bool quit to true if exit
|
2024-01-05 14:47:08 +01:00
|
|
|
Screen* render(float, bool&) override;
|
|
|
|
Screen* tick(float, bool&) override;
|
|
|
|
|
|
|
|
// use default nextRender and nextTick
|
2023-07-26 12:24:18 +02:00
|
|
|
};
|
|
|
|
|