986 lines
		
	
	
		
			44 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			986 lines
		
	
	
		
			44 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* extendedlayoutexample.c
 | 
						|
 * Copyright (C) 2010 Openismus GmbH
 | 
						|
 *
 | 
						|
 * Author:
 | 
						|
 *      Tristan Van Berkom <tristan.van.berkom@gmail.com>
 | 
						|
 *
 | 
						|
 * This library is free software; you can redistribute it and/or
 | 
						|
 * modify it under the terms of the GNU Library General Public
 | 
						|
 * License as published by the Free Software Foundation; either
 | 
						|
 * version 2 of the License, or (at your option) any later version.
 | 
						|
 *
 | 
						|
 * This library is distributed in the hope that it will be useful,
 | 
						|
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
						|
 * Library General Public License for more details.
 | 
						|
 *
 | 
						|
 * You should have received a copy of the GNU Library General Public
 | 
						|
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
 | 
						|
 */
 | 
						|
 | 
						|
#include <gtk/gtk.h>
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  const gchar *name;
 | 
						|
  const gchar *tooltip;
 | 
						|
  const gchar *interface;
 | 
						|
  GtkWidget   *window;
 | 
						|
} TestInterface;
 | 
						|
 | 
						|
 | 
						|
/* These strings were generated with:
 | 
						|
 *
 | 
						|
 *     IFS=""; while read line; do echo -n \"; echo -n $line | sed -e 's|\"|\\"|g'; echo \"; done < file.glade
 | 
						|
 */
 | 
						|
