Files
conquest/src/client/main.nim

58 lines
1.6 KiB
Nim
Raw Normal View History

2025-09-05 19:39:24 +02:00
import tables
import ./utils/appImGui
import ./views/[dockspace, sessions, listeners, eventlog]
2025-09-02 12:48:46 +02:00
proc main() =
var app = createApp(1024, 800, imnodes = true, title = "Conquest", docking = true)
defer: app.destroyApp()
2025-09-02 12:48:46 +02:00
2025-09-05 19:39:24 +02:00
var
views: Table[string, ptr bool]
showConquest = true
showSessionsTable = true
showSessionsGraph = false
2025-09-06 14:12:51 +02:00
showListeners = false
showEventlog = true
2025-09-05 19:39:24 +02:00
views["Sessions [Table View]"] = addr showSessionsTable
views["Sessions [Graph View]"] = addr showSessionsGraph
2025-09-06 14:12:51 +02:00
views["Listeners"] = addr showListeners
views["Eventlog"] = addr showEventlog
2025-09-02 12:48:46 +02:00
# Create components
var
dockspace = Dockspace()
sessionsTable = SessionsTable("Sessions [Table View]")
sessionsGraph = SessionsTable("Sessions [Graph View]")
listenersTable = ListenersTable("Listeners")
eventlog = Eventlog("Eventlog")
let io = igGetIO()
2025-09-02 12:48:46 +02:00
# main loop
while not app.handle.windowShouldClose:
pollEvents()
2025-09-05 19:39:24 +02:00
# Reduce rendering activity when window is minimized
if app.isIconifySleep():
continue
newFrame()
# Draw/update UI components/views
dockspace.draw(addr showConquest, views)
if showSessionsTable: sessionsTable.draw(addr showSessionsTable)
if showListeners: listenersTable.draw(addr showListeners)
if showEventlog: eventlog.draw(addr showEventlog)
2025-09-02 12:48:46 +02:00
igShowDemoWindow(nil)
# render
app.render()
2025-09-02 12:48:46 +02:00
if not showConquest:
app.handle.setWindowShouldClose(true)
2025-09-02 12:48:46 +02:00
when isMainModule:
main()