diff --git a/src/rrr/layers/gui/browser/navigation/navigation.cpp b/src/rrr/layers/gui/browser/navigation/navigation.cpp index 2396a23..a112a20 100644 --- a/src/rrr/layers/gui/browser/navigation/navigation.cpp +++ b/src/rrr/layers/gui/browser/navigation/navigation.cpp @@ -209,7 +209,7 @@ namespace rrr::layers::gui freeze = true; } - // создание файла/директории + // переименование файла/директории if (shift && key.get_keycode() == try_engine::key::R) { em->execute(types::event_type::SHOW_RENAME_FILE_DIALOG, selected_file); @@ -299,6 +299,18 @@ namespace rrr::layers::gui // очистка if (key.get_keycode() == try_engine::key::ESCAPE) buffers::get_instance().single_buffer.clear(); + + // помощь + if (key.get_keycode() == try_engine::key::F1) + { + em->execute(types::event_type::SHOW_HELP_DIALOG, nullptr); + freeze = true; + } + + // HERE начинаем тут + // сделали помощь и начинаем делать множественное копирование и вырезание + // буфер для этого делаем в папке buffers + // там уже есть организация такого типа } void navigation::released(system_event& e) diff --git a/src/rrr/layers/gui/dialogs/dialogs.cpp b/src/rrr/layers/gui/dialogs/dialogs.cpp index e89926f..72ba8ff 100644 --- a/src/rrr/layers/gui/dialogs/dialogs.cpp +++ b/src/rrr/layers/gui/dialogs/dialogs.cpp @@ -37,6 +37,9 @@ namespace rrr::layers::gui if (rename_dialog) draw_rename_dialog(); + if (help_dialog) + draw_help_dialog(); + END_IMGUI_WIN(); ImGui::PopStyleVar(); @@ -86,6 +89,12 @@ namespace rrr::layers::gui rename_dialog = true; } break; + case types::event_type::SHOW_HELP_DIALOG: + { + show = true; + help_dialog = true; + } + break; default: break; } @@ -133,6 +142,9 @@ namespace rrr::layers::gui if (rename_dialog) rename(); } + + if (help_dialog && key.get_keycode() == try_engine::key::F1) + cancel(); } void dialogs::released(system_event& e) @@ -270,6 +282,39 @@ namespace rrr::layers::gui TR_POP_FONT(); } + void dialogs::draw_help_dialog() + { + height = try_engine::application::get()->get_window()->height() / 2.7f; + + TR_PUSH_FONT(MEDIUM, 16); + + std::string label = "Помощь"; + title = current_file.path.filename(); + + // манипуляции с тем чтобы название стояло посередлине + // см. и ниже тоже + auto pos = ImGui::GetCursorPos(); + pos.x = width / 2.6f; + pos.y += 12.f; + ImGui::SetCursorPos(pos); + ImGui::TextUnformatted(label.data()); + + ImGui::Separator(); + ImGui::TextUnformatted("Копирование: С / backspace"); + ImGui::TextUnformatted("Вставка: P"); + ImGui::TextUnformatted("Удаление: D"); + ImGui::TextUnformatted("Переименование: R"); + ImGui::TextUnformatted("Создание: A"); + + ImGui::Separator(); + ImGui::TextUnformatted("Перемещение в начало: gg"); + ImGui::TextUnformatted("Перемещение в конец: G"); + + ImGui::Separator(); + ImGui::TextUnformatted("Выход из помощи: F1"); + + TR_POP_FONT(); + } void dialogs::create_file() { if (title.empty()) return; @@ -293,8 +338,11 @@ namespace rrr::layers::gui delete_dialog = false; create_dialog = false; rename_dialog = false; + help_dialog = false; title.clear(); show = false; + height = try_engine::application::get()->get_window()->height() / 5.f; + width = try_engine::application::get()->get_window()->width() / 3.2f; em->execute(types::event_type::UNFREEZE_BROWSER_ACTION, nullptr); } } diff --git a/src/rrr/layers/gui/dialogs/dialogs.hpp b/src/rrr/layers/gui/dialogs/dialogs.hpp index f5ebe11..3c5f675 100644 --- a/src/rrr/layers/gui/dialogs/dialogs.hpp +++ b/src/rrr/layers/gui/dialogs/dialogs.hpp @@ -28,19 +28,24 @@ namespace rrr::layers::gui float width = 0.f; float height = 0.f; - bool delete_dialog = false; - bool create_dialog = false; - bool rename_dialog = false; file current_file; bool shift = false; std::string title; + bool delete_dialog = false; + bool create_dialog = false; + bool rename_dialog = false; + bool help_dialog = false; + private: void resize(); void cancel(); + void draw_delete_dialog(); void draw_create_dialog(); void draw_rename_dialog(); + void draw_help_dialog(); + void create_file(); void rename(); void pressed(system_event& e); diff --git a/src/rrr/utils/types.hpp b/src/rrr/utils/types.hpp index e4cd364..a1f61d2 100644 --- a/src/rrr/utils/types.hpp +++ b/src/rrr/utils/types.hpp @@ -17,7 +17,7 @@ namespace rrr::types CREATE_FILE, SHOW_RENAME_FILE_DIALOG, RENAME_FILE, - ADD_SINGLE_BUFFER // добавляет в буфер только один файлол + SHOW_HELP_DIALOG }; }