| Libglade Reference Manual |
|---|
Table of Contents
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. -->
<!-- context indicates that the value has a |-separated
context which must be stripped before use, look up g_strip_context()
in the GLib API documentation for details.-->
<!ATTLIST property
name CDATA #REQUIRED
type CDATA #IMPLIED
translatable (yes|no) 'no'
context (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 (property*) >
<!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.
| << Embedding Libglade Interfaces | Exceptions >> |