add new system navigation

This commit is contained in:
chatlanin 2023-03-26 11:01:48 +03:00
parent d775a65feb
commit 11ba975ec8
12 changed files with 98 additions and 116 deletions

View File

@ -17,7 +17,9 @@ namespace rrr
{ {
nav.fill(PWD); nav.fill(PWD);
his.fill(PWD); his.fill(PWD);
prev.fill(nav.store[PWD].at(cursor_position).path); prev.fill(nav.data.at(navigation_cursor_position).path);
hack::log()(prev.data.size());
} }
files* content::get(TYPE_WIN type) files* content::get(TYPE_WIN type)
@ -28,7 +30,7 @@ namespace rrr
return &his.data; return &his.data;
break; break;
case TYPE_WIN::NAVIGATION: case TYPE_WIN::NAVIGATION:
return &nav.store[PWD]; return &nav.data;
break; break;
case TYPE_WIN::PREVIEW: case TYPE_WIN::PREVIEW:
return &prev.data; return &prev.data;
@ -39,46 +41,55 @@ namespace rrr
} }
} }
int content::get_cursor_position(TYPE_WIN type) file content::get_selected_file(TYPE_WIN type)
{ {
file f;
switch (type) switch (type)
{ {
case TYPE_WIN::HISTORY: case TYPE_WIN::HISTORY:
return get_history_cursor_position(); try
{
set_history_cursor_position();
f = his.data.at(history_cursor_position);
}
catch(...) { hack::error()("Dont set history"); }
break; break;
case TYPE_WIN::NAVIGATION: case TYPE_WIN::NAVIGATION:
return cursor_position; try
{
f = nav.data.at(navigation_cursor_position);
}
catch(...) { hack::error()("Dont set navigation"); }
break; break;
case TYPE_WIN::PREVIEW: case TYPE_WIN::PREVIEW:
return get_preview_cursor_position(); try
break; {
default: set_preview_cursor_position();
return 0; f = prev.data.at(preview_cursor_position);
}
catch(...) { hack::error()("Dont set preview"); }
break; break;
} }
return f;
} }
int content::get_history_cursor_position() const void content::set_history_cursor_position()
{ {
int history_cursor_position = 0;
tbb::parallel_for(tbb::blocked_range<int>(0, his.data.size()), [&](tbb::blocked_range<int> r) tbb::parallel_for(tbb::blocked_range<int>(0, his.data.size()), [&](tbb::blocked_range<int> r)
{ {
for (int i = r.begin(); i < r.end(); ++i) for (int i = r.begin(); i < r.end(); ++i)
if (his.data.at(i).path == PWD) if (his.data.at(i).path == PWD)
history_cursor_position = i; history_cursor_position = i;
}); });
return history_cursor_position;
} }
int content::get_preview_cursor_position() void content::set_preview_cursor_position()
{ {
int preview_cursor_position = 0;
if (std::filesystem::is_empty(PWD)) if (std::filesystem::is_empty(PWD))
return preview_cursor_position; return;
auto pwd = nav.store[PWD].at(cursor_position).path; auto pwd = nav.data.at(navigation_cursor_position).path;
if (buffer::state.contains(pwd)) if (buffer::state.contains(pwd))
{ {
@ -89,13 +100,11 @@ namespace rrr
preview_cursor_position = i; preview_cursor_position = i;
}); });
} }
return preview_cursor_position;
} }
void content::increment_position(int step) void content::increment_position(int step)
{ {
cursor_position += step; navigation_cursor_position += step;
check_cursor_position(); check_cursor_position();
// в зависимости от того пустаая ли директория // в зависимости от того пустаая ли директория
@ -103,14 +112,14 @@ namespace rrr
if (std::filesystem::is_empty(PWD)) if (std::filesystem::is_empty(PWD))
prev.data.clear(); prev.data.clear();
else else
prev.fill(nav.store[PWD].at(cursor_position).path); prev.fill(nav.data.at(navigation_cursor_position).path);
} }
void content::check_cursor_position() void content::check_cursor_position()
{ {
if (cursor_position == (int)nav.store[PWD].size()) cursor_position = (int)nav.store[PWD].size() - 1; if (navigation_cursor_position == (int)nav.data.size()) navigation_cursor_position = (int)nav.data.size() - 1;
else if (cursor_position < 0) cursor_position = 0; else if (navigation_cursor_position < 0) navigation_cursor_position = 0;
else if (cursor_position > (int)nav.store[PWD].size()) cursor_position = 0; else if (navigation_cursor_position > (int)nav.data.size()) navigation_cursor_position = 0;
} }
void content::navigation_right() void content::navigation_right()
@ -118,7 +127,7 @@ namespace rrr
if (std::filesystem::is_empty(PWD)) return; if (std::filesystem::is_empty(PWD)) return;
// ставим новый pwd и заполняем навигацию и историю // ставим новый pwd и заполняем навигацию и историю
PWD = PWD / nav.store[PWD].at(cursor_position).path.filename(); PWD = PWD / nav.data.at(navigation_cursor_position).path.filename();
nav.fill(PWD); nav.fill(PWD);
his.fill(PWD); his.fill(PWD);
@ -129,16 +138,16 @@ namespace rrr
if (buffer::state.contains(PWD)) if (buffer::state.contains(PWD))
{ {
auto f = buffer::state[PWD]; auto f = buffer::state[PWD];
tbb::parallel_for(tbb::blocked_range<int>(0, nav.store[PWD].size()), [&](tbb::blocked_range<int> r) tbb::parallel_for(tbb::blocked_range<int>(0, nav.data.size()), [&](tbb::blocked_range<int> r)
{ {
for (int i = r.begin(); i < r.end(); ++i) for (int i = r.begin(); i < r.end(); ++i)
if (nav.store[PWD].at(i).path == f.path) if (nav.data.at(i).path == f.path)
cursor_position = i; navigation_cursor_position = i;
}); });
} }
else else
{ {
cursor_position = 0; navigation_cursor_position = 0;
} }
// и исходя из позиции курсора заполняем окно предварительного просмотра // и исходя из позиции курсора заполняем окно предварительного просмотра
@ -146,7 +155,7 @@ namespace rrr
if (std::filesystem::is_empty(PWD)) if (std::filesystem::is_empty(PWD))
prev.data.clear(); prev.data.clear();
else else
prev.fill(nav.store[PWD].at(cursor_position).path); prev.fill(nav.data.at(navigation_cursor_position).path);
} }
void content::navigation_left() void content::navigation_left()
@ -154,26 +163,28 @@ namespace rrr
// буфер заполняется только когда отсюда уходишь // буфер заполняется только когда отсюда уходишь
// типа я тут был // типа я тут был
if (std::filesystem::is_empty(PWD)) if (std::filesystem::is_empty(PWD))
buffer::state[PWD] = nav.store[PWD.parent_path()].at(cursor_position); // buffer::state[PWD] = nav.store[PWD.parent_path()].at(cursor_position);
buffer::state[PWD] = nav.data.at(navigation_cursor_position);
else else
buffer::state[PWD] = nav.store[PWD].at(cursor_position); buffer::state[PWD] = nav.data.at(navigation_cursor_position);
auto from = PWD; auto from = PWD;
nav.fill(PWD.parent_path());
his.fill(PWD.parent_path());
prev.fill(PWD);
// ставим новый pwd и заполняем навигацию и историю // ставим новый pwd и заполняем навигацию и историю
PWD = PWD.parent_path(); PWD = PWD.parent_path();
nav.fill(PWD);
his.fill(PWD);
prev.fill(from);
// тут всегда есть место откуда ты пришел // тут всегда есть место откуда ты пришел
// т.е. нет возмолжности придти неоткуда // т.е. нет возмолжности придти неоткуда
// соответственно находим это место // соответственно находим это место
tbb::parallel_for(tbb::blocked_range<int>(0, nav.store[PWD].size()), [&](tbb::blocked_range<int> r) tbb::parallel_for(tbb::blocked_range<int>(0, nav.data.size()), [&](tbb::blocked_range<int> r)
{ {
for (int i = r.begin(); i < r.end(); ++i) for (int i = r.begin(); i < r.end(); ++i)
if (nav.store[PWD].at(i).path == from) if (nav.data.at(i).path == from)
cursor_position = i; navigation_cursor_position = i;
}); });
} }

