Implemented default docking layout. Console windows are automatically docked to the bottom panel of the application.
This commit is contained in:
@@ -1,330 +1,75 @@
|
||||
[Window][Dockspace]
|
||||
Pos=0,0
|
||||
Size=2868,1695
|
||||
Collapsed=0
|
||||
|
||||
[Window][Debug##Default]
|
||||
Pos=289,253
|
||||
Size=449,261
|
||||
Collapsed=0
|
||||
|
||||
[Window][Dear ImGui Demo]
|
||||
Pos=1884,43
|
||||
Size=974,624
|
||||
Collapsed=0
|
||||
DockId=0x00000006,1
|
||||
|
||||
[Window][Agents [Table View]]
|
||||
Pos=10,43
|
||||
Size=1187,946
|
||||
Collapsed=0
|
||||
DockId=0x00000005,0
|
||||
|
||||
[Window][Agents [Graph View]]
|
||||
Pos=10,43
|
||||
Size=1888,473
|
||||
Collapsed=0
|
||||
DockId=0x00000005,1
|
||||
|
||||
[Window][Eventlog]
|
||||
Pos=1884,43
|
||||
Size=974,624
|
||||
Collapsed=0
|
||||
DockId=0x00000006,0
|
||||
|
||||
[Window][Example: Assets Browser]
|
||||
Pos=60,60
|
||||
Size=800,480
|
||||
Collapsed=0
|
||||
|
||||
[Window][Example: Console]
|
||||
Pos=60,60
|
||||
Size=520,600
|
||||
Collapsed=0
|
||||
|
||||
[Window][Example: Log]
|
||||
Pos=171,222
|
||||
Size=1150,550
|
||||
Collapsed=0
|
||||
|
||||
[Window][Dear ImGui Debug Log]
|
||||
Pos=10,698
|
||||
Size=2528,651
|
||||
Collapsed=0
|
||||
DockId=0x00000005,1
|
||||
|
||||
[Window][Dear ImGui Metrics/Debugger]
|
||||
Pos=60,60
|
||||
Size=564,669
|
||||
Collapsed=0
|
||||
|
||||
[Window][Sessions [Table View]]
|
||||
Pos=10,43
|
||||
Size=1872,624
|
||||
Size=1477,305
|
||||
Collapsed=0
|
||||
DockId=0x00000005,0
|
||||
DockId=0x00000003,0
|
||||
|
||||
[Window][Dear ImGui Demo/ResizableChild_478B81A3]
|
||||
IsChild=1
|
||||
Size=1136,248
|
||||
|
||||
[Window][Dear ImGui Demo/Red_BEEF922B]
|
||||
IsChild=1
|
||||
Size=200,100
|
||||
|
||||
[Window][Dear ImGui Demo/##Basket_956142B6]
|
||||
IsChild=1
|
||||
Size=1115,540
|
||||
|
||||
[Window][Dear ImGui Demo/##Basket_8B4CCC3E]
|
||||
IsChild=1
|
||||
Size=1115,540
|
||||
|
||||
[Window][Dear ImGui Demo/##Basket_10C9C799]
|
||||
IsChild=1
|
||||
Size=1115,540
|
||||
|
||||
[Window][Dear ImGui Demo/##Tree_EC99B1DE]
|
||||
IsChild=1
|
||||
Size=1115,540
|
||||
|
||||
[Window][Sessions [Graph View]]
|
||||
Pos=10,518
|
||||
Size=1453,471
|
||||
[Window][Listeners]
|
||||
Pos=10,350
|
||||
Size=1888,639
|
||||
Collapsed=0
|
||||
DockId=0x00000002,0
|
||||
|
||||
[Window][Dear ImGui Demo/##Basket_87771727]
|
||||
IsChild=1
|
||||
Size=614,540
|
||||
|
||||
[Window][Listeners]
|
||||
Pos=10,765
|
||||
Size=2848,920
|
||||
[Window][Eventlog]
|
||||
Pos=1489,43
|
||||
Size=409,305
|
||||
Collapsed=0
|
||||
DockId=0x00000004,0
|
||||
|
||||
[Window][G1H2I3J4]
|
||||
Pos=10,866
|
||||
Size=2848,819
|
||||
[Window][Dear ImGui Demo]
|
||||
Pos=1489,43
|
||||
Size=409,305
|
||||
Collapsed=0
|
||||
DockId=0x00000008,1
|
||||
DockId=0x00000004,1
|
||||
|
||||
[Window][C9D8E7F6]
|
||||
Pos=10,866
|
||||
Size=2848,819
|
||||
[Window][Dockspace]
|
||||
Pos=0,0
|
||||
Size=1908,999
|
||||
Collapsed=0
|
||||
DockId=0x00000008,2
|
||||
|
||||
[Window][FACEDEAD]
|
||||
Pos=10,866
|
||||
Size=2848,819
|
||||
Collapsed=0
|
||||
DockId=0x00000008,3
|
||||
|
||||
[Window][["C9D8E7F6"] charlie@SERVER-03]
|
||||
Pos=10,866
|
||||
Size=2848,819
|
||||
Collapsed=0
|
||||
DockId=0x00000008,1
|
||||
|
||||
[Window][[G1H2I3J4] diana@WORKSTATION-04]
|
||||
Pos=10,669
|
||||
Size=2848,1016
|
||||
Collapsed=0
|
||||
DockId=0x00000008,1
|
||||
|
||||
[Window][[FACEDEAD] bob@LAPTOP-02]
|
||||
Pos=10,669
|
||||
Size=2848,1016
|
||||
Pos=10,350
|
||||
Size=1888,639
|
||||
Collapsed=0
|
||||
DockId=0x00000008,0
|
||||
DockId=0x00000002,2
|
||||
|
||||
[Window][[C9D8E7F6] charlie@SERVER-03]
|
||||
Pos=10,669
|
||||
Size=2848,1016
|
||||
Pos=10,350
|
||||
Size=1888,639
|
||||
Collapsed=0
|
||||
DockId=0x00000008,2
|
||||
DockId=0x00000002,0
|
||||
|
||||
[Window][Debug##Default]
|
||||
Pos=60,60
|
||||
Size=400,400
|
||||
Collapsed=0
|
||||
|
||||
[Window][[G1H2I3J5] diana@WORKSTATION-04]
|
||||
Pos=10,350
|
||||
Size=1888,639
|
||||
Collapsed=0
|
||||
DockId=0x00000002,1
|
||||
|
||||
[Window][[DEADBEEF] alice@DESKTOP-01]
|
||||
Pos=10,669
|
||||
Size=2848,1016
|
||||
Pos=10,350
|
||||
Size=1888,639
|
||||
Collapsed=0
|
||||
DockId=0x00000008,1
|
||||
|
||||
[Table][0xB6880529,2]
|
||||
RefScale=27
|
||||
Column 0 Sort=0v
|
||||
|
||||
[Table][0x951FCC8A,6]
|
||||
RefScale=27
|
||||
Column 0 Width=48
|
||||
Column 1 Width=112 Sort=0v
|
||||
Column 2 Width=108
|
||||
Column 3 Width=136
|
||||
Column 4 Weight=1.0000
|
||||
Column 5 Width=-1
|
||||
DockId=0x00000002,1
|
||||
|
||||
[Table][0x32886A44,8]
|
||||
Column 0 Weight=0.6558
|
||||
Column 1 Weight=0.9747
|
||||
Column 2 Weight=0.6558
|
||||
Column 3 Weight=0.8804
|
||||
Column 4 Weight=1.8057
|
||||
Column 5 Weight=1.1454
|
||||
Column 6 Weight=0.3324
|
||||
Column 7 Weight=1.5497
|
||||
|
||||
[Table][0x51D6F5EA,3]
|
||||
Column 0 Weight=1.0000
|
||||
Column 1 Weight=1.0000
|
||||
Column 2 Weight=1.0000
|
||||
|
||||
[Table][0xE102187A,3]
|
||||
RefScale=27
|
||||
Column 0 Width=134
|
||||
Column 1 Width=108
|
||||
Column 2 Width=108
|
||||
|
||||
[Table][0xF1421304,3]
|
||||
RefScale=27
|
||||
Column 0 Width=108
|
||||
Column 1 Width=108
|
||||
Column 2 Weight=1.0000
|
||||
|
||||
[Table][0xE212E0F0,6]
|
||||
RefScale=27
|
||||
Column 0 Width=108
|
||||
Column 1 Width=108
|
||||
Column 2 Width=-1
|
||||
Column 3 Weight=1.0000
|
||||
Column 4 Weight=1.0000
|
||||
Column 5 Weight=-1.0000
|
||||
|
||||
[Table][0x86C9FC97,3]
|
||||
Column 0 Weight=0.6856
|
||||
Column 1 Weight=0.7387
|
||||
Column 2 Weight=1.5757
|
||||
|
||||
[Table][0x95990F63,3]
|
||||
RefScale=27
|
||||
Column 0 Width=108
|
||||
Column 1 Width=108
|
||||
Column 2 Width=108
|
||||
|
||||
[Table][0xEB78AB2C,3]
|
||||
Column 0 Weight=1.0000
|
||||
Column 1 Weight=1.0000
|
||||
Column 2 Weight=1.0000
|
||||
|
||||
[Table][0x603C335E,2]
|
||||
Column 0 Weight=1.0000
|
||||
Column 1 Weight=1.0000
|
||||
|
||||
[Table][0xA6C6558A,2]
|
||||
Column 0 Weight=1.0000
|
||||
Column 1 Weight=1.0000
|
||||
|
||||
[Table][0xAED4F161,3]
|
||||
RefScale=27
|
||||
Column 0 Weight=1.0000
|
||||
Column 1 Width=839 Sort=0v
|
||||
Column 2 Width=-1
|
||||
|
||||
[Table][0x3A20F3F3,3]
|
||||
RefScale=27
|
||||
Column 0 Width=96
|
||||
Column 1 Width=96
|
||||
Column 2 Width=96
|
||||
|
||||
[Table][0x29CD9FF7,3]
|
||||
|
||||
[Table][0x302651AD,14]
|
||||
RefScale=27
|
||||
Column 0 Width=96
|
||||
Column 1 Width=33
|
||||
Column 2 Width=33
|
||||
Column 3 Width=33
|
||||
Column 4 Width=33
|
||||
Column 5 Width=33
|
||||
Column 6 Width=33
|
||||
Column 7 Width=33
|
||||
Column 8 Width=33
|
||||
Column 9 Width=33
|
||||
Column 10 Width=33
|
||||
Column 11 Width=33
|
||||
Column 12 Width=33
|
||||
Column 13 Width=33
|
||||
|
||||
[Table][0x369EB90F,3]
|
||||
Column 0 Weight=1.0000
|
||||
Column 1 Weight=1.0000
|
||||
Column 2 Weight=1.0000
|
||||
|
||||
[Table][0x2ACCE68A,3]
|
||||
RefScale=27
|
||||
Column 0 Width=136
|
||||
Column 1 Width=136
|
||||
Column 2 Width=136
|
||||
|
||||
[Table][0x6655AF53,4]
|
||||
RefScale=27
|
||||
Column 0 Width=48
|
||||
Column 1 Width=72 Sort=0^
|
||||
Column 2 Width=72
|
||||
Column 3 Weight=1.0000
|
||||
|
||||
[Table][0x5145577A,3]
|
||||
Column 0 Weight=1.0000
|
||||
Column 1 Weight=1.0000
|
||||
Column 2 Weight=1.0000
|
||||
|
||||
[Table][0x127BEAD2,7]
|
||||
RefScale=27
|
||||
Column 0 Width=155
|
||||
Column 1 Width=155
|
||||
Column 2 Width=155
|
||||
Column 3 Width=156
|
||||
Column 4 Width=156
|
||||
Column 5 Width=156
|
||||
Column 6 Width=474
|
||||
|
||||
[Table][0x755BE644,3]
|
||||
RefScale=27
|
||||
Column 0 Width=84
|
||||
Column 1 Width=83
|
||||
Column 2 Width=84
|
||||
|
||||
[Table][0xBE0D9DE1,3]
|
||||
RefScale=27
|
||||
Column 0 Width=84
|
||||
Column 1 Width=84
|
||||
Column 2 Width=217
|
||||
|
||||
[Table][0xDE11CCC7,8]
|
||||
Column 0 Weight=0.7758
|
||||
Column 1 Weight=1.1556
|
||||
Column 2 Weight=0.7758
|
||||
Column 3 Weight=0.9616
|
||||
Column 4 Weight=0.9616
|
||||
Column 5 Weight=1.1556
|
||||
Column 6 Weight=0.3879
|
||||
Column 7 Weight=1.8263
|
||||
|
||||
[Table][0x61294EC1,3]
|
||||
RefScale=27
|
||||
Column 0 Width=119
|
||||
Column 1 Width=119
|
||||
Column 2 Width=119
|
||||
Column 0 Weight=0.6570
|
||||
Column 1 Weight=0.9786
|
||||
Column 2 Weight=0.6570
|
||||
Column 3 Weight=1.1429
|
||||
Column 4 Weight=1.5466
|
||||
Column 5 Weight=1.1429
|
||||
Column 6 Weight=0.3285
|
||||
Column 7 Weight=1.5466
|
||||
|
||||
[Docking][Data]
|
||||
DockSpace ID=0x85940918 Window=0x260A4489 Pos=10,43 Size=2848,1642 Split=Y
|
||||
DockNode ID=0x00000007 Parent=0x85940918 SizeRef=2848,624 Split=Y
|
||||
DockNode ID=0x00000003 Parent=0x00000007 SizeRef=2848,720 Split=Y
|
||||
DockNode ID=0x00000001 Parent=0x00000003 SizeRef=1453,473 Split=X Selected=0x61E02D75
|
||||
DockNode ID=0x00000005 Parent=0x00000001 SizeRef=1872,674 CentralNode=1 Selected=0x61E02D75
|
||||
DockNode ID=0x00000006 Parent=0x00000001 SizeRef=974,674 Selected=0x5E5F7166
|
||||
DockNode ID=0x00000002 Parent=0x00000003 SizeRef=1453,471 Selected=0x6D7E7D39
|
||||
DockNode ID=0x00000004 Parent=0x00000007 SizeRef=2848,920 Selected=0x6BE22050
|
||||
DockNode ID=0x00000008 Parent=0x85940918 SizeRef=2848,1016 Selected=0xD3469193
|
||||
DockSpace ID=0x85940918 Window=0x260A4489 Pos=10,43 Size=1888,946 Split=Y
|
||||
DockNode ID=0x00000001 Parent=0x85940918 SizeRef=1024,159 Split=X
|
||||
DockNode ID=0x00000003 Parent=0x00000001 SizeRef=613,159 CentralNode=1 Selected=0x61E02D75
|
||||
DockNode ID=0x00000004 Parent=0x00000001 SizeRef=409,159 Selected=0x5E5F7166
|
||||
DockNode ID=0x00000002 Parent=0x85940918 SizeRef=1024,639 Selected=0x8D780333
|
||||
|
||||
|
||||
@@ -11,10 +11,16 @@ proc main() =
|
||||
showConquest = true
|
||||
showSessionsTable = true
|
||||
showSessionsGraph = false
|
||||
showListeners = false
|
||||
showListeners = true
|
||||
showEventlog = true
|
||||
consoles: Table[string, ConsoleComponent]
|
||||
|
||||
|
||||
var
|
||||
dockTop: ImGuiID = 0
|
||||
dockBottom: ImGuiID = 0
|
||||
dockTopLeft: ImGuiID = 0
|
||||
dockTopRight: ImGuiID = 0
|
||||
|
||||
views["Sessions [Table View]"] = addr showSessionsTable
|
||||
views["Sessions [Graph View]"] = addr showSessionsGraph
|
||||
views["Listeners"] = addr showListeners
|
||||
@@ -39,7 +45,7 @@ proc main() =
|
||||
newFrame()
|
||||
|
||||
# Draw/update UI components/views
|
||||
dockspace.draw(addr showConquest, views)
|
||||
dockspace.draw(addr showConquest, views, addr dockTop, addr dockBottom, addr dockTopLeft, addr dockTopRight)
|
||||
if showSessionsTable: sessionsTable.draw(addr showSessionsTable)
|
||||
if showListeners: listenersTable.draw(addr showListeners)
|
||||
if showEventlog: eventlog.draw(addr showEventlog)
|
||||
@@ -47,7 +53,9 @@ proc main() =
|
||||
# Show console windows
|
||||
var newConsoleTable: Table[string, ConsoleComponent]
|
||||
for agentId, console in consoles.mpairs():
|
||||
if console.showConsole:
|
||||
if console.showConsole:
|
||||
# Ensure that new console windows are docked to the bottom panel by default
|
||||
igSetNextWindowDockID(dockBottom, ImGuiCond_FirstUseEver.int32)
|
||||
console.draw()
|
||||
newConsoleTable[agentId] = console
|
||||
|
||||
|
||||
@@ -7,14 +7,16 @@ type
|
||||
windowClass: ptr ImGuiWindowClass
|
||||
dockspaceFlags: ImGuiDockNodeFlags
|
||||
windowFlags: ImGuiWindow_Flags
|
||||
initialized: bool
|
||||
|
||||
proc Dockspace*(): DockspaceComponent =
|
||||
result = new DockspaceComponent
|
||||
result.windowClass = ImGuiWindowClass_ImGuiWindowClass()
|
||||
result.dockspaceFlags = ImGuiDockNodeFlags_None.int32
|
||||
result.windowFlags = ImGuiWindowFlags_MenuBar.int32 or ImGuiWindowFlags_NoDocking.int32
|
||||
result.initialized = false
|
||||
|
||||
proc draw*(component: DockspaceComponent, showComponent: ptr bool, views: Table[string, ptr bool]) =
|
||||
proc draw*(component: DockspaceComponent, showComponent: ptr bool, views: Table[string, ptr bool], dockTop, dockBottom, dockTopLeft, dockTopRight: ptr ImGuiID) =
|
||||
|
||||
var vp = igGetMainViewport()
|
||||
igSetNextWindowPos(vp.WorkPos, ImGui_Cond_None.int32, vec2(0.0f, 0.0f))
|
||||
@@ -39,8 +41,25 @@ proc draw*(component: DockspaceComponent, showComponent: ptr bool, views: Table[
|
||||
|
||||
igPopStyleVar(3)
|
||||
|
||||
# Setup default docking layout
|
||||
var dockspaceId = igGetID_Str("Dockspace")
|
||||
if igDockBuilderGetNode(dockspaceId) == nil:
|
||||
igDockBuilderRemoveNode(dockspaceId)
|
||||
igDockBuilderAddNode(dockspaceId, ImGuiDockNodeFlags_DockSpace.int32)
|
||||
igDockBuilderSetNodeSize(dockspaceId, vp.WorkSize)
|
||||
|
||||
discard igDockBuilderSplitNode(dockspaceId, ImGuiDir_Down, 0.8f, dockBottom, dockTop)
|
||||
discard igDockBuilderSplitNode(dockTop[], ImGuiDir_Right, 0.4f, dockTopRight, dockTopLeft)
|
||||
|
||||
igDockBuilderDockWindow("Sessions [Table View]", dockTopLeft[])
|
||||
igDockBuilderDockWindow("Listeners", dockBottom[])
|
||||
igDockBuilderDockWindow("Eventlog", dockTopRight[])
|
||||
igDockBuilderDockWindow("Dear ImGui Demo", dockTopRight[])
|
||||
|
||||
igDockBuilderFinish(dockspaceId)
|
||||
|
||||
# Create dockspace
|
||||
igDockSpace(igGetID_Str("Dockspace"), vec2(0.0f, 0.0f), component.dockspaceFlags, component.windowClass)
|
||||
igDockSpace(dockspaceId, vec2(0.0f, 0.0f), component.dockspaceFlags, component.windowClass)
|
||||
|
||||
# Create menu bar
|
||||
if igBeginMenuBar():
|
||||
|
||||
@@ -65,7 +65,7 @@ let exampleAgents: seq[Agent] = @[
|
||||
sessionKey: [byte 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
||||
),
|
||||
Agent(
|
||||
agentId: "G1H2I3J4",
|
||||
agentId: "G1H2I3J5",
|
||||
listenerId: "L1357924",
|
||||
username: "diana",
|
||||
hostname: "WORKSTATION-04",
|
||||
|
||||
Reference in New Issue
Block a user