fix(gui): add resizable splitter between Files and Screenshots panels
Added: - _files_split_v state (0.5 default) for split ratio - _files_open and _shots_open tracking for collapse state - Splitter bar between collapsing headers when both open - Splitter updates _files_split_v based on mouse drag
This commit is contained in:
+17
-3
@@ -873,11 +873,25 @@ class App:
|
||||
exp, opened = imgui.begin("Files & Media", self.show_windows["Files & Media"])
|
||||
self.show_windows["Files & Media"] = bool(opened)
|
||||
if exp:
|
||||
if imgui.collapsing_header("Files"):
|
||||
if not hasattr(self, "_files_split_v"): self._files_split_v = 0.5
|
||||
if not hasattr(self, "_files_open"): self._files_open = True
|
||||
if not hasattr(self, "_shots_open"): self._shots_open = True
|
||||
if imgui.collapsing_header("Files", imgui.TreeNodeFlags_.default_open if self._files_open else 0):
|
||||
self._files_open = True
|
||||
self._render_files_panel()
|
||||
if imgui.collapsing_header("Screenshots"):
|
||||
else:
|
||||
self._files_open = False
|
||||
if self._files_open and self._shots_open:
|
||||
imgui.button("###files_media_splitter", imgui.ImVec2(-1, 4))
|
||||
if imgui.is_item_active():
|
||||
avail = imgui.get_content_region_avail().y
|
||||
if avail > 0: self._files_split_v = max(0.2, min(0.8, self._files_split_v + imgui.get_io().mouse_delta.y / avail))
|
||||
if imgui.collapsing_header("Screenshots", imgui.TreeNodeFlags_.default_open if self._shots_open else 0):
|
||||
self._shots_open = True
|
||||
self._render_screenshots_panel()
|
||||
imgui.end()
|
||||
else:
|
||||
self._shots_open = False
|
||||
imgui.end()
|
||||
if self.show_windows.get("AI Settings", False):
|
||||
exp, opened = imgui.begin("AI Settings", self.show_windows["AI Settings"])
|
||||
self.show_windows["AI Settings"] = bool(opened)
|
||||
|
||||
Reference in New Issue
Block a user