View File

@ -28,12 +28,13 @@ namespace rrr
void set_pwd(std::filesystem::path); void set_pwd(std::filesystem::path);
void fill(); void fill();
files* get(TYPE_WIN); files* get(TYPE_WIN);
int get_cursor_position(TYPE_WIN);
void increment_position(int); void increment_position(int);
void navigation_right(); void navigation_right();
void navigation_left(); void navigation_left();
void create_file(std::string); void create_file(std::string);
void delete_file(file); void delete_file(file);
file get_selected_file(TYPE_WIN);
private: private:
content_type::navigation nav; content_type::navigation nav;
@ -44,13 +45,16 @@ namespace rrr
// она может отличается от его расположения в терминале по факту // она может отличается от его расположения в терминале по факту
std::filesystem::path PWD; std::filesystem::path PWD;
// чтобы не устанавливалась стрелка изначально int navigation_cursor_position = 0;
// полезно при первом открытии окна prev int preview_cursor_position = 0;
int cursor_position = 0; int history_cursor_position = 0;
private: private:
int get_history_cursor_position() const; void set_history_cursor_position();
int get_preview_cursor_position(); void set_preview_cursor_position();
void check_cursor_position(); void check_cursor_position();
file navigation_selected_file;
}; };
} }

View File

@ -7,7 +7,7 @@ namespace rrr::content_type
// if (!store.contains(PWD)) // if (!store.contains(PWD))
// store[PWD] = file_utils::fill(PWD); // store[PWD] = file_utils::fill(PWD);
store[PWD] = file_utils::fill(PWD); data = file_utils::fill(PWD);
} }
// void navigation::update(std::filesystem::path PWD) // void navigation::update(std::filesystem::path PWD)

