screen-selector 0.1.1

A reimplementation of Unity’s ScreenSelector.so plugin, using GTK 4
Documentation
<?xml version="1.0" encoding="UTF-8"?>
<interface>
  <requires lib="gtk" version="4.0"/>
  <object class="GtkListStore" id="inputListStore">
    <columns>
      <column type="gchararray"/>
      <column type="gchararray"/>
      <column type="gchararray"/>
    </columns>
  </object>
  <object class="GtkListStore" id="qualityListStore">
    <columns>
      <column type="gchararray"/>
    </columns>
  </object>
  <object class="GtkListStore" id="resolutionListStore">
    <columns>
      <column type="guint"/>
      <column type="guint"/>
      <column type="gchararray"/>
    </columns>
  </object>
  <object class="GtkApplicationWindow" id="screenSelectorWindow">
    <property name="can_focus">0</property>
    <property name="title" translatable="yes">Game Configuration</property>
    <property name="default_width">576</property>
    <property name="default_height">640</property>
    <property name="child">
      <object class="GtkFrame" id="outerFrame">
        <property name="can_focus">0</property>
        <property name="child">
          <object class="GtkBox" id="outerVbox">
            <property name="orientation">vertical</property>
            <property name="can_focus">0</property>
            <property name="spacing">5</property>
            <child>
              <object class="GtkPicture" id="bannerImage">
                <property name="valign">center</property>
                <property name="can_focus">0</property>
              </object>
            </child>
            <child>
              <object class="GtkNotebook" id="notebook1">
                <property name="vexpand">1</property>
                <child>
                  <object class="GtkNotebookPage">
                    <property name="child">
                      <object class="GtkBox" id="hbox2">
                        <property name="can_focus">0</property>
                        <property name="spacing">5</property>
                        <child>
                          <object class="GtkBox" id="vbox2">
                            <property name="hexpand">1</property>
                            <property name="orientation">vertical</property>
                            <property name="can_focus">0</property>
                            <property name="spacing">5</property>
                            <child>
                              <object class="GtkFrame" id="screenResolutionFrame">
                                <property name="vexpand">1</property>
                                <property name="can_focus">0</property>
                                <property name="child">
                                  <object class="GtkScrolledWindow" id="scrolledwindow1">
                                    <property name="child">
                                      <object class="GtkTreeView" id="resolutionList">
                                        <property name="model">resolutionListStore</property>
                                        <property name="headers_visible">0</property>
                                        <property name="search_column">0</property>
                                        <property name="show_expanders">0</property>
                                        <child>
                                          <object class="GtkTreeViewColumn" id="test-column">
                                            <child>
                                              <object class="GtkCellRendererText" id="test-renderer"/>
                                              <attributes>
                                                <attribute name="text">2</attribute>
                                              </attributes>
                                            </child>
                                          </object>
                                        </child>
                                        <child internal-child="selection">
                                          <object class="GtkTreeSelection" id="selection">
                                            <property name="mode">GTK_SELECTION_SINGLE</property>
                                          </object>
                                        </child>
                                      </object>
                                    </property>
                                  </object>
                                </property>
                                <child type="label">
                                  <object class="GtkLabel" id="screenResolutionLabel">
                                    <property name="can_focus">0</property>
                                    <property name="label" translatable="yes">Screen resolution</property>
                                    <property name="use_markup">1</property>
                                  </object>
                                </child>
                              </object>
                            </child>
                            <child>
                              <object class="GtkCheckButton" id="windowedCheckbutton">
                                <property name="valign">center</property>
                                <property name="label" translatable="yes">Windowed</property>
                              </object>
                            </child>
                            <child>
                              <object class="GtkBox" id="hbox3">
                                <property name="can_focus">0</property>
                                <property name="spacing">5</property>
                                <child>
                                  <object class="GtkLabel" id="label3">
                                    <property name="halign">center</property>
                                    <property name="can_focus">0</property>
                                    <property name="xalign">0</property>
                                    <property name="label" translatable="yes">Display</property>
                                  </object>
                                </child>
                                <child>
                                  <object class="GtkComboBoxText" id="displayCombo">
                                    <property name="hexpand">1</property>
                                    <property name="can_focus">0</property>
                                    <property name="button_sensitivity">on</property>
                                  </object>
                                </child>
                              </object>
                            </child>
                          </object>
                        </child>
                        <child>
                          <object class="GtkFrame" id="qualityFrame">
                            <property name="hexpand">1</property>
                            <property name="can_focus">0</property>
                            <property name="child">
                              <object class="GtkScrolledWindow" id="scrolledwindow3">
                                <property name="child">
                                  <object class="GtkTreeView" id="qualityList">
                                    <property name="model">qualityListStore</property>
                                    <property name="headers_visible">0</property>
                                    <property name="search_column">0</property>
                                    <property name="show_expanders">0</property>
                                    <child>
                                      <object class="GtkTreeViewColumn">
                                        <child>
                                          <object class="GtkCellRendererText"/>
                                          <attributes>
                                            <attribute name="text">0</attribute>
                                          </attributes>
                                        </child>
                                      </object>
                                    </child>
                                    <child internal-child="selection">
                                      <object class="GtkTreeSelection">
                                        <property name="mode">GTK_SELECTION_SINGLE</property>
                                      </object>
                                    </child>
                                  </object>
                                </property>
                              </object>
                            </property>
                            <child type="label">
                              <object class="GtkLabel" id="qualityLabel">
                                <property name="can_focus">0</property>
                                <property name="label" translatable="yes">Graphics Quality</property>
                                <property name="use_markup">1</property>
                              </object>
                            </child>
                          </object>
                        </child>
                      </object>
                    </property>
                    <property name="tab">
                      <object class="GtkLabel" id="graphicsLabel">
                        <property name="can_focus">0</property>
                        <property name="label" translatable="yes">Graphics</property>
                        <property name="justify">center</property>
                      </object>
                    </property>
                  </object>
                </child>
                <child>
                  <object class="GtkNotebookPage">
                    <property name="child">
                      <object class="GtkBox" id="vbox3">
                        <property name="orientation">vertical</property>
                        <property name="can_focus">0</property>
                        <property name="spacing">5</property>
                        <child>
                          <object class="GtkScrolledWindow" id="scrolledwindow2">
                            <property name="vexpand">1</property>
                            <property name="child">
                              <object class="GtkTreeView" id="inputList">
                                <property name="model">inputListStore</property>
                                <property name="search_column">0</property>
                                <property name="show_expanders">0</property>
                                <property name="enable_grid_lines">horizontal</property>
                                <child>
                                  <object class="GtkTreeViewColumn">
                                    <property name="title">Control</property>
                                    <child>
                                      <object class="GtkCellRendererText"/>
                                      <attributes>
                                        <attribute name="text">0</attribute>
                                      </attributes>
                                    </child>
                                  </object>
                                </child>
                                <child>
                                  <object class="GtkTreeViewColumn">
                                    <property name="title">Primary</property>
                                    <child>
                                      <object class="GtkCellRendererText"/>
                                      <attributes>
                                        <attribute name="text">1</attribute>
                                      </attributes>
                                    </child>
                                  </object>
                                </child>
                                <child>
                                  <object class="GtkTreeViewColumn">
                                    <property name="title">Secondary</property>
                                    <child>
                                      <object class="GtkCellRendererText"/>
                                      <attributes>
                                        <attribute name="text">2</attribute>
                                      </attributes>
                                    </child>
                                  </object>
                                </child>
                                <child internal-child="selection">
                                  <object class="GtkTreeSelection">
                                    <property name="mode">GTK_SELECTION_SINGLE</property>
                                  </object>
                                </child>
                              </object>
                            </property>
                          </object>
                        </child>
                        <child>
                          <object class="GtkLabel" id="doubleclickLabel">
                            <property name="valign">center</property>
                            <property name="can_focus">0</property>
                            <property name="xalign">0</property>
                            <property name="label" translatable="yes">Double-click an entry to change it.</property>
                          </object>
                        </child>
                      </object>
                    </property>
                    <property name="tab">
                      <object class="GtkLabel" id="inputLabel">
                        <property name="can_focus">0</property>
                        <property name="label" translatable="yes">Input</property>
                        <property name="justify">center</property>
                      </object>
                    </property>
                  </object>
                </child>
                <child>
                  <placeholder/>
                </child>
              </object>
            </child>
            <child>
              <object class="GtkBox" id="hbox1">
                <property name="valign">center</property>
                <property name="can_focus">0</property>
                <property name="spacing">5</property>
                <property name="homogeneous">1</property>
                <child>
                  <object class="GtkButton" id="quitButton">
                    <property name="hexpand">1</property>
                    <property name="label">Cancel</property>
                    <property name="receives_default">1</property>
                  </object>
                </child>
                <child>
                  <object class="GtkLabel" id="label2">
                    <property name="hexpand">1</property>
                    <property name="can_focus">0</property>
                  </object>
                </child>
                <child>
                  <object class="GtkLabel" id="placeholderLabel">
                    <property name="hexpand">1</property>
                    <property name="can_focus">0</property>
                  </object>
                </child>
                <child>
                  <object class="GtkButton" id="playButton">
                    <property name="hexpand">1</property>
                    <property name="label">Ok</property>
                    <property name="receives_default">1</property>
                  </object>
                </child>
              </object>
            </child>
          </object>
        </property>
        <child type="label">
          <object class="GtkLabel" id="label1">
            <property name="can_focus">0</property>
            <property name="use_markup">1</property>
          </object>
        </child>
      </object>
    </property>
  </object>
</interface>