[vala] vapigen: Support base_class attribute for boxed types



commit 103a7b3461b12f13b99e0f446af6d0c64000fbee
Author: Jürg Billeter <j bitron ch>
Date:   Mon Jan 25 10:37:56 2010 +0100

    vapigen: Support base_class attribute for boxed types

 vapigen/valagidlparser.vala |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)
---
diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala
index 013e84b..010c82f 100644
--- a/vapigen/valagidlparser.vala
+++ b/vapigen/valagidlparser.vala
@@ -783,6 +783,8 @@ public class Vala.GIdlParser : CodeVisitor {
 
 			var cl = ns.scope.lookup (name) as Class;
 			if (cl == null) {
+				string base_class = null;
+
 				cl = new Class (name, current_source_reference);
 				cl.access = SymbolAccessibility.PUBLIC;
 				cl.is_compact = true;
@@ -793,6 +795,8 @@ public class Vala.GIdlParser : CodeVisitor {
 						var nv = attr.split ("=", 2);
 						if (nv[0] == "cheader_filename") {
 							cl.add_cheader_filename (eval (nv[1]));
+						} else if (nv[0] == "base_class") {
+							base_class = eval (nv[1]);
 						} else if (nv[0] == "is_immutable") {
 							if (eval (nv[1]) == "1") {
 								cl.is_immutable = true;
@@ -818,6 +822,11 @@ public class Vala.GIdlParser : CodeVisitor {
 				ns.add_class (cl);
 				cl.set_type_id (cl.get_upper_case_cname ("TYPE_"));
 				current_source_file.add_node (cl);
+
+				if (base_class != null) {
+					var parent = parse_type_string (base_class);
+					cl.add_base_type (parent);
+				}
 			}
 
 			current_data_type = cl;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]