View File

@ -16,6 +16,6 @@ namespace rrr::content_type
void fill(std::filesystem::path); void fill(std::filesystem::path);
// void update(std::filesystem::path); // void update(std::filesystem::path);
std::unordered_map<std::filesystem::path, files> store; files data;
}; };
} }

View File

@ -9,7 +9,7 @@ namespace rrr::layers::gui
BASE_WINDOW_FLAGS(); BASE_WINDOW_FLAGS();
data = cnt->get(TYPE_WIN::HISTORY); data = cnt->get(TYPE_WIN::HISTORY);
cursor_position = cnt->get_cursor_position(TYPE_WIN::HISTORY); selected_file = cnt->get_selected_file(TYPE_WIN::HISTORY);
} }
void history::on_detach() void history::on_detach()
@ -34,7 +34,6 @@ namespace rrr::layers::gui
pos.y += 9.f; // небольшой отступ сверху pos.y += 9.f; // небольшой отступ сверху
ImGui::SetCursorPosY(pos.y); ImGui::SetCursorPosY(pos.y);
int index = 0;
for (auto& item : *data) for (auto& item : *data)
{ {
ImGui::PushID(item.id); ImGui::PushID(item.id);
@ -44,24 +43,21 @@ namespace rrr::layers::gui
else else
ImGui::PushStyleColor(ImGuiCol_Text, file_color); ImGui::PushStyleColor(ImGuiCol_Text, file_color);
if (cursor_position == index) if (selected_file.path == item.path)
{ {
font = try_engine::style::fonts::get_font(font_type::SEMI_BOLD, 18); TR_PUSH_FONT(SEMI_BOLD, 18);
ImGui::PushFont(font);
ImGui::TextUnformatted(">"); ImGui::TextUnformatted(">");
ImGui::SameLine(22.f); ImGui::SameLine(22.f);
} }
else else
{ {
ImGui::SetCursorPosX(pos.x); ImGui::SetCursorPosX(pos.x);
font = try_engine::style::fonts::get_font(font_type::MEDIUM, 18); TR_PUSH_FONT(MEDIUM, 18);
ImGui::PushFont(font);
} }
ImGui::TextUnformatted(item.path.filename().string().data()); ImGui::TextUnformatted(item.path.filename().string().data());
++index;
ImGui::PopFont(); TR_POP_FONT();
ImGui::PopStyleColor(); ImGui::PopStyleColor();
ImGui::PopID(); ImGui::PopID();
} }
@ -89,7 +85,7 @@ namespace rrr::layers::gui
{ {
case types::event_type::NAVIGATION_LEFT: case types::event_type::NAVIGATION_LEFT:
case types::event_type::NAVIGATION_RIGHT: case types::event_type::NAVIGATION_RIGHT:
cursor_position = cnt->get_cursor_position(TYPE_WIN::HISTORY); selected_file = cnt->get_selected_file(TYPE_WIN::HISTORY);
break; break;
default: default:
break; break;

View File

@ -8,8 +8,6 @@ namespace rrr::layers::gui
{ {
class history : public try_engine::layer class history : public try_engine::layer
{ {
using font_type = try_engine::style::fonts::font_type;
BASE_TYPE_DEFINE(); BASE_TYPE_DEFINE();
public: public:
@ -31,7 +29,7 @@ namespace rrr::layers::gui
event_manager* em; event_manager* em;
content* cnt; content* cnt;
files* data; files* data;
int cursor_position = 0; file selected_file;
float width = 0.f; float width = 0.f;
float height = 0.f; float height = 0.f;
@ -39,9 +37,6 @@ namespace rrr::layers::gui
float pos_y = 0.f; float pos_y = 0.f;
private: private:
ImGuiIO& io = ImGui::GetIO();
ImFontAtlas* atlas = io.Fonts;
ImFont* font;
const ImVec4 dir_color = func::get_IMGUI_color<ImVec4>(91.f, 128.f, 191.f); const ImVec4 dir_color = func::get_IMGUI_color<ImVec4>(91.f, 128.f, 191.f);
const ImVec4 file_color = func::get_IMGUI_color<ImVec4>(186.f, 186.f, 186.f); const ImVec4 file_color = func::get_IMGUI_color<ImVec4>(186.f, 186.f, 186.f);
const ImVec4 link_color = func::get_IMGUI_color<ImVec4>(51.f, 95.f, 165.f); const ImVec4 link_color = func::get_IMGUI_color<ImVec4>(51.f, 95.f, 165.f);

View File

@ -12,6 +12,7 @@ namespace rrr::layers::gui
BASE_WINDOW_FLAGS(); BASE_WINDOW_FLAGS();
data = cnt->get(TYPE_WIN::NAVIGATION); data = cnt->get(TYPE_WIN::NAVIGATION);
selected_file = cnt->get_selected_file(TYPE_WIN::NAVIGATION);
} }
void navigation::on_detach() void navigation::on_detach()
@ -36,30 +37,32 @@ namespace rrr::layers::gui
pos.y += 9.f; // небольшой отступ сверху pos.y += 9.f; // небольшой отступ сверху
ImGui::SetCursorPosY(pos.y); ImGui::SetCursorPosY(pos.y);
int index = 0;
for (auto& item : *data) for (auto& item : *data)
{ {
ImGui::PushID(item.id); ImGui::PushID(item.id);
push_style(item); push_style(item);
if (cursor_position == index) if (selected_file.path == item.path)
{ {
font = try_engine::style::fonts::get_font(item.is_hidden ? font_type::SEMI_BOLD_ITALIC : font_type::SEMI_BOLD, 18); if (selected_file.is_hidden)
ImGui::PushFont(font); TR_PUSH_FONT(SEMI_BOLD_ITALIC, 18);
else
TR_PUSH_FONT(SEMI_BOLD, 18);
ImGui::TextUnformatted(">"); ImGui::TextUnformatted(">");
ImGui::SameLine(22.f); ImGui::SameLine(22.f);
current_file = item;
} }
else else
{ {
ImGui::SetCursorPosX(pos.x); ImGui::SetCursorPosX(pos.x);
font = try_engine::style::fonts::get_font(item.is_hidden ? font_type::MEDIUM_ITALIC : font_type::MEDIUM, 18); if (item.is_hidden)
ImGui::PushFont(font); TR_PUSH_FONT(MEDIUM_ITALIC, 18);
else
TR_PUSH_FONT(MEDIUM, 18);
} }
ImGui::TextUnformatted(get_file_content(item).data()); ImGui::TextUnformatted(get_file_content(item).data());
++index;
pop_style(item); pop_style(item);
} }
@ -81,14 +84,11 @@ namespace rrr::layers::gui
if (f.is_link) if (f.is_link)
ImGui::PushStyleColor(ImGuiCol_Text, link_color); ImGui::PushStyleColor(ImGuiCol_Text, link_color);
if (f.is_hidden)
font = try_engine::style::fonts::get_font(font_type::MEDIUM_ITALIC, 18);
} }
void navigation::pop_style(file& f) void navigation::pop_style(file& f)
{ {
ImGui::PopFont(); TR_POP_FONT();
ImGui::PopStyleColor(); ImGui::PopStyleColor();
ImGui::PopID(); ImGui::PopID();
@ -133,8 +133,8 @@ namespace rrr::layers::gui
case types::event_type::DELETE_CURRENT_FILE: case types::event_type::DELETE_CURRENT_FILE:
{ {
freeze = false; freeze = false;
cnt->delete_file(current_file); cnt->delete_file(selected_file);
cursor_position = cnt->get_cursor_position(TYPE_WIN::NAVIGATION); selected_file = cnt->get_selected_file(TYPE_WIN::NAVIGATION);
} }
break; break;
case types::event_type::CREATE_FILE: case types::event_type::CREATE_FILE:
@ -142,7 +142,7 @@ namespace rrr::layers::gui
freeze = false; freeze = false;
auto filename = std::any_cast<std::string>(value); auto filename = std::any_cast<std::string>(value);
cnt->create_file(filename); cnt->create_file(filename);
cursor_position = cnt->get_cursor_position(TYPE_WIN::NAVIGATION); selected_file = cnt->get_selected_file(TYPE_WIN::NAVIGATION);
} }
break; break;
default: default:
@ -200,7 +200,7 @@ namespace rrr::layers::gui
// удаление // удаление
if (shift && key.get_keycode() == try_engine::key::D) if (shift && key.get_keycode() == try_engine::key::D)
{ {
em->execute(types::event_type::SHOW_DELETE_ONE_FILE_DIALOG, current_file); em->execute(types::event_type::SHOW_DELETE_ONE_FILE_DIALOG, selected_file);
freeze = true; freeze = true;
} }
@ -211,7 +211,7 @@ namespace rrr::layers::gui
freeze = true; freeze = true;
} }
cursor_position = cnt->get_cursor_position(TYPE_WIN::NAVIGATION); selected_file = cnt->get_selected_file(TYPE_WIN::NAVIGATION);
} }
void navigation::released(system_event& e) void navigation::released(system_event& e)

