progress on fixing up gui code

This commit is contained in:
2026-05-12 15:20:34 -04:00
parent fb45b44824
commit c4e1cca66b
6 changed files with 198 additions and 197 deletions
+32 -14
View File
@@ -24,7 +24,8 @@ class _ScopeChild:
self._sy = size_y
self._flags = flags
def __enter__(self):
return imgui.begin_child(self._id, self._sx, self._sy, self._flags)
res = imgui.begin_child(self._id, self._sx, self._sy, self._flags)
return res
def __exit__(self, *args):
imgui.end_child()
return False
@@ -35,38 +36,51 @@ class _ScopeTable:
self._name = name
self._columns = columns
self._flags = flags
self._active = False
def __enter__(self):
return imgui.begin_table(self._name, self._columns, self._flags)
self._active = imgui.begin_table(self._name, self._columns, self._flags)
return self._active
def __exit__(self, *args):
imgui.end_table()
if self._active:
imgui.end_table()
return False
def menu_bar(): return _ScopeMenuBar()
class _ScopeMenuBar:
def __init__(self):
self._active = False
def __enter__(self):
return imgui.begin_menu_bar()
self._active = imgui.begin_menu_bar()
return self._active
def __exit__(self, *args):
imgui.end_menu_bar()
if self._active:
imgui.end_menu_bar()
return False
def menu(label: str): return _ScopeMenu(label)
class _ScopeMenu:
def __init__(self, label: str):
self._label = label
self._active = False
def __enter__(self):
return imgui.begin_menu(self._label)
self._active = imgui.begin_menu(self._label)
return self._active
def __exit__(self, *args):
imgui.end_menu()
if self._active:
imgui.end_menu()
return False
def popup(id_str: str): return _ScopePopup(id_str)
class _ScopePopup:
def __init__(self, id_str: str):
self._id = id_str
self._active = False
def __enter__(self):
return imgui.begin_popup(self._id)
self._active = imgui.begin_popup(self._id)
return self._active
def __exit__(self, *args):
imgui.end_popup()
if self._active:
imgui.end_popup()
return False
def tooltip(): return _ScopeTooltip()
@@ -120,10 +134,13 @@ class _ScopeTabBar:
def __init__(self, id_str: str, flags: int):
self._id = id_str
self._flags = flags
self._active = False
def __enter__(self):
return imgui.begin_tab_bar(self._id, self._flags)
self._active = imgui.begin_tab_bar(self._id, self._flags)
return self._active
def __exit__(self, *args):
imgui.end_tab_bar()
if self._active:
imgui.end_tab_bar()
return False
def tab_item(label: str, flags: int = 0): return _ScopeTabItem(label, flags)
@@ -131,11 +148,12 @@ class _ScopeTabItem:
def __init__(self, label: str, flags: int):
self._label = label
self._flags = flags
self._expanded = False
self._open = None
def __enter__(self):
exp, self._open = imgui.begin_tab_item(self._label, None, self._flags)
return exp, self._open
self._expanded, self._open = imgui.begin_tab_item(self._label, None, self._flags)
return self._expanded, self._open
def __exit__(self, *args):
if self._open:
if self._expanded:
imgui.end_tab_item()
return False