147 lines
2.8 KiB
Python
147 lines
2.8 KiB
Python
from __future__ import annotations
|
|
from imgui_bundle import imgui
|
|
from imgui_bundle import imgui_node_editor
|
|
|
|
|
|
def imgui_begin(name: str, visible: bool = True, flags: int = 0):
|
|
return _ImguiBegin(name, visible, flags)
|
|
|
|
|
|
class _ImguiBegin:
|
|
def __init__(self, name: str, visible: bool, flags: int):
|
|
self._name = name
|
|
self._visible = visible
|
|
self._flags = flags
|
|
self._result = None
|
|
|
|
def __enter__(self):
|
|
self._result = imgui.begin(self._name, self._visible, self._flags)
|
|
return self._result
|
|
|
|
def __exit__(self, *args):
|
|
imgui.end()
|
|
return False
|
|
|
|
|
|
def imgui_begin_child(id_str: str, size_x: float = 0, size_y: float = 0, flags: int = 0):
|
|
return _ImguiBeginChild(id_str, size_x, size_y, flags)
|
|
|
|
|
|
class _ImguiBeginChild:
|
|
def __init__(self, id_str: str, size_x: float, size_y: float, flags: int):
|
|
self._id = id_str
|
|
self._sx = size_x
|
|
self._sy = size_y
|
|
self._flags = flags
|
|
|
|
def __enter__(self):
|
|
return imgui.begin_child(self._id, self._sx, self._sy, self._flags)
|
|
|
|
def __exit__(self, *args):
|
|
imgui.end_child()
|
|
return False
|
|
|
|
|
|
def imgui_begin_table(name: str, columns: int, flags: int = 0):
|
|
return _ImguiBeginTable(name, columns, flags)
|
|
|
|
|
|
class _ImguiBeginTable:
|
|
def __init__(self, name: str, columns: int, flags: int):
|
|
self._name = name
|
|
self._columns = columns
|
|
self._flags = flags
|
|
|
|
def __enter__(self):
|
|
return imgui.begin_table(self._name, self._columns, self._flags)
|
|
|
|
def __exit__(self, *args):
|
|
imgui.end_table()
|
|
return False
|
|
|
|
|
|
def imgui_begin_menu_bar():
|
|
return _ImguiBeginMenuBar()
|
|
|
|
|
|
class _ImguiBeginMenuBar:
|
|
def __enter__(self):
|
|
return imgui.begin_menu_bar()
|
|
|
|
def __exit__(self, *args):
|
|
imgui.end_menu_bar()
|
|
return False
|
|
|
|
|
|
def imgui_begin_menu(label: str):
|
|
return _ImguiBeginMenu(label)
|
|
|
|
|
|
class _ImguiBeginMenu:
|
|
def __init__(self, label: str):
|
|
self._label = label
|
|
|
|
def __enter__(self):
|
|
return imgui.begin_menu(self._label)
|
|
|
|
def __exit__(self, *args):
|
|
imgui.end_menu()
|
|
return False
|
|
|
|
|
|
def imgui_begin_popup(id_str: str):
|
|
return _ImguiBeginPopup(id_str)
|
|
|
|
|
|
class _ImguiBeginPopup:
|
|
def __init__(self, id_str: str):
|
|
self._id = id_str
|
|
|
|
def __enter__(self):
|
|
return imgui.begin_popup(self._id)
|
|
|
|
def __exit__(self, *args):
|
|
imgui.end_popup()
|
|
return False
|
|
|
|
|
|
def imgui_begin_tooltip():
|
|
return _ImguiBeginTooltip()
|
|
|
|
|
|
class _ImguiBeginTooltip:
|
|
def __enter__(self):
|
|
return imgui.begin_tooltip()
|
|
|
|
def __exit__(self, *args):
|
|
imgui.end_tooltip()
|
|
return False
|
|
|
|
|
|
def imgui_begin_group():
|
|
return _ImguiBeginGroup()
|
|
|
|
|
|
class _ImguiBeginGroup:
|
|
def __enter__(self):
|
|
return imgui.begin_group()
|
|
|
|
def __exit__(self, *args):
|
|
imgui.end_group()
|
|
return False
|
|
|
|
|
|
def node_begin(name: str):
|
|
return _NodeBegin(name)
|
|
|
|
|
|
class _NodeBegin:
|
|
def __init__(self, name: str):
|
|
self._name = name
|
|
|
|
def __enter__(self):
|
|
return imgui_node_editor.begin(self._name)
|
|
|
|
def __exit__(self, *args):
|
|
imgui_node_editor.end()
|
|
return False |