LkEngine 0.1.2
 
Loading...
Searching...
No Matches
UIDebug.h
1/*****************************************************************
2 * UIDebug
3 *
4 *****************************************************************/
5#pragma once
6
7#if LK_UI_DEBUG_DOCKNODES
8# define LK_UI_DEBUG_DOCKNODE(Name) \
9 if (ImGuiDockNode* DockNode = ImGui::DockBuilderGetNode(ImGui::GetWindowDockID())) \
10 { \
11 ImGui::Text("Dock ID: %lld", DockNode->ID); \
12 if (DockNode->ParentNode) ImGui::Text("Parent Node: %lld", DockNode->ParentNode->ID); \
13 else ImGui::Text("Parent Node: None"); \
14 ImGui::Text("Windows: %d", DockNode->Windows.Size); \
15 ImGui::Text("Dock Size: (%.2f, %.2f)", DockNode->Size.x, DockNode->Size.y); \
16 ImGui::Text("Dock Pos: (%.2f, %.2f)", DockNode->Pos.x, DockNode->Pos.y); \
17 ImGui::Separator(); \
18 }
19#else
20# define LK_UI_DEBUG_DOCKNODE(Name)
21#endif
22
23#if LK_UI_DEBUG_WINDOWS_ON_HOVER
24# define LK_UI_DEBUG_WINDOW_ON_HOVER(...) \
25 if (UI::Debug::bDisplayWindowSizeOnHover) \
26 { \
27 if (ImGui::IsWindowHovered()) \
28 { \
29 const ImVec2 WindowSize = ImGui::GetWindowSize(); \
30 ImGui::SetTooltip("Size (%.2f, %.2f)", WindowSize.x, WindowSize.y); \
31 } \
32 }
33#else
34# define LK_UI_DEBUG_WINDOW_ON_HOVER(...)
35#endif
36
38#define LK_UI_DEBUG_BOUNDING_BOX(Color) \
39 if (UI::Debug::bBoundingBoxesOnHover && ImGui::IsItemHovered()) \
40 { \
41 const ImVec2 RectMin = ImGui::GetItemRectMin(); \
42 const ImVec2 RectMax = ImGui::GetItemRectMax(); \
43 ImDrawList* DrawList = ImGui::GetWindowDrawList(); \
44 DrawList->AddRect(RectMin, RectMax, Color); \
45 }
46