summaryrefslogtreecommitdiff
path: root/gtk/gtkbuilder.rnc
blob: 8b2182d801d07421a2c661d91ac3a323507fc987 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
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 ?)
}