vala r1475 - in trunk: . vala vapi vapi/packages/gtk+-2.0 vapigen



Author: juergbi
Date: Wed May 28 23:41:04 2008
New Revision: 1475
URL: http://svn.gnome.org/viewvc/vala?rev=1475&view=rev

Log:
2008-05-29  Juerg Billeter  <j bitron ch>

	* vala/valainterfacewriter.vala:
	* vapigen/valagidlparser.vala:

	Mark signals as virtual to make it possible to override default
	method handlers

	* vapi/atk.vapi:
	* vapi/gconf-2.0.vapi:
	* vapi/gdk-2.0.vapi:
	* vapi/gdk-pixbuf-2.0.vapi:
	* vapi/gio-2.0.vapi:
	* vapi/gio-unix-2.0.vapi:
	* vapi/gnome-desktop-2.0.vapi:
	* vapi/gnome-vfs-2.0.vapi:
	* vapi/goocanvas.vapi:
	* vapi/gstreamer-0.10.vapi:
	* vapi/gstreamer-base-0.10.vapi:
	* vapi/gstreamer-interfaces-0.10.vapi:
	* vapi/gstreamer-rtsp-0.10.vapi:
	* vapi/gtk+-2.0.vapi:
	* vapi/gtksourceview-2.0.vapi:
	* vapi/hildon-1.vapi:
	* vapi/hildon-fm-2.vapi:
	* vapi/json-glib-1.0.vapi:
	* vapi/libgnomeui-2.0.vapi:
	* vapi/libnotify.vapi:
	* vapi/liboobs-1.vapi:
	* vapi/libsexy.vapi:
	* vapi/libsoup-2.2.vapi:
	* vapi/libsoup-2.4.vapi:
	* vapi/libwnck-1.0.vapi:
	* vapi/packages/gtk+-2.0/gtk+-2.0.metadata:
	* vapi/vte.vapi:
	* vapi/webkit-1.0.vapi:

	Regenerated


Modified:
   trunk/ChangeLog
   trunk/vala/valainterfacewriter.vala
   trunk/vapi/atk.vapi
   trunk/vapi/gconf-2.0.vapi
   trunk/vapi/gdk-2.0.vapi
   trunk/vapi/gdk-pixbuf-2.0.vapi
   trunk/vapi/gio-2.0.vapi
   trunk/vapi/gio-unix-2.0.vapi
   trunk/vapi/gnome-desktop-2.0.vapi
   trunk/vapi/gnome-vfs-2.0.vapi
   trunk/vapi/goocanvas.vapi
   trunk/vapi/gstreamer-0.10.vapi
   trunk/vapi/gstreamer-base-0.10.vapi
   trunk/vapi/gstreamer-interfaces-0.10.vapi
   trunk/vapi/gstreamer-rtsp-0.10.vapi
   trunk/vapi/gtk+-2.0.vapi
   trunk/vapi/gtksourceview-2.0.vapi
   trunk/vapi/hildon-1.vapi
   trunk/vapi/hildon-fm-2.vapi
   trunk/vapi/json-glib-1.0.vapi
   trunk/vapi/libgnomeui-2.0.vapi
   trunk/vapi/libnotify.vapi
   trunk/vapi/liboobs-1.vapi
   trunk/vapi/libsexy.vapi
   trunk/vapi/libsoup-2.2.vapi
   trunk/vapi/libsoup-2.4.vapi
   trunk/vapi/libwnck-1.0.vapi
   trunk/vapi/packages/gtk+-2.0/gtk+-2.0.metadata
   trunk/vapi/vte.vapi
   trunk/vapi/webkit-1.0.vapi
   trunk/vapigen/valagidlparser.vala

Modified: trunk/vala/valainterfacewriter.vala
==============================================================================
--- trunk/vala/valainterfacewriter.vala	(original)
+++ trunk/vala/valainterfacewriter.vala	Wed May 28 23:41:04 2008
@@ -798,6 +798,11 @@
 		
 		write_indent ();
 		write_accessibility (sig);
+
+		if (sig.is_virtual) {
+			write_string ("virtual ");
+		}
+
 		write_string ("signal ");
 		
 		write_return_type (sig.return_type);

Modified: trunk/vapi/atk.vapi
==============================================================================
--- trunk/vapi/atk.vapi	(original)
+++ trunk/vapi/atk.vapi	Wed May 28 23:41:04 2008
@@ -308,7 +308,7 @@
 		[NoAccessorMethod]
 		public bool selected_link { get; }
 		public int start_index { get; }
-		public signal void link_activated ();
+		public virtual signal void link_activated ();
 	}
 	[CCode (cheader_filename = "atk/atk.h")]
 	public class Misc : GLib.Object {
@@ -387,12 +387,12 @@
 		public Atk.Object accessible_table_summary { get; set; }
 		[NoAccessorMethod]
 		public double accessible_value { get; set; }
-		public signal void active_descendant_changed (void* child);
-		public signal void children_changed (uint change_index, void* changed_child);
-		public signal void focus_event (bool focus_in);
-		public signal void property_change (void* values);
-		public signal void state_change (string name, bool state_set);
-		public signal void visible_data_changed ();
+		public virtual signal void active_descendant_changed (void* child);
+		public virtual signal void children_changed (uint change_index, void* changed_child);
+		public virtual signal void focus_event (bool focus_in);
+		public virtual signal void property_change (void* values);
+		public virtual signal void state_change (string name, bool state_set);
+		public virtual signal void visible_data_changed ();
 	}
 	[CCode (cheader_filename = "atk/atk.h")]
 	public class ObjectFactory : GLib.Object {
@@ -492,7 +492,7 @@
 		public abstract bool set_extents (int x, int y, int width, int height, Atk.CoordType coord_type);
 		public abstract bool set_position (int x, int y, Atk.CoordType coord_type);
 		public abstract bool set_size (int width, int height);
-		public signal void bounds_changed (Atk.Rectangle bounds);
+		public virtual signal void bounds_changed (Atk.Rectangle bounds);
 	}
 	[CCode (cheader_filename = "atk/atk.h")]
 	public interface Document {
@@ -510,9 +510,9 @@
 		public abstract weak string get_document_type ();
 		[NoWrapper]
 		public abstract bool set_document_attribute (string attribute_name, string attribute_value);
-		public signal void load_complete ();
-		public signal void load_stopped ();
-		public signal void reload ();
+		public virtual signal void load_complete ();
+		public virtual signal void load_stopped ();
+		public virtual signal void reload ();
 	}
 	[CCode (cheader_filename = "atk/atk.h")]
 	public interface EditableText {
@@ -533,7 +533,7 @@
 		public abstract weak Atk.Hyperlink get_link (int link_index);
 		public abstract int get_link_index (int char_index);
 		public abstract int get_n_links ();
-		public signal void link_selected (int link_index);
+		public virtual signal void link_selected (int link_index);
 	}
 	[CCode (cheader_filename = "atk/atk.h")]
 	public interface Image {
@@ -556,7 +556,7 @@
 		public abstract weak Atk.Object ref_selection (int i);
 		public abstract bool remove_selection (int i);
 		public abstract bool select_all_selection ();
-		public signal void selection_changed ();
+		public virtual signal void selection_changed ();
 	}
 	[CCode (cheader_filename = "atk/atk.h")]
 	public interface StreamableContent {
@@ -596,13 +596,13 @@
 		public abstract void set_row_description (int row, string description);
 		public abstract void set_row_header (int row, Atk.Object header);
 		public abstract void set_summary (Atk.Object accessible);
-		public signal void column_deleted (int column, int num_deleted);
-		public signal void column_inserted (int column, int num_inserted);
-		public signal void column_reordered ();
-		public signal void model_changed ();
-		public signal void row_deleted (int row, int num_deleted);
-		public signal void row_inserted (int row, int num_inserted);
-		public signal void row_reordered ();
+		public virtual signal void column_deleted (int column, int num_deleted);
+		public virtual signal void column_inserted (int column, int num_inserted);
+		public virtual signal void column_reordered ();
+		public virtual signal void model_changed ();
+		public virtual signal void row_deleted (int row, int num_deleted);
+		public virtual signal void row_inserted (int row, int num_inserted);
+		public virtual signal void row_reordered ();
 	}
 	[CCode (cheader_filename = "atk/atk.h")]
 	public interface Text {
@@ -630,10 +630,10 @@
 		public abstract bool remove_selection (int selection_num);
 		public abstract bool set_caret_offset (int offset);
 		public abstract bool set_selection (int selection_num, int start_offset, int end_offset);
-		public signal void text_attributes_changed ();
-		public signal void text_caret_moved (int location);
-		public signal void text_changed (int position, int length);
-		public signal void text_selection_changed ();
+		public virtual signal void text_attributes_changed ();
+		public virtual signal void text_caret_moved (int location);
+		public virtual signal void text_changed (int position, int length);
+		public virtual signal void text_selection_changed ();
 	}
 	[CCode (cheader_filename = "atk/atk.h")]
 	public interface Value {

Modified: trunk/vapi/gconf-2.0.vapi
==============================================================================
--- trunk/vapi/gconf-2.0.vapi	(original)
+++ trunk/vapi/gconf-2.0.vapi	Wed May 28 23:41:04 2008
@@ -279,11 +279,11 @@
 		public void suggest_sync () throws GLib.Error;
 		public bool unset (string key) throws GLib.Error;
 		[HasEmitter]
-		public signal void error (void* error);
+		public virtual signal void error (void* error);
 		[HasEmitter]
-		public signal void unreturned_error (void* error);
+		public virtual signal void unreturned_error (void* error);
 		[HasEmitter]
-		public signal void value_changed (string key, void* value);
+		public virtual signal void value_changed (string key, void* value);
 	}
 	[CCode (cheader_filename = "gconf/gconf.h")]
 	public delegate void ChangeSetForeachFunc (GConf.ChangeSet cs, string key, GConf.Value value);

Modified: trunk/vapi/gdk-2.0.vapi
==============================================================================
--- trunk/vapi/gdk-2.0.vapi	(original)
+++ trunk/vapi/gdk-2.0.vapi	Wed May 28 23:41:04 2008
@@ -825,7 +825,7 @@
 		public virtual weak string get_display_name ();
 		public virtual int get_n_screens ();
 		public virtual weak Gdk.Screen get_screen (int screen_num);
