Android back button callback added

This commit is contained in:
Yousef Khadadeh 2026-04-27 17:20:16 +03:00
parent cfe250979a
commit 45dbde5da5
10 changed files with 39 additions and 6 deletions

View file

@ -672,16 +672,16 @@ void FileSelectScreen::file_view() {
Vector2f iconSize{0.0f, 0.0f};
switch(fileViewType) {
case FileViewType::LARGE_GRID:
entrySize = {200.0f, 220.0f};
iconSize = {150.0f, 150.0f};
entrySize = {170.0f, 190.0f};
iconSize = {130.0f, 130.0f};
break;
case FileViewType::MEDIUM_GRID:
entrySize = {170.0f, 190.0f};
iconSize = {120.0f, 120.0f};
entrySize = {140.0f, 160.0f};
iconSize = {100.0f, 100.0f};
break;
case FileViewType::SMALL_GRID:
entrySize = {140.0f, 160.0f};
iconSize = {90.0f, 90.0f};
entrySize = {110.0f, 130.0f};
iconSize = {70.0f, 70.0f};
break;
default:
break;
@ -741,6 +741,14 @@ void FileSelectScreen::input_open_infinipaint_file_callback(const CustomEvents::
main.screen = std::make_unique<PhoneDrawingProgramScreen>(main);
}
void FileSelectScreen::input_global_back_button_callback() {
if(!mainMenuOpenAnim->is_at_start())
mainMenuOpenAnim->animation_trigger_reverse();
else if(editMode)
editMode = false;
main.g.gui.set_to_layout();
}
void FileSelectScreen::draw(SkCanvas* canvas) {
canvas->clear(main.g.gui.io.theme->backColor0);
}

View file

@ -9,6 +9,7 @@ class FileSelectScreen : public Screen {
virtual void gui_layout_run() override;
virtual void draw(SkCanvas* canvas) override;
virtual void input_open_infinipaint_file_callback(const CustomEvents::OpenInfiniPaintFileEvent& openFile) override;
virtual void input_global_back_button_callback() override;
struct TrashInfo {
struct TrashFile {

View file

@ -65,3 +65,10 @@ void PhoneDrawingProgramScreen::top_toolbar() {
}
});
}
void PhoneDrawingProgramScreen::input_global_back_button_callback() {
main.world->save_to_file(main.world->filePath);
main.set_tab_to_close(main.world.get());
main.screen = std::make_unique<FileSelectScreen>(main);
main.g.gui.set_to_layout();
}

View file

@ -7,6 +7,7 @@ class PhoneDrawingProgramScreen : public DrawingProgramScreen {
PhoneDrawingProgramScreen(MainProgram& m);
virtual void update() override;
virtual void gui_layout_run() override;
virtual void input_global_back_button_callback() override;
private:
void top_toolbar();
void main_display();

View file

@ -10,6 +10,7 @@ bool Screen::app_close_requested() { return true; }
void Screen::input_add_file_to_canvas_callback(const CustomEvents::AddFileToCanvasEvent& addFile) {}
void Screen::input_open_infinipaint_file_callback(const CustomEvents::OpenInfiniPaintFileEvent& openFile) {}
void Screen::input_paste_callback(const CustomEvents::PasteEvent& paste) {}
void Screen::input_global_back_button_callback() {}
void Screen::input_drop_file_callback(const InputManager::DropCallbackArgs& drop) {}
void Screen::input_drop_text_callback(const InputManager::DropCallbackArgs& drop) {}
void Screen::input_key_callback(const InputManager::KeyCallbackArgs& key) {}

View file

@ -12,6 +12,7 @@ class Screen {
virtual void input_add_file_to_canvas_callback(const CustomEvents::AddFileToCanvasEvent& addFile);
virtual void input_open_infinipaint_file_callback(const CustomEvents::OpenInfiniPaintFileEvent& openFile);
virtual void input_paste_callback(const CustomEvents::PasteEvent& paste);
virtual void input_global_back_button_callback();
virtual void input_drop_file_callback(const InputManager::DropCallbackArgs& drop);
virtual void input_drop_text_callback(const InputManager::DropCallbackArgs& drop);
virtual void input_key_callback(const InputManager::KeyCallbackArgs& key);