Libglade Reference Manual |
---|
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' comments CDATA #IMPLIED agent CDATA #IMPLIED > <!ELEMENT atkproperty (#PCDATA | accessibility)* > <!ATTLIST atkproperty name CDATA #REQUIRED type CDATA #IMPLIED translatable (yes|no) 'no' context (yes|no) 'no' comments CDATA #IMPLIED > <!ELEMENT atkrelation EMPTY > <!ATTLIST atkrelation target CDATA #REQUIRED type CDATA #REQUIRED > <!-- description is assumed to be a translatable string --> <!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 >> |