-		public signal void closed (bool is_error);
+		public virtual signal void closed (bool is_error);
 	}
 	[CCode (cheader_filename = "gdk/gdk.h")]
 	public class DisplayManager : GLib.Object {
@@ -834,7 +834,7 @@
 		public weak GLib.SList list_displays ();
 		public void set_default_display (Gdk.Display display);
 		public Gdk.Display default_display { get; set; }
-		public signal void display_opened (Gdk.Display display);
+		public virtual signal void display_opened (Gdk.Display display);
 	}
 	[CCode (cheader_filename = "gdk/gdk.h")]
 	public class DragContext : GLib.Object {
@@ -963,8 +963,8 @@
 		public bool have_bidi_layouts ();
 		public uint lookup_key (Gdk.KeymapKey key);
 		public bool translate_keyboard_state (uint hardware_keycode, Gdk.ModifierType state, int group, uint keyval, int effective_group, int level, Gdk.ModifierType consumed_modifiers);
-		public signal void direction_changed ();
-		public signal void keys_changed ();
+		public virtual signal void direction_changed ();
+		public virtual signal void keys_changed ();
 	}
 	[CCode (cheader_filename = "gdk/gdk.h")]
 	public class PangoRenderer : Pango.Renderer {
@@ -1036,8 +1036,8 @@
 		public static int width_mm ();
 		public void* font_options { get; set; }
 		public double resolution { get; set; }
-		public signal void composited_changed ();
-		public signal void size_changed ();
+		public virtual signal void composited_changed ();
+		public virtual signal void size_changed ();
 	}
 	[CCode (cheader_filename = "gdk/gdk.h")]
 	public class Visual : GLib.Object {

Modified: trunk/vapi/gdk-pixbuf-2.0.vapi
==============================================================================
--- trunk/vapi/gdk-pixbuf-2.0.vapi	(original)
+++ trunk/vapi/gdk-pixbuf-2.0.vapi	Wed May 28 23:41:04 2008
@@ -159,10 +159,10 @@
 		public PixbufLoader.with_type (string image_type) throws GLib.Error;
 		public void set_size (int width, int height);
 		public bool write (uchar[] buf) throws GLib.Error;
-		public signal void area_prepared ();
-		public signal void area_updated (int x, int y, int width, int height);
-		public signal void closed ();
-		public signal void size_prepared (int width, int height);
+		public virtual signal void area_prepared ();
+		public virtual signal void area_updated (int x, int y, int width, int height);
+		public virtual signal void closed ();
+		public virtual signal void size_prepared (int width, int height);
 	}
 	[CCode (cheader_filename = "gdk-pixbuf/gdk-pixdata.h")]
 	public class PixbufSimpleAnim : Gdk.PixbufAnimation {

Modified: trunk/vapi/gio-2.0.vapi
==============================================================================
--- trunk/vapi/gio-2.0.vapi	(original)
+++ trunk/vapi/gio-2.0.vapi	Wed May 28 23:41:04 2008
@@ -287,7 +287,7 @@
 		public void push_current ();
 		public void reset ();
 		public bool set_error_if_cancelled () throws GLib.Error;
-		public signal void cancelled ();
+		public virtual signal void cancelled ();
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class DataInputStream : GLib.BufferedInputStream {
@@ -425,7 +425,7 @@
 		public bool cancelled { get; }
 		[NoAccessorMethod]
 		public int rate_limit { get; set; }
-		public signal void changed (GLib.File file, GLib.File? other_file, GLib.FileMonitorEvent event_type);
+		public virtual signal void changed (GLib.File file, GLib.File? other_file, GLib.FileMonitorEvent event_type);
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class FileOutputStream : GLib.OutputStream, GLib.Seekable {
@@ -450,7 +450,7 @@
 		public weak string get_completions (string initial_text);
 		public FilenameCompleter ();
 		public void set_dirs_only (bool dirs_only);
-		public signal void got_completion_data ();
+		public virtual signal void got_completion_data ();
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class FilterInputStream : GLib.InputStream {
@@ -524,10 +524,10 @@
 		public string password { get; set; }
 		public GLib.PasswordSave password_save { get; set; }
 		public string username { get; set; }
-		public signal void ask_password (string message, string default_user, string default_domain, GLib.AskPasswordFlags flags);
-		public signal void ask_question (string message, string[] choices);
+		public virtual signal void ask_password (string message, string default_user, string default_domain, GLib.AskPasswordFlags flags);
+		public virtual signal void ask_question (string message, string[] choices);
 		[HasEmitter]
-		public signal void reply (GLib.MountOperationResult result);
+		public virtual signal void reply (GLib.MountOperationResult result);
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public class NativeVolumeMonitor : GLib.VolumeMonitor {
@@ -614,16 +614,16 @@
 		public virtual weak GLib.List get_volumes ();
 		[NoWrapper]
 		public virtual bool is_supported ();
-		public signal void drive_changed (GLib.Drive drive);
-		public signal void drive_connected (GLib.Drive drive);
-		public signal void drive_disconnected (GLib.Drive drive);
-		public signal void mount_added (GLib.Mount mount);
-		public signal void mount_changed (GLib.Mount mount);
-		public signal void mount_pre_unmount (GLib.Mount mount);
-		public signal void mount_removed (GLib.Mount mount);
-		public signal void volume_added (GLib.Volume volume);
-		public signal void volume_changed (GLib.Volume volume);
-		public signal void volume_removed (GLib.Volume volume);
+		public virtual signal void drive_changed (GLib.Drive drive);
+		public virtual signal void drive_connected (GLib.Drive drive);
+		public virtual signal void drive_disconnected (GLib.Drive drive);
+		public virtual signal void mount_added (GLib.Mount mount);
+		public virtual signal void mount_changed (GLib.Mount mount);
+		public virtual signal void mount_pre_unmount (GLib.Mount mount);
+		public virtual signal void mount_removed (GLib.Mount mount);
+		public virtual signal void volume_added (GLib.Volume volume);
+		public virtual signal void volume_changed (GLib.Volume volume);
+		public virtual signal void volume_removed (GLib.Volume volume);
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public interface AppInfo : GLib.Object {
@@ -673,9 +673,9 @@
 		public abstract bool is_media_removable ();
 		public abstract void poll_for_media (GLib.Cancellable? cancellable, GLib.AsyncReadyCallback callback);
 		public abstract bool poll_for_media_finish (GLib.AsyncResult _result) throws GLib.Error;
-		public signal void changed ();
-		public signal void disconnected ();
-		public signal void eject_button ();
+		public virtual signal void changed ();
+		public virtual signal void disconnected ();
+		public virtual signal void eject_button ();
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public interface File : GLib.Object {
@@ -803,8 +803,8 @@
 		public abstract bool remount_finish (GLib.AsyncResult _result) throws GLib.Error;
 		public abstract void unmount (GLib.MountUnmountFlags flags, GLib.Cancellable? cancellable, GLib.AsyncReadyCallback callback);
 		public abstract bool unmount_finish (GLib.AsyncResult _result) throws GLib.Error;
-		public signal void changed ();
-		public signal void unmounted ();
+		public virtual signal void changed ();
+		public virtual signal void unmounted ();
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public interface Seekable : GLib.Object {
@@ -834,8 +834,8 @@
 		[NoWrapper]
 		public abstract void mount_fn (GLib.MountMountFlags flags, GLib.MountOperation mount_operation, GLib.Cancellable? cancellable, GLib.AsyncReadyCallback callback);
 		public abstract bool should_automount ();
-		public signal void changed ();
-		public signal void removed ();
+		public virtual signal void changed ();
+		public virtual signal void removed ();
 	}
 	[CCode (cheader_filename = "gio/gio.h")]
 	public delegate void AsyncReadyCallback (GLib.Object source_object, GLib.AsyncResult res);

Modified: trunk/vapi/gio-unix-2.0.vapi
==============================================================================
--- trunk/vapi/gio-unix-2.0.vapi	(original)
+++ trunk/vapi/gio-unix-2.0.vapi	Wed May 28 23:41:04 2008
@@ -38,8 +38,8 @@
 	[CCode (cheader_filename = "gio/gunixmounts.h")]
 	public class UnixMountMonitor : GLib.Object {
 		public UnixMountMonitor ();
-		public signal void mountpoints_changed ();
-		public signal void mounts_changed ();
+		public virtual signal void mountpoints_changed ();
+		public virtual signal void mounts_changed ();
 	}
 	[CCode (cheader_filename = "gio/gunixoutputstream.h")]
 	public class UnixOutputStream : GLib.OutputStream {

Modified: trunk/vapi/gnome-desktop-2.0.vapi
==============================================================================
--- trunk/vapi/gnome-desktop-2.0.vapi	(original)
+++ trunk/vapi/gnome-desktop-2.0.vapi	Wed May 28 23:41:04 2008
@@ -102,9 +102,9 @@
 		public void set_ditem (Gnome.DesktopItem ditem);
 		public void set_editable (bool editable);
 		public void set_entry_type (string type);
-		public signal void changed ();
-		public signal void icon_changed ();
-		public signal void name_changed ();
+		public virtual signal void changed ();
+		public virtual signal void icon_changed ();
+		public virtual signal void name_changed ();
 	}
 	[CCode (cheader_filename = "libgnomeui/gnome-hint.h")]
 	public class Hint : Gtk.Dialog, Atk.Implementor, Gtk.Buildable {

Modified: trunk/vapi/gnome-vfs-2.0.vapi
==============================================================================
--- trunk/vapi/gnome-vfs-2.0.vapi	(original)
+++ trunk/vapi/gnome-vfs-2.0.vapi	Wed May 28 23:41:04 2008
@@ -854,14 +854,14 @@
 		public void unmount (GnomeVFS.VolumeOpCallback callback);
 		public void unref ();
 		public static void volume_list_free (GLib.List volumes);
-		public signal void volume_mounted (GnomeVFS.Volume volume);
-		public signal void volume_pre_unmount (GnomeVFS.Volume volume);
-		public signal void volume_unmounted (GnomeVFS.Volume volume);
+		public virtual signal void volume_mounted (GnomeVFS.Volume volume);
+		public virtual signal void volume_pre_unmount (GnomeVFS.Volume volume);
+		public virtual signal void volume_unmounted (GnomeVFS.Volume volume);
 	}
 	[CCode (cheader_filename = "libgnomevfs/gnome-vfs.h")]
 	public class MIMEMonitor : GLib.Object {
 		public static weak GnomeVFS.MIMEMonitor get ();
-		public signal void data_changed ();
+		public virtual signal void data_changed ();
 	}
 	[CCode (cheader_filename = "libgnomevfs/gnome-vfs.h")]
 	public class Volume : GLib.Object {
@@ -894,11 +894,11 @@
 		public weak GnomeVFS.Volume get_volume_for_path (string path);
 		public weak GnomeVFS.VolumeMonitor @ref ();
 		public void unref ();
-		public signal void drive_connected (GnomeVFS.Drive drive);
-		public signal void drive_disconnected (GnomeVFS.Drive drive);
-		public signal void volume_mounted (GnomeVFS.Volume volume);
-		public signal void volume_pre_unmount (GnomeVFS.Volume volume);
-		public signal void volume_unmounted (GnomeVFS.Volume volume);
+		public virtual signal void drive_connected (GnomeVFS.Drive drive);
+		public virtual signal void drive_disconnected (GnomeVFS.Drive drive);
+		public virtual signal void volume_mounted (GnomeVFS.Volume volume);
+		public virtual signal void volume_pre_unmount (GnomeVFS.Volume volume);
+		public virtual signal void volume_unmounted (GnomeVFS.Volume volume);
 	}
 	[CCode (cheader_filename = "libgnomevfs/gnome-vfs.h")]
 	public static delegate void AsyncCallback (GnomeVFS.AsyncHandle handle, GnomeVFS.Result result, void* callback_data);

Modified: trunk/vapi/goocanvas.vapi
==============================================================================
--- trunk/vapi/goocanvas.vapi	(original)
+++ trunk/vapi/goocanvas.vapi	Wed May 28 23:41:04 2008
@@ -347,8 +347,8 @@
 		public double y1 { get; set; }
 		[NoAccessorMethod]
 		public double y2 { get; set; }
-		public signal void item_created (Goo.CanvasItem item, Goo.CanvasItemModel model);
-		public signal void set_scroll_adjustments (Gtk.Adjustment hadjustment, Gtk.Adjustment vadjustment);
+		public virtual signal void item_created (Goo.CanvasItem item, Goo.CanvasItemModel model);
+		public virtual signal void set_scroll_adjustments (Gtk.Adjustment hadjustment, Gtk.Adjustment vadjustment);
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public class CanvasEllipse : Goo.CanvasItemSimple, Goo.CanvasItem {
@@ -804,17 +804,17 @@
 		public Goo.CairoMatrix transform { get; set; }
 		public Goo.CanvasItemVisibility visibility { get; set; }
 		public double visibility_threshold { get; set; }
-		public signal bool button_press_event (Goo.CanvasItem target, Gdk.Event event);
-		public signal bool button_release_event (Goo.CanvasItem target, Gdk.Event event);
-		public signal void child_notify (GLib.ParamSpec pspec);
-		public signal bool enter_notify_event (Goo.CanvasItem target, Gdk.Event event);
-		public signal bool focus_in_event (Goo.CanvasItem target, Gdk.Event event);
-		public signal bool focus_out_event (Goo.CanvasItem target, Gdk.Event event);
-		public signal bool grab_broken_event (Goo.CanvasItem target, Gdk.Event event);
-		public signal bool key_press_event (Goo.CanvasItem target, Gdk.Event event);
-		public signal bool key_release_event (Goo.CanvasItem target, Gdk.Event event);
-		public signal bool leave_notify_event (Goo.CanvasItem target, Gdk.Event event);
-		public signal bool motion_notify_event (Goo.CanvasItem target, Gdk.Event event);
+		public virtual signal bool button_press_event (Goo.CanvasItem target, Gdk.Event event);
+		public virtual signal bool button_release_event (Goo.CanvasItem target, Gdk.Event event);
+		public virtual signal void child_notify (GLib.ParamSpec pspec);
+		public virtual signal bool enter_notify_event (Goo.CanvasItem target, Gdk.Event event);
+		public virtual signal bool focus_in_event (Goo.CanvasItem target, Gdk.Event event);
+		public virtual signal bool focus_out_event (Goo.CanvasItem target, Gdk.Event event);
+		public virtual signal bool grab_broken_event (Goo.CanvasItem target, Gdk.Event event);
+		public virtual signal bool key_press_event (Goo.CanvasItem target, Gdk.Event event);
+		public virtual signal bool key_release_event (Goo.CanvasItem target, Gdk.Event event);
+		public virtual signal bool leave_notify_event (Goo.CanvasItem target, Gdk.Event event);
+		public virtual signal bool motion_notify_event (Goo.CanvasItem target, Gdk.Event event);
 	}
 	[CCode (cheader_filename = "goocanvas.h")]
 	public interface CanvasItemModel : GLib.Object {
@@ -863,11 +863,11 @@
 		public Goo.CairoMatrix transform { get; set; }
 		public Goo.CanvasItemVisibility visibility { get; set; }
 		public double visibility_threshold { get; set; }
-		public signal void changed (bool recompute_bounds);
-		public signal void child_added (int child_num);
-		public signal void child_moved (int old_child_num, int new_child_num);
-		public signal void child_notify (GLib.ParamSpec pspec);
-		public signal void child_removed (int child_num);
+		public virtual signal void changed (bool recompute_bounds);
+		public virtual signal void child_added (int child_num);
+		public virtual signal void child_moved (int old_child_num, int new_child_num);
+		public virtual signal void child_notify (GLib.ParamSpec pspec);
+		public virtual signal void child_removed (int child_num);
 	}
 	public const int NUM_ARROW_POINTS;
 }

Modified: trunk/vapi/gstreamer-0.10.vapi
==============================================================================
--- trunk/vapi/gstreamer-0.10.vapi	(original)
+++ trunk/vapi/gstreamer-0.10.vapi	Wed May 28 23:41:04 2008
@@ -1120,8 +1120,8 @@
 		public virtual bool remove_element (Gst.Element element);
 		[NoAccessorMethod]
 		public bool async_handling { get; set; }
-		public signal void element_added (Gst.Element child);
-		public signal void element_removed (Gst.Element child);
+		public virtual signal void element_added (Gst.Element child);
+		public virtual signal void element_removed (Gst.Element child);
 	}
 	[CCode (cheader_filename = "gst/gst.h")]
 	public class Bus : Gst.Object {
@@ -1152,8 +1152,8 @@
 		public Gst.BusSyncReply sync_signal_handler (Gst.Message message, void* data);
 		public weak Gst.Message timed_pop (Gst.ClockTime timeout);
 		public weak Gst.Message timed_pop_filtered (Gst.ClockTime timeout, Gst.MessageType types);
-		public signal void message (Gst.Message message);
-		public signal void sync_message (Gst.Message message);
+		public virtual signal void message (Gst.Message message);
+		public virtual signal void sync_message (Gst.Message message);
 	}
 	[CCode (cheader_filename = "gst/gst.h")]
 	public class Clock : Gst.Object {
@@ -1299,9 +1299,9 @@
 		public virtual void set_index (Gst.Index index);
 		public virtual Gst.StateChangeReturn set_state (Gst.State state);
 		[HasEmitter]
-		public signal void no_more_pads ();
-		public signal void pad_added (Gst.Pad pad);
-		public signal void pad_removed (Gst.Pad pad);
+		public virtual signal void no_more_pads ();
+		public virtual signal void pad_added (Gst.Pad pad);
+		public virtual signal void pad_removed (Gst.Pad pad);
 	}
 	[CCode (cheader_filename = "gst/gst.h")]
 	public class ElementFactory : Gst.PluginFeature {
@@ -1373,7 +1373,7 @@
 		public virtual bool get_writer_id (Gst.Object writer, int id);
 		[NoAccessorMethod]
 		public Gst.IndexResolver resolver { get; set; }
-		public signal void entry_added (Gst.IndexEntry entry);
+		public virtual signal void entry_added (Gst.IndexEntry entry);
 	}
 	[CCode (cheader_filename = "gst/gst.h")]
 	public class IndexFactory : Gst.PluginFeature {
@@ -1411,10 +1411,10 @@
 		public virtual void restore_thyself (void* self);
 		public virtual void* save_thyself (void* parent);
 		public string name { get; set construct; }
-		public signal void deep_notify (Gst.Object orig, GLib.ParamSpec pspec);
-		public signal void object_saved (void* parent);
-		public signal void parent_set (Gst.Object parent);
-		public signal void parent_unset (Gst.Object parent);
+		public virtual signal void deep_notify (Gst.Object orig, GLib.ParamSpec pspec);
+		public virtual signal void object_saved (void* parent);
+		public virtual signal void parent_set (Gst.Object parent);
+		public virtual signal void parent_unset (Gst.Object parent);
 	}
 	[CCode (cheader_filename = "gst/gst.h")]
 	public class Pad : Gst.Object {
@@ -1540,10 +1540,10 @@
 		public Gst.PadDirection direction { get; construct; }
 		[NoAccessorMethod]
 		public Gst.PadTemplate template { get; set; }
-		public signal bool have_data (Gst.MiniObject data);
-		public signal void linked (Gst.Pad peer);
-		public signal void request_link ();
-		public signal void unlinked (Gst.Pad peer);
+		public virtual signal bool have_data (Gst.MiniObject data);
+		public virtual signal void linked (Gst.Pad peer);
+		public virtual signal void request_link ();
+		public virtual signal void unlinked (Gst.Pad peer);
 	}
 	[CCode (cheader_filename = "gst/gst.h")]
 	public class PadTemplate : Gst.Object {
@@ -1554,7 +1554,7 @@
 		public weak Gst.Caps get_caps ();
 		public PadTemplate (string name_template, Gst.PadDirection direction, Gst.PadPresence presence, Gst.Caps caps);
 		[HasEmitter]
-		public signal void pad_created (Gst.Pad pad);
+		public virtual signal void pad_created (Gst.Pad pad);
 	}
 	[CCode (cheader_filename = "gst/gst.h")]
 	public class Pipeline : Gst.Bin, Gst.ChildProxy {
@@ -1647,8 +1647,8 @@
 		public bool scan_path (string path);
 		public bool xml_read_cache (string location);
 		public bool xml_write_cache (string location);
-		public signal void feature_added (void* feature);
-		public signal void plugin_added (void* plugin);
+		public virtual signal void feature_added (void* feature);
+		public virtual signal void plugin_added (void* plugin);
 	}
 	[CCode (cheader_filename = "gst/gst.h")]
 	public class SystemClock : Gst.Clock {
@@ -1705,7 +1705,7 @@
 		public static int write_file (Gst.Element element, GLib.FileStream @out);
 		[NoWrapper]
 		public virtual void object_saved (Gst.Object object, void* self);
-		public signal void object_loaded (Gst.Object object, void* self);
+		public virtual signal void object_loaded (Gst.Object object, void* self);
 	}
 	[CCode (cheader_filename = "gst/gst.h")]
 	public interface ChildProxy : Gst.Object {
@@ -1720,9 +1720,9 @@
 		public abstract weak Gst.Object get_child_by_index (uint index);
 		public abstract uint get_children_count ();
 		[HasEmitter]
-		public signal void child_added (GLib.Object child);
+		public virtual signal void child_added (GLib.Object child);
 		[HasEmitter]
-		public signal void child_removed (GLib.Object child);
+		public virtual signal void child_removed (GLib.Object child);
 	}
 	[CCode (cheader_filename = "gst/gst.h")]
 	public interface ImplementsInterface : Gst.Element {
@@ -1744,7 +1744,7 @@
 		public abstract weak string get_uri ();
 		public abstract bool set_uri (string uri);
 		[HasEmitter]
-		public signal void new_uri (string uri);
+		public virtual signal void new_uri (string uri);
 	}
 	[CCode (cheader_filename = "gst/gst.h")]
 	[SimpleType]

Modified: trunk/vapi/gstreamer-base-0.10.vapi
==============================================================================
--- trunk/vapi/gstreamer-base-0.10.vapi	(original)
+++ trunk/vapi/gstreamer-base-0.10.vapi	Wed May 28 23:41:04 2008
@@ -309,8 +309,8 @@
 		public uint64 current_level_time { get; }
 		[NoAccessorMethod]
 		public uint current_level_visible { get; }
-		public signal void empty ();
-		public signal void full ();
+		public virtual signal void empty ();
+		public virtual signal void full ();
 	}
 	[CCode (cheader_filename = "gst/base/gstpushsrc.h")]
 	public class PushSrc : Gst.BaseSrc {

Modified: trunk/vapi/gstreamer-interfaces-0.10.vapi
==============================================================================
--- trunk/vapi/gstreamer-interfaces-0.10.vapi	(original)
+++ trunk/vapi/gstreamer-interfaces-0.10.vapi	Wed May 28 23:41:04 2008
@@ -49,7 +49,7 @@
 		public weak string label;
 		public int min_value;
 		public int max_value;
-		public signal void value_changed (int value);
+		public virtual signal void value_changed (int value);
 	}
 	[CCode (cheader_filename = "gst/interfaces/mixer.h")]
 	public class MixerOptions : Gst.MixerTrack {
@@ -81,8 +81,8 @@
 		public int min_signal;
 		public int max_signal;
 		public static void changed (Gst.Tuner tuner, Gst.TunerChannel channel);
-		public signal void frequency_changed (ulong frequency);
-		public signal void signal_changed (int @signal);
+		public virtual signal void frequency_changed (ulong frequency);
+		public virtual signal void signal_changed (int @signal);
 	}
 	[CCode (cheader_filename = "gst/interfaces/tuner.h")]
 	public class TunerNorm : GLib.Object {
@@ -96,7 +96,7 @@
 		public abstract weak GLib.List list_channels ();
 		public abstract void set_value (Gst.ColorBalanceChannel channel, int value);
 		[HasEmitter]
-		public signal void value_changed (Gst.ColorBalanceChannel channel, int value);
+		public virtual signal void value_changed (Gst.ColorBalanceChannel channel, int value);
 	}
 	[CCode (cheader_filename = "gst/interfaces/mixer.h")]
 	public interface Mixer : Gst.ImplementsInterface, Gst.Element {
@@ -114,13 +114,13 @@
 		public abstract void set_record (Gst.MixerTrack track, bool record);
 		public abstract void set_volume (Gst.MixerTrack track, int volumes);
 		[HasEmitter]
-		public signal void mute_toggled (Gst.MixerTrack channel, bool mute);
+		public virtual signal void mute_toggled (Gst.MixerTrack channel, bool mute);
 		[HasEmitter]
-		public signal void option_changed (Gst.MixerOptions opts, string option);
+		public virtual signal void option_changed (Gst.MixerOptions opts, string option);
 		[HasEmitter]
-		public signal void record_toggled (Gst.MixerTrack channel, bool record);
+		public virtual signal void record_toggled (Gst.MixerTrack channel, bool record);
 		[HasEmitter]
-		public signal void volume_changed (Gst.MixerTrack channel, void* volumes);
+		public virtual signal void volume_changed (Gst.MixerTrack channel, void* volumes);
 	}
 	[CCode (cheader_filename = "gst/interfaces/navigation.h")]
 	public interface Navigation {
@@ -140,7 +140,7 @@
 		public abstract GLib.ValueArray get_values (GLib.ParamSpec pspec);
 		public abstract bool needs_probe (GLib.ParamSpec pspec);
 		public abstract void probe_property (GLib.ParamSpec pspec);
-		public signal void probe_needed (void* pspec);
+		public virtual signal void probe_needed (void* pspec);
 	}
 	[CCode (cheader_filename = "gst/interfaces/tunerchannel.h")]
 	public interface Tuner : Gst.ImplementsInterface, Gst.Element {
@@ -155,12 +155,12 @@
 		public abstract void set_frequency (Gst.TunerChannel channel, ulong frequency);
 		public abstract void set_norm (Gst.TunerNorm norm);
 		public abstract int signal_strength (Gst.TunerChannel channel);
-		public signal void channel_changed (Gst.TunerChannel channel);
+		public virtual signal void channel_changed (Gst.TunerChannel channel);
 		[HasEmitter]
-		public signal void frequency_changed (Gst.TunerChannel channel, ulong frequency);
-		public signal void norm_changed (Gst.TunerNorm norm);
+		public virtual signal void frequency_changed (Gst.TunerChannel channel, ulong frequency);
+		public virtual signal void norm_changed (Gst.TunerNorm norm);
 		[HasEmitter]
-		public signal void signal_changed (Gst.TunerChannel channel, int @signal);
+		public virtual signal void signal_changed (Gst.TunerChannel channel, int @signal);
 	}
 	[CCode (cheader_filename = "gst/interfaces/videoorientation.h")]
 	public interface VideoOrientation : Gst.ImplementsInterface, Gst.Element {

Modified: trunk/vapi/gstreamer-rtsp-0.10.vapi
==============================================================================
--- trunk/vapi/gstreamer-rtsp-0.10.vapi	(original)
+++ trunk/vapi/gstreamer-rtsp-0.10.vapi	Wed May 28 23:41:04 2008
@@ -345,7 +345,7 @@
 		public abstract Gst.RTSPResult setup_media (Gst.SDPMedia media);
 		public abstract Gst.RTSPResult stream_select (Gst.RTSPUrl url);
 		[HasEmitter]
-		public signal Gst.RTSPResult send (void* req, void* resp);
+		public virtual signal Gst.RTSPResult send (void* req, void* resp);
 	}
 	public const int RTSP_DEFAULT_PORT;
 	[CCode (cheader_filename = "gst/gst.h")]

Modified: trunk/vapi/gtk+-2.0.vapi
==============================================================================
--- trunk/vapi/gtk+-2.0.vapi	(original)
+++ trunk/vapi/gtk+-2.0.vapi	Wed May 28 23:41:04 2008
@@ -1097,87 +1097,87 @@
 		public bool visible { get; set; }
 		[NoAccessorMethod]
 		public int width_request { get; set; }
-		public signal void accel_closures_changed ();
-		public signal bool button_press_event (Gdk.Event event);
-		public signal bool button_release_event (Gdk.Event event);
-		[HasEmitter]
-		public signal bool can_activate_accel (uint signal_id);
-		[HasEmitter]
-		public signal void child_notify (GLib.ParamSpec pspec);
-		public signal bool client_event (Gdk.Event event);
-		public signal void composited_changed ();
-		public signal bool configure_event (Gdk.Event event);
-		public signal bool delete_event (Gdk.Event event);
-		public signal bool destroy_event (Gdk.Event event);
-		public signal void direction_changed (Gtk.TextDirection previous_direction);
-		public signal void drag_begin (Gdk.DragContext context);
-		public signal void drag_data_delete (Gdk.DragContext context);
-		public signal void drag_data_get (Gdk.DragContext context, Gtk.SelectionData selection_data, uint info, uint time_);
-		public signal void drag_data_received (Gdk.DragContext context, int x, int y, Gtk.SelectionData selection_data, uint info, uint time_);
-		public signal bool drag_drop (Gdk.DragContext context, int x, int y, uint time_);
-		public signal void drag_end (Gdk.DragContext context);
-		public signal bool drag_failed (Gdk.DragContext p0, Gtk.DragResult p1);
-		public signal void drag_leave (Gdk.DragContext context, uint time_);
-		public signal bool drag_motion (Gdk.DragContext context, int x, int y, uint time_);
-		public signal bool enter_notify_event (Gdk.Event event);
-		[HasEmitter]
-		public signal bool event (Gdk.Event event);
-		public signal void event_after (Gdk.Event p0);
-		public signal bool expose_event (Gdk.Event event);
-		public signal bool focus (Gtk.DirectionType direction);
-		public signal bool focus_in_event (Gdk.Event event);
-		public signal bool focus_out_event (Gdk.Event event);
-		public signal bool grab_broken_event (Gdk.Event event);
-		[HasEmitter]
-		public signal void grab_focus ();
-		public signal void grab_notify (bool was_grabbed);
-		[HasEmitter]
-		public signal void hide ();
-		public signal void hierarchy_changed (Gtk.Widget previous_toplevel);
-		public signal bool key_press_event (Gdk.EventKey event);
-		public signal bool key_release_event (Gdk.EventKey event);
-		[HasEmitter]
-		public signal bool keynav_failed (Gtk.DirectionType p0);
-		public signal bool leave_notify_event (Gdk.Event event);
-		[HasEmitter]
-		public signal void map ();
-		public signal bool map_event (Gdk.Event event);
-		[HasEmitter]
-		public signal bool mnemonic_activate (bool group_cycling);
-		public signal bool motion_notify_event (Gdk.Event event);
-		public signal void move_focus (Gtk.DirectionType p0);
-		public signal bool no_expose_event (Gdk.Event event);
-		public signal void parent_set (Gtk.Widget previous_parent);
-		public signal bool popup_menu ();
-		public signal bool property_notify_event (Gdk.Event event);
-		public signal bool proximity_in_event (Gdk.Event event);
-		public signal bool proximity_out_event (Gdk.Event event);
-		public signal bool query_tooltip (int x, int y, bool keyboard_tooltip, Gtk.Tooltip tooltip);
-		[HasEmitter]
-		public signal void realize ();
-		public signal void screen_changed (Gdk.Screen previous_screen);
-		public signal bool scroll_event (Gdk.Event event);
-		public signal bool selection_clear_event (Gdk.Event event);
-		public signal void selection_get (Gtk.SelectionData selection_data, uint info, uint time_);
-		public signal bool selection_notify_event (Gdk.Event event);
-		public signal void selection_received (Gtk.SelectionData selection_data, uint time_);
-		public signal bool selection_request_event (Gdk.Event event);
-		[HasEmitter]
-		public signal void show ();
-		public signal bool show_help (Gtk.WidgetHelpType help_type);
-		[HasEmitter]
-		public signal void size_allocate (Gdk.Rectangle allocation);
-		[HasEmitter]
-		public signal void size_request (Gtk.Requisition requisition);
-		public signal void state_changed (Gtk.StateType previous_state);
-		public signal void style_set (Gtk.Style previous_style);
-		[HasEmitter]
-		public signal void unmap ();
-		public signal bool unmap_event (Gdk.Event event);
-		[HasEmitter]
-		public signal void unrealize ();
-		public signal bool visibility_notify_event (Gdk.Event event);
-		public signal bool window_state_event (Gdk.Event event);
+		public virtual signal void accel_closures_changed ();
+		public virtual signal bool button_press_event (Gdk.Event event);
+		public virtual signal bool button_release_event (Gdk.Event event);
+		[HasEmitter]
+		public virtual signal bool can_activate_accel (uint signal_id);
+		[HasEmitter]
+		public virtual signal void child_notify (GLib.ParamSpec pspec);
+		public virtual signal bool client_event (Gdk.Event event);
+		public virtual signal void composited_changed ();
+		public virtual signal bool configure_event (Gdk.Event event);
+		public virtual signal bool delete_event (Gdk.Event event);
+		public virtual signal bool destroy_event (Gdk.Event event);
+		public virtual signal void direction_changed (Gtk.TextDirection previous_direction);
+		public virtual signal void drag_begin (Gdk.DragContext context);
+		public virtual signal void drag_data_delete (Gdk.DragContext context);
+		public virtual signal void drag_data_get (Gdk.DragContext context, Gtk.SelectionData selection_data, uint info, uint time_);
+		public virtual signal void drag_data_received (Gdk.DragContext context, int x, int y, Gtk.SelectionData selection_data, uint info, uint time_);
+		public virtual signal bool drag_drop (Gdk.DragContext context, int x, int y, uint time_);
+		public virtual signal void drag_end (Gdk.DragContext context);
+		public virtual signal bool drag_failed (Gdk.DragContext p0, Gtk.DragResult p1);
+		public virtual signal void drag_leave (Gdk.DragContext context, uint time_);
+		public virtual signal bool drag_motion (Gdk.DragContext context, int x, int y, uint time_);
+		public virtual signal bool enter_notify_event (Gdk.Event event);
+		[HasEmitter]
+		public virtual signal bool event (Gdk.Event event);
+		public virtual signal void event_after (Gdk.Event p0);
+		public virtual signal bool expose_event (Gdk.Event event);
+		public virtual signal bool focus (Gtk.DirectionType direction);
+		public virtual signal bool focus_in_event (Gdk.Event event);
+		public virtual signal bool focus_out_event (Gdk.Event event);
+		public virtual signal bool grab_broken_event (Gdk.Event event);
+		[HasEmitter]
+		public virtual signal void grab_focus ();
+		public virtual signal void grab_notify (bool was_grabbed);
+		[HasEmitter]
+		public virtual signal void hide ();
+		public virtual signal void hierarchy_changed (Gtk.Widget previous_toplevel);
+		public virtual signal bool key_press_event (Gdk.EventKey event);
+		public virtual signal bool key_release_event (Gdk.EventKey event);
+		[HasEmitter]
+		public virtual signal bool keynav_failed (Gtk.DirectionType p0);
+		public virtual signal bool leave_notify_event (Gdk.Event event);
+		[HasEmitter]
+		public virtual signal void map ();
+		public virtual signal bool map_event (Gdk.Event event);
+		[HasEmitter]
+		public virtual signal bool mnemonic_activate (bool group_cycling);
+		public virtual signal bool motion_notify_event (Gdk.Event event);
+		public virtual signal void move_focus (Gtk.DirectionType p0);
+		public virtual signal bool no_expose_event (Gdk.Event event);
+		public virtual signal void parent_set (Gtk.Widget previous_parent);
+		public virtual signal bool popup_menu ();
+		public virtual signal bool property_notify_event (Gdk.Event event);
+		public virtual signal bool proximity_in_event (Gdk.Event event);
+		public virtual signal bool proximity_out_event (Gdk.Event event);
+		public virtual signal bool query_tooltip (int x, int y, bool keyboard_tooltip, Gtk.Tooltip tooltip);
+		[HasEmitter]
+		public virtual signal void realize ();
+		public virtual signal void screen_changed (Gdk.Screen previous_screen);
+		public virtual signal bool scroll_event (Gdk.Event event);
+		public virtual signal bool selection_clear_event (Gdk.Event event);
+		public virtual signal void selection_get (Gtk.SelectionData selection_data, uint info, uint time_);
+		public virtual signal bool selection_notify_event (Gdk.Event event);
+		public virtual signal void selection_received (Gtk.SelectionData selection_data, uint time_);
+		public virtual signal bool selection_request_event (Gdk.Event event);
+		[HasEmitter]
+		public virtual signal void show ();
+		public virtual signal bool show_help (Gtk.WidgetHelpType help_type);
+		[HasEmitter]
+		public virtual signal void size_allocate (Gdk.Rectangle allocation);
+		[HasEmitter]
+		public virtual signal void size_request (Gtk.Requisition requisition);
+		public virtual signal void state_changed (Gtk.StateType previous_state);
+		public virtual signal void style_set (Gtk.Style previous_style);
+		[HasEmitter]
+		public virtual signal void unmap ();
+		public virtual signal bool unmap_event (Gdk.Event event);
+		[HasEmitter]
+		public virtual signal void unrealize ();
+		public virtual signal bool visibility_notify_event (Gdk.Event event);
+		public virtual signal bool window_state_event (Gdk.Event event);
 	}
 	[Compact]
 	[CCode (cheader_filename = "gtk/gtk.h")]
@@ -1775,8 +1775,8 @@
 		public AccelGroup ();
 		public weak Gtk.AccelGroupEntry query (uint accel_key, Gdk.ModifierType accel_mods, uint n_entries);
 		public void unlock ();
-		public signal bool accel_activate (GLib.Object p0, uint p1, Gdk.ModifierType p2);
-		public signal void accel_changed (uint keyval, Gdk.ModifierType modifier, GLib.Closure accel_closure);
+		public virtual signal bool accel_activate (GLib.Object p0, uint p1, Gdk.ModifierType p2);
+		public virtual signal void accel_changed (uint keyval, Gdk.ModifierType modifier, GLib.Closure accel_closure);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class AccelLabel : Gtk.Label, Atk.Implementor, Gtk.Buildable {
@@ -1811,7 +1811,7 @@
 		public static void save (string file_name);
 		public static void save_fd (int fd);
 		public static void unlock_path (string accel_path);
-		public signal void changed (string p0, uint p1, Gdk.ModifierType p2);
+		public virtual signal void changed (string p0, uint p1, Gdk.ModifierType p2);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Accessible : Atk.Object {
@@ -1869,7 +1869,7 @@
 		[NoAccessorMethod]
 		public bool visible_vertical { get; set; }
 		[HasEmitter]
-		public signal void activate ();
+		public virtual signal void activate ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class ActionGroup : GLib.Object, Gtk.Buildable {
@@ -1896,10 +1896,10 @@
 		public string name { get; construct; }
 		public bool sensitive { get; set; }
 		public bool visible { get; set; }
-		public signal void connect_proxy (Gtk.Action p0, Gtk.Widget p1);
-		public signal void disconnect_proxy (Gtk.Action p0, Gtk.Widget p1);
-		public signal void post_activate (Gtk.Action p0);
-		public signal void pre_activate (Gtk.Action p0);
+		public virtual signal void connect_proxy (Gtk.Action p0, Gtk.Widget p1);
+		public virtual signal void disconnect_proxy (Gtk.Action p0, Gtk.Widget p1);
+		public virtual signal void post_activate (Gtk.Action p0);
+		public virtual signal void pre_activate (Gtk.Action p0);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Adjustment : Gtk.Object {
@@ -1919,9 +1919,9 @@
 		public double upper { get; set; }
 		public double value { get; set; }
 		[HasEmitter]
-		public signal void changed ();
+		public virtual signal void changed ();
 		[HasEmitter]
-		public signal void value_changed ();
+		public virtual signal void value_changed ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Alignment : Gtk.Bin, Atk.Implementor, Gtk.Buildable {
@@ -1996,10 +1996,10 @@
 		public void set_page_title (Gtk.Widget page, string title);
 		public void set_page_type (Gtk.Widget page, Gtk.AssistantPageType type);
 		public void update_buttons_state ();
-		public signal void apply ();
-		public signal void cancel ();
-		public signal void close ();
-		public signal void prepare (Gtk.Widget page);
+		public virtual signal void apply ();
+		public virtual signal void cancel ();
+		public virtual signal void close ();
+		public virtual signal void prepare (Gtk.Widget page);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Bin : Gtk.Container, Atk.Implementor, Gtk.Buildable {
@@ -2081,17 +2081,17 @@
 		public float xalign { get; set; }
 		[NoAccessorMethod]
 		public float yalign { get; set; }
-		public signal void activate ();
+		public virtual signal void activate ();
 		[HasEmitter]
-		public signal void clicked ();
+		public virtual signal void clicked ();
 		[HasEmitter]
-		public signal void enter ();
+		public virtual signal void enter ();
 		[HasEmitter]
-		public signal void leave ();
+		public virtual signal void leave ();
 		[HasEmitter]
-		public signal void pressed ();
+		public virtual signal void pressed ();
 		[HasEmitter]
-		public signal void released ();
+		public virtual signal void released ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class ButtonBox : Gtk.Box, Atk.Implementor, Gtk.Buildable {
@@ -2150,13 +2150,13 @@
 		public bool show_week_numbers { get; set; }
 		[NoAccessorMethod]
 		public int year { get; set; }
-		public signal void day_selected ();
-		public signal void day_selected_double_click ();
-		public signal void month_changed ();
-		public signal void next_month ();
-		public signal void next_year ();
-		public signal void prev_month ();
-		public signal void prev_year ();
+		public virtual signal void day_selected ();
+		public virtual signal void day_selected_double_click ();
+		public virtual signal void month_changed ();
+		public virtual signal void next_month ();
+		public virtual signal void next_year ();
+		public virtual signal void prev_month ();
+		public virtual signal void prev_year ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class CellRenderer : Gtk.Object {
@@ -2197,8 +2197,8 @@
 		[NoAccessorMethod]
 		public uint ypad { get; set; }
 		[HasEmitter]
-		public signal void editing_canceled ();
-		public signal void editing_started (Gtk.CellEditable editable, string path);
+		public virtual signal void editing_canceled ();
+		public virtual signal void editing_started (Gtk.CellEditable editable, string path);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class CellRendererAccel : Gtk.CellRendererText {
@@ -2214,8 +2214,8 @@
 		public Gdk.ModifierType accel_mods { get; set; }
 		[NoAccessorMethod]
 		public uint keycode { get; set; }
-		public signal void accel_cleared (string path_string);
-		public signal void accel_edited (string path_string, uint accel_key, Gdk.ModifierType accel_mods, uint hardware_keycode);
+		public virtual signal void accel_cleared (string path_string);
+		public virtual signal void accel_edited (string path_string, uint accel_key, Gdk.ModifierType accel_mods, uint hardware_keycode);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class CellRendererCombo : Gtk.CellRendererText {
@@ -2371,7 +2371,7 @@
 		public Pango.WrapMode wrap_mode { get; set; }
 		[NoAccessorMethod]
 		public int wrap_width { get; set; }
-		public signal void edited (string path, string new_text);
+		public virtual signal void edited (string path, string new_text);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class CellRendererToggle : Gtk.CellRenderer {
@@ -2388,7 +2388,7 @@
 		[NoAccessorMethod]
 		public int indicator_size { get; set; }
 		public bool radio { get; set; }
-		public signal void toggled (string path);
+		public virtual signal void toggled (string path);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class CellView : Gtk.Widget, Atk.Implementor, Gtk.Buildable, Gtk.CellLayout {
@@ -2437,7 +2437,7 @@
 		public bool draw_as_radio { get; set; }
 		public bool inconsistent { get; set; }
 		[HasEmitter]
-		public signal void toggled ();
+		public virtual signal void toggled ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Clipboard : GLib.Object {
@@ -2466,7 +2466,7 @@
 		public bool wait_is_rich_text_available (Gtk.TextBuffer buffer);
 		public bool wait_is_target_available (Gdk.Atom target);
 		public bool wait_is_text_available ();
-		public signal void owner_change (Gdk.Event p0);
+		public virtual signal void owner_change (Gdk.Event p0);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class ColorButton : Gtk.Button, Atk.Implementor, Gtk.Buildable {
@@ -2484,7 +2484,7 @@
 		public Gdk.Color color { get; set; }
 		public string title { get; set; }
 		public bool use_alpha { get; set; }
-		public signal void color_set ();
+		public virtual signal void color_set ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class ColorSelection : Gtk.VBox, Atk.Implementor, Gtk.Buildable {
@@ -2509,7 +2509,7 @@
 		public Gdk.Color current_color { get; set; }
 		public bool has_opacity_control { get; set; }
 		public bool has_palette { get; set; }
-		public signal void color_changed ();
+		public virtual signal void color_changed ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class ColorSelectionDialog : Gtk.Dialog, Atk.Implementor, Gtk.Buildable {
@@ -2563,12 +2563,12 @@
 		[NoAccessorMethod]
 		public string tearoff_title { get; set; }
 		public int wrap_width { get; set; }
-		public signal void changed ();
-		public signal void move_active (Gtk.ScrollType p0);
+		public virtual signal void changed ();
+		public virtual signal void move_active (Gtk.ScrollType p0);
 		[HasEmitter]
-		public signal bool popdown ();
+		public virtual signal bool popdown ();
 		[HasEmitter]
-		public signal void popup ();
+		public virtual signal void popup ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class ComboBoxEntry : Gtk.ComboBox, Atk.Implementor, Gtk.Buildable, Gtk.CellEditable, Gtk.CellLayout {
@@ -2625,13 +2625,13 @@
 		public Gtk.Widget child { set; }
 		public Gtk.ResizeMode resize_mode { get; set; }
 		[HasEmitter]
-		public signal void add (Gtk.Widget widget);
+		public virtual signal void add (Gtk.Widget widget);
 		[HasEmitter]
-		public signal void check_resize ();
+		public virtual signal void check_resize ();
 		[HasEmitter]
-		public signal void remove (Gtk.Widget widget);
+		public virtual signal void remove (Gtk.Widget widget);
 		[HasEmitter]
-		public signal void set_focus_child (Gtk.Widget widget);
+		public virtual signal void set_focus_child (Gtk.Widget widget);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Curve : Gtk.DrawingArea, Atk.Implementor, Gtk.Buildable {
@@ -2662,7 +2662,7 @@
 		public float min_x { get; set; }
 		[NoAccessorMethod]
 		public float min_y { get; set; }
-		public signal void curve_type_changed ();
+		public virtual signal void curve_type_changed ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Dialog : Gtk.Window, Atk.Implementor, Gtk.Buildable {
@@ -2684,9 +2684,9 @@
 		public void set_has_separator (bool setting);
 		public void set_response_sensitive (int response_id, bool setting);
 		public bool has_separator { get; set; }
-		public signal void close ();
+		public virtual signal void close ();
 		[HasEmitter]
-		public signal void response (int response_id);
+		public virtual signal void response (int response_id);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class DrawingArea : Gtk.Widget, Atk.Implementor, Gtk.Buildable {
@@ -2776,16 +2776,16 @@
 		public int width_chars { get; set; }
 		[NoAccessorMethod]
 		public float xalign { get; set; }
-		public signal void activate ();
-		public signal void backspace ();
-		public signal void copy_clipboard ();
-		public signal void cut_clipboard ();
-		public signal void delete_from_cursor (Gtk.DeleteType type, int count);
-		public signal void insert_at_cursor (string str);
-		public signal void move_cursor (Gtk.MovementStep step, int count, bool extend_selection);
-		public signal void paste_clipboard ();
-		public signal void populate_popup (Gtk.Menu menu);
-		public signal void toggle_overwrite ();
+		public virtual signal void activate ();
+		public virtual signal void backspace ();
+		public virtual signal void copy_clipboard ();
+		public virtual signal void cut_clipboard ();
+		public virtual signal void delete_from_cursor (Gtk.DeleteType type, int count);
+		public virtual signal void insert_at_cursor (string str);
+		public virtual signal void move_cursor (Gtk.MovementStep step, int count, bool extend_selection);
+		public virtual signal void paste_clipboard ();
+		public virtual signal void populate_popup (Gtk.Menu menu);
+		public virtual signal void toggle_overwrite ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class EntryCompletion : GLib.Object, Gtk.Buildable, Gtk.CellLayout {
@@ -2821,11 +2821,11 @@
 		public bool popup_set_width { get; set; }
 		public bool popup_single_match { get; set; }
 		public int text_column { get; set; }
-		public signal void action_activated (int index_);
-		public signal bool cursor_on_match (Gtk.TreeModel model, Gtk.TreeIter iter);
+		public virtual signal void action_activated (int index_);
+		public virtual signal bool cursor_on_match (Gtk.TreeModel model, Gtk.TreeIter iter);
 		[HasEmitter]
-		public signal bool insert_prefix (string prefix);
-		public signal bool match_selected (Gtk.TreeModel model, Gtk.TreeIter iter);
+		public virtual signal bool insert_prefix (string prefix);
+		public virtual signal bool match_selected (Gtk.TreeModel model, Gtk.TreeIter iter);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class EventBox : Gtk.Bin, Atk.Implementor, Gtk.Buildable {
@@ -2859,7 +2859,7 @@
 		public int spacing { get; set; }
 		public bool use_markup { get; set construct; }
 		public bool use_underline { get; set construct; }
-		public signal void activate ();
+		public virtual signal void activate ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class FileChooserButton : Gtk.HBox, Atk.Implementor, Gtk.Buildable, Gtk.FileChooser {
@@ -2877,7 +2877,7 @@
 		public bool focus_on_click { get; set; }
 		public string title { get; set; }
 		public int width_chars { get; set; }
-		public signal void file_set ();
+		public virtual signal void file_set ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class FileChooserDialog : Gtk.Dialog, Atk.Implementor, Gtk.Buildable, Gtk.FileChooser {
@@ -2932,7 +2932,7 @@
 		public string title { get; set; }
 		public bool use_font { get; set; }
 		public bool use_size { get; set; }
-		public signal void font_set ();
+		public virtual signal void font_set ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class FontSelection : Gtk.VBox, Atk.Implementor, Gtk.Buildable {
@@ -3064,8 +3064,8 @@
 		public Gtk.PositionType snap_edge { get; set; }
 		[NoAccessorMethod]
 		public bool snap_edge_set { get; set; }
-		public signal void child_attached (Gtk.Widget child);
-		public signal void child_detached (Gtk.Widget child);
+		public virtual signal void child_attached (Gtk.Widget child);
+		public virtual signal void child_detached (Gtk.Widget child);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class IMContext : GLib.Object {
@@ -3079,13 +3079,13 @@
 		public virtual void set_cursor_location (Gdk.Rectangle area);
 		public virtual void set_surrounding (string text, int len, int cursor_index);
 		public virtual void set_use_preedit (bool use_preedit);
-		public signal void commit (string str);
+		public virtual signal void commit (string str);
 		[HasEmitter]
-		public signal bool delete_surrounding (int offset, int n_chars);
-		public signal void preedit_changed ();
-		public signal void preedit_end ();
-		public signal void preedit_start ();
-		public signal bool retrieve_surrounding ();
+		public virtual signal bool delete_surrounding (int offset, int n_chars);
+		public virtual signal void preedit_changed ();
+		public virtual signal void preedit_end ();
+		public virtual signal void preedit_start ();
+		public virtual signal bool retrieve_surrounding ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class IMContextSimple : Gtk.IMContext {
@@ -3138,7 +3138,7 @@
 		public void set_custom_theme (string theme_name);
 		public void set_screen (Gdk.Screen screen);
 		public void set_search_path (string[] path, int n_elements);
-		public signal void changed ();
+		public virtual signal void changed ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class IconView : Gtk.Container, Atk.Implementor, Gtk.Buildable, Gtk.CellLayout {
@@ -3209,16 +3209,16 @@
 		public int spacing { get; set; }
 		public int text_column { get; set; }
 		public int tooltip_column { get; set; }
-		public signal bool activate_cursor_item ();
+		public virtual signal bool activate_cursor_item ();
 		[HasEmitter]
-		public signal void item_activated (Gtk.TreePath path);
-		public signal bool move_cursor (Gtk.MovementStep step, int count);
-		public signal void select_all ();
-		public signal void select_cursor_item ();
-		public signal void selection_changed ();
-		public signal void set_scroll_adjustments (Gtk.Adjustment hadjustment, Gtk.Adjustment vadjustment);
-		public signal void toggle_cursor_item ();
-		public signal void unselect_all ();
+		public virtual signal void item_activated (Gtk.TreePath path);
+		public virtual signal bool move_cursor (Gtk.MovementStep step, int count);
+		public virtual signal void select_all ();
+		public virtual signal void select_cursor_item ();
+		public virtual signal void selection_changed ();
+		public virtual signal void set_scroll_adjustments (Gtk.Adjustment hadjustment, Gtk.Adjustment vadjustment);
+		public virtual signal void toggle_cursor_item ();
+		public virtual signal void unselect_all ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Image : Gtk.Misc, Atk.Implementor, Gtk.Buildable {
@@ -3296,8 +3296,8 @@
 		public weak Gtk.Widget keys_list;
 		public weak Gtk.Widget keys_listbox;
 		public InputDialog ();
-		public signal void disable_device (Gdk.Device device);
-		public signal void enable_device (Gdk.Device device);
+		public virtual signal void disable_device (Gdk.Device device);
+		public virtual signal void enable_device (Gdk.Device device);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Invisible : Gtk.Widget, Atk.Implementor, Gtk.Buildable {
@@ -3311,11 +3311,11 @@
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Item : Gtk.Bin, Atk.Implementor, Gtk.Buildable {
 		[HasEmitter]
-		public signal void deselect ();
+		public virtual signal void deselect ();
 		[HasEmitter]
-		public signal void select ();
+		public virtual signal void select ();
 		[HasEmitter]
-		public signal void toggle ();
+		public virtual signal void toggle ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Label : Gtk.Misc, Atk.Implementor, Gtk.Buildable {
@@ -3392,9 +3392,9 @@
 		public bool wrap { get; set; }
 		[NoAccessorMethod]
 		public Pango.WrapMode wrap_mode { get; set; }
-		public signal void copy_clipboard ();
-		public signal void move_cursor (Gtk.MovementStep step, int count, bool extend_selection);
-		public signal void populate_popup (Gtk.Menu menu);
+		public virtual signal void copy_clipboard ();
+		public virtual signal void move_cursor (Gtk.MovementStep step, int count, bool extend_selection);
+		public virtual signal void populate_popup (Gtk.Menu menu);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Layout : Gtk.Container, Atk.Implementor, Gtk.Buildable {
@@ -3419,7 +3419,7 @@
 		public Gtk.Adjustment vadjustment { get; set; }
 		[NoAccessorMethod]
 		public uint width { get; set; }
-		public signal void set_scroll_adjustments (Gtk.Adjustment hadjustment, Gtk.Adjustment vadjustment);
+		public virtual signal void set_scroll_adjustments (Gtk.Adjustment hadjustment, Gtk.Adjustment vadjustment);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class LinkButton : Gtk.Button, Atk.Implementor, Gtk.Buildable {
@@ -3524,7 +3524,7 @@
 		public bool tearoff_state { get; set; }
 		[NoAccessorMethod]
 		public string tearoff_title { get; set; }
-		public signal void move_scroll (Gtk.ScrollType p0);
+		public virtual signal void move_scroll (Gtk.ScrollType p0);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class MenuBar : Gtk.MenuShell, Atk.Implementor, Gtk.Buildable {
@@ -3561,12 +3561,12 @@
 		public void set_submenu (Gtk.Widget submenu);
 		public Gtk.Menu submenu { get; set; }
 		[HasEmitter]
-		public signal void activate ();
-		public signal void activate_item ();
+		public virtual signal void activate ();
+		public virtual signal void activate_item ();
 		[HasEmitter]
-		public signal void toggle_size_allocate (int allocation);
+		public virtual signal void toggle_size_allocate (int allocation);
 		[HasEmitter]
-		public signal void toggle_size_request (void* requisition);
+		public virtual signal void toggle_size_request (void* requisition);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class MenuShell : Gtk.Container, Atk.Implementor, Gtk.Buildable {
@@ -3593,15 +3593,15 @@
 		public virtual void insert (Gtk.Widget child, int position);
 		public virtual void select_item (Gtk.Widget menu_item);
 		public bool take_focus { get; set; }
-		public signal void activate_current (bool force_hide);
+		public virtual signal void activate_current (bool force_hide);
 		[HasEmitter]
-		public signal void cancel ();
-		public signal void cycle_focus (Gtk.DirectionType p0);
+		public virtual signal void cancel ();
+		public virtual signal void cycle_focus (Gtk.DirectionType p0);
 		[HasEmitter]
-		public signal void deactivate ();
-		public signal void move_current (Gtk.MenuDirectionType direction);
-		public signal bool move_selected (int distance);
-		public signal void selection_done ();
+		public virtual signal void deactivate ();
+		public virtual signal void move_current (Gtk.MenuDirectionType direction);
+		public virtual signal bool move_selected (int distance);
+		public virtual signal void selection_done ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class MenuToolButton : Gtk.ToolButton, Atk.Implementor, Gtk.Buildable {
@@ -3612,7 +3612,7 @@
 		public void set_arrow_tooltip_text (string text);
 		public void set_menu (Gtk.Widget menu);
 		public Gtk.Menu menu { get; set; }
-		public signal void show_menu ();
+		public virtual signal void show_menu ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class MessageDialog : Gtk.Dialog, Atk.Implementor, Gtk.Buildable {
@@ -3733,16 +3733,16 @@
 		public Gtk.PositionType tab_pos { get; set; }
 		[NoAccessorMethod]
 		public uint tab_vborder { get; set; }
-		public signal bool change_current_page (int offset);
-		public signal weak Gtk.Notebook create_window (Gtk.Widget page, int x, int y);
-		public signal bool focus_tab (Gtk.NotebookTab type);
-		public signal void move_focus_out (Gtk.DirectionType direction);
-		public signal void page_added (Gtk.Widget p0, uint p1);
-		public signal void page_removed (Gtk.Widget p0, uint p1);
-		public signal void page_reordered (Gtk.Widget p0, uint p1);
-		public signal bool reorder_tab (Gtk.DirectionType direction, bool move_to_last);
-		public signal bool select_page (bool move_focus);
-		public signal void switch_page (void* page, uint page_num);
+		public virtual signal bool change_current_page (int offset);
+		public virtual signal weak Gtk.Notebook create_window (Gtk.Widget page, int x, int y);
+		public virtual signal bool focus_tab (Gtk.NotebookTab type);
+		public virtual signal void move_focus_out (Gtk.DirectionType direction);
+		public virtual signal void page_added (Gtk.Widget p0, uint p1);
+		public virtual signal void page_removed (Gtk.Widget p0, uint p1);
+		public virtual signal void page_reordered (Gtk.Widget p0, uint p1);
+		public virtual signal bool reorder_tab (Gtk.DirectionType direction, bool move_to_last);
+		public virtual signal bool select_page (bool move_focus);
+		public virtual signal void switch_page (void* page, uint page_num);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Object : GLib.InitiallyUnowned {
@@ -3754,7 +3754,7 @@
 		[NoAccessorMethod]
 		public void* user_data { get; set; }
 		[HasEmitter]
-		public signal void destroy ();
+		public virtual signal void destroy ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class PageSetup : GLib.Object {
@@ -3819,12 +3819,12 @@
 		public int position { get; set; }
 		[NoAccessorMethod]
 		public bool position_set { get; set; }
-		public signal bool accept_position ();
-		public signal bool cancel_position ();
-		public signal bool cycle_child_focus (bool reverse);
-		public signal bool cycle_handle_focus (bool reverse);
-		public signal bool move_handle (Gtk.ScrollType scroll);
-		public signal bool toggle_handle_focus ();
+		public virtual signal bool accept_position ();
+		public virtual signal bool cancel_position ();
+		public virtual signal bool cycle_child_focus (bool reverse);
+		public virtual signal bool cycle_handle_focus (bool reverse);
+		public virtual signal bool move_handle (Gtk.ScrollType scroll);
+		public virtual signal bool toggle_handle_focus ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Plug : Gtk.Window, Atk.Implementor, Gtk.Buildable {
@@ -3901,16 +3901,16 @@
 		public Gtk.Unit unit { get; set; }
 		[NoAccessorMethod]
 		public bool use_full_page { get; set; }
-		public signal void begin_print (Gtk.PrintContext context);
-		public signal weak GLib.Object create_custom_widget ();
-		public signal void custom_widget_apply (Gtk.Widget widget);
-		public signal void done (Gtk.PrintOperationResult result);
-		public signal void draw_page (Gtk.PrintContext context, int page_nr);
-		public signal void end_print (Gtk.PrintContext context);
-		public signal bool paginate (Gtk.PrintContext context);
-		public signal bool preview (Gtk.PrintOperationPreview preview, Gtk.PrintContext context, Gtk.Window parent);
-		public signal void request_page_setup (Gtk.PrintContext context, int page_nr, Gtk.PageSetup setup);
-		public signal void status_changed ();
+		public virtual signal void begin_print (Gtk.PrintContext context);
+		public virtual signal weak GLib.Object create_custom_widget ();
+		public virtual signal void custom_widget_apply (Gtk.Widget widget);
+		public virtual signal void done (Gtk.PrintOperationResult result);
+		public virtual signal void draw_page (Gtk.PrintContext context, int page_nr);
+		public virtual signal void end_print (Gtk.PrintContext context);
+		public virtual signal bool paginate (Gtk.PrintContext context);
+		public virtual signal bool preview (Gtk.PrintOperationPreview preview, Gtk.PrintContext context, Gtk.Window parent);
+		public virtual signal void request_page_setup (Gtk.PrintContext context, int page_nr, Gtk.PageSetup setup);
+		public virtual signal void status_changed ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class PrintSettings : GLib.Object {
@@ -4027,7 +4027,7 @@
 		public Gtk.RadioAction group { set; }
 		[NoAccessorMethod]
 		public int value { get; set; }
-		public signal void changed (Gtk.RadioAction current);
+		public virtual signal void changed (Gtk.RadioAction current);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class RadioButton : Gtk.CheckButton, Atk.Implementor, Gtk.Buildable {
@@ -4040,7 +4040,7 @@
 		public RadioButton.with_mnemonic_from_widget (Gtk.RadioButton radio_group_member, string label);
 		public void set_group (GLib.SList group);
 		public Gtk.RadioButton group { set; }
-		public signal void group_changed ();
+		public virtual signal void group_changed ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class RadioMenuItem : Gtk.CheckMenuItem, Atk.Implementor, Gtk.Buildable {
@@ -4053,7 +4053,7 @@
 		public RadioMenuItem.with_mnemonic_from_widget (Gtk.RadioMenuItem group, string label);
 		public void set_group (GLib.SList group);
 		public Gtk.RadioMenuItem group { set; }
-		public signal void group_changed ();
+		public virtual signal void group_changed ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class RadioToolButton : Gtk.ToggleToolButton, Atk.Implementor, Gtk.Buildable {
@@ -4118,10 +4118,10 @@
 		public bool show_fill_level { get; set; }
 		public Gtk.UpdateType update_policy { get; set; }
 		public Gtk.SensitivityType upper_stepper_sensitivity { get; set; }
-		public signal void adjust_bounds (double new_value);
-		public signal bool change_value (Gtk.ScrollType scroll, double new_value);
-		public signal void move_slider (Gtk.ScrollType scroll);
-		public signal void value_changed ();
+		public virtual signal void adjust_bounds (double new_value);
+		public virtual signal bool change_value (Gtk.ScrollType scroll, double new_value);
+		public virtual signal void move_slider (Gtk.ScrollType scroll);
+		public virtual signal void value_changed ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class RcStyle : GLib.Object {
@@ -4225,7 +4225,7 @@
 		public int limit { get; set; }
 		[NoAccessorMethod]
 		public int size { get; }
-		public signal void changed ();
+		public virtual signal void changed ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Ruler : Gtk.Widget, Atk.Implementor, Gtk.Buildable {
@@ -4263,7 +4263,7 @@
 		public int digits { get; set; }
 		public bool draw_value { get; set; }
 		public Gtk.PositionType value_pos { get; set; }
-		public signal weak string format_value (double value);
+		public virtual signal weak string format_value (double value);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class ScaleButton : Gtk.Button, Atk.Implementor, Gtk.Buildable {
@@ -4281,9 +4281,9 @@
 		[NoAccessorMethod]
 		public Gtk.IconSize size { get; set; }
 		public double value { get; set; }
-		public signal void popdown ();
-		public signal void popup ();
-		public signal void value_changed (double value);
+		public virtual signal void popdown ();
+		public virtual signal void popup ();
+		public virtual signal void value_changed (double value);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Scrollbar : Gtk.Range, Atk.Implementor, Gtk.Buildable {
@@ -4321,8 +4321,8 @@
 		public Gtk.CornerType window_placement { get; set; }
 		[NoAccessorMethod]
 		public bool window_placement_set { get; set; }
-		public signal void move_focus_out (Gtk.DirectionType direction);
-		public signal bool scroll_child (Gtk.ScrollType scroll, bool horizontal);
+		public virtual signal void move_focus_out (Gtk.DirectionType direction);
+		public virtual signal bool scroll_child (Gtk.ScrollType scroll, bool horizontal);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Separator : Gtk.Widget, Atk.Implementor, Gtk.Buildable {
@@ -4479,8 +4479,8 @@
 		public void add_id (Gdk.NativeWindow window_id);
 		public weak Gdk.NativeWindow get_id ();
 		public Socket ();
-		public signal void plug_added ();
-		public signal bool plug_removed ();
+		public virtual signal void plug_added ();
+		public virtual signal bool plug_removed ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class SpinButton : Gtk.Entry, Atk.Implementor, Gtk.Buildable, Gtk.CellEditable, Gtk.Editable {
@@ -4525,11 +4525,11 @@
 		public Gtk.SpinButtonUpdatePolicy update_policy { get; set; }
 		public double value { get; set; }
 		public bool wrap { get; set; }
-		public signal void change_value (Gtk.ScrollType scroll);
-		public signal int input (void* new_value);
-		public signal bool output ();
-		public signal void value_changed ();
-		public signal void wrapped ();
+		public virtual signal void change_value (Gtk.ScrollType scroll);
+		public virtual signal int input (void* new_value);
+		public virtual signal bool output ();
+		public virtual signal void value_changed ();
+		public virtual signal void wrapped ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class StatusIcon : GLib.Object {
@@ -4574,9 +4574,9 @@
 		public string stock { get; set; }
 		public Gtk.ImageType storage_type { get; }
 		public bool visible { get; set; }
-		public signal void activate ();
-		public signal void popup_menu (uint button, uint activate_time);
-		public signal bool size_changed (int size);
+		public virtual signal void activate ();
+		public virtual signal void popup_menu (uint button, uint activate_time);
+		public virtual signal bool size_changed (int size);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Statusbar : Gtk.HBox, Atk.Implementor, Gtk.Buildable {
@@ -4595,52 +4595,52 @@
 		public void remove (uint context_id, uint message_id);
 		public void set_has_resize_grip (bool setting);
 		public bool has_resize_grip { get; set; }
-		public signal void text_popped (uint context_id, string text);
-		public signal void text_pushed (uint context_id, string text);
+		public virtual signal void text_popped (uint context_id, string text);
+		public virtual signal void text_pushed (uint context_id, string text);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Style : GLib.Object {
 		[NoArrayLength]
-		public weak Gdk.Color[][] fg;
+		public Gdk.Color[] fg;
 		[NoArrayLength]
-		public weak Gdk.Color[][] bg;
+		public Gdk.Color[] bg;
 		[NoArrayLength]
-		public weak Gdk.Color[][] light;
+		public Gdk.Color[] light;
 		[NoArrayLength]
-		public weak Gdk.Color[][] dark;
+		public Gdk.Color[] dark;
 		[NoArrayLength]
-		public weak Gdk.Color[][] mid;
+		public Gdk.Color[] mid;
 		[NoArrayLength]
-		public weak Gdk.Color[][] text;
+		public Gdk.Color[] text;
 		[NoArrayLength]
-		public weak Gdk.Color[][] @base;
+		public Gdk.Color[] @base;
 		[NoArrayLength]
-		public weak Gdk.Color[][] text_aa;
+		public Gdk.Color[] text_aa;
 		public Gdk.Color black;
 		public Gdk.Color white;
 		public weak Pango.FontDescription font_desc;
 		public int xthickness;
 		public int ythickness;
 		[NoArrayLength]
-		public weak Gdk.GC[][] fg_gc;
+		public Gdk.GC[] fg_gc;
 		[NoArrayLength]
-		public weak Gdk.GC[][] bg_gc;
+		public Gdk.GC[] bg_gc;
 		[NoArrayLength]
-		public weak Gdk.GC[][] light_gc;
+		public Gdk.GC[] light_gc;
 		[NoArrayLength]
-		public weak Gdk.GC[][] dark_gc;
+		public Gdk.GC[] dark_gc;
 		[NoArrayLength]
-		public weak Gdk.GC[][] mid_gc;
+		public Gdk.GC[] mid_gc;
 		[NoArrayLength]
-		public weak Gdk.GC[][] text_gc;
+		public Gdk.GC[] text_gc;
 		[NoArrayLength]
-		public weak Gdk.GC[][] base_gc;
+		public Gdk.GC[] base_gc;
 		[NoArrayLength]
-		public weak Gdk.GC[][] text_aa_gc;
+		public Gdk.GC[] text_aa_gc;
 		public weak Gdk.GC black_gc;
 		public weak Gdk.GC white_gc;
 		[NoArrayLength]
-		public weak Gdk.Pixmap[][] bg_pixmap;
+		public Gdk.Pixmap[] bg_pixmap;
 		public int attach_count;
 		public int depth;
 		public weak Gdk.Colormap colormap;
@@ -4703,8 +4703,8 @@
 		public virtual void init_from_rc (Gtk.RcStyle rc_style);
 		public virtual weak Gdk.Pixbuf render_icon (Gtk.IconSource source, Gtk.TextDirection direction, Gtk.StateType state, Gtk.IconSize size, Gtk.Widget widget, string detail);
 		public virtual void set_background (Gdk.Window window, Gtk.StateType state_type);
-		public signal void realize ();
-		public signal void unrealize ();
+		public virtual signal void realize ();
+		public virtual signal void unrealize ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Table : Gtk.Container, Atk.Implementor, Gtk.Buildable {
@@ -4825,23 +4825,23 @@
 		public Gtk.TextTagTable tag_table { get; construct; }
 		public string text { get; set; }
 		[HasEmitter]
-		public signal void apply_tag (Gtk.TextTag tag, Gtk.TextIter start_char, Gtk.TextIter end_char);
+		public virtual signal void apply_tag (Gtk.TextTag tag, Gtk.TextIter start_char, Gtk.TextIter end_char);
 		[HasEmitter]
-		public signal void begin_user_action ();
-		public signal void changed ();
-		public signal void delete_range (Gtk.TextIter start, Gtk.TextIter end);
+		public virtual signal void begin_user_action ();
+		public virtual signal void changed ();
+		public virtual signal void delete_range (Gtk.TextIter start, Gtk.TextIter end);
 		[HasEmitter]
-		public signal void end_user_action ();
+		public virtual signal void end_user_action ();
 		[HasEmitter]
-		public signal void insert_child_anchor (Gtk.TextIter pos, Gtk.TextChildAnchor anchor);
+		public virtual signal void insert_child_anchor (Gtk.TextIter pos, Gtk.TextChildAnchor anchor);
 		[HasEmitter]
-		public signal void insert_pixbuf (Gtk.TextIter pos, Gdk.Pixbuf pixbuf);
-		public signal void insert_text (Gtk.TextIter pos, string text, int length);
-		public signal void mark_deleted (Gtk.TextMark mark);
-		public signal void mark_set (Gtk.TextIter location, Gtk.TextMark mark);
-		public signal void modified_changed ();
+		public virtual signal void insert_pixbuf (Gtk.TextIter pos, Gdk.Pixbuf pixbuf);
+		public virtual signal void insert_text (Gtk.TextIter pos, string text, int length);
+		public virtual signal void mark_deleted (Gtk.TextMark mark);
+		public virtual signal void mark_set (Gtk.TextIter location, Gtk.TextMark mark);
+		public virtual signal void modified_changed ();
 		[HasEmitter]
-		public signal void remove_tag (Gtk.TextTag tag, Gtk.TextIter start_char, Gtk.TextIter end_char);
+		public virtual signal void remove_tag (Gtk.TextTag tag, Gtk.TextIter start_char, Gtk.TextIter end_char);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class TextChildAnchor : GLib.Object {
@@ -5011,7 +5011,7 @@
 		[NoAccessorMethod]
 		public bool wrap_mode_set { get; set; }
 		[HasEmitter]
-		public signal bool event (GLib.Object event_object, Gdk.Event event, Gtk.TextIter iter);
+		public virtual signal bool event (GLib.Object event_object, Gdk.Event event, Gtk.TextIter iter);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class TextTagTable : GLib.Object {
@@ -5025,9 +5025,9 @@
 		public weak Gtk.TextTag lookup (string name);
 		public TextTagTable ();
 		public void remove (Gtk.TextTag tag);
-		public signal void tag_added (Gtk.TextTag tag);
-		public signal void tag_changed (Gtk.TextTag tag, bool size_changed);
-		public signal void tag_removed (Gtk.TextTag tag);
+		public virtual signal void tag_added (Gtk.TextTag tag);
+		public virtual signal void tag_changed (Gtk.TextTag tag, bool size_changed);
+		public virtual signal void tag_removed (Gtk.TextTag tag);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class TextView : Gtk.Container, Atk.Implementor, Gtk.Buildable {
@@ -5138,21 +5138,21 @@
 		public int right_margin { get; set; }
 		public Pango.TabArray tabs { get; set; }
 		public Gtk.WrapMode wrap_mode { get; set; }
-		public signal void backspace ();
-		public signal void copy_clipboard ();
-		public signal void cut_clipboard ();
-		public signal void delete_from_cursor (Gtk.DeleteType type, int count);
-		public signal void insert_at_cursor (string str);
-		public signal void move_cursor (Gtk.MovementStep step, int count, bool extend_selection);
-		public signal void move_viewport (Gtk.ScrollStep p0, int p1);
-		public signal void page_horizontally (int count, bool extend_selection);
-		public signal void paste_clipboard ();
-		public signal void populate_popup (Gtk.Menu menu);
-		public signal void select_all (bool p0);
-		public signal void set_anchor ();
-		public signal void set_scroll_adjustments (Gtk.Adjustment hadjustment, Gtk.Adjustment vadjustment);
-		public signal void toggle_cursor_visible ();
-		public signal void toggle_overwrite ();
+		public virtual signal void backspace ();
+		public virtual signal void copy_clipboard ();
+		public virtual signal void cut_clipboard ();
+		public virtual signal void delete_from_cursor (Gtk.DeleteType type, int count);
+		public virtual signal void insert_at_cursor (string str);
+		public virtual signal void move_cursor (Gtk.MovementStep step, int count, bool extend_selection);
+		public virtual signal void move_viewport (Gtk.ScrollStep p0, int p1);
+		public virtual signal void page_horizontally (int count, bool extend_selection);
+		public virtual signal void paste_clipboard ();
+		public virtual signal void populate_popup (Gtk.Menu menu);
+		public virtual signal void select_all (bool p0);
+		public virtual signal void set_anchor ();
+		public virtual signal void set_scroll_adjustments (Gtk.Adjustment hadjustment, Gtk.Adjustment vadjustment);
+		public virtual signal void toggle_cursor_visible ();
+		public virtual signal void toggle_overwrite ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class ToggleAction : Gtk.Action, Gtk.Buildable {
@@ -5164,7 +5164,7 @@
 		public bool active { get; set; }
 		public bool draw_as_radio { get; set; }
 		[HasEmitter]
-		public signal void toggled ();
+		public virtual signal void toggled ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class ToggleButton : Gtk.Button, Atk.Implementor, Gtk.Buildable {
@@ -5182,7 +5182,7 @@
 		public bool draw_indicator { get; set; }
 		public bool inconsistent { get; set; }
 		[HasEmitter]
-		public signal void toggled ();
+		public virtual signal void toggled ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class ToggleToolButton : Gtk.ToolButton, Atk.Implementor, Gtk.Buildable {
@@ -5191,7 +5191,7 @@
 		public ToggleToolButton.from_stock (string stock_id);
 		public void set_active (bool is_active);
 		public bool active { get; set; }
-		public signal void toggled ();
+		public virtual signal void toggled ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class ToolButton : Gtk.ToolItem, Atk.Implementor, Gtk.Buildable {
@@ -5215,7 +5215,7 @@
 		public Gtk.Widget label_widget { get; set; }
 		public string stock_id { get; set; }
 		public bool use_underline { get; set; }
-		public signal void clicked ();
+		public virtual signal void clicked ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class ToolItem : Gtk.Bin, Atk.Implementor, Gtk.Buildable {
@@ -5245,8 +5245,8 @@
 		public bool is_important { get; set; }
 		public bool visible_horizontal { get; set; }
 		public bool visible_vertical { get; set; }
-		public signal bool create_menu_proxy ();
-		public signal void toolbar_reconfigured ();
+		public virtual signal bool create_menu_proxy ();
+		public virtual signal void toolbar_reconfigured ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Toolbar : Gtk.Container, Atk.Implementor, Gtk.Buildable {
@@ -5284,10 +5284,10 @@
 		[NoAccessorMethod]
 		public Gtk.ToolbarStyle toolbar_style { get; set; }
 		public bool tooltips { get; set; }
-		public signal bool focus_home_or_end (bool p0);
-		public signal void orientation_changed (Gtk.Orientation orientation);
-		public signal bool popup_context_menu (int x, int y, int button_number);
-		public signal void style_changed (Gtk.ToolbarStyle style);
+		public virtual signal bool focus_home_or_end (bool p0);
+		public virtual signal void orientation_changed (Gtk.Orientation orientation);
+		public virtual signal bool popup_context_menu (int x, int y, int button_number);
+		public virtual signal void style_changed (Gtk.ToolbarStyle style);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class Tooltip : GLib.Object {
@@ -5373,7 +5373,7 @@
 		public void unselect_iter (Gtk.TreeIter iter);
 		public void unselect_path (Gtk.TreePath path);
 		public void unselect_range (Gtk.TreePath start_path, Gtk.TreePath end_path);
-		public signal void changed ();
+		public virtual signal void changed ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class TreeStore : GLib.Object, Gtk.Buildable, Gtk.TreeModel, Gtk.TreeSortable, Gtk.TreeDragSource, Gtk.TreeDragDest {
@@ -5534,24 +5534,24 @@
 		public bool show_expanders { get; set; }
 		public int tooltip_column { get; set; }
 		public Gtk.Adjustment vadjustment { get; set; }
-		public signal void columns_changed ();
-		public signal void cursor_changed ();
-		public signal bool expand_collapse_cursor_row (bool logical, bool expand, bool open_all);
-		public signal bool move_cursor (Gtk.MovementStep step, int count);
-		[HasEmitter]
-		public signal void row_activated (Gtk.TreePath path, Gtk.TreeViewColumn column);
-		public signal void row_collapsed (Gtk.TreeIter iter, Gtk.TreePath path);
-		[HasEmitter]
-		public signal void row_expanded (Gtk.TreeIter iter, Gtk.TreePath path);
-		public signal bool select_all ();
-		public signal bool select_cursor_parent ();
-		public signal bool select_cursor_row (bool start_editing);
-		public signal void set_scroll_adjustments (Gtk.Adjustment hadjustment, Gtk.Adjustment vadjustment);
-		public signal bool start_interactive_search ();
-		public signal bool test_collapse_row (Gtk.TreeIter iter, Gtk.TreePath path);
-		public signal bool test_expand_row (Gtk.TreeIter iter, Gtk.TreePath path);
-		public signal bool toggle_cursor_row ();
-		public signal bool unselect_all ();
+		public virtual signal void columns_changed ();
+		public virtual signal void cursor_changed ();
+		public virtual signal bool expand_collapse_cursor_row (bool logical, bool expand, bool open_all);
+		public virtual signal bool move_cursor (Gtk.MovementStep step, int count);
+		[HasEmitter]
+		public virtual signal void row_activated (Gtk.TreePath path, Gtk.TreeViewColumn column);
+		public virtual signal void row_collapsed (Gtk.TreeIter iter, Gtk.TreePath path);
+		[HasEmitter]
+		public virtual signal void row_expanded (Gtk.TreeIter iter, Gtk.TreePath path);
+		public virtual signal bool select_all ();
+		public virtual signal bool select_cursor_parent ();
+		public virtual signal bool select_cursor_row (bool start_editing);
+		public virtual signal void set_scroll_adjustments (Gtk.Adjustment hadjustment, Gtk.Adjustment vadjustment);
+		public virtual signal bool start_interactive_search ();
+		public virtual signal bool test_collapse_row (Gtk.TreeIter iter, Gtk.TreePath path);
+		public virtual signal bool test_expand_row (Gtk.TreeIter iter, Gtk.TreePath path);
+		public virtual signal bool toggle_cursor_row ();
+		public virtual signal bool unselect_all ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class TreeViewColumn : Gtk.Object, Gtk.Buildable, Gtk.CellLayout {
@@ -5638,7 +5638,7 @@
 		public Gtk.Widget widget { get; set; }
 		public int width { get; }
 		[HasEmitter]
-		public signal void clicked ();
+		public virtual signal void clicked ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class UIManager : GLib.Object, Gtk.Buildable {
@@ -5661,12 +5661,12 @@
 		public virtual weak Gtk.Widget get_widget (string path);
 		public bool add_tearoffs { get; set; }
 		public string ui { get; }
-		public signal void actions_changed ();
-		public signal void add_widget (Gtk.Widget widget);
-		public signal void connect_proxy (Gtk.Action action, Gtk.Widget proxy);
-		public signal void disconnect_proxy (Gtk.Action action, Gtk.Widget proxy);
-		public signal void post_activate (Gtk.Action action);
-		public signal void pre_activate (Gtk.Action action);
+		public virtual signal void actions_changed ();
+		public virtual signal void add_widget (Gtk.Widget widget);
+		public virtual signal void connect_proxy (Gtk.Action action, Gtk.Widget proxy);
+		public virtual signal void disconnect_proxy (Gtk.Action action, Gtk.Widget proxy);
+		public virtual signal void post_activate (Gtk.Action action);
+		public virtual signal void pre_activate (Gtk.Action action);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class VBox : Gtk.Box, Atk.Implementor, Gtk.Buildable {
@@ -5711,7 +5711,7 @@
 		public Gtk.Adjustment hadjustment { get; set construct; }
 		public Gtk.ShadowType shadow_type { get; set; }
 		public Gtk.Adjustment vadjustment { get; set construct; }
-		public signal void set_scroll_adjustments (Gtk.Adjustment hadjustment, Gtk.Adjustment vadjustment);
+		public virtual signal void set_scroll_adjustments (Gtk.Adjustment hadjustment, Gtk.Adjustment vadjustment);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class VolumeButton : Gtk.ScaleButton, Atk.Implementor, Gtk.Buildable {
@@ -5878,12 +5878,12 @@
 		public bool urgency_hint { get; set; }
 		[NoAccessorMethod]
 		public Gtk.WindowPosition window_position { get; set; }
-		public signal void default_activated ();
-		public signal void focus_activated ();
-		public signal bool frame_event (Gdk.Event event);
-		public signal void keys_changed ();
+		public virtual signal void default_activated ();
+		public virtual signal void focus_activated ();
+		public virtual signal bool frame_event (Gdk.Event event);
+		public virtual signal void keys_changed ();
 		[HasEmitter]
-		public signal void set_focus (Gtk.Widget focus);
+		public virtual signal void set_focus (Gtk.Widget focus);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public class WindowGroup : GLib.Object {
@@ -5911,9 +5911,9 @@
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public interface CellEditable : Gtk.Widget {
 		[HasEmitter]
-		public signal void editing_done ();
+		public virtual signal void editing_done ();
 		[HasEmitter]
-		public signal void remove_widget ();
+		public virtual signal void remove_widget ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public interface CellLayout : GLib.Object {
@@ -5946,11 +5946,11 @@
 		public abstract void set_position (int position);
 		[NoWrapper]
 		public abstract void set_selection_bounds (int start_pos, int end_pos);
-		public signal void changed ();
+		public virtual signal void changed ();
 		[HasEmitter]
-		public signal void delete_text (int start_pos, int end_pos);
+		public virtual signal void delete_text (int start_pos, int end_pos);
 		[HasEmitter]
-		public signal void insert_text (string text, int length, void* position);
+		public virtual signal void insert_text (string text, int length, void* position);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public interface FileChooser : Gtk.Widget {
@@ -6014,19 +6014,19 @@
 		public bool select_multiple { get; set; }
 		public bool show_hidden { get; set; }
 		public bool use_preview_label { get; set; }
-		public signal Gtk.FileChooserConfirmation confirm_overwrite ();
-		public signal void current_folder_changed ();
-		public signal void file_activated ();
-		public signal void selection_changed ();
-		public signal void update_preview ();
+		public virtual signal Gtk.FileChooserConfirmation confirm_overwrite ();
+		public virtual signal void current_folder_changed ();
+		public virtual signal void file_activated ();
+		public virtual signal void selection_changed ();
+		public virtual signal void update_preview ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public interface PrintOperationPreview : GLib.Object {
 		public abstract void end_preview ();
 		public abstract bool is_selected (int page_nr);
 		public abstract void render_page (int page_nr);
-		public signal void got_page_size (Gtk.PrintContext context, Gtk.PageSetup page_setup);
-		public signal void ready (Gtk.PrintContext context);
+		public virtual signal void got_page_size (Gtk.PrintContext context, Gtk.PageSetup page_setup);
+		public virtual signal void ready (Gtk.PrintContext context);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public interface RecentChooser : GLib.Object {
@@ -6074,8 +6074,8 @@
 		public bool show_private { get; set; }
 		public bool show_tips { get; set; }
 		public Gtk.RecentSortType sort_type { get; set; }
-		public signal void item_activated ();
-		public signal void selection_changed ();
+		public virtual signal void item_activated ();
+		public virtual signal void selection_changed ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public interface TreeDragDest {
@@ -6112,15 +6112,15 @@
 		public abstract void ref_node (Gtk.TreeIter iter);
 		public abstract void unref_node (Gtk.TreeIter iter);
 		[HasEmitter]
-		public signal void row_changed (Gtk.TreePath path, Gtk.TreeIter iter);
+		public virtual signal void row_changed (Gtk.TreePath path, Gtk.TreeIter iter);
 		[HasEmitter]
-		public signal void row_deleted (Gtk.TreePath path);
+		public virtual signal void row_deleted (Gtk.TreePath path);
 		[HasEmitter]
-		public signal void row_has_child_toggled (Gtk.TreePath path, Gtk.TreeIter iter);
+		public virtual signal void row_has_child_toggled (Gtk.TreePath path, Gtk.TreeIter iter);
 		[HasEmitter]
-		public signal void row_inserted (Gtk.TreePath path, Gtk.TreeIter iter);
+		public virtual signal void row_inserted (Gtk.TreePath path, Gtk.TreeIter iter);
 		[HasEmitter]
-		public signal void rows_reordered (Gtk.TreePath path, Gtk.TreeIter iter, void* new_order);
+		public virtual signal void rows_reordered (Gtk.TreePath path, Gtk.TreeIter iter, void* new_order);
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public interface TreeSortable : Gtk.TreeModel, GLib.Object {
@@ -6130,7 +6130,7 @@
 		public abstract void set_sort_column_id (int sort_column_id, Gtk.SortType order);
 		public abstract void set_sort_func (int sort_column_id, Gtk.TreeIterCompareFunc sort_func, Gtk.DestroyNotify destroy);
 		[HasEmitter]
-		public signal void sort_column_changed ();
+		public virtual signal void sort_column_changed ();
 	}
 	[CCode (cheader_filename = "gtk/gtk.h")]
 	public struct Allocation {

Modified: trunk/vapi/gtksourceview-2.0.vapi
==============================================================================
--- trunk/vapi/gtksourceview-2.0.vapi	(original)
+++ trunk/vapi/gtksourceview-2.0.vapi	Wed May 28 23:41:04 2008
@@ -50,7 +50,7 @@
 		public Gtk.SourceLanguage language { get; set; }
 		public int max_undo_levels { get; set; }
 		public Gtk.SourceStyleScheme style_scheme { get; set; }
-		public signal void source_mark_updated (Gtk.TextMark p0);
+		public virtual signal void source_mark_updated (Gtk.TextMark p0);
 	}
 	[CCode (cheader_filename = "gtksourceview/gtksourceview.h")]
 	public class SourceLanguage : GLib.Object {
@@ -242,8 +242,8 @@
 		public bool show_right_margin { get; set; }
 		public Gtk.SourceSmartHomeEndType smart_home_end { get; set; }
 		public uint tab_width { get; set; }
-		public signal void redo ();
-		public signal void undo ();
+		public virtual signal void redo ();
+		public virtual signal void undo ();
 	}
 	[CCode (cheader_filename = "gtksourceview/gtksourceview.h")]
 	public static bool source_iter_backward_search (Gtk.TextIter iter, string str, Gtk.SourceSearchFlags flags, Gtk.TextIter match_start, Gtk.TextIter match_end, Gtk.TextIter limit);

Modified: trunk/vapi/hildon-1.vapi
==============================================================================
--- trunk/vapi/hildon-1.vapi	(original)
+++ trunk/vapi/hildon-1.vapi	Wed May 28 23:41:04 2008
@@ -103,8 +103,8 @@
 		public void push (Hildon.BreadCrumb item, void* id, GLib.DestroyNotify notify);
 		public void push_icon (string text, Gtk.Widget icon, void* id, GLib.DestroyNotify destroy);
 		public void push_text (string text, void* id, GLib.DestroyNotify notify);
-		public signal bool crumb_clicked (void* id);
-		public signal void move_parent ();
+		public virtual signal bool crumb_clicked (void* id);
+		public virtual signal void move_parent ();
 	}
 	[CCode (cheader_filename = "hildon/hildon.h")]
 	public class Calendar : Gtk.Widget, Atk.Implementor, Gtk.Buildable {
@@ -158,15 +158,15 @@
 		public int week_start { get; set; }
 		[NoAccessorMethod]
 		public int year { get; set; }
-		public signal void day_selected ();
-		public signal void day_selected_double_click ();
-		public signal void erroneous_date ();
-		public signal void month_changed ();
-		public signal void next_month ();
-		public signal void next_year ();
-		public signal void prev_month ();
-		public signal void prev_year ();
-		public signal void selected_date ();
+		public virtual signal void day_selected ();
+		public virtual signal void day_selected_double_click ();
+		public virtual signal void erroneous_date ();
+		public virtual signal void month_changed ();
+		public virtual signal void next_month ();
+		public virtual signal void next_year ();
+		public virtual signal void prev_month ();
+		public virtual signal void prev_year ();
+		public virtual signal void selected_date ();
 	}
 	[CCode (cheader_filename = "hildon/hildon.h")]
 	public class CalendarPopup : Gtk.Dialog, Atk.Implementor, Gtk.Buildable {
@@ -214,7 +214,7 @@
 		public string separator { get; set; }
 		public Gtk.SizeGroup size_group { get; set; }
 		public Hildon.CaptionStatus status { get; set; }
-		public signal void activate ();
+		public virtual signal void activate ();
 	}
 	[CCode (cheader_filename = "hildon/hildon.h")]
 	public class CodeDialog : Gtk.Dialog, Atk.Implementor, Gtk.Buildable {
@@ -223,7 +223,7 @@
 		public CodeDialog ();
 		public void set_help_text (string text);
 		public void set_input_sensitive (bool sensitive);
-		public signal void input ();
+		public virtual signal void input ();
 	}
 	[CCode (cheader_filename = "hildon/hildon.h")]
 	public class ColorButton : Gtk.Button, Atk.Implementor, Gtk.Buildable {
@@ -242,7 +242,7 @@
 		public ColorChooser ();
 		public virtual void set_color (Gdk.Color color);
 		public Gdk.Color color { get; set; }
-		public signal void color_changed ();
+		public virtual signal void color_changed ();
 	}
 	[CCode (cheader_filename = "hildon/hildon.h")]
 	public class ColorChooserDialog : Gtk.Dialog, Atk.Implementor, Gtk.Buildable {
@@ -263,7 +263,7 @@
 		public int max { get; set; }
 		public int min { get; set; }
 		public int value { get; set; }
-		public signal void end_reached (bool end);
+		public virtual signal void end_reached (bool end);
 	}
 	[CCode (cheader_filename = "hildon/hildon.h")]
 	public class DateEditor : Gtk.Container, Atk.Implementor, Gtk.Buildable {
@@ -283,7 +283,7 @@
 		public uint min_year { get; set; }
 		public uint month { get; set; }
 		public uint year { get; set; }
-		public signal bool date_error (Hildon.DateTimeError type);
+		public virtual signal bool date_error (Hildon.DateTimeError type);
 	}
 	[CCode (cheader_filename = "hildon/hildon.h")]
 	public class FindToolbar : Gtk.Toolbar, Atk.Implementor, Gtk.Buildable {
@@ -307,10 +307,10 @@
 		public int max_characters { get; set construct; }
 		[NoAccessorMethod]
 		public string prefix { get; set; }
-		public signal void close ();
-		public signal bool history_append ();
-		public signal void invalid_input ();
-		public signal void search ();
+		public virtual signal void close ();
+		public virtual signal bool history_append ();
+		public virtual signal void invalid_input ();
+		public virtual signal void search ();
 	}
 	[CCode (cheader_filename = "hildon/hildon.h")]
 	public class FontSelectionDialog : Gtk.Dialog, Atk.Implementor, Gtk.Buildable {
@@ -418,7 +418,7 @@
 		public void set_range (int min, int max);
 		public void set_value (int value);
 		public int value { get; set; }
-		public signal bool range_error (Hildon.NumberEditorErrorType type);
+		public virtual signal bool range_error (Hildon.NumberEditorErrorType type);
 	}
 	[CCode (cheader_filename = "hildon/hildon.h")]
 	public class Program : GLib.Object {
@@ -523,7 +523,7 @@
 		public bool show_hours { get; set; }
 		public bool show_seconds { get; set; }
 		public uint ticks { get; set; }
-		public signal bool time_error (Hildon.DateTimeError type);
+		public virtual signal bool time_error (Hildon.DateTimeError type);
 	}
 	[CCode (cheader_filename = "hildon/hildon.h")]
 	public class TimePicker : Gtk.Dialog, Atk.Implementor, Gtk.Buildable {
@@ -552,8 +552,8 @@
 		public bool has_mute { get; set construct; }
 		public double level { get; set; }
 		public bool mute { get; set; }
-		public signal void level_changed ();
-		public signal void mute_toggled ();
+		public virtual signal void level_changed ();
+		public virtual signal void mute_toggled ();
 	}
 	[CCode (cheader_filename = "hildon/hildon.h")]
 	public class VolumebarRange : Gtk.Scale, Atk.Implementor, Gtk.Buildable {
@@ -571,7 +571,7 @@
 		public void toggle_day (GLib.DateWeekday day);
 		public void unset_all ();
 		public void unset_day (GLib.DateWeekday day);
-		public signal void selection_changed (int p0);
+		public virtual signal void selection_changed (int p0);
 	}
 	[CCode (cheader_filename = "hildon/hildon.h")]
 	public class Window : Gtk.Window, Atk.Implementor, Gtk.Buildable {
@@ -583,7 +583,7 @@
 		public void remove_toolbar (Gtk.Toolbar toolbar);
 		public void set_menu (Gtk.Menu menu);
 		public bool is_topmost { get; }
-		public signal void clipboard_operation (int operation);
+		public virtual signal void clipboard_operation (int operation);
 	}
 	[CCode (cheader_filename = "hildon/hildon.h")]
 	public class WizardDialog : Gtk.Dialog, Atk.Implementor, Gtk.Buildable {
@@ -599,7 +599,7 @@
 	public interface BreadCrumb : Gtk.Widget {
 		public void activated ();
 		public abstract void get_natural_size (int width, int height);
-		public signal void crumb_activated ();
+		public virtual signal void crumb_activated ();
 	}
 	public const int MAJOR_VERSION;
 	public const int MARGIN_DEFAULT;

Modified: trunk/vapi/hildon-fm-2.vapi
==============================================================================
--- trunk/vapi/hildon-fm-2.vapi	(original)
+++ trunk/vapi/hildon-fm-2.vapi	Wed May 28 23:41:04 2008
@@ -192,13 +192,13 @@
 		public bool show_upnp { get; set construct; }
 		[NoAccessorMethod]
 		public int visible_columns { get; construct; }
-		public signal void content_pane_context_menu ();
-		public signal void current_folder_changed ();
-		public signal void file_activated ();
-		public signal void location_insensitive (Gtk.TreeIter iter);
-		public signal void navigation_pane_context_menu ();
-		public signal void selection_changed ();
-		public signal void uris_dropped (string destination, void* sources);
+		public virtual signal void content_pane_context_menu ();
+		public virtual signal void current_folder_changed ();
+		public virtual signal void file_activated ();
+		public virtual signal void location_insensitive (Gtk.TreeIter iter);
+		public virtual signal void navigation_pane_context_menu ();
+		public virtual signal void selection_changed ();
+		public virtual signal void uris_dropped (string destination, void* sources);
 	}
 	[CCode (cheader_filename = "hildon/hildon-file-system-model.h")]
 	public class FileSystemModel : GLib.Object, Gtk.TreeModel, Gtk.TreeDragSource {
@@ -222,8 +222,8 @@
 		public string root_dir { get; construct; }
 		[NoAccessorMethod]
 		public void* thumbnail_callback { get; set; }
-		public signal void device_disconnected (Gtk.TreeIter iter);
-		public signal void finished_loading (Gtk.TreeIter iter);
+		public virtual signal void device_disconnected (Gtk.TreeIter iter);
+		public virtual signal void finished_loading (Gtk.TreeIter iter);
 	}
 	[CCode (cheader_filename = "hildon/hildon-file-system-storage-dialog.h")]
 	public class FileSystemStorageDialog : Gtk.Dialog, Atk.Implementor, Gtk.Buildable {

Modified: trunk/vapi/json-glib-1.0.vapi
==============================================================================
--- trunk/vapi/json-glib-1.0.vapi	(original)
+++ trunk/vapi/json-glib-1.0.vapi	Wed May 28 23:41:04 2008
@@ -100,15 +100,15 @@
 		public bool load_from_data (string data, ulong length) throws GLib.Error;
 		public bool load_from_file (string filename) throws GLib.Error;
 		public Parser ();
-		public signal void array_element (Json.Array array, int index_);
-		public signal void array_end (Json.Array array);
-		public signal void array_start ();
-		public signal void error (void* error);
-		public signal void object_end (Json.Object object);
-		public signal void object_member (Json.Object object, string member_name);
-		public signal void object_start ();
-		public signal void parse_end ();
-		public signal void parse_start ();
+		public virtual signal void array_element (Json.Array array, int index_);
+		public virtual signal void array_end (Json.Array array);
+		public virtual signal void array_start ();
+		public virtual signal void error (void* error);
+		public virtual signal void object_end (Json.Object object);
+		public virtual signal void object_member (Json.Object object, string member_name);
+		public virtual signal void object_start ();
+		public virtual signal void parse_end ();
+		public virtual signal void parse_start ();
 	}
 	[CCode (cheader_filename = "json-glib/json-glib.h")]
 	public interface Serializable {

Modified: trunk/vapi/libgnomeui-2.0.vapi
==============================================================================
--- trunk/vapi/libgnomeui-2.0.vapi	(original)
+++ trunk/vapi/libgnomeui-2.0.vapi	Wed May 28 23:41:04 2008
@@ -281,8 +281,8 @@
 		[NoAccessorMethod]
 		public Gnome.PreferencesType interactivity { get; set construct; }
 		[HasEmitter]
-		public signal void clear_prompt ();
-		public signal void user_response ();
+		public virtual signal void clear_prompt ();
+		public virtual signal void user_response ();
 	}
 	[CCode (cheader_filename = "libgnomeui/libgnomeui.h")]
 	public class Client : Gtk.Object {
@@ -346,13 +346,13 @@
 		public void set_shutdown_command (int argc, string[] argv);
 		public void set_user_id (string id);
 		[HasEmitter]
-		public signal void connect (bool restarted);
-		public signal void die ();
+		public virtual signal void connect (bool restarted);
+		public virtual signal void die ();
 		[HasEmitter]
-		public signal void disconnect ();
-		public signal void save_complete ();
-		public signal bool save_yourself (int phase, Gnome.SaveStyle save_style, bool shutdown, Gnome.InteractStyle interact_style, bool fast);
-		public signal void shutdown_cancelled ();
+		public virtual signal void disconnect ();
+		public virtual signal void save_complete ();
+		public virtual signal bool save_yourself (int phase, Gnome.SaveStyle save_style, bool shutdown, Gnome.InteractStyle interact_style, bool fast);
+		public virtual signal void shutdown_cancelled ();
 	}
 	[CCode (cheader_filename = "libgnomeui/libgnomeui.h")]
 	public class DateEdit : Gtk.HBox, Atk.Implementor, Gtk.Buildable {
@@ -374,8 +374,8 @@
 		public ulong time { get; set; }
 		[NoAccessorMethod]
 		public int upper_hour { get; set; }
-		public signal void date_changed ();
-		public signal void time_changed ();
+		public virtual signal void date_changed ();
+		public virtual signal void time_changed ();
 	}
 	[CCode (cheader_filename = "libgnomeui/libgnomeui.h")]
 	public class IconEntry : Gtk.VBox, Atk.Implementor, Gtk.Buildable {
@@ -402,8 +402,8 @@
 		public Gtk.Dialog pick_dialog { get; }
 		[NoAccessorMethod]
 		public string pixmap_subdir { get; set; }
-		public signal void browse ();
-		public signal void changed ();
+		public virtual signal void browse ();
+		public virtual signal void changed ();
 	}
 	[CCode (cheader_filename = "libgnomeui/libgnomeui.h")]
 	public class IconSelection : Gtk.VBox, Atk.Implementor, Gtk.Buildable {

Modified: trunk/vapi/libnotify.vapi
==============================================================================
--- trunk/vapi/libnotify.vapi	(original)
+++ trunk/vapi/libnotify.vapi	Wed May 28 23:41:04 2008
@@ -40,7 +40,7 @@
 		public Gtk.StatusIcon status_icon { get; set construct; }
 		[NoAccessorMethod]
 		public string summary { get; set construct; }
-		public signal void closed ();
+		public virtual signal void closed ();
 	}
 	[CCode (cheader_filename = "libnotify/notify.h")]
 	public static delegate void ActionCallback (Notify.Notification p1, string p2, void* p3);

Modified: trunk/vapi/liboobs-1.vapi
==============================================================================
--- trunk/vapi/liboobs-1.vapi	(original)
+++ trunk/vapi/liboobs-1.vapi	Wed May 28 23:41:04 2008
@@ -137,7 +137,7 @@
 		public bool configured { get; set; }
 		[NoAccessorMethod]
 		public string device { get; construct; }
-		public signal void state_changed ();
+		public virtual signal void state_changed ();
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class IfaceEthernet : Oobs.Iface {
@@ -285,9 +285,9 @@
 		public virtual void update ();
 		[NoAccessorMethod]
 		public string remote_object { construct; }
-		public signal void changed ();
-		public signal void committed ();
-		public signal void updated ();
+		public virtual signal void changed ();
+		public virtual signal void committed ();
+		public virtual signal void updated ();
 	}
 	[CCode (cheader_filename = "oobs/oobs.h")]
 	public class SMBConfig : Oobs.Object {

Modified: trunk/vapi/libsexy.vapi
==============================================================================
--- trunk/vapi/libsexy.vapi	(original)
+++ trunk/vapi/libsexy.vapi	Wed May 28 23:41:04 2008
@@ -19,8 +19,8 @@
 		public IconEntry ();
 		public void set_icon (Sexy.IconEntryPosition position, Gtk.Image? icon);
 		public void set_icon_highlight (Sexy.IconEntryPosition position, bool highlight);
-		public signal void icon_pressed (int icon_pos, int button);
-		public signal void icon_released (int icon_pos, int button);
+		public virtual signal void icon_pressed (int icon_pos, int button);
+		public virtual signal void icon_released (int icon_pos, int button);
 	}
 	[CCode (cheader_filename = "libsexy/sexy.h")]
 	public class SpellEntry : Gtk.Entry, Atk.Implementor, Gtk.Buildable, Gtk.Editable, Gtk.CellEditable {
@@ -35,7 +35,7 @@
 		public SpellEntry ();
 		public bool set_active_languages (GLib.SList langs) throws GLib.Error;
 		public void set_checked (bool checked);
-		public signal bool word_check (string word);
+		public virtual signal bool word_check (string word);
 	}
 	[CCode (cheader_filename = "libsexy/sexy.h")]
 	public class Tooltip : Gtk.Window, Atk.Implementor, Gtk.Buildable {
@@ -48,13 +48,13 @@
 	public class TreeView : Gtk.TreeView, Atk.Implementor, Gtk.Buildable {
 		public TreeView ();
 		public void set_tooltip_label_column (uint column);
-		public signal weak Gtk.Widget get_tooltip (Gtk.TreePath path, Gtk.TreeViewColumn column);
+		public virtual signal weak Gtk.Widget get_tooltip (Gtk.TreePath path, Gtk.TreeViewColumn column);
 	}
 	[CCode (cheader_filename = "libsexy/sexy.h")]
 	public class UrlLabel : Gtk.Label, Atk.Implementor, Gtk.Buildable {
 		public UrlLabel ();
 		public void set_markup (string markup);
-		public signal void url_activated (string url);
+		public virtual signal void url_activated (string url);
 	}
 	[CCode (cheader_filename = "libsexy/sexy.h")]
 	public static GLib.Quark spell_error_quark ();

Modified: trunk/vapi/libsoup-2.2.vapi
==============================================================================
--- trunk/vapi/libsoup-2.2.vapi	(original)
+++ trunk/vapi/libsoup-2.2.vapi	Wed May 28 23:41:04 2008
@@ -310,7 +310,7 @@
 		public void resolve_async (Soup.AddressCallback callback);
 		public void resolve_async_full (GLib.MainContext async_context, Soup.AddressCallback callback);
 		public uint resolve_sync ();
-		public signal void dns_result (int status);
+		public virtual signal void dns_result (int status);
 	}
 	[CCode (cheader_filename = "libsoup/soup.h")]
 	public class Connection : GLib.Object {
@@ -336,11 +336,11 @@
 		[NoAccessorMethod]
 		public uint timeout { get; set; }
 		[HasEmitter]
-		public signal void authenticate (Soup.Message p0, string auth_type, string auth_realm, void* username, void* password);
-		public signal void connect_result (int p0);
-		public signal void disconnected ();
+		public virtual signal void authenticate (Soup.Message p0, string auth_type, string auth_realm, void* username, void* password);
+		public virtual signal void connect_result (int p0);
+		public virtual signal void disconnected ();
 		[HasEmitter]
-		public signal void reauthenticate (Soup.Message p0, string auth_type, string auth_realm, void* username, void* password);
+		public virtual signal void reauthenticate (Soup.Message p0, string auth_type, string auth_realm, void* username, void* password);
 	}
 	[CCode (cheader_filename = "libsoup/soup.h")]
 	public class Message : GLib.Object {
@@ -386,25 +386,25 @@
 		public void set_status_full (uint status_code, string reason_phrase);
 		public void set_uri (Soup.Uri uri);
 		[HasEmitter]
-		public signal void finished ();
+		public virtual signal void finished ();
 		[HasEmitter]
-		public signal void got_body ();
+		public virtual signal void got_body ();
 		[HasEmitter]
-		public signal void got_chunk ();
+		public virtual signal void got_chunk ();
 		[HasEmitter]
-		public signal void got_headers ();
+		public virtual signal void got_headers ();
 		[HasEmitter]
-		public signal void got_informational ();
+		public virtual signal void got_informational ();
 		[HasEmitter]
-		public signal void restarted ();
+		public virtual signal void restarted ();
 		[HasEmitter]
-		public signal void wrote_body ();
+		public virtual signal void wrote_body ();
 		[HasEmitter]
-		public signal void wrote_chunk ();
+		public virtual signal void wrote_chunk ();
 		[HasEmitter]
-		public signal void wrote_headers ();
+		public virtual signal void wrote_headers ();
 		[HasEmitter]
-		public signal void wrote_informational ();
+		public virtual signal void wrote_informational ();
 	}
 	[CCode (cheader_filename = "libsoup/soup.h")]
 	public class Server : GLib.Object {
@@ -469,8 +469,8 @@
 		public uint timeout { get; set; }
 		[NoAccessorMethod]
 		public bool use_ntlm { get; set; }
-		public signal void authenticate (Soup.Message p0, string auth_type, string auth_realm, void* username, void* password);
-		public signal void reauthenticate (Soup.Message p0, string auth_type, string auth_realm, void* username, void* password);
+		public virtual signal void authenticate (Soup.Message p0, string auth_type, string auth_realm, void* username, void* password);
+		public virtual signal void reauthenticate (Soup.Message p0, string auth_type, string auth_realm, void* username, void* password);
 	}
 	[CCode (cheader_filename = "libsoup/soup.h")]
 	public class SessionAsync : Soup.Session, Soup.MessageFilter {
@@ -515,11 +515,11 @@
 		public void* ssl_creds { get; set; }
 		[NoAccessorMethod]
 		public uint timeout { get; set; }
-		public signal void connect_result (int p0);
-		public signal void disconnected ();
-		public signal void new_connection (Soup.Socket p0);
-		public signal void readable ();
-		public signal void writable ();
+		public virtual signal void connect_result (int p0);
+		public virtual signal void disconnected ();
+		public virtual signal void new_connection (Soup.Socket p0);
+		public virtual signal void readable ();
+		public virtual signal void writable ();
 	}
 	[Compact]
 	[CCode (cheader_filename = "libsoup/soup.h")]

Modified: trunk/vapi/libsoup-2.4.vapi
==============================================================================
--- trunk/vapi/libsoup-2.4.vapi	(original)
+++ trunk/vapi/libsoup-2.4.vapi	Wed May 28 23:41:04 2008
@@ -397,25 +397,25 @@
 		public uint status_code { get; set; }
 		public Soup.URI uri { get; set; }
 		[HasEmitter]
-		public signal void finished ();
+		public virtual signal void finished ();
 		[HasEmitter]
-		public signal void got_body ();
+		public virtual signal void got_body ();
 		[HasEmitter]
-		public signal void got_chunk (Soup.Buffer chunk);
+		public virtual signal void got_chunk (Soup.Buffer chunk);
 		[HasEmitter]
-		public signal void got_headers ();
+		public virtual signal void got_headers ();
 		[HasEmitter]
-		public signal void got_informational ();
+		public virtual signal void got_informational ();
 		[HasEmitter]
-		public signal void restarted ();
+		public virtual signal void restarted ();
 		[HasEmitter]
-		public signal void wrote_body ();
+		public virtual signal void wrote_body ();
 		[HasEmitter]
-		public signal void wrote_chunk ();
+		public virtual signal void wrote_chunk ();
 		[HasEmitter]
-		public signal void wrote_headers ();
+		public virtual signal void wrote_headers ();
 		[HasEmitter]
-		public signal void wrote_informational ();
+		public virtual signal void wrote_informational ();
 	}
 	[CCode (cheader_filename = "libsoup/soup.h")]
 	public class Server : GLib.Object {
@@ -447,10 +447,10 @@
 		public string ssl_cert_file { get; construct; }
 		[NoAccessorMethod]
 		public string ssl_key_file { get; construct; }
-		public signal void request_aborted (Soup.Message msg, Soup.ClientContext client);
-		public signal void request_finished (Soup.Message msg, Soup.ClientContext client);
-		public signal void request_read (Soup.Message msg, Soup.ClientContext client);
-		public signal void request_started (Soup.Message msg, Soup.ClientContext client);
+		public virtual signal void request_aborted (Soup.Message msg, Soup.ClientContext client);
+		public virtual signal void request_finished (Soup.Message msg, Soup.ClientContext client);
+		public virtual signal void request_read (Soup.Message msg, Soup.ClientContext client);
+		public virtual signal void request_started (Soup.Message msg, Soup.ClientContext client);
 	}
 	[CCode (cheader_filename = "libsoup/soup.h")]
 	public class Session : GLib.Object {
@@ -478,8 +478,8 @@
 		public bool use_ntlm { get; set; }
 		[NoAccessorMethod]
 		public string user_agent { get; set; }
-		public signal void authenticate (Soup.Message msg, Soup.Auth auth, bool retrying);
-		public signal void request_started (Soup.Message msg, Soup.Socket socket);
+		public virtual signal void authenticate (Soup.Message msg, Soup.Auth auth, bool retrying);
+		public virtual signal void request_started (Soup.Message msg, Soup.Socket socket);
 	}
 	[CCode (cheader_filename = "libsoup/soup.h")]
 	public class SessionAsync : Soup.Session {
@@ -521,10 +521,10 @@
 		public void* ssl_creds { get; set; }
 		[NoAccessorMethod]
 		public uint timeout { get; set; }
-		public signal void disconnected ();
-		public signal void new_connection (Soup.Socket p0);
-		public signal void readable ();
-		public signal void writable ();
+		public virtual signal void disconnected ();
+		public virtual signal void new_connection (Soup.Socket p0);
+		public virtual signal void readable ();
+		public virtual signal void writable ();
 	}
 	[CCode (cheader_filename = "libsoup/soup.h")]
 	public delegate void AddressCallback (Soup.Address addr, uint status);

Modified: trunk/vapi/libwnck-1.0.vapi
==============================================================================
--- trunk/vapi/libwnck-1.0.vapi	(original)
+++ trunk/vapi/libwnck-1.0.vapi	Wed May 28 23:41:04 2008
@@ -168,8 +168,8 @@
 		public virtual void pad3 ();
 		[NoWrapper]
 		public virtual void pad4 ();
-		public signal void icon_changed ();
-		public signal void name_changed ();
+		public virtual signal void icon_changed ();
+		public virtual signal void name_changed ();
 	}
 	[CCode (cheader_filename = "libwnck/libwnck.h")]
 	public class ClassGroup : GLib.Object {
@@ -187,8 +187,8 @@
 		public virtual void pad3 ();
 		[NoWrapper]
 		public virtual void pad4 ();
-		public signal void icon_changed ();
-		public signal void name_changed ();
+		public virtual signal void icon_changed ();
+		public virtual signal void name_changed ();
 	}
 	[CCode (cheader_filename = "libwnck/libwnck.h")]
 	public class Pager : Gtk.Widget, Atk.Implementor, Gtk.Buildable {
@@ -248,21 +248,21 @@
 		public virtual void pad5 ();
 		[NoWrapper]
 		public virtual void pad6 ();
-		public signal void active_window_changed (Wnck.Window previous_window);
-		public signal void active_workspace_changed (Wnck.Workspace previous_workspace);
-		public signal void application_closed (Wnck.Application app);
-		public signal void application_opened (Wnck.Application app);
-		public signal void background_changed ();
-		public signal void class_group_closed (Wnck.ClassGroup class_group);
-		public signal void class_group_opened (Wnck.ClassGroup class_group);
-		public signal void showing_desktop_changed ();
-		public signal void viewports_changed ();
-		public signal void window_closed (Wnck.Window window);
-		public signal void window_manager_changed ();
-		public signal void window_opened (Wnck.Window window);
-		public signal void window_stacking_changed ();
-		public signal void workspace_created (Wnck.Workspace space);
-		public signal void workspace_destroyed (Wnck.Workspace space);
+		public virtual signal void active_window_changed (Wnck.Window previous_window);
+		public virtual signal void active_workspace_changed (Wnck.Workspace previous_workspace);
+		public virtual signal void application_closed (Wnck.Application app);
+		public virtual signal void application_opened (Wnck.Application app);
+		public virtual signal void background_changed ();
+		public virtual signal void class_group_closed (Wnck.ClassGroup class_group);
+		public virtual signal void class_group_opened (Wnck.ClassGroup class_group);
+		public virtual signal void showing_desktop_changed ();
+		public virtual signal void viewports_changed ();
+		public virtual signal void window_closed (Wnck.Window window);
+		public virtual signal void window_manager_changed ();
+		public virtual signal void window_opened (Wnck.Window window);
+		public virtual signal void window_stacking_changed ();
+		public virtual signal void workspace_created (Wnck.Workspace space);
+		public virtual signal void workspace_destroyed (Wnck.Workspace space);
 	}
 	[CCode (cheader_filename = "libwnck/libwnck.h")]
 	public class Selector : Gtk.MenuBar, Atk.Implementor, Gtk.Buildable {
@@ -385,12 +385,12 @@
 		public virtual void pad3 ();
 		[NoWrapper]
 		public virtual void pad4 ();
-		public signal void actions_changed (Wnck.WindowActions changed_mask, Wnck.WindowActions new_actions);
-		public signal void geometry_changed ();
-		public signal void icon_changed ();
-		public signal void name_changed ();
-		public signal void state_changed (Wnck.WindowState changed_mask, Wnck.WindowState new_state);
-		public signal void workspace_changed ();
+		public virtual signal void actions_changed (Wnck.WindowActions changed_mask, Wnck.WindowActions new_actions);
+		public virtual signal void geometry_changed ();
+		public virtual signal void icon_changed ();
+		public virtual signal void name_changed ();
+		public virtual signal void state_changed (Wnck.WindowState changed_mask, Wnck.WindowState new_state);
+		public virtual signal void workspace_changed ();
 	}
 	[CCode (cheader_filename = "libwnck/libwnck.h")]
 	public class Workspace : GLib.Object {
@@ -415,7 +415,7 @@
 		public virtual void pad3 ();
 		[NoWrapper]
 		public virtual void pad4 ();
-		public signal void name_changed ();
+		public virtual signal void name_changed ();
 	}
 	[CCode (cheader_filename = "libwnck/libwnck.h")]
 	public delegate weak Gdk.Pixbuf LoadIconFunction (string icon_name, int size, uint flags);

Modified: trunk/vapi/packages/gtk+-2.0/gtk+-2.0.metadata
==============================================================================
--- trunk/vapi/packages/gtk+-2.0/gtk+-2.0.metadata	(original)
+++ trunk/vapi/packages/gtk+-2.0/gtk+-2.0.metadata	Wed May 28 23:41:04 2008
@@ -201,23 +201,23 @@
 gtk_spin_button_get_range.max is_out="1"
 gtk_status_icon_get_geometry.area is_out="1"
 gtk_status_icon_get_geometry.orientation is_out="1"
-GtkStyle.fg weak="0" is_array="1"
-GtkStyle.bg weak="0" is_array="1"
-GtkStyle.light weak="0" is_array="1"
-GtkStyle.dark weak="0" is_array="1"
-GtkStyle.mid weak="0" is_array="1"
-GtkStyle.text weak="0" is_array="1"
-GtkStyle.base weak="0" is_array="1"
-GtkStyle.text_aa weak="0" is_array="1"
-GtkStyle.fg_gc weak="0" is_array="1"
-GtkStyle.bg_gc weak="0" is_array="1"
-GtkStyle.light_gc weak="0" is_array="1"
-GtkStyle.dark_gc weak="0" is_array="1"
-GtkStyle.mid_gc weak="0" is_array="1"
-GtkStyle.text_gc weak="0" is_array="1"
-GtkStyle.base_gc weak="0" is_array="1"
-GtkStyle.text_aa_gc weak="0" is_array="1"
-GtkStyle.bg_pixmap weak="0" is_array="1"
+GtkStyle.fg weak="0"
+GtkStyle.bg weak="0"
+GtkStyle.light weak="0"
+GtkStyle.dark weak="0"
+GtkStyle.mid weak="0"
+GtkStyle.text weak="0"
+GtkStyle.base weak="0"
+GtkStyle.text_aa weak="0"
+GtkStyle.fg_gc weak="0"
+GtkStyle.bg_gc weak="0"
+GtkStyle.light_gc weak="0"
+GtkStyle.dark_gc weak="0"
+GtkStyle.mid_gc weak="0"
+GtkStyle.text_gc weak="0"
+GtkStyle.base_gc weak="0"
+GtkStyle.text_aa_gc weak="0"
+GtkStyle.bg_pixmap weak="0"
 gtk_style_lookup_color.color is_out="1"
 GtkTargetEntry is_value_type="1"
 gtk_target_list_add_table.targets is_array="1"

Modified: trunk/vapi/vte.vapi
==============================================================================
--- trunk/vapi/vte.vapi	(original)
+++ trunk/vapi/vte.vapi	Wed May 28 23:41:04 2008
@@ -32,7 +32,7 @@
 		public weak int[] iopipe;
 		public static int add_child (GLib.Pid pid);
 		public static weak Vte.Reaper get ();
-		public signal void child_exited (int p0, int p1);
+		public virtual signal void child_exited (int p0, int p1);
 	}
 	[CCode (cheader_filename = "vte/vte.h")]
 	public class Terminal : Gtk.Widget, Atk.Implementor, Gtk.Buildable {
@@ -131,37 +131,37 @@
 		public virtual void vte_reserved3 ();
 		[NoWrapper]
 		public virtual void vte_reserved4 ();
-		public signal void char_size_changed (uint char_width, uint char_height);
-		public signal void child_exited ();
-		public signal void commit (string text, uint size);
-		public signal void contents_changed ();
+		public virtual signal void char_size_changed (uint char_width, uint char_height);
+		public virtual signal void child_exited ();
+		public virtual signal void commit (string text, uint size);
+		public virtual signal void contents_changed ();
 		[HasEmitter]
-		public signal void copy_clipboard ();
-		public signal void cursor_moved ();
-		public signal void decrease_font_size ();
-		public signal void deiconify_window ();
-		public signal void emulation_changed ();
-		public signal void encoding_changed ();
-		public signal void eof ();
-		public signal void icon_title_changed ();
-		public signal void iconify_window ();
-		public signal void increase_font_size ();
-		public signal void lower_window ();
-		public signal void maximize_window ();
-		public signal void move_window (uint x, uint y);
+		public virtual signal void copy_clipboard ();
+		public virtual signal void cursor_moved ();
+		public virtual signal void decrease_font_size ();
+		public virtual signal void deiconify_window ();
+		public virtual signal void emulation_changed ();
+		public virtual signal void encoding_changed ();
+		public virtual signal void eof ();
+		public virtual signal void icon_title_changed ();
+		public virtual signal void iconify_window ();
+		public virtual signal void increase_font_size ();
+		public virtual signal void lower_window ();
+		public virtual signal void maximize_window ();
+		public virtual signal void move_window (uint x, uint y);
 		[HasEmitter]
-		public signal void paste_clipboard ();
-		public signal void raise_window ();
-		public signal void refresh_window ();
-		public signal void resize_window (uint width, uint height);
-		public signal void restore_window ();
-		public signal void selection_changed ();
-		public signal void status_line_changed ();
-		public signal void text_deleted ();
-		public signal void text_inserted ();
-		public signal void text_modified ();
-		public signal void text_scrolled (int delta);
-		public signal void window_title_changed ();
+		public virtual signal void paste_clipboard ();
+		public virtual signal void raise_window ();
+		public virtual signal void refresh_window ();
+		public virtual signal void resize_window (uint width, uint height);
+		public virtual signal void restore_window ();
+		public virtual signal void selection_changed ();
+		public virtual signal void status_line_changed ();
+		public virtual signal void text_deleted ();
+		public virtual signal void text_inserted ();
+		public virtual signal void text_modified ();
+		public virtual signal void text_scrolled (int delta);
+		public virtual signal void window_title_changed ();
 	}
 	[CCode (cheader_filename = "vte/vteaccess.h")]
 	public class TerminalAccessible : Gtk.Accessible, Atk.Component, Atk.Action, Atk.Text {

Modified: trunk/vapi/webkit-1.0.vapi
==============================================================================
--- trunk/vapi/webkit-1.0.vapi	(original)
+++ trunk/vapi/webkit-1.0.vapi	Wed May 28 23:41:04 2008
@@ -52,11 +52,11 @@
 		public string name { get; }
 		public string title { get; }
 		public string uri { get; }
-		public signal void cleared ();
-		public signal void hovering_over_link (string p0, string p1);
-		public signal void load_committed ();
-		public signal void load_done (bool p0);
-		public signal void title_changed (string p0);
+		public virtual signal void cleared ();
+		public virtual signal void hovering_over_link (string p0, string p1);
+		public virtual signal void load_committed ();
+		public virtual signal void load_done (bool p0);
+		public virtual signal void title_changed (string p0);
 	}
 	[CCode (cheader_filename = "webkit/webkit.h")]
 	public class WebHistoryItem : GLib.Object {
@@ -158,30 +158,30 @@
 		public Gtk.TargetList paste_target_list { get; }
 		public WebKit.WebSettings settings { get; set; }
 		public bool transparent { get; set; }
-		public signal bool console_message (string message, int line_number, string source_id);
+		public virtual signal bool console_message (string message, int line_number, string source_id);
 		[HasEmitter]
-		public signal void copy_clipboard ();
+		public virtual signal void copy_clipboard ();
 		[HasEmitter]
-		public signal void cut_clipboard ();
-		public signal void hovering_over_link (string p0, string p1);
-		public signal void icon_loaded ();
-		public signal void load_committed (WebKit.WebFrame p0);
-		public signal void load_finished (WebKit.WebFrame p0);
-		public signal void load_progress_changed (int p0);
-		public signal void load_started (WebKit.WebFrame p0);
-		public signal int navigation_requested (GLib.Object frame, GLib.Object request);
+		public virtual signal void cut_clipboard ();
+		public virtual signal void hovering_over_link (string p0, string p1);
+		public virtual signal void icon_loaded ();
+		public virtual signal void load_committed (WebKit.WebFrame p0);
+		public virtual signal void load_finished (WebKit.WebFrame p0);
+		public virtual signal void load_progress_changed (int p0);
+		public virtual signal void load_started (WebKit.WebFrame p0);
+		public virtual signal int navigation_requested (GLib.Object frame, GLib.Object request);
 		[HasEmitter]
-		public signal void paste_clipboard ();
-		public signal void populate_popup (Gtk.Menu p0);
-		public signal bool script_alert (GLib.Object frame, string alert_message);
-		public signal bool script_confirm (GLib.Object frame, string confirm_message, bool did_confirm);
-		public signal bool script_prompt (GLib.Object frame, string message, string default_value, void* value);
+		public virtual signal void paste_clipboard ();
+		public virtual signal void populate_popup (Gtk.Menu p0);
+		public virtual signal bool script_alert (GLib.Object frame, string alert_message);
+		public virtual signal bool script_confirm (GLib.Object frame, string confirm_message, bool did_confirm);
+		public virtual signal bool script_prompt (GLib.Object frame, string message, string default_value, void* value);
 		[HasEmitter]
-		public signal void select_all ();
-		public signal void selection_changed ();
-		public signal void set_scroll_adjustments (Gtk.Adjustment p0, Gtk.Adjustment p1);
-		public signal void status_bar_text_changed (string p0);
-		public signal void title_changed (WebKit.WebFrame p0, string p1);
-		public signal void window_object_cleared (WebKit.WebFrame frame, void* context, void* window_object);
+		public virtual signal void select_all ();
+		public virtual signal void selection_changed ();
+		public virtual signal void set_scroll_adjustments (Gtk.Adjustment p0, Gtk.Adjustment p1);
+		public virtual signal void status_bar_text_changed (string p0);
+		public virtual signal void title_changed (WebKit.WebFrame p0, string p1);
+		public virtual signal void window_object_cleared (WebKit.WebFrame frame, void* context, void* window_object);
 	}
 }

Modified: trunk/vapigen/valagidlparser.vala
==============================================================================
--- trunk/vapigen/valagidlparser.vala	(original)
+++ trunk/vapigen/valagidlparser.vala	Wed May 28 23:41:04 2008
@@ -1722,7 +1722,9 @@
 				}
 			}
 		}
-		
+
+		sig.is_virtual = true;
+
 		bool first = true;
 		
 		foreach (weak IdlNodeParam param in sig_node.parameters) {



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