gtk2/gtk/gtkbuilder.rnc
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

96 lines
2.1 KiB
Plaintext

start = element interface {
attribute domain { text } ?,
( requires | object | template | menu ) *
}
requires = element requires {
attribute lib { text },
attribute version { text }
}
object = element object {
attribute id { xsd:ID } ?,
attribute class { text },
attribute type-func { text } ?,
attribute constructor { text } ?,
(property | signal | child | ANY) *
}
template = element template {
attribute class { text },
attribute parent { text },
(property | signal | child | ANY) *
}
property = element property {
attribute name { text },
attribute translatable { "yes" | "no" } ?,
attribute comments { text } ?,
attribute context { text } ?,
(attribute bind-source { text },
attribute bind-property { text },
attribute bind-flags { text } ?) ?,
text ?
}
signal = element signal {
attribute name { text },
attribute handler { text },
attribute after { text } ?,
attribute swapped { text } ?,
attribute object { text } ?,
attribute last_modification_time { text } ?,
empty
}
child = element child {
attribute type { text } ?,
attribute internal-child { text } ?,
(object | ANY)*
}
menu = element menu {
attribute id { xsd:ID },
attribute domain { text } ?,
(item | submenu | section) *
}
item = element item {
attribute id { xsd:ID } ?,
(attribute_ | link) *
}
attribute_ = element attribute {
attribute name { text },
attribute type { text } ?,
attribute translatable { "yes" | "no" } ?,
attribute context { text } ?,
attribute comments { text } ?,
text ?
}
link = element link {
attribute id { xsd:ID } ?,
attribute name { text },
item *
}
submenu = element submenu {
attribute id { xsd:ID } ?,
(attribute_ | item | submenu | section) *
}
section = element section {
attribute id { xsd:ID } ?,
(attribute_ | item | submenu | section) *
}
ANY = element * - (interface | requires | object | template | property | signal | child | menu | item | attribute | link | submenu | section) {
attribute * { text } *,
(ALL * & text ?)
}
ALL = element * {
attribute * { text } *,
(ALL * & text ?)
}