From 67c19fb90dee8757e76847198d65e62df19297ee Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Fri, 23 Oct 2026 15:11:05 +0900 Subject: [PATCH] feat: add SimpleTree --- dzgui/views/trees/tree_simple.py | 35 ++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 dzgui/views/trees/tree_simple.py diff --git a/dzgui/views/trees/tree_simple.py b/dzgui/views/trees/tree_simple.py new file mode 100644 index 0000000..be96668 --- /dev/null +++ b/dzgui/views/trees/tree_simple.py @@ -0,0 +1,35 @@ +from typing import TYPE_CHECKING, Union + +if TYPE_CHECKING: + from dzgui.model.model_factory import FastInsertListStore + +import gi + +gi.require_version("Gtk", "3.0") +from gi.repository import Gtk # noqa + + +class SimpleTree(Gtk.ScrolledWindow): + """Simple scrollable 1-column tree""" + + def __init__( + self, model: Union[Gtk.ListStore, "FastInsertListStore"], title: str + ) -> None: + super().__init__( + overlay_scrolling=False, + propagate_natural_width=True, + propagate_natural_height=True, + ) + + self.tree = Gtk.TreeView(model=model, enable_search=False) + renderer = Gtk.CellRendererText() + column = Gtk.TreeViewColumn(title, renderer, text=0) + column.set_sizing(Gtk.TreeViewColumnSizing.FIXED) + column.set_resizable(False) + column.set_sort_column_id(0) + self.tree.append_column(column) + + self.add(self.tree) + + def get_tree(self) -> Gtk.TreeView: + return self.tree