View File

@ -10,8 +10,6 @@ namespace rrr::layers::gui
// Они не вычисляют ни чего, все вычисления делает контент (cnt) // Они не вычисляют ни чего, все вычисления делает контент (cnt)
class navigation : public try_engine::layer class navigation : public try_engine::layer
{ {
using font_type = try_engine::style::fonts::font_type;
BASE_TYPE_DEFINE(); BASE_TYPE_DEFINE();
public: public:
@ -41,16 +39,12 @@ namespace rrr::layers::gui
float pos_y = 0.f; float pos_y = 0.f;
float padding_between_window = 2.f; float padding_between_window = 2.f;
int cursor_position = 0;
const int STEP_UP = -1; const int STEP_UP = -1;
const int STEP_DOWN = 1; const int STEP_DOWN = 1;
file current_file; file selected_file;
bool shift = false; bool shift = false;
private: private:
ImGuiIO& io = ImGui::GetIO();
ImFontAtlas* atlas = io.Fonts;
ImFont* font;
const ImVec4 dir_color = func::get_IMGUI_color<ImVec4>(91.f, 128.f, 191.f); const ImVec4 dir_color = func::get_IMGUI_color<ImVec4>(91.f, 128.f, 191.f);
const ImVec4 file_color = func::get_IMGUI_color<ImVec4>(186.f, 186.f, 186.f); const ImVec4 file_color = func::get_IMGUI_color<ImVec4>(186.f, 186.f, 186.f);
const ImVec4 link_color = func::get_IMGUI_color<ImVec4>(51.f, 95.f, 165.f); const ImVec4 link_color = func::get_IMGUI_color<ImVec4>(51.f, 95.f, 165.f);

View File

@ -9,7 +9,7 @@ namespace rrr::layers::gui
BASE_WINDOW_FLAGS(); BASE_WINDOW_FLAGS();
data = cnt->get(TYPE_WIN::PREVIEW); data = cnt->get(TYPE_WIN::PREVIEW);
cursor_position = cnt->get_cursor_position(TYPE_WIN::PREVIEW); selected_file = cnt->get_selected_file(TYPE_WIN::PREVIEW);
} }
void preview::on_detach() void preview::on_detach()
@ -34,7 +34,6 @@ namespace rrr::layers::gui
pos.y += 9.f; // небольшой отступ сверху pos.y += 9.f; // небольшой отступ сверху
ImGui::SetCursorPosY(pos.y); ImGui::SetCursorPosY(pos.y);
int index = 0;
for (auto& item : *data) for (auto& item : *data)
{ {
ImGui::PushID(item.id); ImGui::PushID(item.id);
@ -44,24 +43,21 @@ namespace rrr::layers::gui
else else
ImGui::PushStyleColor(ImGuiCol_Text, file_color); ImGui::PushStyleColor(ImGuiCol_Text, file_color);
if (cursor_position == index) if (selected_file.path == item.path)
{ {
font = try_engine::style::fonts::get_font(font_type::SEMI_BOLD, 18); TR_PUSH_FONT(SEMI_BOLD, 18);
ImGui::PushFont(font);
ImGui::TextUnformatted(">"); ImGui::TextUnformatted(">");
ImGui::SameLine(22.f); ImGui::SameLine(22.f);
} }
else else
{ {
ImGui::SetCursorPosX(pos.x); ImGui::SetCursorPosX(pos.x);
font = try_engine::style::fonts::get_font(font_type::MEDIUM, 18); TR_PUSH_FONT(MEDIUM, 18);
ImGui::PushFont(font);
} }
ImGui::TextUnformatted(item.path.filename().string().data()); ImGui::TextUnformatted(item.path.filename().string().data());
++index;
ImGui::PopFont(); TR_POP_FONT();
ImGui::PopStyleColor(); ImGui::PopStyleColor();
ImGui::PopID(); ImGui::PopID();
} }
@ -97,7 +93,7 @@ namespace rrr::layers::gui
case types::event_type::NAVIGATION_DOWN: case types::event_type::NAVIGATION_DOWN:
case types::event_type::NAVIGATION_LEFT: case types::event_type::NAVIGATION_LEFT:
case types::event_type::NAVIGATION_RIGHT: case types::event_type::NAVIGATION_RIGHT:
cursor_position = cnt->get_cursor_position(TYPE_WIN::PREVIEW); selected_file = cnt->get_selected_file(TYPE_WIN::PREVIEW);
break; break;
default: default:
break; break;

