<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
<!ENTITY appversion "3.1.0">
<!ENTITY manrevision "3.0">
<!ENTITY app "Glade">
]>
<!-- 
  Maintained by the GNOME Documentation Project
  http://developer.gnome.org/projects/gdp
  Template version: 2.0 beta
  Template last modified Apr 11, 2002
-->
<article id="index" lang="en_GB">

  <articleinfo> 
    <title>Glade Interface Designer Manual</title> 
      
    <abstract role="description"><para>Glade is a user interface designer for GTK+ applications.</para>
    </abstract>

    <copyright lang="en"> 
      <year>2006</year> 
      <holder>Vincent Geddes</holder> 
    </copyright>
    <copyright lang="en"> 
      <year>2004</year>
      <year>2003</year>
      <holder>Sun Microsystems</holder> 
    </copyright> 
    <copyright lang="en"> 
      <year>2002</year><year>2000</year> 
      <holder>Michael Vance</holder> 
    </copyright> 

    <publisher> 
      <publishername>GNOME Documentation Project</publishername> 
    </publisher> 

   <include xmlns="http://www.w3.org/2001/XInclude" href="legal.xml"/>

    <authorgroup> 
      <author role="maintainer" lang="en"> 
	<firstname>Vincent</firstname> 
	<surname>Geddes</surname> 
	<affiliation> 
	  <orgname>GNOME Documentation Project</orgname>
	  <address><email>vincent.geddes@gmail.com</email></address>
	</affiliation>
      </author> 
      <author lang="en"> 
        <firstname>Sun</firstname> 
        <surname>GNOME Documentation Team</surname> 
        <affiliation> 
          <orgname>Sun Microsystems</orgname> 
        </affiliation> 
       </author> 
       <author lang="en"> 
         <firstname>Michael</firstname> 
         <surname>Vance</surname> 
         <affiliation> 
           <orgname>GNOME Documentation Project</orgname> 
           </affiliation> 
       </author> 
    </authorgroup>


<!-- According to GNU FDL, revision history is mandatory if you are -->
<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
<!-- Remember to remove the &manrevision; entity from the revision entries other
-->
<!-- than the current revision. -->
<!-- The revision numbering system for GNOME manuals is as follows: -->
<!-- * the revision number consists of two components -->
<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
<!-- * the second component of the revision number is a decimal unit that is incremented with each revision of the manual. -->
<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
<!-- to V3.0, and so on. -->  
    <revhistory>
        <revision lang="en"> 
		<revnumber>Glade Manual 3.0</revnumber> 
		<date>5 December 2006</date>
		<revdescription> 
	  		<para role="author" lang="en">Vincent Geddes</para>
	  		<para role="publisher" lang="en">GNOME Documentation Project</para>
		</revdescription> 
        </revision>
        <revision lang="en"> 
                <revnumber>Glade Manual 2.1;</revnumber> 
                <date>17 June 2004</date> 
                <revdescription> 
                        <para role="author" lang="en">Sun GNOME Documentation Team</para>
                        <para role="publisher" lang="en">GNOME Documentation Project</para>
                </revdescription> 
        </revision>
        <revision lang="en"> 
                <revnumber>Glade User Manual 2.0</revnumber> 
                <date>25 February 2004</date> 
                <revdescription> 
                        <para role="author" lang="en">Sun GNOME Documentation Team</para>
                        <para role="publisher" lang="en">GNOME Documentation Project</para>
                </revdescription> 
        </revision>             
        <revision lang="en"> 
                <revnumber>Glade User Manual 1.2</revnumber> 
                <date>10 Feb 2004</date> 
                <revdescription> 
                        <para role="author" lang="en">Sun GNOME Documentation Team</para>
                        <para role="publisher" lang="en">GNOME Documentation Project</para>
                </revdescription> 
        </revision>  
        <revision lang="en"> 
                <revnumber>Glade User Manual 1.1</revnumber> 
                <date>30 Mar 2002</date> 
                <revdescription> 
                        <para role="author" lang="en"> Michael Vance</para>
                        <para role="publisher" lang="en">GNOME Documentation Project</para>
                </revdescription> 
        </revision> 
        <revision lang="en"> 
                <revnumber>Glade User Manual 1.0</revnumber> 
                <date>11 May 2000</date> 
                <revdescription> 
                        <para role="author" lang="en">Michael Vance</para>
                        <para role="publisher" lang="en">GNOME Documentation Project</para>
                </revdescription> 
        </revision> 
    </revhistory> 

    <releaseinfo>This manual describes version 3.1.0 of Glade.</releaseinfo> 
    <legalnotice> 
      <title>Feedback</title> 
      <para lang="en">To report a bug or make a suggestion regarding the Glade application or this manual, visit
      the <ulink url="https://gitlab.gnome.org/GNOME/glade/issues/">GNOME Issue Tracker</ulink>. 

      </para>
