add a MainMenuBar and make Tile Picker and Demo Window hidden by default
use dockspace for positioning Tile Picker
This commit is contained in:
parent
dc7c424d7f
commit
002bbcd097
44
src/main.cpp
44
src/main.cpp
@ -1191,6 +1191,7 @@ int main(int argc, char **argv) {
|
|||||||
io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;
|
io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;
|
||||||
io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad;
|
io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad;
|
||||||
io.ConfigFlags |= ImGuiConfigFlags_IsSRGB;
|
io.ConfigFlags |= ImGuiConfigFlags_IsSRGB;
|
||||||
|
io.ConfigFlags |= ImGuiConfigFlags_DockingEnable;
|
||||||
|
|
||||||
ImGui::StyleColorsDark();
|
ImGui::StyleColorsDark();
|
||||||
|
|
||||||
@ -1208,8 +1209,10 @@ int main(int argc, char **argv) {
|
|||||||
};
|
};
|
||||||
ImGui_ImplSDLGPU3_Init(&imgui_init_info);
|
ImGui_ImplSDLGPU3_Init(&imgui_init_info);
|
||||||
|
|
||||||
bool show_demo_window = true;
|
|
||||||
bool first_frame = true;
|
bool first_frame = true;
|
||||||
|
bool show_demo_window = false;
|
||||||
|
bool show_tile_picker = false;
|
||||||
|
|
||||||
|
|
||||||
SDL_GetWindowSizeInPixels(window, &window_width, &window_height);
|
SDL_GetWindowSizeInPixels(window, &window_width, &window_height);
|
||||||
|
|
||||||
@ -1237,10 +1240,35 @@ int main(int argc, char **argv) {
|
|||||||
calendar_time.minute = real_mod(calendar_time.minute, 60);
|
calendar_time.minute = real_mod(calendar_time.minute, 60);
|
||||||
calendar_time.hour = real_mod(calendar_time.hour, 24);
|
calendar_time.hour = real_mod(calendar_time.hour, 24);
|
||||||
|
|
||||||
ImGui::SetNextWindowPos(ImVec2(0, 0));
|
if (ImGui::BeginMainMenuBar()) {
|
||||||
ImGui::SetNextWindowSizeConstraints(ImVec2(0, window_height), ImVec2(window_width, window_height));
|
if (ImGui::BeginMenu("File")) {
|
||||||
ImGui::SetNextWindowSize(ImVec2(0.2 * window_width, window_height), ImGuiCond_FirstUseEver);
|
ImGui::MenuItem("Demo Window", NULL, &show_demo_window);
|
||||||
if (ImGui::Begin("Tile Picker", NULL, ImGuiWindowFlags_NoFocusOnAppearing)) {
|
|
||||||
|
ImGui::EndMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ImGui::BeginMenu("Edit")) {
|
||||||
|
ImGui::MenuItem("Tile Picker", NULL, &show_tile_picker);
|
||||||
|
ImGui::EndMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui::EndMainMenuBar();
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGuiID main_viewport_dock = ImGui::GetID("main_viewport_dock");
|
||||||
|
if (!ImGui::DockBuilderGetNode(main_viewport_dock)) {
|
||||||
|
ImGui::DockBuilderAddNode (main_viewport_dock, (ImGuiDockNodeFlags)ImGuiDockNodeFlags_DockSpace | ImGuiDockNodeFlags_AutoHideTabBar | ImGuiDockNodeFlags_PassthruCentralNode | ImGuiDockNodeFlags_NoDockingOverCentralNode);
|
||||||
|
ImGui::DockBuilderSetNodePos (main_viewport_dock, ImGui::GetMainViewport()->WorkPos);
|
||||||
|
ImGui::DockBuilderSetNodeSize(main_viewport_dock, ImGui::GetMainViewport()->WorkSize);
|
||||||
|
|
||||||
|
ImGuiID left_dock = ImGui::DockBuilderSplitNode(main_viewport_dock, ImGuiDir_Left, 0.2f, NULL, NULL);
|
||||||
|
ImGui::DockBuilderDockWindow("Tile Picker", left_dock);
|
||||||
|
ImGui::DockBuilderFinish(main_viewport_dock);
|
||||||
|
}
|
||||||
|
ImGui::DockSpaceOverViewport(main_viewport_dock, ImGui::GetMainViewport(), ImGuiDockNodeFlags_AutoHideTabBar | ImGuiDockNodeFlags_PassthruCentralNode | ImGuiDockNodeFlags_NoDockingOverCentralNode);
|
||||||
|
|
||||||
|
if (show_tile_picker) {
|
||||||
|
if (ImGui::Begin("Tile Picker", &show_tile_picker, ImGuiWindowFlags_NoFocusOnAppearing)) {
|
||||||
if (SelectableTile("##tile", selected_tile == -1, NULL, 0, ImVec2(32, 32))) {
|
if (SelectableTile("##tile", selected_tile == -1, NULL, 0, ImVec2(32, 32))) {
|
||||||
selected_tile = -1;
|
selected_tile = -1;
|
||||||
}
|
}
|
||||||
@ -1328,6 +1356,7 @@ int main(int argc, char **argv) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
ImGui::End();
|
ImGui::End();
|
||||||
|
}
|
||||||
|
|
||||||
if (show_demo_window)
|
if (show_demo_window)
|
||||||
ImGui::ShowDemoWindow(&show_demo_window);
|
ImGui::ShowDemoWindow(&show_demo_window);
|
||||||
@ -1680,5 +1709,10 @@ int main(int argc, char **argv) {
|
|||||||
}
|
}
|
||||||
FrameMark;
|
FrameMark;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ImGui_ImplSDLGPU3_Shutdown();
|
||||||
|
ImGui_ImplSDL3_Shutdown();
|
||||||
|
ImGui::DestroyContext();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user