def _test(): """Test the custom model in an ad-hoc GUI window""" from lib.layer import PaintingLayer, LayerStack doc_model = Document() root = doc_model.layer_stack root.clear() layer_info = [ ((0, ), LayerStack(name="Layer 0")), ((0, 0), PaintingLayer(name="Layer 0:0")), ((0, 1), PaintingLayer(name="Layer 0:1")), ((0, 2), LayerStack(name="Layer 0:2")), ((0, 2, 0), PaintingLayer(name="Layer 0:2:0")), ((0, 2, 1), PaintingLayer(name="Layer 0:2:1")), ((0, 3), PaintingLayer(name="Layer 0:3")), ((1, ), LayerStack(name="Layer 1")), ((1, 0), PaintingLayer(name="Layer 1:0")), ((1, 1), PaintingLayer(name="Layer 1:1")), ((1, 2), LayerStack(name="Layer 1:2")), ((1, 2, 0), PaintingLayer(name="Layer 1:2:0")), ((1, 2, 1), PaintingLayer(name="Layer 1:2:1")), ((1, 2, 2), PaintingLayer(name="Layer 1:2:2")), ((1, 2, 3), PaintingLayer(name="Layer 1:2:3")), ((1, 3), PaintingLayer(name="Layer 1:3")), ((1, 4), PaintingLayer(name="Layer 1:4")), ((1, 5), PaintingLayer(name="Layer 1:5")), ((1, 6), PaintingLayer(name="Layer 1:6")), ((2, ), PaintingLayer(name="Layer 2")), ((3, ), PaintingLayer(name="Layer 3")), ((4, ), PaintingLayer(name="Layer 4")), ((5, ), PaintingLayer(name="Layer 5")), ((6, ), LayerStack(name="Layer 6")), ((6, 0), PaintingLayer(name="Layer 6:0")), ((6, 1), PaintingLayer(name="Layer 6:1")), ((6, 2), PaintingLayer(name="Layer 6:2")), ((6, 3), PaintingLayer(name="Layer 6:3")), ((6, 4), PaintingLayer(name="Layer 6:4")), ((6, 5), PaintingLayer(name="Layer 6:5")), ((7, ), PaintingLayer(name="Layer 7")), ] for path, layer in layer_info: root.deepinsert(path, layer) root.set_current_path([4]) icon_theme = Gtk.IconTheme.get_default() icon_theme.append_search_path("./desktop/icons") view = RootStackTreeView(doc_model) view_scroll = Gtk.ScrolledWindow() view_scroll.set_shadow_type(Gtk.ShadowType.ETCHED_IN) scroll_pol = Gtk.PolicyType.AUTOMATIC view_scroll.set_policy(scroll_pol, scroll_pol) view_scroll.add(view) view_scroll.set_size_request(-1, 100) win = Gtk.Window() win.set_title(unicode(__package__)) win.connect("destroy", Gtk.main_quit) win.add(view_scroll) win.set_default_size(300, 500) win.show_all() Gtk.main()
def _test(): """Test the custom model in an ad-hoc GUI window""" from lib.document import Document from lib.layer import PaintingLayer, LayerStack doc_model = Document() root = doc_model.layer_stack root.clear() layer_info = [ ((0, ), LayerStack(name="Layer 0")), ((0, 0), PaintingLayer(name="Layer 0:0")), ((0, 1), PaintingLayer(name="Layer 0:1")), ((0, 2), LayerStack(name="Layer 0:2")), ((0, 2, 0), PaintingLayer(name="Layer 0:2:0")), ((0, 2, 1), PaintingLayer(name="Layer 0:2:1")), ((0, 3), PaintingLayer(name="Layer 0:3")), ((1, ), LayerStack(name="Layer 1")), ((1, 0), PaintingLayer(name="Layer 1:0")), ((1, 1), PaintingLayer(name="Layer 1:1")), ((1, 2), LayerStack(name="Layer 1:2")), ((1, 2, 0), PaintingLayer(name="Layer 1:2:0")), ((1, 2, 1), PaintingLayer(name="Layer 1:2:1")), ((1, 2, 2), PaintingLayer(name="Layer 1:2:2")), ((1, 2, 3), PaintingLayer(name="Layer 1:2:3")), ((1, 3), PaintingLayer(name="Layer 1:3")), ((1, 4), PaintingLayer(name="Layer 1:4")), ((1, 5), PaintingLayer(name="Layer 1:5")), ((1, 6), PaintingLayer(name="Layer 1:6")), ((2, ), PaintingLayer(name="Layer 2")), ((3, ), PaintingLayer(name="Layer 3")), ((4, ), PaintingLayer(name="Layer 4")), ((5, ), PaintingLayer(name="Layer 5")), ((6, ), LayerStack(name="Layer 6")), ((6, 0), PaintingLayer(name="Layer 6:0")), ((6, 1), PaintingLayer(name="Layer 6:1")), ((6, 2), PaintingLayer(name="Layer 6:2")), ((6, 3), PaintingLayer(name="Layer 6:3")), ((6, 4), PaintingLayer(name="Layer 6:4")), ((6, 5), PaintingLayer(name="Layer 6:5")), ((7, ), PaintingLayer(name="Layer 7")), ] for path, layer in layer_info: root.deepinsert(path, layer) icon_theme = Gtk.IconTheme.get_default() icon_theme.append_search_path("./desktop/icons") view = Gtk.TreeView() stack_wrapper = RootStackTreeModelWrapper(doc_model) view.set_model(stack_wrapper) view.set_show_expanders(True) view.set_enable_tree_lines(True) view.set_reorderable(True) view.set_headers_visible(True) sel = view.get_selection() sel.set_mode(Gtk.SelectionMode.SINGLE) view_scroll = Gtk.ScrolledWindow() view_scroll.set_shadow_type(Gtk.ShadowType.ETCHED_IN) scroll_pol = Gtk.PolicyType.AUTOMATIC view_scroll.set_policy(scroll_pol, scroll_pol) view_scroll.add(view) view_scroll.set_size_request(-1, 100) cell = Gtk.CellRendererPixbuf() col = Gtk.TreeViewColumn("T") col.pack_start(cell, expand=False) col.set_cell_data_func(cell, layer_type_pixbuf_datafunc) col.set_max_width(24) col.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE) view.append_column(col) cell = Gtk.CellRendererText() cell.set_property("ellipsize", Pango.EllipsizeMode.END) col = Gtk.TreeViewColumn("Name") col.pack_start(cell, expand=True) col.set_cell_data_func(cell, layer_name_text_datafunc) col.set_expand(True) col.set_min_width(48) col.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE) view.append_column(col) view.set_expander_column(col) cell = Gtk.CellRendererPixbuf() col = Gtk.TreeViewColumn("V") col.pack_start(cell, expand=False) col.set_cell_data_func(cell, layer_visible_pixbuf_datafunc) col.set_max_width(24) view.append_column(col) cell = Gtk.CellRendererPixbuf() col = Gtk.TreeViewColumn("L") col.pack_start(cell, expand=False) col.set_cell_data_func(cell, layer_locked_pixbuf_datafunc) col.set_max_width(24) view.append_column(col) win = Gtk.Window() win.set_title(unicode(__package__)) win.connect("destroy", Gtk.main_quit) win.add(view_scroll) win.set_default_size(300, 500) win.show_all() Gtk.main()