<!-- Translators may also add here feedback address for translations -->
    </legalnotice> 
  </articleinfo> 

    <indexterm lang="en"><primary>glade</primary></indexterm>
    <indexterm lang="en"><primary>user interface designer</primary></indexterm>


<!-- ============= Document Body ============================= -->
<!-- ============= Introduction ============================== -->
<!-- Use the Introduction section to give a brief overview of what
     the application is and what it does. -->
  <sect1 id="introduction"> 
    <title>Introduction</title> 

    <para>The <application>Glade</application> interface designer enables you to create and edit user interface designs for <application>GTK+</application> applications.</para>

    <para>The GTK+ library provides an extensive collection of user interface building blocks such as text boxes, dialogue labels, numeric entries, check boxes, and menus. These building blocks are called <emphasis>widgets</emphasis>. You can use Glade to place widgets in a GUI. Glade allows you to modify the layout and properties of these widgets. You can also use Glade to add connections between widgets and application source code.</para>

    <para>The user interfaces designed in Glade are stored in an XML format, enabling easy integration with external tools. You can use the <application>libglade</application> library to dynamically create GUIs from the XML description.</para>

  </sect1>

  <sect1 id="getting-started"> 
    <title>Getting Started</title> 

    <sect2 id="glade-start">
    <title>To Start <application>Glade</application></title>
    <para>You can start <application>Glade</application> in the following ways:</para> 
    <variablelist>
    	<varlistentry>
    		<term><guimenu>Applications</guimenu> menu</term>
    		<listitem>
    		<para lang="en">Choose 
    		<menuchoice>
    		<guisubmenu>Programming</guisubmenu>
    		<guimenuitem>Glade</guimenuitem>
    		</menuchoice>. </para>
    		</listitem>
    	</varlistentry>
    	<varlistentry>
    		<term>Command line</term>
    		<listitem>
			<para lang="en">To start <application>Glade</application> from a command line, type <command>glade</command>
			and then press <keycap>Return</keycap>.</para>
    		</listitem>
    	</varlistentry>
    </variablelist>
    </sect2>

    <sect2 id="glade-when-start">
    <title>When You Start <application>Glade</application></title>
    <para>When you start <application>Glade</application>, the following window is displayed.</para>

        <figure id="main-window-fig"> 
          <title><application>Glade</application> window</title> 
            <screenshot> 
              <mediaobject lang="en">
                <imageobject><imagedata fileref="figures/main-window.png" format="PNG"/></imageobject>
                <textobject><phrase>Shows the <application>Glade</application> window.</phrase></textobject> 
              </mediaobject> 
            </screenshot> 
        </figure>
        
        <para>The <application>Glade</application> window contains the following elements:</para>

        <variablelist>
          <varlistentry> <term>Menubar</term>
            <listitem>
            <para>The menus on the menubar contain all of the commands you need to work with files in <application>Glade</application>.</para>
            </listitem>
          </varlistentry>
          <varlistentry> <term>Toolbar</term>
            <listitem>
            <para>The toolbar contains a subset of the commands that you can access from the menubar.</para>
            </listitem>
          </varlistentry>
          <varlistentry> <term>Design Area</term>
            <listitem>
            <para>The design area is where a user interface can be visually edited.</para>
            </listitem>
          </varlistentry>
          <varlistentry> <term>Palette</term>
            <listitem>
            <para>The palette contains the widgets that can be used to build a user interface.</para>
            </listitem>
          </varlistentry>
          <varlistentry> <term>Inspector</term>
            <listitem>
            <para>The inspector displays information about the widgets in a project.</para>
            </listitem>
          </varlistentry>
          <varlistentry> <term>Property Editor</term>
            <listitem>
            <para>The property editor is used to manipulate the properties of widgets, as well as adding connections to source code.</para>
            </listitem>
          </varlistentry>
          <varlistentry> <term>Status bar</term>
            <listitem>
            <para>The status bar displays information about current <application>Glade</application> activity and contextual information about the menu items.</para>
            </listitem>
          </varlistentry>
        </variablelist>

    </sect2>
  </sect1>

  <sect1 id="working-with-projects"> 
         <title>Working with Projects</title> 
  
 