View File

@ -8,8 +8,6 @@ namespace rrr::layers::gui
{ {
class preview : public try_engine::layer class preview : public try_engine::layer
{ {
using font_type = try_engine::style::fonts::font_type;
BASE_TYPE_DEFINE(); BASE_TYPE_DEFINE();
public: public:
@ -30,7 +28,7 @@ namespace rrr::layers::gui
bool show = true; bool show = true;
event_manager* em; event_manager* em;
content* cnt; content* cnt;
int cursor_position = 0; file selected_file;
files* data; files* data;
float width = 0.f; float width = 0.f;
@ -39,9 +37,6 @@ namespace rrr::layers::gui
float pos_y = 0.f; float pos_y = 0.f;
private: private:
ImGuiIO& io = ImGui::GetIO();
ImFontAtlas* atlas = io.Fonts;
ImFont* font;
const ImVec4 dir_color = func::get_IMGUI_color<ImVec4>(91.f, 128.f, 191.f); const ImVec4 dir_color = func::get_IMGUI_color<ImVec4>(91.f, 128.f, 191.f);
const ImVec4 file_color = func::get_IMGUI_color<ImVec4>(186.f, 186.f, 186.f); const ImVec4 file_color = func::get_IMGUI_color<ImVec4>(186.f, 186.f, 186.f);
const ImVec4 link_color = func::get_IMGUI_color<ImVec4>(51.f, 95.f, 165.f); const ImVec4 link_color = func::get_IMGUI_color<ImVec4>(51.f, 95.f, 165.f);

View File

@ -133,8 +133,7 @@ namespace rrr::layers::gui
void dialogs::draw_delete_dialog() void dialogs::draw_delete_dialog()
{ {
font = try_engine::style::fonts::get_font(font_type::MEDIUM, 18); TR_PUSH_FONT(MEDIUM, 18);
ImGui::PushFont(font);
std::string label = current_file.type == file_type::DIR ? "Даннaя директория будет удалена!" : "Данный файл будет удален!"; std::string label = current_file.type == file_type::DIR ? "Даннaя директория будет удалена!" : "Данный файл будет удален!";
// манипуляции с тем чтобы название стояло посередлине // манипуляции с тем чтобы название стояло посередлине
@ -175,13 +174,12 @@ namespace rrr::layers::gui
if (ImGui::Button("Отмена (n / Esc)", button_size)) if (ImGui::Button("Отмена (n / Esc)", button_size))
cancel(); cancel();
ImGui::PopFont(); TR_POP_FONT();
} }
void dialogs::draw_create_dialog() void dialogs::draw_create_dialog()
{ {
font = try_engine::style::fonts::get_font(font_type::MEDIUM, 18); TR_PUSH_FONT(MEDIUM, 18);
ImGui::PushFont(font);
std::string label = "Создание файла/директории!"; std::string label = "Создание файла/директории!";
// манипуляции с тем чтобы название стояло посередлине // манипуляции с тем чтобы название стояло посередлине
@ -216,7 +214,7 @@ namespace rrr::layers::gui
if (ImGui::Button("Отмена (Esc)", button_size)) if (ImGui::Button("Отмена (Esc)", button_size))
cancel(); cancel();
ImGui::PopFont(); TR_POP_FONT();
} }
void dialogs::create_file() void dialogs::create_file()

View File

@ -7,8 +7,6 @@ namespace rrr::layers::gui
{ {
class dialogs : public try_engine::layer class dialogs : public try_engine::layer
{ {
using font_type = try_engine::style::fonts::font_type;
BASE_TYPE_DEFINE(); BASE_TYPE_DEFINE();
public: public:
@ -36,11 +34,6 @@ namespace rrr::layers::gui
bool shift = false; bool shift = false;
std::string title; std::string title;
private:
ImGuiIO& io = ImGui::GetIO();
ImFontAtlas* atlas = io.Fonts;
ImFont* font;
private: private:
void resize(); void resize();
void cancel(); void cancel();