gtk2/gtk/inspector/recorder.ui
Benjamin Otte d7b5966fa7 inspector: Make the recorder node list use a ListView
It's quite a bit faster now, but the code is also a bit more awkward.

Pain points:

- GtkTreeListModel cannot be created in UI files because it needs
  a CreateModelFunc.
  Using a signal for this doesn't work because autoexpand wants to
  expand the model before the signal handler is connected.

- The list item factory usage is still awkward. It's bearable here
  because the list items are very simple, but still.
2020-05-30 19:26:45 -04:00

155 lines
6.9 KiB
XML

<interface domain="gtk40">
<object class="GListStore" id="recordings"/>
<template class="GtkInspectorRecorder" parent="GtkWidget">
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<child>
<object class="GtkBox">
<property name="spacing">6</property>
<property name="margin-start">6</property>
<property name="margin-end">6</property>
<property name="margin-top">6</property>
<property name="margin-bottom">6</property>
<child>
<object class="GtkToggleButton">
<property name="has-frame">0</property>
<property name="icon-name">media-record-symbolic</property>
<property name="tooltip-text" translatable="yes">Record frames</property>
<property name="active" bind-source="GtkInspectorRecorder" bind-property="recording" bind-flags="bidirectional|sync-create"/>
</object>
</child>
<child>
<object class="GtkButton">
<property name="has-frame">0</property>
<property name="icon-name">edit-clear-all-symbolic</property>
<property name="tooltip-text" translatable="yes">Clear recorded frames</property>
<signal name="clicked" handler="recordings_clear_all"/>
</object>
</child>
<child>
<object class="GtkToggleButton">
<property name="has-frame">0</property>
<property name="icon-name">insert-object-symbolic</property>
<property name="tooltip-text" translatable="yes">Add debug nodes</property>
<property name="active" bind-source="GtkInspectorRecorder" bind-property="debug-nodes" bind-flags="bidirectional|sync-create"/>
<property name="halign">start</property>
<property name="hexpand">1</property>
</object>
</child>
<child>
<object class="GtkButton" id="render_node_save_button">
<property name="has-frame">0</property>
<property name="sensitive">0</property>
<property name="icon-name">document-save-as-symbolic</property>
<property name="tooltip-text" translatable="yes">Save selected node</property>
<signal name="clicked" handler="render_node_save"/>
</object>
</child>
</object>
</child>
<child>
<object class="GtkSeparator" />
</child>
<child>
<object class="GtkBox">
<style>
<class name="view"/>
</style>
<child>
<object class="GtkScrolledWindow">
<property name="hscrollbar-policy">never</property>
<property name="propagate-natural-width">1</property>
<style>
<class name="sidebar"/>
</style>
<child>
<object class="GtkListBox" id="recordings_list">
<property name="vexpand">1</property>
<signal name="row-selected" handler="recordings_list_row_selected"/>
</object>
</child>
</object>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="hscrollbar-policy">never</property>
<property name="propagate-natural-width">1</property>
<style>
<class name="sidebar"/>
</style>
<child>
<object class="GtkListView" id="render_node_list">
<property name="vexpand">1</property>
<property name="hexpand">1</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkPaned" id="render_paned">
<property name="orientation">vertical</property>
<property name="position">300</property>
<property name="wide-handle">1</property>
<child>
<object class="GtkScrolledWindow">
<child>
<object class="GtkTreeView" id="node_property_tree">
<property name="activate-on-single-click">1</property>
<signal name="row-activated" handler="node_property_activated"/>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Property</property>
<child>
<object class="GtkCellRendererText">
<property name="yalign">0</property>
</object>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn">
<property name="title" translatable="yes">Value</property>
<child>
<object class="GtkCellRendererText">
<property name="yalign">0</property>
<property name="wrap-mode">word</property>
<property name="max-width-chars">50</property>
</object>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
<child>
<object class="GtkCellRendererPixbuf">
<property name="xalign">0</property>
</object>
<attributes>
<attribute name="visible">2</attribute>
<attribute name="texture">3</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkPicture" id="render_node_view">
<property name="hexpand">1</property>
<property name="vexpand">1</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</template>
</interface>