1<?xml version="1.0"?>
2<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
3"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
4  <!ENTITY appversion "3.1.0">
5  <!ENTITY manrevision "3.0">
6  <!ENTITY app "Glade">
7]>
8<!--
9  Maintained by the GNOME Documentation Project
10  http://developer.gnome.org/projects/gdp
11  Template version: 2.0 beta
12  Template last modified Apr 11, 2002
13-->
14<article id="index" lang="en">
15
16  <articleinfo>
17    <title>&app; Interface Designer Manual</title>
18
19    <abstract role="description"><para>
20      Glade is a user interface designer for GTK+ applications.</para>
21    </abstract>
22
23    <copyright>
24      <year>2006</year>
25      <holder>Vincent Geddes</holder>
26    </copyright>
27    <copyright>
28      <year>2004</year>
29      <year>2003</year>
30      <holder>Sun Microsystems</holder>
31    </copyright>
32    <copyright>
33      <year>2002</year><year>2000</year>
34      <holder>Michael Vance</holder>
35    </copyright>
36
37    <publisher>
38      <publishername>GNOME Documentation Project</publishername>
39    </publisher>
40
41   <include href="legal.xml" xmlns="http://www.w3.org/2001/XInclude" />
42
43    <authorgroup>
44      <author role="maintainer">
45	<firstname>Vincent</firstname>
46	<surname>Geddes</surname>
47	<affiliation>
48	  <orgname>GNOME Documentation Project</orgname>
49	  <address><email>vincent.geddes@gmail.com</email></address>
50	</affiliation>
51      </author>
52      <author>
53        <firstname>Sun</firstname>
54        <surname>GNOME Documentation Team</surname>
55        <affiliation>
56          <orgname>Sun Microsystems</orgname>
57        </affiliation>
58       </author>
59       <author>
60         <firstname>Michael</firstname>
61         <surname>Vance</surname>
62         <affiliation>
63           <orgname>GNOME Documentation Project</orgname>
64           </affiliation>
65       </author>
66    </authorgroup>
67
68
69<!-- According to GNU FDL, revision history is mandatory if you are -->
70<!-- modifying/reusing someone else's document.  If not, you can omit it. -->
71<!-- Remember to remove the &manrevision; entity from the revision entries other
72-->
73<!-- than the current revision. -->
74<!-- The revision numbering system for GNOME manuals is as follows: -->
75<!-- * the revision number consists of two components -->
76<!-- * the first component of the revision number reflects the release version of the GNOME desktop. -->
77<!-- * the second component of the revision number is a decimal unit that is incremented with each revision of the manual. -->
78<!-- For example, if the GNOME desktop release is V2.x, the first version of the manual that -->
79<!-- is written in that desktop timeframe is V2.0, the second version of the manual is V2.1, etc. -->
80<!-- When the desktop release version changes to V3.x, the revision number of the manual changes -->
81<!-- to V3.0, and so on. -->
82    <revhistory>
83        <revision>
84		<revnumber>&app; Manual &manrevision;</revnumber>
85		<date>5 December 2006</date>
86		<revdescription>
87	  		<para role="author">Vincent Geddes</para>
88	  		<para role="publisher">GNOME Documentation Project</para>
89		</revdescription>
90        </revision>
91        <revision>
92                <revnumber>&app; Manual 2.1;</revnumber>
93                <date>17 June 2004</date>
94                <revdescription>
95                        <para role="author">Sun GNOME Documentation Team</para>
96                        <para role="publisher">GNOME Documentation Project</para>
97                </revdescription>
98        </revision>
99        <revision>
100                <revnumber>&app; User Manual 2.0</revnumber>
101                <date>25 February 2004</date>
102                <revdescription>
103                        <para role="author">Sun GNOME Documentation Team</para>
104                        <para role="publisher">GNOME Documentation Project</para>
105                </revdescription>
106        </revision>
107        <revision>
108                <revnumber>&app; User Manual 1.2</revnumber>
109                <date>10 Feb 2004</date>
110                <revdescription>
111                        <para role="author">Sun GNOME Documentation Team</para>
112                        <para role="publisher">GNOME Documentation Project</para>
113                </revdescription>
114        </revision>
115        <revision>
116                <revnumber>&app; User Manual 1.1</revnumber>
117                <date>30 Mar 2002</date>
118                <revdescription>
119                        <para role="author"> Michael Vance</para>
120                        <para role="publisher">GNOME Documentation Project</para>
121                </revdescription>
122        </revision>
123        <revision>
124                <revnumber>&app; User Manual 1.0</revnumber>
125                <date>11 May 2000</date>
126                <revdescription>
127                        <para role="author">Michael Vance</para>
128                        <para role="publisher">GNOME Documentation Project</para>
129                </revdescription>
130        </revision>
131    </revhistory>
132
133    <releaseinfo>This manual describes version &appversion; of &app;.</releaseinfo>
134    <legalnotice>
135      <title>Feedback</title>
136      <para>To report a bug or make a suggestion regarding the &app; application or
137      this manual, follow the directions in the <ulink url="help:gnome-feedback"
138	  type="help">GNOME Feedback Page</ulink>.
139      </para>
140<!-- Translators may also add here feedback address for translations -->
141    </legalnotice>
142  </articleinfo>
143
144    <indexterm><primary>glade</primary></indexterm>
145    <indexterm><primary>user interface designer</primary></indexterm>
146
147
148<!-- ============= Document Body ============================= -->
149<!-- ============= Introduction ============================== -->
150<!-- Use the Introduction section to give a brief overview of what
151     the application is and what it does. -->
152  <sect1 id="introduction">
153    <title>Introduction</title>
154
155    <para>The <application>&app;</application> interface designer enables you to create and edit user interface designs for
156    <application>GTK+</application> applications.</para>
157
158    <para>The GTK+ library provides an extensive collection of user interface building blocks
159    such as text boxes, dialog labels, numeric entries, check boxes, and menus. These
160    building blocks are called <emphasis>widgets</emphasis>. You can use &app; to place widgets in a GUI. &app; allows you
161    to modify the layout and properties of these widgets. You can also use &app; to add connections between
162    widgets and application source code.</para>
163
164    <para>The user interfaces designed in &app; are stored in an XML format, enabling easy integration
165    with external tools. You can use the <application>libglade</application> library to dynamically create
166    GUIs from the XML description.</para>
167
168  </sect1>
169
170  <sect1 id="getting-started">
171    <title>Getting Started</title>
172
173    <sect2 id="glade-start">
174    <title>To Start <application>&app;</application></title>
175    <para>You can start <application>&app;</application> in the following ways:
176    </para>
177    <variablelist>
178    	<varlistentry>
179    		<term><guimenu>Applications</guimenu> menu</term>
180    		<listitem>
181    		<para>Choose
182    		<menuchoice>
183    		<guisubmenu>Programming</guisubmenu>
184    		<guimenuitem>Glade Interface Designer</guimenuitem>
185    		</menuchoice>. </para>
186    		</listitem>
187    	</varlistentry>
188    	<varlistentry>
189    		<term>Command line</term>
190    		<listitem>
191			<para>To start <application>&app;</application> from a command line, type <command>glade</command>
192			and then press <keycap>Return</keycap>.</para>
193    		</listitem>
194    	</varlistentry>
195    </variablelist>
196    </sect2>
197
198    <sect2 id="glade-when-start">
199    <title>When You Start <application>&app;</application></title>
200    <para>When you start <application>&app;</application>, the following window is displayed.</para>
201
202        <figure id="main-window-fig">
203          <title><application>&app;</application> window</title>
204            <screenshot>
205              <mediaobject>
206                <imageobject><imagedata fileref="figures/main-window.png" format="PNG"/></imageobject>
207                <textobject><phrase>Shows the<application>&app;</application> window.</phrase></textobject>
208              </mediaobject>
209            </screenshot>
210        </figure>
211
212        <para>The <application>&app;</application> window contains the following elements: </para>
213
214        <variablelist>
215          <varlistentry> <term>Menubar</term>
216            <listitem>
217            <para>The menus on the menubar contain all of the commands you need to work with files in <application>&app;</application>.</para>
218            </listitem>
219          </varlistentry>
220          <varlistentry> <term>Toolbar</term>
221            <listitem>
222            <para>The toolbar contains a subset of the commands that you can access from the menubar.</para>
223            </listitem>
224          </varlistentry>
225          <varlistentry> <term>Design Area</term>
226            <listitem>
227            <para> The design area is where a user interface can be visually edited.</para>
228            </listitem>
229          </varlistentry>
230          <varlistentry> <term>Palette</term>
231            <listitem>
232            <para>The palette contains the widgets that can be used to build a user interface.</para>
233            </listitem>
234          </varlistentry>
235          <varlistentry> <term>Inspector</term>
236            <listitem>
237            <para>The inspector displays information about the widgets in a project.</para>
238            </listitem>
239          </varlistentry>
240          <varlistentry> <term>Property Editor</term>
241            <listitem>
242            <para>The property editor is used to manipulate the properties of widgets, as well as adding connections to source code.</para>
243            </listitem>
244          </varlistentry>
245          <varlistentry> <term>Statusbar</term>
246            <listitem>
247            <para>The statusbar displays information about current <application>&app;</application> activity and contextual information about the menu items.</para>
248            </listitem>
249          </varlistentry>
250        </variablelist>
251
252    </sect2>
253  </sect1>
254
255  <sect1 id="working-with-projects">
256         <title>Working with Projects</title>
257
258
259<!-- To Create a New Project  -->
260	 <sect2 id="glade-create-new-project">
261		<title>Creating a New Project</title>
262		<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>&app;</application> window.</para>
263	 </sect2>
264
265	 <sect2 id="glade-open-project">
266		<title>Opening a Project</title>
267		<para>To open an existing project, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Open</guimenuitem></menuchoice>. The application displays the project in the <application>&app;</application> window.</para>
268	 </sect2>
269
270<!-- To Save a Project -->
271	 <sect2 id="glade-save-project">
272		<title>Saving a Project</title>
273		<para>You can save projects in the following ways:</para>
274		<itemizedlist>
275		  <listitem><para>To save changes to an existing project file, choose <menuchoice><guimenu>File</guimenu><guimenuitem>Save</guimenuitem></menuchoice>. </para>
276		  </listitem>
277		  <listitem><para>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>
278		  </listitem>
279		</itemizedlist>
280	 </sect2>
281  </sect1>
282
283
284  <sect1 id="working-with-widgets">
285         <title>Working with Widgets</title>
286         <sect2 id="select-widgets-palette">
287                <title>To Select Widgets From the Palette Window</title>
288                <para>
289                  You can work with the widgets in the
290                  <guilabel>Palette</guilabel> window in the following
291ways:
292                </para>
293                <variablelist>
294                  <varlistentry>
295                         <term>Selection mode</term>
296                         <listitem>
297                                <para>
298                                  To use selection mode,
299 click on the
300                                  <guilabel>Selector</guilabel> arrow. The
301pointer changes to an
302                                  arrow to indicate that selection mode is
303active. In this mode, you use the mouse to select widgets in your project.
304You can then use the <guilabel>Properties</guilabel> window to edit the
305properties of the widgets.</para>
306<para>You can also use the widget context menu to select a widget.
307Right-click on a widget to open the widget context menu.</para><para>You
308can add multiple widgets of a specific type from the
309<guilabel>Palette</guilabel> to your project by holding down the
310<keycap>Control</keycap> key when you select a widget. You need to click on
311the <guilabel>Selector</guilabel> arrow or another widget in the
312<guilabel>Palette</guilabel> to return to normal mode.</para>
313                         </listitem>
314                  </varlistentry>
315                </variablelist>
316                <variablelist>
317                  <varlistentry>
318                         <term>Widget placement mode</term>
319                         <listitem>
320                                <para>
321                                  To use widget placement mode, select a
322widget in the
323                                  <guilabel>Palette</guilabel> window. When
324you select most widgets, the
325                                  pointer changes to a pointer-plus-cross.
326You can then place the widget inside containers,
327                                  top-level  widgets, and so on. After you
328place a widget, the mode returns to
329                                  selection mode.</para>
330                         </listitem>
331                  </varlistentry>
332                </variablelist>
333                <variablelist>
334                  <varlistentry>
335                         <term>Top-level placement mode</term>
336                         <listitem>
337                                <para>
338                                  To use top level placement mode, select a
339defined top-level
340                                  widget in the
341<guilabel>Palette</guilabel> window. When you select a top-level
342                                  widget in the
343                                  <guilabel>Palette</guilabel> window, the
344widget appears
345                                  immediately on your desktop. You can then
346edit the widget. After you select a top-level widget,
347                                  the mode returns to selection mode.
348                                </para>
349                         </listitem>
350                  </varlistentry>
351                </variablelist>
352         </sect2>
353<sect2 id="organize-widgets">
354<title>To Organize Widgets In Your Project</title>
355<para>You use widget containers, or boxes, to layout and organize widgets
356in your project window. You can choose the following widget containers from
357the <guilabel>Palette</guilabel> window:
358</para>
359<itemizedlist>
360<listitem><para>Horizontal Box</para>
361</listitem><listitem><para>Vertical Box</para></listitem>
362<listitem><para>Table</para></listitem>
363<listitem><para>Fixed Positions</para></listitem>
364<listitem><para>Horizontal Button Box</para></listitem>
365<listitem><para>Vertical Button Box</para></listitem>
366<listitem><para>Horizontal Panes</para></listitem>
367<listitem><para>Vertical Panes</para></listitem>
368<listitem><para>Notebook</para></listitem>
369<listitem><para>Frame</para></listitem>
370<listitem><para>Scrolled Window</para></listitem>
371<listitem><para>Viewport</para></listitem>
372</itemizedlist>
373<para>
374You can  nest boxes  to create complex layout structures. When you create
375horizontal and vertical boxes, <application>Glade</application> asks you
376how many rows or columns to create initially, though rows and columns can
377easily be added or deleted later.
378</para>
379<para>
380When you have created all the boxes you require, you can add specific
381widgets like labels, buttons, and more complicated widgets into the boxes.
382Notice that <application>Glade</application> packs widgets into the layout
383which eliminates a lot of tedious work. The use of boxes enables windows to
384change size to accommodate different size labels in different languages
385when the application is localized.</para></sect2>
386         <sect2 id="place-widgets-clipboard">
387                <title>To Place a Widget on the Clipboard</title>
388                <para>
389                  To remove a widget from a parent and place the widget on
390the clipboard,
391                  select the widget then choose
392                  <menuchoice>
393                         <guimenu>Edit</guimenu>
394                         <guisubmenu>Cut</guisubmenu>
395                  </menuchoice>.
396                </para>
397         </sect2>
398         <sect2 id="copy-widget-clipboard">
399                <title>To Copy a Widget to the Clipboard</title>
400                <para>
401                  To copy a widget to the clipboard, select the widget then
402choose
403                  <menuchoice>
404                         <guimenu>Edit</guimenu>
405                         <guisubmenu>Copy</guisubmenu>
406                  </menuchoice>. The original widget remains attached to
407the parent.
408                </para>
409         </sect2>
410         <sect2 id="paste-widget-clipboard">
411                <title>To Paste a Widget From the Clipboard Into Your
412Project</title>
413                <para>
414                  To paste a widget that exists on the clipboard into your
415project,
416                  choose
417                  <menuchoice>
418                         <guimenu>Edit</guimenu>
419                         <guisubmenu>Paste</guisubmenu>
420                  </menuchoice>.</para><para>All widgets must have a unique
421name within <application>Glade</application>. If you cut a widget, and then
422paste the widget into your project, then the widget and all of the children
423of the widget keep their original names. If you copy a widget, or paste the
424widget multiple times into your project, then
425<application>Glade</application> generates new names for the widget
426copies.</para>
427         </sect2>
428         <sect2 id="delete-widget">
429                <title>To Delete a Widget</title>
430                <para>To delete a widget from the parent without
431                  moving the widget to the clipboard,
432                                select the widget then
433                                choose
434                                <menuchoice>
435                                  <guimenu>Edit</guimenu>
436                                  <guisubmenu>Delete</guisubmenu>
437                                </menuchoice>.
438                         </para>
439
440         </sect2>
441
442         <sect2 id="edit-widget">
443                <title>To Change a Property of a Widget</title>
444                <para>The property editor is used to edit the properties of a selected widget.
445                      To change a property of a widget, select the widget and then enter an appropriate value
446                      in one of the Property window's property fields.
447                </para>
448
449
450         </sect2>
451  </sect1>
452
453<sect1 id="about">
454    <title>About &app;</title>
455    <para> &app; is maintained by the &app; developers and GNOME community volunteers.
456      To find more information about &app;, please visit the
457      <ulink url="http://glade.gnome.org" type="http">&app;
458      Web site</ulink>.</para>
459    <para>
460      To report a bug or make a suggestion regarding this application or
461      this manual, you can submit them using
462      <ulink url="http://bugzilla.gnome.org/enter_bug.cgi?product=glade3"
463	type="http">bugzilla</ulink>.
464    </para>
465
466    <para>
467      Another excellent source of information are the &app;
468      <ulink url="http://lists.ximian.com/mailman/listinfo/glade-users"
469	type="http">user</ulink> and
470      <ulink url="http://lists.ximian.com/mailman/listinfo/glade-devel"
471	type="http">developer</ulink> mailing lists.  In addition to
472      subscribing, you might also want to browse the list archives, available
473      via these same links.
474    </para>
475
476    <para> This program is distributed under the terms of the GNU
477      General Public license as published by the Free Software
478      Foundation; either version 2 of the License, or (at your option)
479      any later version. A copy of this license can be found at this
480      <ulink url="help:gpl" type="help">link</ulink>, or in the file
481      COPYING included with the source code of this program. </para>
482  </sect1>
483
484</article>
485