TestInterface interfaces[] = {
 | 
						|
  {
 | 
						|
    "Ellipsizing Labels",
 | 
						|
    "Demonstrates how labels will request a natural size in a horizontal space",
 | 
						|
    "<interface>"
 | 
						|
    "  <requires lib=\"gtk+\" version=\"2.20\"/>"
 | 
						|
    "  <!-- interface-naming-policy project-wide -->"
 | 
						|
    "  <object class=\"GtkWindow\" id=\"window\">"
 | 
						|
    "    <property name=\"default_width\">450</property>"
 | 
						|
    "    <property name=\"default_height\">50</property>"
 | 
						|
    "    <child>"
 | 
						|
    "      <object class=\"GtkHBox\" id=\"hbox5\">"
 | 
						|
    "        <property name=\"visible\">True</property>"
 | 
						|
    "        <child>"
 | 
						|
    "          <object class=\"GtkLabel\" id=\"label9\">"
 | 
						|
    "            <property name=\"visible\">True</property>"
 | 
						|
    "            <property name=\"label\" translatable=\"yes\">Some labels do ellipsize</property>"
 | 
						|
    "            <property name=\"ellipsize\">end</property>"
 | 
						|
    "            <attributes>"
 | 
						|
    "              <attribute name=\"weight\" value=\"bold\"/>"
 | 
						|
    "              <attribute name=\"foreground\" value=\"#09610feefe03\"/>"
 | 
						|
    "            </attributes>"
 | 
						|
    "          </object>"
 | 
						|
    "          <packing>"
 | 
						|
    "            <property name=\"position\">0</property>"
 | 
						|
    "          </packing>"
 | 
						|
    "        </child>"
 | 
						|
    "        <child>"
 | 
						|
    "          <object class=\"GtkLabel\" id=\"label10\">"
 | 
						|
    "            <property name=\"visible\">True</property>"
 | 
						|
    "            <property name=\"label\" translatable=\"yes\">but some</property>"
 | 
						|
    "            <property name=\"ellipsize\">end</property>"
 | 
						|
    "            <attributes>"
 | 
						|
    "              <attribute name=\"weight\" value=\"bold\"/>"
 | 
						|
    "              <attribute name=\"foreground\" value=\"#0000af6b0993\"/>"
 | 
						|
    "            </attributes>"
 | 
						|
    "          </object>"
 | 
						|
    "          <packing>"
 | 
						|
    "            <property name=\"position\">1</property>"
 | 
						|
    "          </packing>"
 | 
						|
    "        </child>"
 | 
						|
    "        <child>"
 | 
						|
    "          <object class=\"GtkLabel\" id=\"label11\">"
 | 
						|
    "            <property name=\"visible\">True</property>"
 | 
						|
    "            <property name=\"label\" translatable=\"yes\">do not at all</property>"
 | 
						|
    "            <attributes>"
 | 
						|
    "              <attribute name=\"style\" value=\"normal\"/>"
 | 
						|
    "              <attribute name=\"weight\" value=\"bold\"/>"
 | 
						|
    "              <attribute name=\"foreground\" value=\"#ffff00000000\"/>"
 | 
						|
    "            </attributes>"
 | 
						|
    "          </object>"
 | 
						|
    "          <packing>"
 | 
						|
    "            <property name=\"position\">2</property>"
 | 
						|
    "          </packing>"
 | 
						|
    "        </child>"
 | 
						|
    "      </object>"
 | 
						|
    "    </child>"
 | 
						|
    "  </object>"
 | 
						|
    "</interface>",
 | 
						|
    NULL
 | 
						|
  },
 | 
						|
 | 
						|
  {
 | 
						|
    "Wrapping Label",
 | 
						|
    "Demonstrates how a wrapping label can require a height contextual to its allocated width",
 | 
						|
    "<interface>"
 | 
						|
    "  <requires lib=\"gtk+\" version=\"2.18\"/>"
 | 
						|
    "  <!-- interface-naming-policy project-wide -->"
 | 
						|
    "  <object class=\"GtkWindow\" id=\"window\">"
 | 
						|
    "    <property name=\"border_width\">12</property>"
 | 
						|
    "    <property name=\"default_width\">300</property>"
 | 
						|
    "    <child>"
 | 
						|
    "      <object class=\"GtkHPaned\" id=\"hpaned1\">"
 | 
						|
    "        <property name=\"visible\">True</property>"
 | 
						|
    "        <property name=\"can_focus\">True</property>"
 | 
						|
    "        <child>"
 | 
						|
    "          <object class=\"GtkVBox\" id=\"vbox2\">"
 | 
						|
    "            <property name=\"visible\">True</property>"
 | 
						|
    "            <child>"
 | 
						|
    "              <object class=\"GtkLabel\" id=\"label3\">"
 | 
						|
    "                <property name=\"visible\">True</property>"
 | 
						|
    "                <property name=\"label\" translatable=\"yes\">A short static label.</property>"
 | 
						|
    "                <attributes>"
 | 
						|
    "                  <attribute name=\"weight\" value=\"bold\"/>"
 | 
						|
    "                </attributes>"
 | 
						|
    "              </object>"
 | 
						|
    "              <packing>"
 | 
						|
    "                <property name=\"position\">0</property>"
 | 
						|
    "              </packing>"
 | 
						|
    "            </child>"
 | 
						|
    "            <child>"
 | 
						|
    "              <object class=\"GtkFrame\" id=\"frame1\">"
 | 
						|
    "                <property name=\"label\">Long label</property>"
 | 
						|
    "                <property name=\"visible\">True</property>"
 | 
						|
    "                <child>"
 | 
						|
    "                  <object class=\"GtkLabel\" id=\"label1\">"
 | 
						|
    "                    <property name=\"visible\">True</property>"
 | 
						|
    "                    <property name=\"label\" translatable=\"yes\">This is a really long label for the purpose of testing line wrapping is working correctly in conjunction with height-for-width support in GTK+</property>"
 | 
						|
    "                    <property name=\"wrap\">True</property>"
 | 
						|
    "                    <property name=\"max_width_chars\">30</property>"
 | 
						|
    "                    <attributes>"
 | 
						|
    "                      <attribute name=\"foreground\" value=\"#18c52119f796\"/>"
 | 
						|
    "                    </attributes>"
 | 
						|
    "                  </object>"
 | 
						|
    "                </child>"
 | 
						|
    "              </object>"
 | 
						|
    "              <packing>"
 | 
						|
    "                <property name=\"expand\">False</property>"
 | 
						|
    "                <property name=\"position\">1</property>"
 | 
						|
    "              </packing>"
 | 
						|
    "            </child>"
 | 
						|
    "            <child>"
 | 
						|
    "              <object class=\"GtkButton\" id=\"button2\">"
 | 
						|
    "                <property name=\"visible\">True</property>"
 | 
						|
    "                <property name=\"can_focus\">True</property>"
 | 
						|
    "                <property name=\"receives_default\">True</property>"
 | 
						|
    "                <child>"
 | 
						|
    "                  <object class=\"GtkLabel\" id=\"label2\">"
 | 
						|
    "                    <property name=\"visible\">True</property>"
 | 
						|
    "                    <property name=\"label\" translatable=\"yes\">A really really long label inside a button to demonstrate height for width working inside buttons</property>"
 | 
						|
    "                    <property name=\"wrap\">True</property>"
 | 
						|
    "                    <property name=\"max_width_chars\">25</property>"
 | 
						|
    "                    <attributes>"
 | 
						|
    "                      <attribute name=\"foreground\" value=\"#1e3687ab0a52\"/>"
 | 
						|
    "                    </attributes>"
 | 
						|
    "                  </object>"
 | 
						|
    "                </child>"
 | 
						|
    "              </object>"
 | 
						|
    "              <packing>"
 | 
						|
    "                <property name=\"expand\">False</property>"
 | 
						|
    "                <property name=\"position\">2</property>"
 | 
						|
    "              </packing>"
 | 
						|
    "            </child>"
 | 
						|
    "          </object>"
 | 
						|
    "          <packing>"
 | 
						|
    "            <property name=\"resize\">False</property>"
 | 
						|
    "            <property name=\"shrink\">False</property>"
 | 
						|
    "          </packing>"
 | 
						|
    "        </child>"
 | 
						|
    "        <child>"
 | 
						|
    "          <object class=\"GtkLabel\" id=\"label4\">"
 | 
						|
    "            <property name=\"visible\">True</property>"
 | 
						|
    "            <property name=\"label\" translatable=\"yes\">This static label\n"
 | 
						|
    "can shrink.</property>"
 | 
						|
    "            <property name=\"justify\">center</property>"
 | 
						|
    "            <attributes>"
 | 
						|
    "              <attribute name=\"style\" value=\"normal\"/>"
 | 
						|
    "              <attribute name=\"foreground\" value=\"#ffff00000000\"/>"
 | 
						|
    "            </attributes>"
 | 
						|
    "          </object>"
 | 
						|
    "          <packing>"
 | 
						|
    "            <property name=\"resize\">True</property>"
 | 
						|
    "            <property name=\"shrink\">True</property>"
 | 
						|
    "          </packing>"
 | 
						|
    "        </child>"
 | 
						|
    "      </object>"
 | 
						|
    "    </child>"
 | 
						|
    "  </object>"
 | 
						|
    "</interface>",
 | 
						|
    NULL
 | 
						|
  },
 | 
						|
 | 
						|
  {
 | 
						|
    "Horizontal Box",
 | 
						|
    "Demonstrates how a horizontal box can calculate the collective height for an allocated width",
 | 
						|
    "<interface>"
 | 
						|
    "  <requires lib=\"gtk+\" version=\"2.20\"/>"
 | 
						|
    "  <!-- interface-naming-policy project-wide -->"
 | 
						|
    "  <object class=\"GtkWindow\" id=\"window\">"
 | 
						|
    "    <property name=\"default_height\">200</property>"
 | 
						|
    "    <property name=\"default_width\">600</property>"
 | 
						|
    "    <child>"
 | 
						|
    "      <object class=\"GtkHPaned\" id=\"hpaned1\">"
 | 
						|
    "        <property name=\"visible\">True</property>"
 | 
						|
    "        <property name=\"can_focus\">True</property>"
 | 
						|
    "        <child>"
 | 
						|
    "          <object class=\"GtkVBox\" id=\"vbox1\">"
 | 
						|
    "            <property name=\"visible\">True</property>"
 | 
						|
    "            <child>"
 | 
						|
    "              <object class=\"GtkHBox\" id=\"hbox1\">"
 | 
						|
    "                <property name=\"visible\">True</property>"
 | 
						|
    "                <child>"
 | 
						|
    "                  <object class=\"GtkButton\" id=\"button1\">"
 | 
						|
    "                    <property name=\"visible\">True</property>"
 | 
						|
    "                    <property name=\"can_focus\">True</property>"
 | 
						|
    "                    <property name=\"receives_default\">True</property>"
 | 
						|
    "                    <property name=\"use_action_appearance\">False</property>"
 | 
						|
    "                    <child>"
 | 
						|
    "                      <object class=\"GtkLabel\" id=\"label2\">"
 | 
						|
    "                        <property name=\"visible\">True</property>"
 | 
						|
    "                        <property name=\"label\" translatable=\"yes\">A button that wraps.</property>"
 | 
						|
    "                        <property name=\"wrap\">True</property>"
 | 
						|
    "                        <property name=\"width_chars\">10</property>"
 | 
						|
    "                        <attributes>"
 | 
						|
    "                          <attribute name=\"foreground\" value=\"#0000041dffff\"/>"
 | 
						|
    "                        </attributes>"
 | 
						|
    "                      </object>"
 | 
						|
    "                    </child>"
 | 
						|
    "                  </object>"
 | 
						|
    "                  <packing>"
 | 
						|
    "                    <property name=\"expand\">False</property>"
 | 
						|
    "                    <property name=\"position\">0</property>"
 | 
						|
    "                  </packing>"
 | 
						|
    "                </child>"
 | 
						|
    "                <child>"
 | 
						|
    "                  <object class=\"GtkLabel\" id=\"label1\">"
 | 
						|
    "                    <property name=\"visible\">True</property>"
 | 
						|
    "                    <property name=\"label\" translatable=\"yes\">Lets try setting up some long text to wrap up in this hbox and see if the height-for-width is gonna work !</property>"
 | 
						|
    "                    <property name=\"wrap\">True</property>"
 | 
						|
    "                    <property name=\"width_chars\">30</property>"
 | 
						|
    "                    <attributes>"
 | 
						|
    "                      <attribute name=\"foreground\" value=\"#07d0a9b20972\"/>"
 | 
						|
    "                    </attributes>"
 | 
						|
    "                  </object>"
 | 
						|
    "                  <packing>"
 | 
						|
    "                    <property name=\"position\">1</property>"
 | 
						|
    "                  </packing>"
 | 
						|
    "                </child>"
 | 
						|
    "              </object>"
 | 
						|
    "              <packing>"
 | 
						|
    "                <property name=\"expand\">False</property>"
 | 
						|
    "                <property name=\"position\">0</property>"
 | 
						|
    "              </packing>"
 | 
						|
    "            </child>"
 | 
						|
    "            <child>"
 | 
						|
    "              <object class=\"GtkButton\" id=\"button2\">"
 | 
						|
    "                <property name=\"label\" translatable=\"yes\">A button that expands in the vbox</property>"
 | 
						|
    "                <property name=\"visible\">True</property>"
 | 
						|
    "                <property name=\"can_focus\">True</property>"
 | 
						|
    "                <property name=\"receives_default\">True</property>"
 | 
						|
    "                <property name=\"use_action_appearance\">False</property>"
 | 
						|
    "              </object>"
 | 
						|
    "              <packing>"
 | 
						|
    "                <property name=\"position\">1</property>"
 | 
						|
    "              </packing>"
 | 
						|
    "            </child>"
 | 
						|
    "          </object>"
 | 
						|
    "          <packing>"
 | 
						|
    "            <property name=\"resize\">False</property>"
 | 
						|
    "            <property name=\"shrink\">False</property>"
 | 
						|
    "          </packing>"
 | 
						|
    "        </child>"
 | 
						|
    "        <child>"
 | 
						|
    "          <object class=\"GtkLabel\" id=\"label4\">"
 | 
						|
    "            <property name=\"visible\">True</property>"
 | 
						|
    "            <property name=\"label\" translatable=\"yes\">This label is\n"
 | 
						|
    "set to shrink inside\n"
 | 
						|
    "the paned window.</property>"
 | 
						|
    "            <property name=\"justify\">center</property>"
 | 
						|
    "            <attributes>"
 | 
						|
    "              <attribute name=\"style\" value=\"normal\"/>"
 | 
						|
    "              <attribute name=\"foreground\" value=\"#ffff00000000\"/>"
 | 
						|
    "            </attributes>"
 | 
						|
    "          </object>"
 | 
						|
    "          <packing>"
 | 
						|
    "            <property name=\"resize\">True</property>"
 | 
						|
    "            <property name=\"shrink\">True</property>"
 | 
						|
    "          </packing>"
 | 
						|
    "        </child>"
 | 
						|
    "      </object>"
 | 
						|
    "    </child>"
 | 
						|
    "  </object>"
 | 
						|
    "</interface>",
 | 
						|
    NULL
 | 
						|
  },
 | 
						|
 | 
						|
  {
 | 
						|
    "Vertical Labels",
 | 
						|
    "Demonstrates how a horizontal box will consider width-for-height when allocating children "
 | 
						|
    "even if the toplevel window is requested as height-for-width.",
 | 
						|
    "<interface>"
 | 
						|
    "  <requires lib=\"gtk+\" version=\"2.20\"/>"
 | 
						|
    "  <!-- interface-naming-policy project-wide -->"
 | 
						|
    "  <object class=\"GtkWindow\" id=\"window\">"
 | 
						|
    "    <property name=\"default_width\">400</property>"
 | 
						|
    "    <property name=\"default_height\">300</property>"
 | 
						|
    "    <child>"
 | 
						|
    "      <object class=\"GtkVPaned\" id=\"vpaned1\">"
 | 
						|
    "        <property name=\"visible\">True</property>"
 | 
						|
    "        <property name=\"can_focus\">True</property>"
 | 
						|
    "        <child>"
 | 
						|
    "          <object class=\"GtkHBox\" id=\"hbox1\">"
 | 
						|
    "            <property name=\"visible\">True</property>"
 | 
						|
    "            <child>"
 | 
						|
    "              <object class=\"GtkLabel\" id=\"label1\">"
 | 
						|
    "                <property name=\"visible\">True</property>"
 | 
						|
    "                <property name=\"label\" translatable=\"yes\">Some long width-for-height text that wraps</property>"
 | 
						|
    "                <property name=\"justify\">center</property>"
 | 
						|
    "                <property name=\"wrap\">True</property>"
 | 
						|
    "                <property name=\"width_chars\">10</property>"
 | 
						|
    "                <property name=\"angle\">90</property>"
 | 
						|
    "                <attributes>"
 | 
						|
    "                  <attribute name=\"weight\" value=\"bold\"/>"
 | 
						|
    "                  <attribute name=\"foreground\" value=\"#03e307ddfb5f\"/>"
 | 
						|
    "                </attributes>"
 | 
						|
    "              </object>"
 | 
						|
    "              <packing>"
 | 
						|
    "                <property name=\"expand\">False</property>"
 | 
						|
    "                <property name=\"position\">0</property>"
 | 
						|
    "              </packing>"
 | 
						|
    "            </child>"
 | 
						|
    "            <child>"
 | 
						|
    "              <object class=\"GtkFrame\" id=\"frame1\">"
 | 
						|
    "                <property name=\"visible\">True</property>"
 | 
						|
    "                <property name=\"label_xalign\">0</property>"
 | 
						|
    "                <property name=\"shadow_type\">out</property>"
 | 
						|
    "                <child>"
 | 
						|
    "                  <object class=\"GtkLabel\" id=\"label5\">"
 | 
						|
    "                    <property name=\"visible\">True</property>"
 | 
						|
    "                    <property name=\"label\" translatable=\"yes\">Neither of the panes are\n"
 | 
						|
    "set to shrink.</property>"
 | 
						|
    "                    <property name=\"justify\">center</property>"
 | 
						|
    "                    <attributes>"
 | 
						|
    "                      <attribute name=\"foreground\" value=\"#ffff00000000\"/>"
 | 
						|
    "                    </attributes>"
 | 
						|
    "                  </object>"
 | 
						|
    "                </child>"
 | 
						|
    "                <child type=\"label_item\">"
 | 
						|
    "                  <placeholder/>"
 | 
						|
    "                </child>"
 | 
						|
    "              </object>"
 | 
						|
    "              <packing>"
 | 
						|
    "                <property name=\"position\">1</property>"
 | 
						|
    "              </packing>"
 | 
						|
    "            </child>"
 | 
						|
    "          </object>"
 | 
						|
    "          <packing>"
 | 
						|
    "            <property name=\"resize\">False</property>"
 | 
						|
    "            <property name=\"shrink\">False</property>"
 | 
						|
    "          </packing>"
 | 
						|
    "        </child>"
 | 
						|
    "        <child>"
 | 
						|
    "          <object class=\"GtkHBox\" id=\"hbox2\">"
 | 
						|
    "            <property name=\"visible\">True</property>"
 | 
						|
    "            <child>"
 | 
						|
    "              <object class=\"GtkFrame\" id=\"frame2\">"
 | 
						|
    "                <property name=\"visible\">True</property>"
 | 
						|
    "                <property name=\"label_xalign\">0</property>"
 | 
						|
    "                <property name=\"shadow_type\">out</property>"
 | 
						|
    "                <child>"
 | 
						|
    "                  <object class=\"GtkLabel\" id=\"label4\">"
 | 
						|
    "                    <property name=\"visible\">True</property>"
 | 
						|
    "                    <property name=\"label\" translatable=\"yes\">The interface is allocated as height\n"
 | 
						|
    "for width, but the horizontal boxes\n"
 | 
						|
    "allocate in width for height mode.</property>"
 | 
						|
    "                    <attributes>"
 | 
						|
    "                      <attribute name=\"foreground\" value=\"#000097970808\"/>"
 | 
						|
    "                    </attributes>"
 | 
						|
    "                  </object>"
 | 
						|
    "                </child>"
 | 
						|
    "                <child type=\"label_item\">"
 | 
						|
    "                  <placeholder/>"
 | 
						|
    "                </child>"
 | 
						|
    "              </object>"
 | 
						|
    "              <packing>"
 | 
						|
    "                <property name=\"position\">0</property>"
 | 
						|
    "              </packing>"
 | 
						|
    "            </child>"
 | 
						|
    "            <child>"
 | 
						|
    "              <object class=\"GtkLabel\" id=\"label3\">"
 | 
						|
    "                <property name=\"visible\">True</property>"
 | 
						|
    "                <property name=\"label\" translatable=\"yes\">Some long width-for-height text that wraps</property>"
 | 
						|
    "                <property name=\"justify\">center</property>"
 | 
						|
    "                <property name=\"wrap\">True</property>"
 | 
						|
    "                <property name=\"width_chars\">10</property>"
 | 
						|
    "                <property name=\"angle\">270</property>"
 | 
						|
    "                <attributes>"
 | 
						|
    "                  <attribute name=\"weight\" value=\"bold\"/>"
 | 
						|
    "                  <attribute name=\"foreground\" value=\"#03e307ddfb5f\"/>"
 | 
						|
    "                </attributes>"
 | 
						|
    "              </object>"
 | 
						|
    "              <packing>"
 | 
						|
    "                <property name=\"expand\">False</property>"
 | 
						|
    "                <property name=\"position\">1</property>"
 | 
						|
    "              </packing>"
 | 
						|
    "            </child>"
 | 
						|
    "          </object>"
 | 
						|
    "          <packing>"
 | 
						|
    "            <property name=\"resize\">False</property>"
 | 
						|
    "            <property name=\"shrink\">False</property>"
 | 
						|
    "          </packing>"
 | 
						|
    "        </child>"
 | 
						|
    "      </object>"
 | 
						|
    "    </child>"
 | 
						|
    "  </object>"
 | 
						|
    "</interface>",
 | 
						|
    NULL
 | 
						|
  },
 | 
						|
 | 
						|
  {
 | 
						|
    "Label Parameters",
 | 
						|
    "This test demonstrates how \"width-chars\" and \"max-width-chars\" can be used "
 | 
						|
    "to effect minimum and natural widths in wrapping labels.",
 | 
						|
    "<interface>"
 | 
						|
    "  <requires lib=\"gtk+\" version=\"2.20\"/>"
 | 
						|
    "  <!-- interface-naming-policy project-wide -->"
 | 
						|
    "  <object class=\"GtkWindow\" id=\"window\">"
 | 
						|
    "    <property name=\"default_width\">900</property>"
 | 
						|
    "    <child>"
 | 
						|
    "      <object class=\"GtkHPaned\" id=\"hpaned1\">"
 | 
						|
    "        <property name=\"visible\">True</property>"
 | 
						|
    "        <property name=\"can_focus\">True</property>"
 | 
						|
    "        <child>"
 | 
						|
    "          <object class=\"GtkVBox\" id=\"vbox1\">"
 | 
						|
    "            <property name=\"visible\">True</property>"
 | 
						|
    "            <child>"
 | 
						|
    "              <object class=\"GtkHBox\" id=\"hbox1\">"
 | 
						|
    "                <property name=\"visible\">True</property>"
 | 
						|
    "                <property name=\"spacing\">6</property>"
 | 
						|
    "                <child>"
 | 
						|
    "                  <object class=\"GtkLabel\" id=\"label1\">"
 | 
						|
    "                    <property name=\"visible\">True</property>"
 | 
						|
    "                    <property name=\"label\" translatable=\"yes\">The first 2 labels require 10 characters.</property>"
 | 
						|
    "                    <property name=\"wrap\">True</property>"
 | 
						|
    "                    <property name=\"width_chars\">10</property>"
 | 
						|
    "                    <attributes>"
 | 
						|
    "                      <attribute name=\"weight\" value=\"bold\"/>"
 | 
						|
    "                      <attribute name=\"foreground\" value=\"#ffff00000000\"/>"
 | 
						|
    "                    </attributes>"
 | 
						|
    "                  </object>"
 | 
						|
    "                  <packing>"
 | 
						|
    "                    <property name=\"expand\">False</property>"
 | 
						|
    "                    <property name=\"fill\">False</property>"
 | 
						|
    "                    <property name=\"position\">0</property>"
 | 
						|
    "                  </packing>"
 | 
						|
    "                </child>"
 | 
						|
    "                <child>"
 | 
						|
    "                  <object class=\"GtkLabel\" id=\"label2\">"
 | 
						|
    "                    <property name=\"visible\">True</property>"
 | 
						|
    "                    <property name=\"label\" translatable=\"yes\">This label has a maximum natural width of 20 characters. The second two labels expand.</property>"
 | 
						|
    "                    <property name=\"wrap\">True</property>"
 | 
						|
    "                    <property name=\"width_chars\">10</property>"
 | 
						|
    "                    <property name=\"max_width_chars\">20</property>"
 | 
						|
    "                    <attributes>"
 | 
						|
    "                      <attribute name=\"weight\" value=\"bold\"/>"
 | 
						|
    "                      <attribute name=\"foreground\" value=\"#05c2a161134b\"/>"
 | 
						|
    "                    </attributes>"
 | 
						|
    "                  </object>"
 | 
						|
    "                  <packing>"
 | 
						|
    "                    <property name=\"expand\">True</property>"
 | 
						|
    "                    <property name=\"fill\">True</property>"
 | 
						|
    "                    <property name=\"position\">1</property>"
 | 
						|
    "                  </packing>"
 | 
						|
    "                </child>"
 | 
						|
    "                <child>"
 | 
						|
    "                  <object class=\"GtkLabel\" id=\"label3\">"
 | 
						|
    "                    <property name=\"visible\">True</property>"
 | 
						|
    "                    <property name=\"label\" translatable=\"yes\">This label requires a default minimum size.</property>"
 | 
						|
    "                    <property name=\"wrap\">True</property>"
 | 
						|
    "                    <attributes>"
 | 
						|
    "                      <attribute name=\"weight\" value=\"bold\"/>"
 | 
						|
    "                      <attribute name=\"foreground\" value=\"#03e30758fb5f\"/>"
 | 
						|
    "                    </attributes>"
 | 
						|
    "                  </object>"
 | 
						|
    "                  <packing>"
 | 
						|
    "                    <property name=\"position\">2</property>"
 | 
						|
    "                  </packing>"
 | 
						|
    "                </child>"
 | 
						|
    "              </object>"
 | 
						|
    "              <packing>"
 | 
						|
    "                <property name=\"position\">0</property>"
 | 
						|
    "              </packing>"
 | 
						|
    "            </child>"
 | 
						|
    "            <child>"
 | 
						|
    "              <object class=\"GtkLabel\" id=\"label4\">"
 | 
						|
    "                <property name=\"visible\">True</property>"
 | 
						|
    "                <property name=\"label\" translatable=\"yes\">This test demonstrates how the \"width-chars\" and \"max-width-chars\"\n"
 | 
						|
    "properties can be used to specify the minimum requested wrap width\n"
 | 
						|
    "and the maximum natural wrap width respectively.</property>"
 | 
						|
    "                <property name=\"ellipsize\">end</property>"
 | 
						|
    "                <property name=\"width_chars\">30</property>"
 | 
						|
    "                <attributes>"
 | 
						|
    "                  <attribute name=\"style\" value=\"normal\"/>"
 | 
						|
    "                  <attribute name=\"foreground\" value=\"#05470000abaf\"/>"
 | 
						|
    "                </attributes>"
 | 
						|
    "              </object>"
 | 
						|
    "              <packing>"
 | 
						|
    "                <property name=\"position\">1</property>"
 | 
						|
    "              </packing>"
 | 
						|
    "            </child>"
 | 
						|
    "          </object>"
 | 
						|
    "          <packing>"
 | 
						|
    "            <property name=\"resize\">False</property>"
 | 
						|
    "            <property name=\"shrink\">False</property>"
 | 
						|
    "          </packing>"
 | 
						|
    "        </child>"
 | 
						|
    "        <child>"
 | 
						|
    "          <object class=\"GtkLabel\" id=\"label5\">"
 | 
						|
    "            <property name=\"visible\">True</property>"
 | 
						|
    "            <property name=\"label\" translatable=\"yes\">Some static\n"
 | 
						|
    "text that shrinks.\n"
 | 
						|
    "\n"
 | 
						|
    "You will need to stretch\n"
 | 
						|
    "this window quite wide\n"
 | 
						|
    "to see the effects.</property>"
 | 
						|
    "            <property name=\"justify\">center</property>"
 | 
						|
    "            <attributes>"
 | 
						|
    "              <attribute name=\"foreground\" value=\"#ffff00000000\"/>"
 | 
						|
    "            </attributes>"
 | 
						|
    "          </object>"
 | 
						|
    "          <packing>"
 | 
						|
    "            <property name=\"resize\">True</property>"
 | 
						|
    "            <property name=\"shrink\">True</property>"
 | 
						|
    "          </packing>"
 | 
						|
    "        </child>"
 | 
						|
    "      </object>"
 | 
						|
    "    </child>"
 | 
						|
    "  </object>"
 | 
						|
    "</interface>",
 | 
						|
    NULL
 | 
						|
  },
 | 
						|
 | 
						|
  {
 | 
						|
    "Wrapping Expander",
 | 
						|
    "This test demonstrates how the expander label can fill to its natural width "
 | 
						|
    "and also trade height for width.",
 | 
						|
    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
 | 
						|
    "<interface>"
 | 
						|
    "  <requires lib=\"gtk+\" version=\"2.20\"/>"
 | 
						|
    "  <!-- interface-naming-policy project-wide -->"
 | 
						|
    "  <object class=\"GtkWindow\" id=\"window\">"
 | 
						|
    "    <property name=\"default_width\">500</property>"
 | 
						|
    "    <child>"
 | 
						|
    "      <object class=\"GtkHPaned\" id=\"hpaned1\">"
 | 
						|
    "        <property name=\"visible\">True</property>"
 | 
						|
    "        <property name=\"can_focus\">True</property>"
 | 
						|
    "        <child>"
 | 
						|
    "          <object class=\"GtkExpander\" id=\"expander1\">"
 | 
						|
    "            <property name=\"visible\">True</property>"
 | 
						|
    "            <property name=\"can_focus\">True</property>"
 | 
						|
    "            <child>"
 | 
						|
    "              <object class=\"GtkLabel\" id=\"label2\">"
 | 
						|
    "                <property name=\"visible\">True</property>"
 | 
						|
    "                <property name=\"label\" translatable=\"yes\">More wrapping text to fill the largish content area in the expander </property>"
 | 
						|
    "                <property name=\"wrap\">True</property>"
 | 
						|
    "                <property name=\"width_chars\">10</property>"
 | 
						|
    "                <attributes>"
 | 
						|
    "                  <attribute name=\"weight\" value=\"bold\"/>"
 | 
						|
    "                  <attribute name=\"foreground\" value=\"#0000D0F00000\"/>"
 | 
						|
    "                </attributes>"
 | 
						|
    "              </object>"
 | 
						|
    "            </child>"
 | 
						|
    "            <child type=\"label\">"
 | 
						|
    "              <object class=\"GtkLabel\" id=\"label1\">"
 | 
						|
    "                <property name=\"visible\">True</property>"
 | 
						|
    "                <property name=\"label\" translatable=\"yes\">Here is some expander text that wraps</property>"
 | 
						|
    "                <property name=\"wrap\">True</property>"
 | 
						|
    "                <property name=\"width_chars\">10</property>"
 | 
						|
    "                <attributes>"
 | 
						|
    "                  <attribute name=\"weight\" value=\"bold\"/>"
 | 
						|
    "                  <attribute name=\"foreground\" value=\"blue\"/>"
 | 
						|
    "                </attributes>"
 | 
						|
    "              </object>"
 | 
						|
    "            </child>"
 | 
						|
    "          </object>"
 | 
						|
    "          <packing>"
 | 
						|
    "            <property name=\"resize\">False</property>"
 | 
						|
    "            <property name=\"shrink\">False</property>"
 | 
						|
    "          </packing>"
 | 
						|
    "        </child>"
 | 
						|
    "        <child>"
 | 
						|
    "          <object class=\"GtkLabel\" id=\"label3\">"
 | 
						|
    "            <property name=\"visible\">True</property>"
 | 
						|
    "            <property name=\"label\" translatable=\"yes\">static\n"
 | 
						|
    "text\n"
 | 
						|
    "here</property>"
 | 
						|
    "            <attributes>"
 | 
						|
    "              <attribute name=\"foreground\" value=\"red\"/>"
 | 
						|
    "            </attributes>"
 | 
						|
    "          </object>"
 | 
						|
    "          <packing>"
 | 
						|
    "            <property name=\"resize\">True</property>"
 | 
						|
    "            <property name=\"shrink\">True</property>"
 | 
						|
    "          </packing>"
 | 
						|
    "        </child>"
 | 
						|
    "      </object>"
 | 
						|
    "    </child>"
 | 
						|
    "  </object>"
 | 
						|
    "</interface>",
 | 
						|
    NULL
 | 
						|
  },
 | 
						|
 | 
						|
  {
 | 
						|
    "Wrapping Frame Label",
 | 
						|
    "This test demonstrates how the frame label can fill to its natural width "
 | 
						|
    "and also trade height for width.",
 | 
						|
    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
 | 
						|
    "<interface>"
 | 
						|
    "  <requires lib=\"gtk+\" version=\"2.20\"/>"
 | 
						|
    "  <!-- interface-naming-policy project-wide -->"
 | 
						|
    "  <object class=\"GtkWindow\" id=\"window\">"
 | 
						|
    "    <property name=\"default_width\">400</property>"
 | 
						|
    "    <property name=\"default_height\">150</property>"
 | 
						|
    "    <child>"
 | 
						|
    "      <object class=\"GtkFrame\" id=\"frame1\">"
 | 
						|
    "        <property name=\"visible\">True</property>"
 | 
						|
    "        <property name=\"border_width\">8</property>"
 | 
						|
    "        <property name=\"label_xalign\">0</property>"
 | 
						|
    "        <child>"
 | 
						|
    "          <object class=\"GtkAlignment\" id=\"alignment1\">"
 | 
						|
    "            <property name=\"visible\">True</property>"
 | 
						|
    "            <property name=\"left_padding\">12</property>"
 | 
						|
    "            <child>"
 | 
						|
    "              <object class=\"GtkLabel\" id=\"label2\">"
 | 
						|
    "                <property name=\"visible\">True</property>"
 | 
						|
    "                <property name=\"label\" translatable=\"yes\">some content</property>"
 | 
						|
    "              </object>"
 | 
						|
    "            </child>"
 | 
						|
    "          </object>"
 | 
						|
    "        </child>"
 | 
						|
    "        <child type=\"label\">"
 | 
						|
    "          <object class=\"GtkLabel\" id=\"label1\">"
 | 
						|
    "            <property name=\"visible\">True</property>"
 | 
						|
    "            <property name=\"label\" translatable=\"yes\">A frame label that's a little long and wraps</property>"
 | 
						|
    "            <property name=\"use_markup\">True</property>"
 | 
						|
    "            <property name=\"wrap\">True</property>"
 | 
						|
    "          </object>"
 | 
						|
    "        </child>"
 | 
						|
    "      </object>"
 | 
						|
    "    </child>"
 | 
						|
    "  </object>"
 | 
						|
    "</interface>",
 | 
						|
    NULL
 | 
						|
  },
 | 
						|
 | 
						|
  {
 | 
						|
    "Combo Boxes and Menus",
 | 
						|
    "This test shows wrapping and ellipsizing text in combo boxes (and consequently in menu items).",
 | 
						|
    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
 | 
						|
    "<interface>"
 | 
						|
    "  <requires lib=\"gtk+\" version=\"2.20\"/>"
 | 
						|
    "  <!-- interface-naming-policy project-wide -->"
 | 
						|
    "  <object class=\"GtkWindow\" id=\"window\">"
 | 
						|
    "    <property name=\"border_width\">8</property>"
 | 
						|
    "    <property name=\"default_width\">600</property>"
 | 
						|
    "    <child>"
 | 
						|
    "      <object class=\"GtkHPaned\" id=\"hpaned1\">"
 | 
						|
    "        <property name=\"visible\">True</property>"
 | 
						|
    "        <property name=\"can_focus\">True</property>"
 | 
						|
    "        <child>"
 | 
						|
    "          <object class=\"GtkVBox\" id=\"vbox1\">"
 | 
						|
    "            <property name=\"visible\">True</property>"
 | 
						|
    "            <property name=\"spacing\">5</property>"
 | 
						|
    "            <child>"
 | 
						|
    "              <object class=\"GtkHBox\" id=\"hbox1\">"
 | 
						|
    "                <property name=\"visible\">True</property>"
 | 
						|
    "                <property name=\"spacing\">5</property>"
 | 
						|
    "                <child>"
 | 
						|
    "                  <object class=\"GtkLabel\" id=\"label1\">"
 | 
						|
    "                    <property name=\"visible\">True</property>"
 | 
						|
    "                    <property name=\"label\" translatable=\"yes\">this combo box</property>"
 | 
						|
    "                    <attributes>"
 | 
						|
    "                      <attribute name=\"weight\" value=\"bold\"/>"
 | 
						|
    "                      <attribute name=\"foreground\" value=\"#b3460000eb1c\"/>"
 | 
						|
    "                    </attributes>"
 | 
						|
    "                  </object>"
 | 
						|
    "                  <packing>"
 | 
						|
    "                    <property name=\"expand\">True</property>"
 | 
						|
    "                    <property name=\"fill\">True</property>"
 | 
						|
    "                    <property name=\"position\">0</property>"
 | 
						|
    "                  </packing>"
 | 
						|
    "                </child>"
 | 
						|
    "                <child>"
 | 
						|
    "                  <object class=\"GtkLabel\" id=\"label2\">"
 | 
						|
    "                    <property name=\"visible\">True</property>"
 | 
						|
    "                    <property name=\"label\" translatable=\"yes\">contains some wrapping locations</property>"
 | 
						|
    "                    <property name=\"ellipsize\">end</property>"
 | 
						|
    "                    <property name=\"width_chars\">10</property>"
 | 
						|
    "                    <attributes>"
 | 
						|
    "                      <attribute name=\"weight\" value=\"bold\"/>"
 | 
						|
    "                      <attribute name=\"foreground\" value=\"#b3460000eb1c\"/>"
 | 
						|
    "                    </attributes>"
 | 
						|
    "                  </object>"
 | 
						|
    "                  <packing>"
 | 
						|
    "                    <property name=\"expand\">True</property>"
 | 
						|
    "                    <property name=\"fill\">True</property>"
 | 
						|
    "                    <property name=\"position\">1</property>"
 | 
						|
    "                  </packing>"
 | 
						|
    "                </child>"
 | 
						|
    "                <child>"
 | 
						|
    "                  <object class=\"GtkComboBox\" id=\"combobox1\">"
 | 
						|
    "                    <property name=\"visible\">True</property>"
 | 
						|
    "                    <property name=\"model\">liststore1</property>"
 | 
						|
    "                    <property name=\"active\">0</property>"
 | 
						|
    "                    <child>"
 | 
						|
    "                      <object class=\"GtkCellRendererPixbuf\" id=\"cellrenderertext1\"/>"
 | 
						|
    "                      <attributes>"
 | 
						|
    "                        <attribute name=\"icon-name\">1</attribute>"
 | 
						|
    "                      </attributes>"
 | 
						|
    "                    </child>"
 | 
						|
    "                    <child>"
 | 
						|
    "                      <object class=\"GtkCellRendererText\" id=\"cellrenderertext2\">"
 | 
						|
    "                        <property name=\"foreground\">purple</property>"
 | 
						|
    "                        <property name=\"weight\">600</property>"
 | 
						|
    "                        <property name=\"wrap_mode\">word</property>"
 | 
						|
    "                        <property name=\"wrap_width\">100</property>"
 | 
						|
    "                      </object>"
 | 
						|
    "                      <attributes>"
 | 
						|
    "                        <attribute name=\"text\">0</attribute>"
 | 
						|
    "                      </attributes>"
 | 
						|
    "                    </child>"
 | 
						|
    "                  </object>"
 | 
						|
    "                  <packing>"
 | 
						|
    "                    <property name=\"expand\">True</property>"
 | 
						|
    "                    <property name=\"fill\">True</property>"
 | 
						|
    "                    <property name=\"position\">2</property>"
 | 
						|
    "                  </packing>"
 | 
						|
    "                </child>"
 | 
						|
    "              </object>"
 | 
						|
    "              <packing>"
 | 
						|
    "                <property name=\"expand\">False</property>"
 | 
						|
    "                <property name=\"fill\">True</property>"
 | 
						|
    "                <property name=\"position\">0</property>"
 | 
						|
    "              </packing>"
 | 
						|
    "            </child>"
 | 
						|
    "            <child>"
 | 
						|
    "              <object class=\"GtkFrame\" id=\"frame1\">"
 | 
						|
    "                <property name=\"visible\">True</property>"
 | 
						|
    "                <property name=\"label_xalign\">0</property>"
 | 
						|
    "                <child>"
 | 
						|
    "                  <object class=\"GtkLabel\" id=\"label3\">"
 | 
						|
    "                    <property name=\"visible\">True</property>"
 | 
						|
    "                    <property name=\"label\" translatable=\"yes\">This test shows combo boxes\n"
 | 
						|
    "requesting and allocating space\n"
 | 
						|
    "for its backing content using\n"
 | 
						|
    "height-for-width geometry\n"
 | 
						|
    "management.\n"
 | 
						|
    "\n"
 | 
						|
    "Note this test also demonstrates\n"
 | 
						|
    "height-for-width menu items.</property>"
 | 
						|
    "                    <property name=\"justify\">center</property>"
 | 
						|
    "                    <attributes>"
 | 
						|
    "                      <attribute name=\"weight\" value=\"bold\"/>"
 | 
						|
    "                      <attribute name=\"foreground\" value=\"#00000000ffff\"/>"
 | 
						|
    "                    </attributes>"
 | 
						|
    "                  </object>"
 | 
						|
    "                </child>"
 | 
						|
    "              </object>"
 | 
						|
    "              <packing>"
 | 
						|
    "                <property name=\"expand\">True</property>"
 | 
						|
    "                <property name=\"fill\">True</property>"
 | 
						|
    "                <property name=\"position\">1</property>"
 | 
						|
    "              </packing>"
 | 
						|
    "            </child>"
 | 
						|
    "            <child>"
 | 
						|
    "              <object class=\"GtkHBox\" id=\"hbox2\">"
 | 
						|
    "                <property name=\"visible\">True</property>"
 | 
						|
    "                <property name=\"spacing\">5</property>"
 | 
						|
    "                <child>"
 | 
						|
    "                  <object class=\"GtkLabel\" id=\"label4\">"
 | 
						|
    "                    <property name=\"visible\">True</property>"
 | 
						|
    "                    <property name=\"label\" translatable=\"yes\">this combo box</property>"
 | 
						|
    "                    <attributes>"
 | 
						|
    "                      <attribute name=\"weight\" value=\"bold\"/>"
 | 
						|
    "                      <attribute name=\"foreground\" value=\"#ffffa5a50000\"/>"
 | 
						|
    "                    </attributes>"
 | 
						|
    "                  </object>"
 | 
						|
    "                  <packing>"
 | 
						|
    "                    <property name=\"expand\">True</property>"
 | 
						|
    "                    <property name=\"fill\">True</property>"
 | 
						|
    "                    <property name=\"position\">0</property>"
 | 
						|
    "                  </packing>"
 | 
						|
    "                </child>"
 | 
						|
    "                <child>"
 | 
						|
    "                  <object class=\"GtkLabel\" id=\"label5\">"
 | 
						|
    "                    <property name=\"visible\">True</property>"
 | 
						|
    "                    <property name=\"label\" translatable=\"yes\">contains some ellipsizing locations</property>"
 | 
						|
    "                    <property name=\"ellipsize\">end</property>"
 | 
						|
    "                    <property name=\"width_chars\">10</property>"
 | 
						|
    "                    <attributes>"
 | 
						|
    "                      <attribute name=\"weight\" value=\"bold\"/>"
 | 
						|
    "                      <attribute name=\"foreground\" value=\"#ffffa5a50000\"/>"
 | 
						|
    "                    </attributes>"
 | 
						|
    "                  </object>"
 | 
						|
    "                  <packing>"
 | 
						|
    "                    <property name=\"expand\">True</property>"
 | 
						|
    "                    <property name=\"fill\">True</property>"
 | 
						|
    "                    <property name=\"position\">1</property>"
 | 
						|
    "                  </packing>"
 | 
						|
    "                </child>"
 | 
						|
    "                <child>"
 | 
						|
    "                  <object class=\"GtkComboBox\" id=\"combobox2\">"
 | 
						|
    "                    <property name=\"visible\">True</property>"
 | 
						|
    "                    <property name=\"model\">liststore1</property>"
 | 
						|
    "                    <property name=\"active\">0</property>"
 | 
						|
    "                    <child>"
 | 
						|
    "                      <object class=\"GtkCellRendererPixbuf\" id=\"cellrenderertext3\"/>"
 | 
						|
    "                      <attributes>"
 | 
						|
    "                        <attribute name=\"icon-name\">1</attribute>"
 | 
						|
    "                      </attributes>"
 | 
						|
    "                    </child>"
 | 
						|
    "                    <child>"
 | 
						|
    "                      <object class=\"GtkCellRendererText\" id=\"cellrenderertext4\">"
 | 
						|
    "                        <property name=\"ellipsize\">end</property>"
 | 
						|
    "                        <property name=\"foreground\">orange</property>"
 | 
						|
    "                        <property name=\"weight\">600</property>"
 | 
						|
    "                        <property name=\"width_chars\">10</property>"
 | 
						|
    "                      </object>"
 | 
						|
    "                      <attributes>"
 | 
						|
    "                        <attribute name=\"text\">0</attribute>"
 | 
						|
    "                      </attributes>"
 | 
						|
    "                    </child>"
 | 
						|
    "                  </object>"
 | 
						|
    "                  <packing>"
 | 
						|
    "                    <property name=\"expand\">True</property>"
 | 
						|
    "                    <property name=\"fill\">True</property>"
 | 
						|
    "                    <property name=\"position\">2</property>"
 | 
						|
    "                  </packing>"
 | 
						|
    "                </child>"
 | 
						|
    "              </object>"
 | 
						|
    "              <packing>"
 | 
						|
    "                <property name=\"expand\">False</property>"
 | 
						|
    "                <property name=\"fill\">True</property>"
 | 
						|
    "                <property name=\"position\">2</property>"
 | 
						|
    "              </packing>"
 | 
						|
    "            </child>"
 | 
						|
    "          </object>"
 | 
						|
    "          <packing>"
 | 
						|
    "            <property name=\"resize\">True</property>"
 | 
						|
    "            <property name=\"shrink\">False</property>"
 | 
						|
    "          </packing>"
 | 
						|
    "        </child>"
 | 
						|
    "        <child>"
 | 
						|
    "          <object class=\"GtkLabel\" id=\"label6\">"
 | 
						|
    "            <property name=\"visible\">True</property>"
 | 
						|
    "            <property name=\"label\" translatable=\"yes\">Some static\n"
 | 
						|
    "text here\n"
 | 
						|
    "that shrinks.</property>"
 | 
						|
    "            <property name=\"justify\">center</property>"
 | 
						|
    "            <attributes>"
 | 
						|
    "              <attribute name=\"foreground\" value=\"#ffff00000000\"/>"
 | 
						|
    "            </attributes>"
 | 
						|
    "          </object>"
 | 
						|
    "          <packing>"
 | 
						|
    "            <property name=\"resize\">False</property>"
 | 
						|
    "            <property name=\"shrink\">True</property>"
 | 
						|
    "          </packing>"
 | 
						|
    "        </child>"
 | 
						|
    "      </object>"
 | 
						|
    "    </child>"
 | 
						|
    "  </object>"
 | 
						|
    "  <object class=\"GtkListStore\" id=\"liststore1\">"
 | 
						|
    "    <columns>"
 | 
						|
    "      <!-- column-name item-text -->"
 | 
						|
    "      <column type=\"gchararray\"/>"
 | 
						|
    "      <!-- column-name icon-name -->"
 | 
						|
    "      <column type=\"gchararray\"/>"
 | 
						|
    "    </columns>"
 | 
						|
    "    <data>"
 | 
						|
    "      <row>"
 | 
						|
    "        <col id=\"0\" translatable=\"yes\">Montreal, Quebec Canada</col>"
 | 
						|
    "        <col id=\"1\" translatable=\"yes\">edit-undo</col>"
 | 
						|
    "      </row>"
 | 
						|
    "      <row>"
 | 
						|
    "        <col id=\"0\" translatable=\"yes\">Sao Paulo, SP Brazil</col>"
 | 
						|
    "        <col id=\"1\" translatable=\"yes\">edit-redo</col>"
 | 
						|
    "      </row>"
 | 
						|
    "      <row>"
 | 
						|
    "        <col id=\"0\" translatable=\"yes\">Buenos Aires, Argentina</col>"
 | 
						|
    "        <col id=\"1\" translatable=\"yes\">process-stop</col>"
 | 
						|
    "      </row>"
 | 
						|
    "      <row>"
 | 
						|
    "        <col id=\"0\" translatable=\"yes\">Los Angelos, California USA</col>"
 | 
						|
    "        <col id=\"1\" translatable=\"yes\">media-record</col>"
 | 
						|
    "      </row>"
 | 
						|
    "      <row>"
 | 
						|
    "        <col id=\"0\" translatable=\"yes\">Rio de Janeiro, RJ Brazil</col>"
 | 
						|
    "        <col id=\"1\" translatable=\"yes\">dialog-error</col>"
 | 
						|
    "      </row>"
 | 
						|
    "      <row>"
 | 
						|
    "        <col id=\"0\" translatable=\"yes\">Seoul, South Korea</col>"
 | 
						|
    "        <col id=\"1\" translatable=\"yes\">dialog-information</col>"
 | 
						|
    "      </row>"
 | 
						|
    "    </data>"
 | 
						|
    "  </object>"
 | 
						|
    "</interface>",
 | 
						|
    NULL
 | 
						|
  },
 | 
						|
  
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
static void
 | 
						|
test_clicked (GtkWidget     *button, 
 | 
						|
	      TestInterface *interface)
 | 
						|
{
 | 
						|
  if (!interface->window)
 | 
						|
    {
 | 
						|
      GtkBuilder *builder = gtk_builder_new ();
 | 
						|
      
 | 
						|
      gtk_builder_add_from_string (builder, interface->interface, -1, NULL);
 | 
						|
      interface->window = (GtkWidget *)gtk_builder_get_object (builder, "window");
 | 
						|
 | 
						|
      g_signal_connect (interface->window, "delete_event", 
 | 
						|
			G_CALLBACK (gtk_widget_hide_on_delete), NULL);
 | 
						|
    }
 | 
						|
 | 
						|
  gtk_widget_show (interface->window);
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
static GtkWidget *
 | 
						|
create_window (void)
 | 
						|
{
 | 
						|
  GtkWidget *window, *vbox, *button;
 | 
						|
  gint i;
 | 
						|
 | 
						|
  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
 | 
						|
  vbox   = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
 | 
						|
 | 
						|
  gtk_container_set_border_width (GTK_CONTAINER (window), 8);
 | 
						|
 | 
						|
  gtk_widget_show (vbox);
 | 
						|
  gtk_container_add (GTK_CONTAINER (window), vbox);
 | 
						|
 | 
						|
  for (i = 0; i < G_N_ELEMENTS (interfaces); i++)
 | 
						|
    {
 | 
						|
      button = gtk_button_new_with_label (interfaces[i].name);
 | 
						|
 | 
						|
      gtk_widget_set_tooltip_text (button, interfaces[i].tooltip);
 | 
						|
 | 
						|
      g_signal_connect (G_OBJECT (button), "clicked", 
 | 
						|
			G_CALLBACK (test_clicked), &interfaces[i]);
 | 
						|
 | 
						|
      gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
 | 
						|
      gtk_widget_show (button);
 | 
						|
    }
 | 
						|
 | 
						|
  return window;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 | 
						|
int
 | 
						|
main (int argc, char *argv[])
 | 
						|
{
 | 
						|
  GtkWidget *window;
 | 
						|
 | 
						|
  gtk_init (&argc, &argv);
 | 
						|
 | 
						|
  window = create_window ();
 | 
						|
 | 
						|
  g_signal_connect (window, "delete-event",
 | 
						|
                    G_CALLBACK (gtk_main_quit), window);
 | 
						|
 | 
						|
  gtk_widget_show (window);
 | 
						|
 | 
						|
  gtk_main ();
 | 
						|
 | 
						|
  return 0;
 | 
						|
}
 |