<!-- To Create a New Project  -->
	 <sect2 id="glade-create-new-project"> 
		<title>Creating a New Project</title>
		<para>To create a new project, choose <menuchoice><guimenu>File</guimenu><guimenuitem>New</guimenuitem></menuchoice>. The application displays a new blank project in the <application>Glade</application> window.</para>
	 </sect2>

	 <sect2 id="glade-open-project"> 
		<title>Opening a Project</title>
		<para>To open an existing project, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice>. The application displays the project in the <application>Glade</application> window.</para>
	 </sect2>

<!-- To Save a Project -->
	 <sect2 id="glade-save-project"> 
		<title>Saving a Project</title>
		<para>You can save projects in the following ways:</para>
		<itemizedlist> 
		  <listitem><para>To save changes to an existing project file, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save</guimenuitem></menuchoice>.</para>
		  </listitem>
		  <listitem><para lang="en">To save a new project file or to save an existing project file under a new filename, choose <menuchoice> <guimenu>File</guimenu> <guimenuitem>Save As</guimenuitem> </menuchoice>. Enter a name for the project file in the <guilabel>Save As</guilabel> dialog, then click <guibutton>Save</guibutton>. </para>
		  </listitem>
		</itemizedlist>
	 </sect2>
  </sect1>


  <sect1 id="working-with-widgets"> 
         <title>Working with Widgets</title>
         <sect2 id="select-widgets-palette">
                <title>To Select Widgets From the Palette Window</title>
                <para>You can work with the widgets in the <guilabel>Palette</guilabel> window in the following ways:</para>
                <variablelist> 
                  <varlistentry> 
                         <term>Selection mode</term> 
                         <listitem>
                                <para>To use selection mode, click on the <guilabel>Selector</guilabel> arrow. The pointer changes to an arrow to indicate that selection mode is active. In this mode, you use the mouse to select widgets in your project. You can then use the <guilabel>Properties</guilabel> window to edit the properties of the widgets.</para>
<para>You can also use the widget context menu to select a widget. Right-click on a widget to open the widget context menu.</para><para>You can add multiple widgets of a specific type from the <guilabel>Palette</guilabel> to your project by holding down the <keycap>Control</keycap> key when you select a widget. You need to click on the <guilabel>Selector</guilabel> arrow or another widget in the <guilabel>Palette</guilabel> to return to normal mode.</para>
                         </listitem> 
                  </varlistentry> 
                </variablelist> 
                <variablelist> 
                  <varlistentry> 
                         <term>Widget placement mode</term> 
                         <listitem> 
                                <para lang="en">
                                  To use widget placement mode, select a
widget in the 
                                  <guilabel>Palette</guilabel> window. When
you select most widgets, the
                                  pointer changes to a pointer-plus-cross.
You can then place the widget inside containers,
                                  toplevel  widgets, and so on. After you
place a widget, the mode returns to
                                  selection mode.</para>
                         </listitem> 
                  </varlistentry> 
                </variablelist> 
                <variablelist> 
                  <varlistentry> 
                         <term lang="en">Toplevel placement mode</term> 
                         <listitem> 
                                <para lang="en">
                                  To use toplevel placement mode, select a
defined toplevel
                                  widget in the
<guilabel>Palette</guilabel> window. When you select a toplevel
                                  widget in the 
                                  <guilabel>Palette</guilabel> window, the
widget appears
                                  immediately on your desktop. You can then
edit the widget. After you select a toplevel widget,
                                  the mode returns to selection mode.
                                </para>
                         </listitem> 
                  </varlistentry> 
                </variablelist> 
         </sect2>
