2026-04-12 17:31:32 +03:00
|
|
|
#pragma once
|
2026-04-17 19:32:49 +03:00
|
|
|
#include "Screen.hpp"
|
2026-04-12 17:31:32 +03:00
|
|
|
|
2026-04-17 19:32:49 +03:00
|
|
|
class FileSelectScreen : public Screen {
|
2026-04-12 17:31:32 +03:00
|
|
|
public:
|
2026-04-17 19:32:49 +03:00
|
|
|
FileSelectScreen(MainProgram& m);
|
|
|
|
|
virtual void gui_layout_run() override;
|
|
|
|
|
virtual void draw(SkCanvas* canvas) override;
|
2026-04-22 21:40:01 +03:00
|
|
|
virtual void input_open_infinipaint_file_callback(const CustomEvents::OpenInfiniPaintFileEvent& openFile) override;
|
2026-04-19 17:44:48 +03:00
|
|
|
private:
|
2026-04-20 18:56:39 +03:00
|
|
|
struct FileInfo {
|
|
|
|
|
std::string fileName;
|
2026-04-20 20:16:15 +03:00
|
|
|
SDL_Time lastModifyTime;
|
|
|
|
|
std::string lastModifyDate;
|
2026-04-20 18:56:39 +03:00
|
|
|
};
|
2026-04-22 17:40:58 +03:00
|
|
|
const std::vector<FileInfo>& get_file_list(const std::string& folder);
|
2026-04-20 18:56:39 +03:00
|
|
|
std::optional<std::vector<FileInfo>> fileListOptional;
|
2026-04-22 17:40:58 +03:00
|
|
|
|
|
|
|
|
void main_menu();
|
|
|
|
|
void file_view();
|
|
|
|
|
bool main_menu_fills_screen();
|
|
|
|
|
void menu_black_box();
|
|
|
|
|
void title_bar(std::string_view title);
|
|
|
|
|
|
|
|
|
|
enum class SelectedMenu {
|
|
|
|
|
FILES,
|
|
|
|
|
TRASH,
|
|
|
|
|
SETTINGS
|
|
|
|
|
} selectedMenu = SelectedMenu::FILES;
|
|
|
|
|
bool mainMenuOpen = false;
|
2026-04-12 17:31:32 +03:00
|
|
|
};
|