summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaffaele Sandrini <raffaele@sandrini.ch>2008-07-08 09:59:21 +0000
committerRaffaele Sandrini <rasa@src.gnome.org>2008-07-08 09:59:21 +0000
commit141bea444669efd2cb9e7f2b9ad4e18ad552295c (patch)
treea9248354ee71e48c97bc16069bfe3c80cdb279be
parent14529b46b7813fc3d5648bc425a1b0389adcd204 (diff)
downloadvala-141bea444669efd2cb9e7f2b9ad4e18ad552295c.tar.gz
Allow vapi metadata to declare abstract methods, fix GtkCellRenderer
2008-07-08 Raffaele Sandrini <raffaele@sandrini.ch> * vapi/packages/gtk+-2.0/gtk+-2.0.metadata: * vapigen/valagidlparser.vala: Allow vapi metadata to declare abstract methods, fix GtkCellRenderer methods _get_size and _render to be abstract, based on patch by Jared Moore, fixes bug 522355 * vapi/gtk+-2.0.vapi: Regenerated svn path=/trunk/; revision=1687
-rw-r--r--ChangeLog11
-rw-r--r--vapi/gtk+-2.0.vapi8
-rw-r--r--vapi/packages/gtk+-2.0/gtk+-2.0.metadata3
-rw-r--r--vapigen/valagidlparser.vala12
4 files changed, 28 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index c5d71bda4..3c3314bee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2008-07-08 Raffaele Sandrini <raffaele@sandrini.ch>
+
+ * vapi/packages/gtk+-2.0/gtk+-2.0.metadata:
+ * vapigen/valagidlparser.vala:
+
+ Allow vapi metadata to declare abstract methods, fix GtkCellRenderer
+ methods _get_size and _render to be abstract, based on patch by
+ Jared Moore, fixes bug 522355
+
+ * vapi/gtk+-2.0.vapi: Regenerated
+
2008-07-08 Jürg Billeter <j@bitron.ch>
* gobject/valaccodeclassbinding.vala:
diff --git a/vapi/gtk+-2.0.vapi b/vapi/gtk+-2.0.vapi
index 6f6f005e2..ad2cd2c50 100644
--- a/vapi/gtk+-2.0.vapi
+++ b/vapi/gtk+-2.0.vapi
@@ -1,4 +1,4 @@
-/* gtk+-2.0.vapi generated by vapigen, do not modify. */
+/* gtk+-2.0.vapi generated by lt-vapigen, do not modify. */
[CCode (cprefix = "Gtk", lower_case_cprefix = "gtk_")]
namespace Gtk {
@@ -2190,14 +2190,14 @@ namespace Gtk {
public virtual signal void prev_year ();
}
[CCode (cheader_filename = "gtk/gtk.h")]
- public class CellRenderer : Gtk.Object {
+ public abstract class CellRenderer : Gtk.Object {
public uint editing;
public void get_fixed_size (int width, int height);
public void set_fixed_size (int width, int height);
public void stop_editing (bool canceled);
public virtual bool activate (Gdk.Event event, Gtk.Widget widget, string path, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gtk.CellRendererState flags);
- public virtual void get_size (Gtk.Widget widget, Gdk.Rectangle? cell_area, out int x_offset, out int y_offset, out int width, out int height);
- public virtual void render (Gdk.Window window, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, Gtk.CellRendererState flags);
+ public abstract void get_size (Gtk.Widget widget, Gdk.Rectangle? cell_area, out int x_offset, out int y_offset, out int width, out int height);
+ public abstract void render (Gdk.Window window, Gtk.Widget widget, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gdk.Rectangle expose_area, Gtk.CellRendererState flags);
public virtual weak Gtk.CellEditable start_editing (Gdk.Event event, Gtk.Widget widget, string path, Gdk.Rectangle background_area, Gdk.Rectangle cell_area, Gtk.CellRendererState flags);
[NoAccessorMethod]
public string cell_background { set; }
diff --git a/vapi/packages/gtk+-2.0/gtk+-2.0.metadata b/vapi/packages/gtk+-2.0/gtk+-2.0.metadata
index 8c71b97ac..c1b6f0e74 100644
--- a/vapi/packages/gtk+-2.0/gtk+-2.0.metadata
+++ b/vapi/packages/gtk+-2.0/gtk+-2.0.metadata
@@ -57,11 +57,14 @@ GtkCellEditable::editing_done has_emitter="1"
GtkCellEditable::remove_widget has_emitter="1"
GtkCellEditable::start_editing has_emitter="1"
gtk_cell_layout_set_attributes ellipsis="1"
+gtk_cell_renderer_get_size abstract="1"
gtk_cell_renderer_get_size.cell_area nullable="1"
gtk_cell_renderer_get_size.x_offset is_out="1"
gtk_cell_renderer_get_size.y_offset is_out="1"
gtk_cell_renderer_get_size.width is_out="1"
gtk_cell_renderer_get_size.height is_out="1"
+gtk_cell_renderer_render abstract="1"
+GtkCellRenderer abstract="1"
GtkCellRenderer::editing_canceled has_emitter="1"
gtk_cell_view_get_size_of_row.requisition is_out="1"
gtk_cell_view_set_model.model nullable="1"
diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala
index 0d512a4bf..c97d87d90 100644
--- a/vapigen/valagidlparser.vala
+++ b/vapigen/valagidlparser.vala
@@ -843,6 +843,10 @@ public class Vala.GIdlParser : CodeVisitor {
if (eval (nv[1]) == "1") {
return;
}
+ } else if (nv[0] == "abstract") {
+ if (eval (nv[1]) == "1") {
+ cl.is_abstract = true;
+ }
}
}
}
@@ -1326,6 +1330,10 @@ public class Vala.GIdlParser : CodeVisitor {
}
} else if (nv[0] == "cheader_filename") {
m.add_cheader_filename (eval (nv[1]));
+ } else if (nv[0] == "abstract") {
+ if (eval (nv[1]) == "1") {
+ m.is_abstract = true;
+ }
}
}
}
@@ -1536,8 +1544,8 @@ public class Vala.GIdlParser : CodeVisitor {
Method m = create_method (node.name, symbol, v.result, func != null ? func.parameters : v.parameters, false, is_interface);
if (m != null) {
m.binding = MemberBinding.INSTANCE;
- m.is_virtual = !is_interface;
- m.is_abstract = is_interface;
+ m.is_virtual = !(m.is_abstract || is_interface);
+ m.is_abstract = m.is_abstract || is_interface;
if (func == null) {
m.attributes.append (new Attribute ("NoWrapper", null));