infinipaint/src/Screens/FileSelectScreen.hpp

32 lines
1,009 B
C++
Raw Normal View History

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;
private:
2026-04-20 18:56:39 +03:00
struct FileInfo {
std::string fileName;
SDL_Time lastModifyTime;
std::string lastModifyDate;
2026-04-20 18:56:39 +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;
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
};