diff --git a/generator/FieldBase.cs b/generator/FieldBase.cs index 353c6c553..053e98aa9 100644 --- a/generator/FieldBase.cs +++ b/generator/FieldBase.cs @@ -42,12 +42,16 @@ namespace GtkSharp.Generation { protected virtual bool Readable { get { + if (Parser.GetVersion (elem.OwnerDocument.DocumentElement) <= 2) + return elem.GetAttribute ("readable") != "false"; return elem.HasAttribute ("readable") && elem.GetAttributeAsBoolean ("readable"); } } protected virtual bool Writable { get { + if (Parser.GetVersion (elem.OwnerDocument.DocumentElement) <= 2) + return elem.GetAttribute ("writeable") != "false"; return elem.HasAttribute ("writeable") && elem.GetAttributeAsBoolean ("writeable"); } } diff --git a/generator/Parameters.cs b/generator/Parameters.cs index c2c50dbd6..2ea48d260 100644 --- a/generator/Parameters.cs +++ b/generator/Parameters.cs @@ -53,7 +53,7 @@ namespace GtkSharp.Generation { private bool throws = false; public bool Throws { get { - if (ParserVersion <= 2) + if (Parser.GetVersion (elem.OwnerDocument.DocumentElement) <= 2) return true; if (!throws && elem.HasAttribute ("throws")) throws = elem.GetAttributeAsBoolean ("throws"); @@ -289,12 +289,5 @@ namespace GtkSharp.Generation { return String.Join (", ", result); } } - - private int ParserVersion { - get { - XmlElement root = elem.OwnerDocument.DocumentElement; - return root.HasAttribute ("parser_version") ? int.Parse (root.GetAttribute ("parser_version")) : 1; - } - } } } diff --git a/generator/Parser.cs b/generator/Parser.cs index 6b92b0aaf..b7bfa5f98 100644 --- a/generator/Parser.cs +++ b/generator/Parser.cs @@ -187,6 +187,12 @@ namespace GtkSharp.Generation { return result; } + internal static int GetVersion (XmlElement document_element) + { + XmlElement root = document_element; + return root.HasAttribute ("parser_version") ? int.Parse (root.GetAttribute ("parser_version")) : 1; + } + private IGeneratable ParseSymbol (XmlElement symbol) { string type = symbol.GetAttribute ("type");