ImGui의 Docking Space는 여러 창을 자유롭게 배치하고 관리할 수 있는 도킹 시스템을 제공합니다. 이를 통해 사용자는 창을 끌어서 배치하거나 분리하는 등의 작업을 수행할 수 있습니다. 제공된 코드는 ImGui 도킹 공간을 생성하고, 메뉴바를 추가하여 파일 및 스크립트 관련 옵션을 제공하는 예제입니다.
cpp
코드 복사
ImGuiIO& io = ImGui::GetIO();
if (io.ConfigFlags & ImGuiConfigFlags_DockingEnable)
{
// Docking이 활성화된 경우 실행
}
ImGuiConfigFlags_DockingEnable
플래그가 설정되어 있는지 확인하여 도킹 기능을 사용할 수 있는지 체크합니다.ImGuiConfigFlags_DockingEnable
플래그를 설정해야 합니다.cpp
코드 복사
ImGuiID dockspace_id = ImGui::GetID("MyDockSpace");
ImGui::DockSpace(dockspace_id, ImVec2(0.0f, 0.0f), mDockspaceFlags);
ImGui::GetID("MyDockSpace")
는 고유한 도킹 공간 식별자를 생성합니다.ImGui::DockSpace
를 호출하면 지정된 ID로 도킹 공간이 생성됩니다.ImVec2(0.0f, 0.0f)
*는 도킹 공간의 초기 크기를 지정합니다. (0, 0)
은 자동으로 창 크기를 따르도록 설정합니다.mDockspaceFlags
:
cpp
코드 복사
float minWinSizeX = style.WindowMinSize.x;
style.WindowMinSize.x = 370.0f;
...
style.WindowMinSize.x = minWinSizeX;