diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2022-10-15 21:51:33 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2022-10-15 21:51:33 +0200 |
commit | 1e8d16fe10917664f9520008f224f19692c3a668 (patch) | |
tree | c966c22e3bb719754a01715778f0820aa0853dfa /main/menu.cpp | |
parent | d8874ad6c42ec016fa931fe3e57fcd9797d06094 (diff) |
a
Diffstat (limited to 'main/menu.cpp')
-rw-r--r-- | main/menu.cpp | 39 |
1 files changed, 26 insertions, 13 deletions
diff --git a/main/menu.cpp b/main/menu.cpp index bd107611..f1d9f8db 100644 --- a/main/menu.cpp +++ b/main/menu.cpp @@ -75,6 +75,13 @@ void app::draw_menu() else if (!ImGui::GetIO().WantTextInput && isTextInputActive()) stopTextInput(); + auto& style = ImGui::GetStyle(); + ImGui::StyleColorsDark(&style); + style.WindowPadding = {8, 8}; + style.WindowBorderSize = {}; + style.Colors[ImGuiCol_WindowBg] = {0, 0, 0, .5}; + style.Colors[ImGuiCol_FrameBg] = {0, 0, 0, 0}; + ImVec2 main_menu_pos; if (auto b = begin_main_menu()) @@ -91,21 +98,15 @@ void app::draw_menu() } if (auto b = begin_menu("Mode")) { - ImGui::MenuItem("Select", "F1", _editor.mode == editor_mode::select); - ImGui::MenuItem("Floors", "F2", _editor.mode == editor_mode::floors); - ImGui::MenuItem("Walls", "F3", _editor.mode == editor_mode::walls); + ImGui::MenuItem("Select", "F1", _editor.mode() == editor_mode::select); + ImGui::MenuItem("Floors", "F2", _editor.mode() == editor_mode::floors); + ImGui::MenuItem("Walls", "F3", _editor.mode() == editor_mode::walls); } main_menu_pos = ImGui::GetContentRegionMax(); } if (main_menu_pos.y > 0) { - auto& style = ImGui::GetStyle(); - ImGui::StyleColorsDark(&style); - style.WindowPadding = {8, 8}; - style.WindowBorderSize = {}; - style.Colors[ImGuiCol_WindowBg] = {0, 0, 0, .5}; - style.Colors[ImGuiCol_FrameBg] = {0, 0, 0, 0}; - + return; ImGui::SetNextWindowPos({0, main_menu_pos.y+style.WindowPadding.y}); ImGui::SetNextFrameWantCaptureKeyboard(false); if (auto b = begin_window(ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoSavedSettings)) @@ -113,11 +114,23 @@ void app::draw_menu() ImGui::Text("Items:"); //ImGui::SetNextWindowBgAlpha(.2f); - if (auto b = begin_list_box("##tiles", {-FLT_MIN, 100})) + if (auto b = begin_list_box("##tiles", {200, 200})) { - for (const auto& label : {"foo", "bar", "baz"}) + for (const auto& [k, v] : _editor.floors()) { - ImGui::Selectable(label); + const std::size_t N = v->num_tiles().product(); + ImGui::CollapsingHeader(k.data()); + constexpr std::size_t per_row = 8; + for (std::size_t i = 0; i < N; i++) + { + if (i > 0 && i % per_row == 0) + ImGui::NewLine(); + const auto uv = v->texcoords_for_id(i); + ImGui::Image((void*)0, + {TILE_SIZE[0], TILE_SIZE[1]}, + { uv[3][0], uv[3][1] }, { uv[0][0], uv[0][1] }, + {1, 1, 1, 1}, {1, 1, 1, 1}); + } } } } |