gtk2/gtk/gtkbuilder.rng
Juan Pablo Ugarte 887fc60cce Added bindings support to GtkBuilder by introducing 3 new <property> attributes "bind-source" to specify the source object of the binding "bind-property" to specify the source property and "bind-flags" to specify the binding flags (optional)
Binding an object sensitive property with a check button active property will look like this:

<object class="GtkButton" id="button">
  <property name="sensitive" bind-source="checkbutton" bind-property="active"/>
</object>

This is based on the original work done by Denis Washington for his GSoC project

This closes Bug 654417 "[GSoC] Add <binding> element to GtkBuilder syntax"
2014-04-18 18:59:14 -03:00

342 lines
7.8 KiB
XML

<?xml version="1.0"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0" ns="">
<start>
<element name="interface">
<optional>
<attribute name="domain">
<text/>
</attribute>
</optional>
<zeroOrMore>
<choice>
<ref name="requires"/>
<ref name="object"/>
<ref name="template"/>
<ref name="menu"/>
</choice>
</zeroOrMore>
</element>
</start>
<define name="requires">
<element name="requires">
<attribute name="lib">
<text/>
</attribute>
<attribute name="version">
<text/>
</attribute>
</element>
</define>
<define name="object">
<element name="object">
<optional>
<attribute name="id">
<data type="ID" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
<attribute name="class">
<text/>
</attribute>
<optional>
<attribute name="type-func">
<text/>
</attribute>
</optional>
<optional>
<attribute name="constructor">
<text/>
</attribute>
</optional>
<zeroOrMore>
<choice>
<ref name="property"/>
<ref name="signal"/>
<ref name="child"/>
<ref name="ANY"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="template">
<element name="template">
<attribute name="class">
<text/>
</attribute>
<attribute name="parent">
<text/>
</attribute>
<zeroOrMore>
<choice>
<ref name="property"/>
<ref name="signal"/>
<ref name="child"/>
<ref name="ANY"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="property">
<element name="property">
<attribute name="name">
<text/>
</attribute>
<optional>
<attribute name="translatable">
<choice>
<value>yes</value>
<value>no</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="comments">
<text/>
</attribute>
</optional>
<optional>
<attribute name="context">
<text/>
</attribute>
</optional>
<optional>
<group>
<attribute name="bind-source">
<text/>
</attribute>
<attribute name="bind-property">
<text/>
</attribute>
<optional>
<attribute name="bind-flags">
<text/>
</attribute>
</optional>
</group>
</optional>
<optional>
<text/>
</optional>
</element>
</define>
<define name="signal">
<element name="signal">
<attribute name="name">
<text/>
</attribute>
<attribute name="handler">
<text/>
</attribute>
<optional>
<attribute name="after">
<text/>
</attribute>
</optional>
<optional>
<attribute name="swapped">
<text/>
</attribute>
</optional>
<optional>
<attribute name="object">
<text/>
</attribute>
</optional>
<optional>
<attribute name="last_modification_time">
<text/>
</attribute>
</optional>
<empty/>
</element>
</define>
<define name="child">
<element name="child">
<optional>
<attribute name="type">
<text/>
</attribute>
</optional>
<optional>
<attribute name="internal-child">
<text/>
</attribute>
</optional>
<zeroOrMore>
<choice>
<ref name="object"/>
<ref name="ANY"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="menu">
<element name="menu">
<attribute name="id">
<data type="ID" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
<optional>
<attribute name="domain">
<text/>
</attribute>
</optional>
<zeroOrMore>
<choice>
<ref name="item"/>
<ref name="submenu"/>
<ref name="section"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="item">
<element name="item">
<optional>
<attribute name="id">
<data type="ID" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
<zeroOrMore>
<choice>
<ref name="attribute_"/>
<ref name="link"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="attribute_">
<element name="attribute">
<attribute name="name">
<text/>
</attribute>
<optional>
<attribute name="type">
<text/>
</attribute>
</optional>
<optional>
<attribute name="translatable">
<choice>
<value>yes</value>
<value>no</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="context">
<text/>
</attribute>
</optional>
<optional>
<attribute name="comments">
<text/>
</attribute>
</optional>
<optional>
<text/>
</optional>
</element>
</define>
<define name="link">
<element name="link">
<optional>
<attribute name="id">
<data type="ID" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
<attribute name="name">
<text/>
</attribute>
<zeroOrMore>
<ref name="item"/>
</zeroOrMore>
</element>
</define>
<define name="submenu">
<element name="submenu">
<optional>
<attribute name="id">
<data type="ID" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
<zeroOrMore>
<choice>
<ref name="attribute_"/>
<ref name="item"/>
<ref name="submenu"/>
<ref name="section"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="section">
<element name="section">
<optional>
<attribute name="id">
<data type="ID" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</attribute>
</optional>
<zeroOrMore>
<choice>
<ref name="attribute_"/>
<ref name="item"/>
<ref name="submenu"/>
<ref name="section"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="ANY">
<element>
<anyName>
<except>
<name>interface</name>
<name>requires</name>
<name>object</name>
<name>property</name>
<name>signal</name>
<name>child</name>
<name>menu</name>
<name>item</name>
<name>attribute</name>
<name>link</name>
<name>submenu</name>
<name>section</name>
</except>
</anyName>
<zeroOrMore>
<attribute>
<anyName/>
<text/>
</attribute>
</zeroOrMore>
<interleave>
<zeroOrMore>
<ref name="ALL"/>
</zeroOrMore>
<optional>
<text/>
</optional>
</interleave>
</element>
</define>
<define name="ALL">
<element>
<anyName/>
<zeroOrMore>
<attribute>
<anyName/>
<text/>
</attribute>
</zeroOrMore>
<interleave>
<zeroOrMore>
<ref name="ALL"/>
</zeroOrMore>
<optional>
<text/>
</optional>
</interleave>
</element>
</define>
</grammar>