<sect2 id="organize-widgets">
<title>To Organise Widgets In Your Project</title>
<para>You use widget containers, or boxes, to layout and organise widgets in your project window. You can choose the following widget containers from the <guilabel>Palette</guilabel> window:</para>
<itemizedlist>
<listitem><para>Horizontal Box</para>
</listitem><listitem><para>Vertical Box</para></listitem>
<listitem><para>Table</para></listitem>
<listitem><para>Fixed Positions</para></listitem>
<listitem><para>Horizontal Button Box</para></listitem>
<listitem><para>Vertical Button Box</para></listitem>
<listitem><para>Horizontal Panes</para></listitem>
<listitem><para>Vertical Panes</para></listitem>
<listitem><para>Notebook</para></listitem>
<listitem><para>Frame</para></listitem>
<listitem><para>Scrolled Window</para></listitem>
<listitem><para>Viewport</para></listitem>
</itemizedlist>
<para>You can nest boxes to create complex layout structures. When you create horizontal and vertical boxes, <application>Glade</application> asks you how many rows or columns to create initially, though rows and columns can easily be added or deleted later.</para>
<para>When you have created all the boxes you require, you can add specific widgets like labels, buttons, and more complicated widgets into the boxes. Notice that <application>Glade</application> packs widgets into the layout which eliminates a lot of tedious work. The use of boxes enables windows to change size to accommodate different size labels in different languages when the application is localised.</para></sect2>
         <sect2 id="place-widgets-clipboard"> 
                <title>To Place a Widget on the Clipboard</title> 
                <para lang="en">
                  To remove a widget from a parent and place the widget on
the clipboard,
                  select the widget then choose 
                  <menuchoice> 
                         <guimenu>Edit</guimenu> 
                         <guisubmenu>Cut</guisubmenu> 
                  </menuchoice>. 
                </para>
         </sect2> 
         <sect2 id="copy-widget-clipboard"> 
                <title>To Copy a Widget to the Clipboard</title> 
                <para lang="en">
                  To copy a widget to the clipboard, select the widget then
choose 
                  <menuchoice> 
                         <guimenu>Edit</guimenu> 
                         <guisubmenu>Copy</guisubmenu> 
                  </menuchoice>. The original widget remains attached to
the parent. 
                </para>
         </sect2> 
         <sect2 id="paste-widget-clipboard"> 
                <title>To Paste a Widget From the Clipboard Into Your Project</title> 
                <para lang="en">
                  To paste a widget that exists on the clipboard into your
project,
                  choose 
                  <menuchoice> 
                         <guimenu>Edit</guimenu> 
                         <guisubmenu>Paste</guisubmenu> 
                  </menuchoice>.</para><para>All widgets must have a unique name within <application>Glade</application>. If you cut a widget, and then paste the widget into your project, then the widget and all of the children of the widget keep their original names. If you copy a widget, or paste the widget multiple times into your project, then <application>Glade</application> generates new names for the widget copies.</para>
         </sect2> 
         <sect2 id="delete-widget"> 
                <title>To Delete a Widget</title> 
                <para lang="en">To delete a widget from the parent without
                  moving the widget to the clipboard, 
                                select the widget then 
                                choose 
                                <menuchoice> 
                                  <guimenu>Edit</guimenu> 
                                  <guisubmenu>Delete</guisubmenu> 
                                </menuchoice>. 
                         </para>
                 
         </sect2> 
         
         <sect2 id="edit-widget"> 
                <title>To Change a Property of a Widget</title> 
                <para>The property editor is used to edit the properties of a selected widget. To change a property of a widget, select the widget and then enter an appropriate value in one of the Property window's property fields.</para>
                
                
         </sect2> 
  </sect1>
  
<sect1 id="about"> 
    <title>About Glade</title> 
    <para>Glade is maintained by the Glade developers and GNOME community volunteers. To find more information about Glade, please visit the <ulink url="http://glade.gnome.org" type="http">Glade Web site</ulink>.</para>
    <para lang="en">
      To report a bug or make a suggestion regarding this application or
      this manual, you can submit them using 
      <ulink url="https://gitlab.gnome.org/GNOME/glade/issues/" type="http">our issue tracking system</ulink>.
    </para>

    <para>Another excellent source of information are the Glade <ulink url="http://lists.ximian.com/mailman/listinfo/glade-users" type="http">user</ulink> and <ulink url="http://lists.ximian.com/mailman/listinfo/glade-devel" type="http">developer</ulink> mailing lists. In addition to subscribing, you might also want to browse the list archives, available via these same links.</para>

    <para lang="en"> This program is distributed under the terms of the GNU
      General Public license as published by the Free Software
      Foundation; either version 2 of the License, or (at your option)
      any later version. A copy of this license can be found at this
      <ulink url="help:gpl" type="help">link</ulink>, or in the file
      COPYING included with the source code of this program. </para>
  </sect1> 

</article>
