3 # align-expand.sh [METHOD]
5 # This is the script used to create the align-expand tests. These tests
6 # put a 20x20 size-requested GtkTreeView into a 40x40 size-requested
7 # container and try to achieve multiple combinations of expand and align
8 # flags. The resulting GtkBuilder file is written to stdout. All of the
9 # resulting files should render identical.
13 # Uses expand flags to align and expand the treeview inside a GtkGrid.
14 # You should use this as the reference when adding tests for other
17 # Aligns and expands the treeview in a GtkAlignment using its scale
18 # and align properties.
21 if test $# -lt 1; then
28 <?xml version="1.0" encoding="UTF-8"?>
30 <!-- interface-requires gtk+ 3.0 -->
31 <object class="GtkWindow" id="window">
32 <property name="can_focus">False</property>
33 <property name="type">popup</property>
35 <object class="GtkGrid" id="grid">
36 <property name="visible">True</property>
37 <property name="can_focus">False</property>
38 <property name="row_spacing">2</property>
39 <property name="column_spacing">2</property>
44 for hexpand in False True; do
45 for halign in "start" center end fill; do
49 <object class="GtkLabel" id="hexpand-$halign-$hexpand">
50 <property name="visible">True</property>
51 <property name="can_focus">False</property>
52 <property name="label">$hexpand</property>
53 <property name="angle">90</property>
56 <property name="left_attach">$y</property>
57 <property name="top_attach">0</property>
58 <property name="width">1</property>
59 <property name="height">1</property>
63 <object class="GtkLabel" id="halign-$halign-$hexpand">
64 <property name="visible">True</property>
65 <property name="can_focus">False</property>
66 <property name="label">$halign</property>
67 <property name="angle">90</property>
70 <property name="left_attach">$y</property>
71 <property name="top_attach">1</property>
72 <property name="width">1</property>
73 <property name="height">1</property>
78 for vexpand in False True; do
79 for valign in "start" center end fill; do
81 if test $y = "2"; then
84 <object class="GtkLabel" id="vexpand-$valign-$vexpand">
85 <property name="visible">True</property>
86 <property name="can_focus">False</property>
87 <property name="label">$vexpand</property>
90 <property name="left_attach">0</property>
91 <property name="top_attach">$x</property>
92 <property name="width">1</property>
93 <property name="height">1</property>
97 <object class="GtkLabel" id="valign-$valign-$vexpand">
98 <property name="visible">True</property>
99 <property name="can_focus">False</property>
100 <property name="label">$valign</property>
103 <property name="left_attach">1</property>
104 <property name="top_attach">$x</property>
105 <property name="width">1</property>
106 <property name="height">1</property>
112 if test $method = "flags"; then
116 <object class="GtkGrid" id="grid-$valign-$halign-$vexpand-$hexpand">
117 <property name="width_request">40</property>
118 <property name="height_request">40</property>
119 <property name="visible">True</property>
120 <property name="can_focus">False</property>
122 <object class="GtkTreeView" id="treeview-$valign-$halign-$vexpand-$hexpand">
123 <property name="width_request">20</property>
124 <property name="height_request">20</property>
125 <property name="visible">True</property>
126 <property name="can_focus">False</property>
127 <property name="halign">$halign</property>
128 <property name="valign">$valign</property>
129 <property name="hexpand">$hexpand</property>
130 <property name="vexpand">$vexpand</property>
133 <property name="left_attach">0</property>
134 <property name="top_attach">0</property>
135 <property name="width">1</property>
136 <property name="height">1</property>
141 <property name="left_attach">$x</property>
142 <property name="top_attach">$y</property>
143 <property name="width">1</property>
144 <property name="height">1</property>
149 elif test $method = "alignment"; then
153 "start") xalign=0.0 ;;
154 "center") xalign=0.5 ;;
156 "fill") xalign=0.5; xscale=1.0 ;;
158 if test $hexpand = "True"; then
164 "start") yalign=0.0 ;;
165 "center") yalign=0.5 ;;
167 "fill") yalign=0.5; yscale=1.0 ;;
169 if test $vexpand = "True"; then
175 <object class="GtkAlignment" id="align-$valign-$halign-$vexpand-$hexpand">
176 <property name="width_request">40</property>
177 <property name="height_request">40</property>
178 <property name="visible">True</property>
179 <property name="can_focus">False</property>
180 <property name="xalign">$xalign</property>
181 <property name="yalign">$yalign</property>
182 <property name="xscale">$xscale</property>
183 <property name="yscale">$yscale</property>
185 <object class="GtkTreeView" id="treeview-$valign-$halign-$vexpand-$hexpand">
186 <property name="width_request">20</property>
187 <property name="height_request">20</property>
188 <property name="visible">True</property>
189 <property name="can_focus">False</property>
194 <property name="left_attach">$x</property>
195 <property name="top_attach">$y</property>
196 <property name="width">1</property>
197 <property name="height">1</property>