| Libglade Reference Manual | |||
|---|---|---|---|
| <<< Previous Page | Home | Next Page >>> | |
Libglade 2.0 introduces a new file format for storing the user interface. Unlike the previous format, this one does not introduce a new element for each new property. This was done so that the format could be described with a fairly small DTD:
<!-- proposed DTD for new glade format -->
<!ELEMENT glade-interface (requires*, widget*) >
<!ATTLIST glade-interface
xmlns CDATA #FIXED 'http://glade.gnome.org/glade-2.0.dtd' >
<!ELEMENT requires EMPTY >
<!ATTLIST requires
lib CDATA #REQUIRED >
<!ELEMENT widget (property*, accessibility?, signal*, accelerator*, child*) >
<!ATTLIST widget
class CDATA #REQUIRED
id ID #REQUIRED >
<!ELEMENT property (#PCDATA) >
<!-- type is an optional tag, and should be the string name of the
GType for the property -->
<!-- translatable specifies whether the property should be translated
before use. -->
<!ATTLIST property
name CDATA #REQUIRED
type CDATA #IMPLIED
translatable (yes|no) 'no'
agent CDATA #IMPLIED >
<!ELEMENT atkproperty (#PCDATA | accessibility)* >
<!ATTLIST atkproperty
name CDATA #REQUIRED
type CDATA #IMPLIED >
<!ELEMENT atkrelation EMPTY >
<!ATTLIST atkrelation
target CDATA #REQUIRED
type CDATA #REQUIRED >
<!ELEMENT atkaction EMPTY >
<!ATTLIST atkaction
action_name CDATA #REQUIRED
description CDATA #IMPLIED >
<!ELEMENT accessibility (atkrelation | atkaction | atkproperty)* >
<!ELEMENT signal EMPTY >
<!ATTLIST signal
name CDATA #REQUIRED
handler CDATA #REQUIRED
after (yes|no) 'no'
object IDREF #IMPLIED
last_modification_time CDATA #IMPLIED >
<!ELEMENT accelerator EMPTY >
<!ATTLIST accelerator
key CDATA #REQUIRED
modifiers CDATA #REQUIRED
signal CDATA #REQUIRED >
<!ELEMENT child ((widget|placeholder), packing?) >
<!-- internal children should not have any properties set on them.
(Internal children are things like the scrollbars in a
GtkScrolledWindow, or the vbox in a GtkDialog). -->
<!ATTLIST child
internal-child CDATA #IMPLIED >
<!ELEMENT packing (property+) >
<!ELEMENT placeholder EMPTY > |
The <widget> elements contain <property> elements which define widget properties. In general these map to GObject properties.
The <signal> and <accelerator> elements are used to define signals and accelerators on the widget.
The <widget> element may also contain an <accessibility> element, which contains accessibility related properties. These set various ATK options (such as ATK properties, relations and actions).
For each child of the widget, there is an <child> element. The internal-child attribute is used to mark "internal children of the parent. These children are widgets that are created when the parent is constructed, such as the GtkVBox and GtkHButtonBox in a GtkDialog.
The <child> element contains either a <widget> element representing the child widget, or a <placeholder> element, which is ignored when building the interface. It may also contain a <packing> element, which contains <property> elements defining packing properties. These map to GtkContainer child packing properties.
Properties are represented as straight content data in the glade file. All programs working with glade files must represent the various types in the same way.