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;
}
// создание файла/директории
// переименование файла/директории
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)

View File

@ -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);
}
}

View File

@ -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);

View File

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