This commit is contained in:
chatlanin 2023-04-10 15:13:22 +03:00
parent d037e74788
commit d2816fb157
4 changed files with 70 additions and 5 deletions

View File

@ -209,7 +209,7 @@ namespace rrr::layers::gui
freeze = true; freeze = true;
} }
// создание файла/директории // переименование файла/директории
if (shift && key.get_keycode() == try_engine::key::R) if (shift && key.get_keycode() == try_engine::key::R)
{ {
em->execute(types::event_type::SHOW_RENAME_FILE_DIALOG, selected_file); 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) if (key.get_keycode() == try_engine::key::ESCAPE)
buffers::get_instance().single_buffer.clear(); 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) void navigation::released(system_event& e)

View File

@ -37,6 +37,9 @@ namespace rrr::layers::gui
if (rename_dialog) if (rename_dialog)
draw_rename_dialog(); draw_rename_dialog();
if (help_dialog)
draw_help_dialog();
END_IMGUI_WIN(); END_IMGUI_WIN();
ImGui::PopStyleVar(); ImGui::PopStyleVar();
@ -86,6 +89,12 @@ namespace rrr::layers::gui
rename_dialog = true; rename_dialog = true;
} }
break; break;
case types::event_type::SHOW_HELP_DIALOG:
{
show = true;
help_dialog = true;
}
break;
default: default:
break; break;
} }
@ -133,6 +142,9 @@ namespace rrr::layers::gui
if (rename_dialog) if (rename_dialog)
rename(); rename();
} }
if (help_dialog && key.get_keycode() == try_engine::key::F1)
cancel();
} }
void dialogs::released(system_event& e) void dialogs::released(system_event& e)
@ -270,6 +282,39 @@ namespace rrr::layers::gui
TR_POP_FONT(); 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() void dialogs::create_file()
{ {
if (title.empty()) return; if (title.empty()) return;
@ -293,8 +338,11 @@ namespace rrr::layers::gui
delete_dialog = false; delete_dialog = false;
create_dialog = false; create_dialog = false;
rename_dialog = false; rename_dialog = false;
help_dialog = false;
title.clear(); title.clear();
show = false; 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); em->execute(types::event_type::UNFREEZE_BROWSER_ACTION, nullptr);
} }
} }

View File

@ -28,19 +28,24 @@ namespace rrr::layers::gui
float width = 0.f; float width = 0.f;
float height = 0.f; float height = 0.f;
bool delete_dialog = false;
bool create_dialog = false;
bool rename_dialog = false;
file current_file; file current_file;
bool shift = false; bool shift = false;
std::string title; std::string title;
bool delete_dialog = false;
bool create_dialog = false;
bool rename_dialog = false;
bool help_dialog = false;
private: private:
void resize(); void resize();
void cancel(); void cancel();
void draw_delete_dialog(); void draw_delete_dialog();
void draw_create_dialog(); void draw_create_dialog();
void draw_rename_dialog(); void draw_rename_dialog();
void draw_help_dialog();
void create_file(); void create_file();
void rename(); void rename();
void pressed(system_event& e); void pressed(system_event& e);

View File

@ -17,7 +17,7 @@ namespace rrr::types
CREATE_FILE, CREATE_FILE,
SHOW_RENAME_FILE_DIALOG, SHOW_RENAME_FILE_DIALOG,
RENAME_FILE, RENAME_FILE,
ADD_SINGLE_BUFFER // добавляет в буфер только один файлол SHOW_HELP_DIALOG
}; };
} }