use abstract instead of virtual methods in generated interfaces
authorJuerg Billeter <j@bitron.ch>
Mon, 30 Jul 2007 18:39:03 +0000 (18:39 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Mon, 30 Jul 2007 18:39:03 +0000 (18:39 +0000)
2007-07-30  Juerg Billeter  <j@bitron.ch>

* vala/valasemanticanalyzer.vala, vapi/atk.vala,
  vapi/gio-standalone.vala, vapi/gstreamer-0.10.vala,
  vapi/gtk+-2.0.vala,
  vapi/packages/gstreamer-0.10/gstreamer-0.10-custom.vala,
  vapi/packages/gtk+-2.0/gtk+-2.0-custom.vala,
  vapigen/valagidlparser.vala: use abstract instead of virtual methods
  in generated interfaces

svn path=/trunk/; revision=415

ChangeLog
vala/valasemanticanalyzer.vala
vapi/atk.vala
vapi/gio-standalone.vala
vapi/gstreamer-0.10.vala
vapi/gtk+-2.0.vala
vapi/packages/gstreamer-0.10/gstreamer-0.10-custom.vala
vapi/packages/gtk+-2.0/gtk+-2.0-custom.vala
vapigen/valagidlparser.vala

index a578b74..38f000e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2007-07-30  Jürg Billeter  <j@bitron.ch>
 
+       * vala/valasemanticanalyzer.vala, vapi/atk.vala,
+         vapi/gio-standalone.vala, vapi/gstreamer-0.10.vala,
+         vapi/gtk+-2.0.vala,
+         vapi/packages/gstreamer-0.10/gstreamer-0.10-custom.vala,
+         vapi/packages/gtk+-2.0/gtk+-2.0-custom.vala,
+         vapigen/valagidlparser.vala: use abstract instead of virtual methods
+         in generated interfaces
+
+2007-07-30  Jürg Billeter  <j@bitron.ch>
+
        * gobject/valacodegeneratormethod.vala: support array length parameters
          in virtual methods
 
index 23cc7a7..93f2cfd 100644 (file)
@@ -178,44 +178,45 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
                        Report.error (cl.source_reference, error_string);
                }
 
-               /* all abstract symbols defined in base types have to be at least defined (or implemented) also in this type */
-               foreach (TypeReference base_type in cl.get_base_types ()) {
-                       if (base_type.data_type is Interface) {
-                               Interface iface = (Interface) base_type.data_type;
-
-                               /* We do not need to do expensive equality checking here since this is done
-                                * already. We only need to guarantee the symbols are present.
-                                */
-
-                               /* check methods */
-                               foreach (Method m in iface.get_methods ()) {
-                                       if (m.is_abstract) {
-                                               var sym = cl.scope.lookup (m.name);
-                                               if (sym == null || !(sym is Method) || ((Method) sym).base_interface_method != m) {
-                                                       cl.error = true;
-                                                       Report.error (cl.source_reference, "`%s' does not implement interface method `%s'".printf (cl.get_full_name (), m.get_full_name ()));
+               /* VAPI classes don't have to specify overridden methods */
+               if (!cl.source_reference.file.pkg) {
+                       /* all abstract symbols defined in base types have to be at least defined (or implemented) also in this type */
+                       foreach (TypeReference base_type in cl.get_base_types ()) {
+                               if (base_type.data_type is Interface) {
+                                       Interface iface = (Interface) base_type.data_type;
+
+                                       /* We do not need to do expensive equality checking here since this is done
+                                        * already. We only need to guarantee the symbols are present.
+                                        */
+
+                                       /* check methods */
+                                       foreach (Method m in iface.get_methods ()) {
+                                               if (m.is_abstract) {
+                                                       var sym = cl.scope.lookup (m.name);
+                                                       if (sym == null || !(sym is Method) || ((Method) sym).base_interface_method != m) {
+                                                               cl.error = true;
+                                                               Report.error (cl.source_reference, "`%s' does not implement interface method `%s'".printf (cl.get_full_name (), m.get_full_name ()));
+                                                       }
                                                }
                                        }
                                }
                        }
-               }
 
-               /* all abstract symbols defined in base classes have to be implemented in non-abstract classes
-                * VAPI classes don't have to specify overridden methods
-                */
-               if (!cl.is_abstract && !cl.source_reference.file.pkg) {
-                       var base_class = cl.base_class;
-                       while (base_class != null && base_class.is_abstract) {
-                               foreach (Method m in base_class.get_methods ()) {
-                                       if (m.is_abstract) {
-                                               var sym = cl.scope.lookup (m.name);
-                                               if (sym == null || !(sym is Method) || ((Method) sym).base_method != m) {
-                                                       cl.error = true;
-                                                       Report.error (cl.source_reference, "`%s' does not implement abstract method `%s'".printf (cl.get_full_name (), m.get_full_name ()));
+                       /* all abstract symbols defined in base classes have to be implemented in non-abstract classes */
+                       if (!cl.is_abstract) {
+                               var base_class = cl.base_class;
+                               while (base_class != null && base_class.is_abstract) {
+                                       foreach (Method m in base_class.get_methods ()) {
+                                               if (m.is_abstract) {
+                                                       var sym = cl.scope.lookup (m.name);
+                                                       if (sym == null || !(sym is Method) || ((Method) sym).base_method != m) {
+                                                               cl.error = true;
+                                                               Report.error (cl.source_reference, "`%s' does not implement abstract method `%s'".printf (cl.get_full_name (), m.get_full_name ()));
+                                                       }
                                                }
                                        }
+                                       base_class = base_class.base_class;
                                }
-                               base_class = base_class.base_class;
                        }
                }
 
@@ -386,7 +387,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
                if (sym is Method) {
                        var base_method = (Method) sym;
                        if (base_method.is_abstract || base_method.is_virtual) {
-                               if (!m.equals (base_method)) {
+                               if (!cl.source_reference.file.pkg && !m.equals (base_method)) {
                                        m.error = true;
                                        Report.error (m.source_reference, "Return type and/or parameters of overriding method `%s' do not match overridden method `%s'.".printf (m.get_full_name (), base_method.get_full_name ()));
                                        return;
@@ -410,7 +411,7 @@ public class Vala.SemanticAnalyzer : CodeVisitor {
                                if (sym is Method) {
                                        var base_method = (Method) sym;
                                        if (base_method.is_abstract) {
-                                               if (!m.equals (base_method)) {
+                                               if (!cl.source_reference.file.pkg && !m.equals (base_method)) {
                                                        m.error = true;
                                                        Report.error (m.source_reference, "Return type and/or parameters of overriding method `%s' do not match overridden method `%s'.".printf (m.get_full_name (), base_method.get_full_name ()));
                                                        return;
index 8f4713b..344c10d 100644 (file)
@@ -399,40 +399,40 @@ namespace Atk {
        }
        [CCode (cheader_filename = "atk/atk.h")]
        public interface Action {
-               public virtual bool do_action (int i);
-               public virtual weak string get_description (int i);
-               public virtual weak string get_keybinding (int i);
-               public virtual weak string get_localized_name (int i);
-               public virtual int get_n_actions ();
-               public virtual weak string get_name (int i);
+               public abstract bool do_action (int i);
+               public abstract weak string get_description (int i);
+               public abstract weak string get_keybinding (int i);
+               public abstract weak string get_localized_name (int i);
+               public abstract int get_n_actions ();
+               public abstract weak string get_name (int i);
                public static GLib.Type get_type ();
-               public virtual bool set_description (int i, string desc);
+               public abstract bool set_description (int i, string desc);
        }
        [CCode (cheader_filename = "atk/atk.h")]
        public interface Component {
-               public virtual uint add_focus_handler (Atk.FocusHandler handler);
-               public virtual bool contains (int x, int y, Atk.CoordType coord_type);
-               public virtual double get_alpha ();
-               public virtual void get_extents (int x, int y, int width, int height, Atk.CoordType coord_type);
-               public virtual Atk.Layer get_layer ();
-               public virtual int get_mdi_zorder ();
-               public virtual void get_position (int x, int y, Atk.CoordType coord_type);
-               public virtual void get_size (int width, int height);
+               public abstract uint add_focus_handler (Atk.FocusHandler handler);
+               public abstract bool contains (int x, int y, Atk.CoordType coord_type);
+               public abstract double get_alpha ();
+               public abstract void get_extents (int x, int y, int width, int height, Atk.CoordType coord_type);
+               public abstract Atk.Layer get_layer ();
+               public abstract int get_mdi_zorder ();
+               public abstract void get_position (int x, int y, Atk.CoordType coord_type);
+               public abstract void get_size (int width, int height);
                public static GLib.Type get_type ();
-               public virtual bool grab_focus ();
-               public virtual weak Atk.Object ref_accessible_at_point (int x, int y, Atk.CoordType coord_type);
-               public virtual void remove_focus_handler (uint handler_id);
-               public virtual bool set_extents (int x, int y, int width, int height, Atk.CoordType coord_type);
-               public virtual bool set_position (int x, int y, Atk.CoordType coord_type);
-               public virtual bool set_size (int width, int height);
+               public abstract bool grab_focus ();
+               public abstract weak Atk.Object ref_accessible_at_point (int x, int y, Atk.CoordType coord_type);
+               public abstract void remove_focus_handler (uint handler_id);
+               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 (out Atk.Rectangle bounds);
        }
        [CCode (cheader_filename = "atk/atk.h")]
        public interface Document {
                public weak string get_attribute_value (string attribute_name);
                public weak GLib.SList get_attributes ();
-               public virtual pointer get_document ();
-               public virtual weak string get_document_type ();
+               public abstract pointer get_document ();
+               public abstract weak string get_document_type ();
                public weak string get_locale ();
                public static GLib.Type get_type ();
                public bool set_attribute_value (string attribute_name, string attribute_value);
@@ -442,94 +442,94 @@ namespace Atk {
        }
        [CCode (cheader_filename = "atk/atk.h")]
        public interface EditableText {
-               public virtual void copy_text (int start_pos, int end_pos);
-               public virtual void cut_text (int start_pos, int end_pos);
-               public virtual void delete_text (int start_pos, int end_pos);
+               public abstract void copy_text (int start_pos, int end_pos);
+               public abstract void cut_text (int start_pos, int end_pos);
+               public abstract void delete_text (int start_pos, int end_pos);
                public static GLib.Type get_type ();
-               public virtual void insert_text (string string, int length, int position);
-               public virtual void paste_text (int position);
-               public virtual bool set_run_attributes (GLib.SList attrib_set, int start_offset, int end_offset);
-               public virtual void set_text_contents (string string);
+               public abstract void insert_text (string string, int length, int position);
+               public abstract void paste_text (int position);
+               public abstract bool set_run_attributes (GLib.SList attrib_set, int start_offset, int end_offset);
+               public abstract void set_text_contents (string string);
        }
        [CCode (cheader_filename = "atk/atk.h")]
        public interface HyperlinkImpl {
-               public virtual weak Atk.Hyperlink get_hyperlink ();
+               public abstract weak Atk.Hyperlink get_hyperlink ();
                public static GLib.Type get_type ();
        }
        [CCode (cheader_filename = "atk/atk.h")]
        public interface Hypertext {
-               public virtual weak Atk.Hyperlink get_link (int link_index);
-               public virtual int get_link_index (int char_index);
-               public virtual int get_n_links ();
+               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 static GLib.Type get_type ();
                public signal void link_selected (int link_index);
        }
        [CCode (cheader_filename = "atk/atk.h")]
        public interface Image {
-               public virtual weak string get_image_description ();
-               public virtual weak string get_image_locale ();
-               public virtual void get_image_position (int x, int y, Atk.CoordType coord_type);
-               public virtual void get_image_size (int width, int height);
+               public abstract weak string get_image_description ();
+               public abstract weak string get_image_locale ();
+               public abstract void get_image_position (int x, int y, Atk.CoordType coord_type);
+               public abstract void get_image_size (int width, int height);
                public static GLib.Type get_type ();
-               public virtual bool set_image_description (string description);
+               public abstract bool set_image_description (string description);
        }
        [CCode (cheader_filename = "atk/atk.h")]
        public interface Implementor {
                public static GLib.Type get_type ();
-               public virtual weak Atk.Object ref_accessible ();
+               public abstract weak Atk.Object ref_accessible ();
        }
        [CCode (cheader_filename = "atk/atk.h")]
        public interface Selection {
-               public virtual bool add_selection (int i);
-               public virtual bool clear_selection ();
-               public virtual int get_selection_count ();
+               public abstract bool add_selection (int i);
+               public abstract bool clear_selection ();
+               public abstract int get_selection_count ();
                public static GLib.Type get_type ();
-               public virtual bool is_child_selected (int i);
-               public virtual weak Atk.Object ref_selection (int i);
-               public virtual bool remove_selection (int i);
-               public virtual bool select_all_selection ();
+               public abstract bool is_child_selected (int i);
+               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 ();
        }
        [CCode (cheader_filename = "atk/atk.h")]
        public interface StreamableContent {
-               public virtual weak string get_mime_type (int i);
-               public virtual int get_n_mime_types ();
-               public virtual weak GLib.IOChannel get_stream (string mime_type);
+               public abstract weak string get_mime_type (int i);
+               public abstract int get_n_mime_types ();
+               public abstract weak GLib.IOChannel get_stream (string mime_type);
                public static GLib.Type get_type ();
-               public virtual weak string get_uri (string mime_type);
+               public abstract weak string get_uri (string mime_type);
        }
        [CCode (cheader_filename = "atk/atk.h")]
        public interface Table {
-               public virtual bool add_column_selection (int column);
-               public virtual bool add_row_selection (int row);
-               public virtual weak Atk.Object get_caption ();
-               public virtual int get_column_at_index (int index_);
-               public virtual weak string get_column_description (int column);
-               public virtual int get_column_extent_at (int row, int column);
-               public virtual weak Atk.Object get_column_header (int column);
-               public virtual int get_index_at (int row, int column);
-               public virtual int get_n_columns ();
-               public virtual int get_n_rows ();
-               public virtual int get_row_at_index (int index_);
-               public virtual weak string get_row_description (int row);
-               public virtual int get_row_extent_at (int row, int column);
-               public virtual weak Atk.Object get_row_header (int row);
-               public virtual int get_selected_columns (int selected);
-               public virtual int get_selected_rows (int selected);
-               public virtual weak Atk.Object get_summary ();
+               public abstract bool add_column_selection (int column);
+               public abstract bool add_row_selection (int row);
+               public abstract weak Atk.Object get_caption ();
+               public abstract int get_column_at_index (int index_);
+               public abstract weak string get_column_description (int column);
+               public abstract int get_column_extent_at (int row, int column);
+               public abstract weak Atk.Object get_column_header (int column);
+               public abstract int get_index_at (int row, int column);
+               public abstract int get_n_columns ();
+               public abstract int get_n_rows ();
+               public abstract int get_row_at_index (int index_);
+               public abstract weak string get_row_description (int row);
+               public abstract int get_row_extent_at (int row, int column);
+               public abstract weak Atk.Object get_row_header (int row);
+               public abstract int get_selected_columns (int selected);
+               public abstract int get_selected_rows (int selected);
+               public abstract weak Atk.Object get_summary ();
                public static GLib.Type get_type ();
-               public virtual bool is_column_selected (int column);
-               public virtual bool is_row_selected (int row);
-               public virtual bool is_selected (int row, int column);
-               public virtual weak Atk.Object ref_at (int row, int column);
-               public virtual bool remove_column_selection (int column);
-               public virtual bool remove_row_selection (int row);
-               public virtual void set_caption (Atk.Object caption);
-               public virtual void set_column_description (int column, string description);
-               public virtual void set_column_header (int column, Atk.Object header);
-               public virtual void set_row_description (int row, string description);
-               public virtual void set_row_header (int row, Atk.Object header);
-               public virtual void set_summary (Atk.Object accessible);
+               public abstract bool is_column_selected (int column);
+               public abstract bool is_row_selected (int row);
+               public abstract bool is_selected (int row, int column);
+               public abstract weak Atk.Object ref_at (int row, int column);
+               public abstract bool remove_column_selection (int column);
+               public abstract bool remove_row_selection (int row);
+               public abstract void set_caption (Atk.Object caption);
+               public abstract void set_column_description (int column, string description);
+               public abstract void set_column_header (int column, Atk.Object header);
+               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 row_inserted (int row, int num_inserted);
                public signal void column_inserted (int column, int num_inserted);
                public signal void row_deleted (int row, int num_deleted);
@@ -540,31 +540,31 @@ namespace Atk {
        }
        [CCode (cheader_filename = "atk/atk.h")]
        public interface Text {
-               public virtual bool add_selection (int start_offset, int end_offset);
+               public abstract bool add_selection (int start_offset, int end_offset);
                public static Atk.TextAttribute attribute_for_name (string name);
                public static weak string attribute_get_name (Atk.TextAttribute attr);
                public static weak string attribute_get_value (Atk.TextAttribute attr, int index_);
                public static Atk.TextAttribute attribute_register (string name);
                public static void free_ranges (Atk.TextRange ranges);
-               public virtual weak Atk.TextRange get_bounded_ranges (Atk.TextRectangle rect, Atk.CoordType coord_type, Atk.TextClipType x_clip_type, Atk.TextClipType y_clip_type);
-               public virtual int get_caret_offset ();
-               public virtual unichar get_character_at_offset (int offset);
-               public virtual int get_character_count ();
-               public virtual void get_character_extents (int offset, int x, int y, int width, int height, Atk.CoordType coords);
-               public virtual weak GLib.SList get_default_attributes ();
-               public virtual int get_n_selections ();
-               public virtual int get_offset_at_point (int x, int y, Atk.CoordType coords);
-               public virtual void get_range_extents (int start_offset, int end_offset, Atk.CoordType coord_type, Atk.TextRectangle rect);
-               public virtual weak GLib.SList get_run_attributes (int offset, int start_offset, int end_offset);
-               public virtual weak string get_selection (int selection_num, int start_offset, int end_offset);
-               public virtual weak string get_text (int start_offset, int end_offset);
-               public virtual weak string get_text_after_offset (int offset, Atk.TextBoundary boundary_type, int start_offset, int end_offset);
-               public virtual weak string get_text_at_offset (int offset, Atk.TextBoundary boundary_type, int start_offset, int end_offset);
-               public virtual weak string get_text_before_offset (int offset, Atk.TextBoundary boundary_type, int start_offset, int end_offset);
+               public abstract weak Atk.TextRange get_bounded_ranges (Atk.TextRectangle rect, Atk.CoordType coord_type, Atk.TextClipType x_clip_type, Atk.TextClipType y_clip_type);
+               public abstract int get_caret_offset ();
+               public abstract unichar get_character_at_offset (int offset);
+               public abstract int get_character_count ();
+               public abstract void get_character_extents (int offset, int x, int y, int width, int height, Atk.CoordType coords);
+               public abstract weak GLib.SList get_default_attributes ();
+               public abstract int get_n_selections ();
+               public abstract int get_offset_at_point (int x, int y, Atk.CoordType coords);
+               public abstract void get_range_extents (int start_offset, int end_offset, Atk.CoordType coord_type, Atk.TextRectangle rect);
+               public abstract weak GLib.SList get_run_attributes (int offset, int start_offset, int end_offset);
+               public abstract weak string get_selection (int selection_num, int start_offset, int end_offset);
+               public abstract weak string get_text (int start_offset, int end_offset);
+               public abstract weak string get_text_after_offset (int offset, Atk.TextBoundary boundary_type, int start_offset, int end_offset);
+               public abstract weak string get_text_at_offset (int offset, Atk.TextBoundary boundary_type, int start_offset, int end_offset);
+               public abstract weak string get_text_before_offset (int offset, Atk.TextBoundary boundary_type, int start_offset, int end_offset);
                public static GLib.Type get_type ();
-               public virtual bool remove_selection (int selection_num);
-               public virtual bool set_caret_offset (int offset);
-               public virtual bool set_selection (int selection_num, int start_offset, int end_offset);
+               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_changed (int position, int length);
                public signal void text_caret_moved (int location);
                public signal void text_selection_changed ();
@@ -572,12 +572,12 @@ namespace Atk {
        }
        [CCode (cheader_filename = "atk/atk.h")]
        public interface Value {
-               public virtual void get_current_value (GLib.Value value);
-               public virtual void get_maximum_value (GLib.Value value);
-               public virtual void get_minimum_increment (GLib.Value value);
-               public virtual void get_minimum_value (GLib.Value value);
+               public abstract void get_current_value (GLib.Value value);
+               public abstract void get_maximum_value (GLib.Value value);
+               public abstract void get_minimum_increment (GLib.Value value);
+               public abstract void get_minimum_value (GLib.Value value);
                public static GLib.Type get_type ();
-               public virtual bool set_current_value (GLib.Value value);
+               public abstract bool set_current_value (GLib.Value value);
        }
        [ReferenceType]
        [CCode (cheader_filename = "atk/atk.h")]
index 21ccbb5..2c85c5d 100644 (file)
@@ -462,136 +462,136 @@ namespace GLib {
        [CCode (cheader_filename = "gio/gvfs.h,glib.h")]
        public interface AppInfo {
                public static weak GLib.AppInfo create_from_commandline (string commandline, string application_name, GLib.Error error);
-               public virtual weak GLib.AppInfo dup ();
-               public virtual bool equal (GLib.AppInfo appinfo2);
-               public virtual weak string get_description ();
-               public virtual weak string get_icon ();
-               public virtual weak string get_name ();
+               public abstract weak GLib.AppInfo dup ();
+               public abstract bool equal (GLib.AppInfo appinfo2);
+               public abstract weak string get_description ();
+               public abstract weak string get_icon ();
+               public abstract weak string get_name ();
                public static GLib.Type get_type ();
-               public virtual bool launch (GLib.List filenames, string envp, GLib.Error error);
-               public virtual bool launch_uris (GLib.List uris, string envp, GLib.Error error);
-               public virtual bool set_as_default_for_type (string content_type, GLib.Error error);
-               public virtual bool should_show (string desktop_env);
-               public virtual bool supports_uris ();
-               public virtual bool supports_xdg_startup_notify ();
+               public abstract bool launch (GLib.List filenames, string envp, GLib.Error error);
+               public abstract bool launch_uris (GLib.List uris, string envp, GLib.Error error);
+               public abstract bool set_as_default_for_type (string content_type, GLib.Error error);
+               public abstract bool should_show (string desktop_env);
+               public abstract bool supports_uris ();
+               public abstract bool supports_xdg_startup_notify ();
        }
        [CCode (cheader_filename = "gio/gvfs.h,glib.h")]
        public interface AsyncResult {
-               public virtual weak GLib.Object get_source_object ();
+               public abstract weak GLib.Object get_source_object ();
                public static GLib.Type get_type ();
-               public virtual pointer get_user_data ();
+               public abstract pointer get_user_data ();
        }
        [CCode (cheader_filename = "gio/gvfs.h,glib.h")]
        public interface Drive {
-               public virtual bool can_eject ();
-               public virtual bool can_mount ();
-               public virtual void eject (GLib.AsyncReadyCallback callback, pointer user_data);
-               public virtual bool eject_finish (GLib.AsyncResult result, GLib.Error error);
-               public virtual weak string get_icon ();
-               public virtual weak string get_name ();
+               public abstract bool can_eject ();
+               public abstract bool can_mount ();
+               public abstract void eject (GLib.AsyncReadyCallback callback, pointer user_data);
+               public abstract bool eject_finish (GLib.AsyncResult result, GLib.Error error);
+               public abstract weak string get_icon ();
+               public abstract weak string get_name ();
                public weak string get_platform_id ();
                public static GLib.Type get_type ();
-               public virtual weak GLib.List get_volumes ();
-               public virtual bool is_automounted ();
-               public virtual void mount (GLib.MountOperation mount_operation, GLib.AsyncReadyCallback callback, pointer user_data);
-               public virtual bool mount_finish (GLib.AsyncResult result, GLib.Error error);
+               public abstract weak GLib.List get_volumes ();
+               public abstract bool is_automounted ();
+               public abstract void mount (GLib.MountOperation mount_operation, GLib.AsyncReadyCallback callback, pointer user_data);
+               public abstract bool mount_finish (GLib.AsyncResult result, GLib.Error error);
                public signal void changed ();
        }
        [CCode (cheader_filename = "gio/gfile.h")]
        public interface File {
-               public virtual weak GLib.FileOutputStream append_to (GLib.Cancellable cancellable, GLib.Error error);
-               public virtual bool copy (GLib.File destination, GLib.FileCopyFlags flags, GLib.Cancellable cancellable, GLib.FileProgressCallback progress_callback, pointer progress_callback_data, GLib.Error error);
-               public virtual weak GLib.FileOutputStream create (GLib.Cancellable cancellable, GLib.Error error);
+               public abstract weak GLib.FileOutputStream append_to (GLib.Cancellable cancellable, GLib.Error error);
+               public abstract bool copy (GLib.File destination, GLib.FileCopyFlags flags, GLib.Cancellable cancellable, GLib.FileProgressCallback progress_callback, pointer progress_callback_data, GLib.Error error);
+               public abstract weak GLib.FileOutputStream create (GLib.Cancellable cancellable, GLib.Error error);
                public bool delete (GLib.Cancellable cancellable, GLib.Error error);
-               public virtual weak GLib.File dup ();
-               public virtual void eject_mountable (GLib.Cancellable cancellable, GLib.AsyncReadyCallback callback, pointer user_data);
-               public virtual bool eject_mountable_finish (GLib.AsyncResult result, GLib.Error error);
-               public virtual weak GLib.FileEnumerator enumerate_children (string attributes, GLib.FileGetInfoFlags flags, GLib.Cancellable cancellable, GLib.Error error);
-               public virtual bool equal (GLib.File file2);
-               public virtual weak string get_basename ();
+               public abstract weak GLib.File dup ();
+               public abstract void eject_mountable (GLib.Cancellable cancellable, GLib.AsyncReadyCallback callback, pointer user_data);
+               public abstract bool eject_mountable_finish (GLib.AsyncResult result, GLib.Error error);
+               public abstract weak GLib.FileEnumerator enumerate_children (string attributes, GLib.FileGetInfoFlags flags, GLib.Cancellable cancellable, GLib.Error error);
+               public abstract bool equal (GLib.File file2);
+               public abstract weak string get_basename ();
                public weak GLib.File get_child (string name);
-               public virtual weak GLib.File get_child_for_display_name (string display_name, GLib.Error error);
+               public abstract weak GLib.File get_child_for_display_name (string display_name, GLib.Error error);
                public void get_contents_async (GLib.Cancellable cancellable, GLib.AsyncReadyCallback callback, pointer user_data);
                public bool get_contents_finish (GLib.AsyncResult res, string contents, ulong length, GLib.Error error);
-               public virtual weak GLib.FileInfo get_filesystem_info (string attributes, GLib.Cancellable cancellable, GLib.Error error);
+               public abstract weak GLib.FileInfo get_filesystem_info (string attributes, GLib.Cancellable cancellable, GLib.Error error);
                public static weak GLib.File get_for_commandline_arg (string arg);
                public static weak GLib.File get_for_path (string path);
                public static weak GLib.File get_for_uri (string uri);
-               public virtual weak GLib.FileInfo get_info (string attributes, GLib.FileGetInfoFlags flags, GLib.Cancellable cancellable, GLib.Error error);
-               public virtual weak GLib.File get_parent ();
-               public virtual weak string get_parse_name ();
-               public virtual weak string get_path ();
+               public abstract weak GLib.FileInfo get_info (string attributes, GLib.FileGetInfoFlags flags, GLib.Cancellable cancellable, GLib.Error error);
+               public abstract weak GLib.File get_parent ();
+               public abstract weak string get_parse_name ();
+               public abstract weak string get_path ();
                public static GLib.Type get_type ();
-               public virtual weak string get_uri ();
+               public abstract weak string get_uri ();
                public static uint hash (pointer file);
-               public virtual bool is_native ();
-               public virtual bool make_directory (GLib.Cancellable cancellable, GLib.Error error);
-               public virtual bool make_symbolic_link (string symlink_value, GLib.Cancellable cancellable, GLib.Error error);
-               public virtual void mount_mountable (GLib.MountOperation mount_operation, GLib.Cancellable cancellable, GLib.AsyncReadyCallback callback, pointer user_data);
-               public virtual weak GLib.File mount_mountable_finish (GLib.AsyncResult result, GLib.Error error);
-               public virtual bool move (GLib.File destination, GLib.FileCopyFlags flags, GLib.Cancellable cancellable, GLib.FileProgressCallback progress_callback, pointer progress_callback_data, GLib.Error error);
+               public abstract bool is_native ();
+               public abstract bool make_directory (GLib.Cancellable cancellable, GLib.Error error);
+               public abstract bool make_symbolic_link (string symlink_value, GLib.Cancellable cancellable, GLib.Error error);
+               public abstract void mount_mountable (GLib.MountOperation mount_operation, GLib.Cancellable cancellable, GLib.AsyncReadyCallback callback, pointer user_data);
+               public abstract weak GLib.File mount_mountable_finish (GLib.AsyncResult result, GLib.Error error);
+               public abstract bool move (GLib.File destination, GLib.FileCopyFlags flags, GLib.Cancellable cancellable, GLib.FileProgressCallback progress_callback, pointer progress_callback_data, GLib.Error error);
                public static weak GLib.File parse_name (string parse_name);
-               public virtual weak GLib.FileInputStream read (GLib.Cancellable cancellable, GLib.Error error);
-               public virtual void read_async (int io_priority, GLib.Cancellable cancellable, GLib.AsyncReadyCallback callback, pointer user_data);
-               public virtual weak GLib.FileInputStream read_finish (GLib.AsyncResult res, GLib.Error error);
-               public virtual weak GLib.FileOutputStream replace (ulong mtime, bool make_backup, GLib.Cancellable cancellable, GLib.Error error);
-               public virtual weak GLib.File resolve_relative (string relative_path);
-               public virtual bool set_attribute (string attribute, GLib.FileAttributeType type, pointer value, GLib.FileGetInfoFlags flags, GLib.Cancellable cancellable, GLib.Error error);
+               public abstract weak GLib.FileInputStream read (GLib.Cancellable cancellable, GLib.Error error);
+               public abstract void read_async (int io_priority, GLib.Cancellable cancellable, GLib.AsyncReadyCallback callback, pointer user_data);
+               public abstract weak GLib.FileInputStream read_finish (GLib.AsyncResult res, GLib.Error error);
+               public abstract weak GLib.FileOutputStream replace (ulong mtime, bool make_backup, GLib.Cancellable cancellable, GLib.Error error);
+               public abstract weak GLib.File resolve_relative (string relative_path);
+               public abstract bool set_attribute (string attribute, GLib.FileAttributeType type, pointer value, GLib.FileGetInfoFlags flags, GLib.Cancellable cancellable, GLib.Error error);
                public bool set_attribute_byte_string (string attribute, string value, GLib.FileGetInfoFlags flags, GLib.Cancellable cancellable, GLib.Error error);
                public bool set_attribute_int32 (string attribute, string value, GLib.FileGetInfoFlags flags, GLib.Cancellable cancellable, GLib.Error error);
                public bool set_attribute_int64 (string attribute, int64 value, GLib.FileGetInfoFlags flags, GLib.Cancellable cancellable, GLib.Error error);
                public bool set_attribute_string (string attribute, string value, GLib.FileGetInfoFlags flags, GLib.Cancellable cancellable, GLib.Error error);
                public bool set_attribute_uint32 (string attribute, uint value, GLib.FileGetInfoFlags flags, GLib.Cancellable cancellable, GLib.Error error);
                public bool set_attribute_uint64 (string attribute, uint64 value, GLib.FileGetInfoFlags flags, GLib.Cancellable cancellable, GLib.Error error);
-               public virtual weak GLib.File set_display_name (string display_name, GLib.Cancellable cancellable, GLib.Error error);
-               public virtual bool trash (GLib.Cancellable cancellable, GLib.Error error);
-               public virtual void unmount_mountable (GLib.Cancellable cancellable, GLib.AsyncReadyCallback callback, pointer user_data);
-               public virtual bool unmount_mountable_finish (GLib.AsyncResult result, GLib.Error error);
+               public abstract weak GLib.File set_display_name (string display_name, GLib.Cancellable cancellable, GLib.Error error);
+               public abstract bool trash (GLib.Cancellable cancellable, GLib.Error error);
+               public abstract void unmount_mountable (GLib.Cancellable cancellable, GLib.AsyncReadyCallback callback, pointer user_data);
+               public abstract bool unmount_mountable_finish (GLib.AsyncResult result, GLib.Error error);
        }
        [CCode (cheader_filename = "gio/gvfs.h,glib.h")]
        public interface Icon {
-               public virtual bool equal (GLib.Icon icon2);
+               public abstract bool equal (GLib.Icon icon2);
                public static GLib.Type get_type ();
                public static uint hash (pointer icon);
        }
        [CCode (cheader_filename = "gio/gvfs.h,glib.h")]
        public interface LoadableIcon {
                public static GLib.Type get_type ();
-               public virtual weak GLib.InputStream load (int size, string type, GLib.Cancellable cancellable, GLib.Error error);
-               public virtual void load_async (int size, GLib.Cancellable cancellable, GLib.AsyncReadyCallback callback, pointer user_data);
-               public virtual weak GLib.InputStream load_finish (GLib.AsyncResult res, string type, GLib.Error error);
+               public abstract weak GLib.InputStream load (int size, string type, GLib.Cancellable cancellable, GLib.Error error);
+               public abstract void load_async (int size, GLib.Cancellable cancellable, GLib.AsyncReadyCallback callback, pointer user_data);
+               public abstract weak GLib.InputStream load_finish (GLib.AsyncResult res, string type, GLib.Error error);
        }
        [CCode (cheader_filename = "gio/gvfs.h,glib.h")]
        public interface Seekable {
-               public virtual bool can_seek ();
-               public virtual bool can_truncate ();
+               public abstract bool can_seek ();
+               public abstract bool can_truncate ();
                public static GLib.Type get_type ();
-               public virtual bool seek (int64 offset, GLib.SeekType type, GLib.Cancellable cancellable, GLib.Error err);
-               public virtual int64 tell ();
-               public virtual bool truncate (int64 offset, GLib.Cancellable cancellable, GLib.Error err);
+               public abstract bool seek (int64 offset, GLib.SeekType type, GLib.Cancellable cancellable, GLib.Error err);
+               public abstract int64 tell ();
+               public abstract bool truncate (int64 offset, GLib.Cancellable cancellable, GLib.Error err);
        }
        [CCode (cheader_filename = "gio/gvfs.h,glib.h")]
        public interface Vfs {
                public static weak GLib.Vfs get ();
-               public virtual weak GLib.File get_file_for_path (string path);
-               public virtual weak GLib.File get_file_for_uri (string uri);
+               public abstract weak GLib.File get_file_for_path (string path);
+               public abstract weak GLib.File get_file_for_uri (string uri);
                public static GLib.Type get_type ();
-               public virtual weak GLib.File parse_name (string parse_name);
+               public abstract weak GLib.File parse_name (string parse_name);
        }
        [CCode (cheader_filename = "gio/gvfs.h,glib.h")]
        public interface Volume {
-               public virtual bool can_eject ();
-               public virtual bool can_unmount ();
-               public virtual void eject (GLib.AsyncReadyCallback callback, pointer user_data);
-               public virtual bool eject_finish (GLib.AsyncResult result, GLib.Error error);
-               public virtual weak GLib.Drive get_drive ();
-               public virtual weak string get_icon ();
-               public virtual weak string get_name ();
-               public virtual weak string get_platform_id ();
-               public virtual weak GLib.File get_root ();
-               public static GLib.Type get_type ();
-               public virtual void unmount (GLib.AsyncReadyCallback callback, pointer user_data);
-               public virtual bool unmount_finish (GLib.AsyncResult result, GLib.Error error);
+               public abstract bool can_eject ();
+               public abstract bool can_unmount ();
+               public abstract void eject (GLib.AsyncReadyCallback callback, pointer user_data);
+               public abstract bool eject_finish (GLib.AsyncResult result, GLib.Error error);
+               public abstract weak GLib.Drive get_drive ();
+               public abstract weak string get_icon ();
+               public abstract weak string get_name ();
+               public abstract weak string get_platform_id ();
+               public abstract weak GLib.File get_root ();
+               public static GLib.Type get_type ();
+               public abstract void unmount (GLib.AsyncReadyCallback callback, pointer user_data);
+               public abstract bool unmount_finish (GLib.AsyncResult result, GLib.Error error);
                public signal void changed ();
        }
        [ReferenceType]
index c61c2b4..882fc94 100644 (file)
@@ -1166,9 +1166,9 @@ namespace Gst {
        public interface ChildProxy {
                public static void child_added (Gst.Object object, Gst.Object child);
                public static void get (Gst.Object object, ...);
-               public virtual weak Gst.Object get_child_by_index (uint index);
+               public abstract weak Gst.Object get_child_by_index (uint index);
                public weak Gst.Object get_child_by_name (string name);
-               public virtual uint get_children_count ();
+               public abstract uint get_children_count ();
                public static void get_property (Gst.Object object, string name, GLib.Value value);
                public static GLib.Type get_type ();
                public static void get_valist (Gst.Object object, string first_property_name, pointer var_args);
@@ -1199,12 +1199,12 @@ namespace Gst {
        }
        [CCode (cheader_filename = "gst/gst.h")]
        public interface URIHandler {
-               public virtual weak string get_protocols ();
+               public abstract weak string get_protocols ();
                public static GLib.Type get_type ();
-               public virtual weak string get_uri ();
+               public abstract weak string get_uri ();
                public uint get_uri_type ();
-               public virtual void new_uri (string uri);
-               public virtual bool set_uri (string uri);
+               public abstract void new_uri (string uri);
+               public abstract bool set_uri (string uri);
        }
        [ReferenceType]
        [CCode (cheader_filename = "gst/gst.h")]
index 347401f..7e0bdd1 100644 (file)
@@ -4917,17 +4917,17 @@ namespace Gtk {
        }
        [CCode (cheader_filename = "gtk/gtk.h")]
        public interface Buildable {
-               public virtual void add_child (Gtk.Builder builder, GLib.Object child, string type);
-               public virtual weak GLib.Object construct_child (Gtk.Builder builder, string name);
-               public virtual void custom_finished (Gtk.Builder builder, GLib.Object child, string tagname, pointer data);
-               public virtual void custom_tag_end (Gtk.Builder builder, GLib.Object child, string tagname, pointer data);
-               public virtual bool custom_tag_start (Gtk.Builder builder, GLib.Object child, string tagname, GLib.MarkupParser parser, pointer data);
-               public virtual weak GLib.Object get_internal_child (Gtk.Builder builder, string childname);
+               public abstract void add_child (Gtk.Builder builder, GLib.Object child, string type);
+               public abstract weak GLib.Object construct_child (Gtk.Builder builder, string name);
+               public abstract void custom_finished (Gtk.Builder builder, GLib.Object child, string tagname, pointer data);
+               public abstract void custom_tag_end (Gtk.Builder builder, GLib.Object child, string tagname, pointer data);
+               public abstract bool custom_tag_start (Gtk.Builder builder, GLib.Object child, string tagname, GLib.MarkupParser parser, pointer data);
+               public abstract weak GLib.Object get_internal_child (Gtk.Builder builder, string childname);
                public weak string get_name ();
                public static GLib.Type get_type ();
-               public virtual void parser_finished (Gtk.Builder builder);
-               public virtual void set_buildable_property (Gtk.Builder builder, string name, GLib.Value value);
-               public virtual void set_name (string name);
+               public abstract void parser_finished (Gtk.Builder builder);
+               public abstract void set_buildable_property (Gtk.Builder builder, string name, GLib.Value value);
+               public abstract void set_name (string name);
        }
        [CCode (cheader_filename = "gtk/gtk.h")]
        public interface CellEditable {
@@ -4939,31 +4939,31 @@ namespace Gtk {
        }
        [CCode (cheader_filename = "gtk/gtk.h")]
        public interface CellLayout {
-               public virtual void add_attribute (Gtk.CellRenderer cell, string attribute, int column);
-               public virtual void clear ();
-               public virtual void clear_attributes (Gtk.CellRenderer cell);
-               public virtual weak GLib.List get_cells ();
-               public static GLib.Type get_type ();
-               public virtual void pack_end (Gtk.CellRenderer cell, bool expand);
-               public virtual void pack_start (Gtk.CellRenderer cell, bool expand);
-               public virtual void reorder (Gtk.CellRenderer cell, int position);
+               public abstract void add_attribute (Gtk.CellRenderer cell, string attribute, int column);
+               public abstract void clear ();
+               public abstract void clear_attributes (Gtk.CellRenderer cell);
+               public abstract weak GLib.List get_cells ();
+               public static GLib.Type get_type ();
+               public abstract void pack_end (Gtk.CellRenderer cell, bool expand);
+               public abstract void pack_start (Gtk.CellRenderer cell, bool expand);
+               public abstract void reorder (Gtk.CellRenderer cell, int position);
                public void set_attributes (Gtk.CellRenderer cell);
-               public virtual void set_cell_data_func (Gtk.CellRenderer cell, Gtk.CellLayoutDataFunc func, pointer func_data, GLib.DestroyNotify destroy);
+               public abstract void set_cell_data_func (Gtk.CellRenderer cell, Gtk.CellLayoutDataFunc func, pointer func_data, GLib.DestroyNotify destroy);
        }
        [CCode (cheader_filename = "gtk/gtk.h")]
        public interface Editable {
                public void copy_clipboard ();
                public void cut_clipboard ();
                public void delete_selection ();
-               public virtual weak string get_chars (int start_pos, int end_pos);
+               public abstract weak string get_chars (int start_pos, int end_pos);
                public bool get_editable ();
-               public virtual int get_position ();
-               public virtual bool get_selection_bounds (int start, int end);
+               public abstract int get_position ();
+               public abstract bool get_selection_bounds (int start, int end);
                public static GLib.Type get_type ();
                public void paste_clipboard ();
                public void select_region (int start, int end);
                public void set_editable (bool is_editable);
-               public virtual void set_position (int position);
+               public abstract void set_position (int position);
                [HasEmitter]
                public signal void insert_text (string text, int length, int position);
                [HasEmitter]
@@ -5025,21 +5025,21 @@ namespace Gtk {
        }
        [CCode (cheader_filename = "gtk/gtk.h")]
        public interface PrintOperationPreview {
-               public virtual void end_preview ();
+               public abstract void end_preview ();
                public static GLib.Type get_type ();
-               public virtual bool is_selected (int page_nr);
-               public virtual void render_page (int page_nr);
+               public abstract bool is_selected (int page_nr);
+               public abstract void render_page (int page_nr);
                public signal void ready (Gtk.PrintContext context);
                public signal void got_page_size (Gtk.PrintContext context, Gtk.PageSetup page_setup);
        }
        [CCode (cheader_filename = "gtk/gtk.h")]
        public interface RecentChooser {
-               public virtual void add_filter (Gtk.RecentFilter filter);
+               public abstract void add_filter (Gtk.RecentFilter filter);
                public static GLib.Quark error_quark ();
                public weak Gtk.RecentInfo get_current_item ();
-               public virtual weak string get_current_uri ();
+               public abstract weak string get_current_uri ();
                public weak Gtk.RecentFilter get_filter ();
-               public virtual weak GLib.List get_items ();
+               public abstract weak GLib.List get_items ();
                public int get_limit ();
                public bool get_local_only ();
                public bool get_select_multiple ();
@@ -5051,11 +5051,11 @@ namespace Gtk {
                public Gtk.RecentSortType get_sort_type ();
                public static GLib.Type get_type ();
                public weak string get_uris (ulong length);
-               public virtual weak GLib.SList list_filters ();
-               public virtual void remove_filter (Gtk.RecentFilter filter);
-               public virtual void select_all ();
-               public virtual bool select_uri (string uri, GLib.Error error);
-               public virtual bool set_current_uri (string uri, GLib.Error error);
+               public abstract weak GLib.SList list_filters ();
+               public abstract void remove_filter (Gtk.RecentFilter filter);
+               public abstract void select_all ();
+               public abstract bool select_uri (string uri, GLib.Error error);
+               public abstract bool set_current_uri (string uri, GLib.Error error);
                public void set_filter (Gtk.RecentFilter filter);
                public void set_limit (int limit);
                public void set_local_only (bool local_only);
@@ -5065,49 +5065,49 @@ namespace Gtk {
                public void set_show_numbers (bool show_numbers);
                public void set_show_private (bool show_private);
                public void set_show_tips (bool show_tips);
-               public virtual void set_sort_func (Gtk.RecentSortFunc sort_func, pointer sort_data, GLib.DestroyNotify data_destroy);
+               public abstract void set_sort_func (Gtk.RecentSortFunc sort_func, pointer sort_data, GLib.DestroyNotify data_destroy);
                public void set_sort_type (Gtk.RecentSortType sort_type);
-               public virtual void unselect_all ();
-               public virtual void unselect_uri (string uri);
+               public abstract void unselect_all ();
+               public abstract void unselect_uri (string uri);
                public signal void selection_changed ();
                public signal void item_activated ();
        }
        [CCode (cheader_filename = "gtk/gtk.h")]
        public interface TreeDragDest {
-               public virtual bool drag_data_received (Gtk.TreePath dest, Gtk.SelectionData selection_data);
+               public abstract bool drag_data_received (Gtk.TreePath dest, Gtk.SelectionData selection_data);
                public static GLib.Type get_type ();
-               public virtual bool row_drop_possible (Gtk.TreePath dest_path, Gtk.SelectionData selection_data);
+               public abstract bool row_drop_possible (Gtk.TreePath dest_path, Gtk.SelectionData selection_data);
        }
        [CCode (cheader_filename = "gtk/gtk.h")]
        public interface TreeDragSource {
-               public virtual bool drag_data_delete (Gtk.TreePath path);
-               public virtual bool drag_data_get (Gtk.TreePath path, Gtk.SelectionData selection_data);
+               public abstract bool drag_data_delete (Gtk.TreePath path);
+               public abstract bool drag_data_get (Gtk.TreePath path, Gtk.SelectionData selection_data);
                public static GLib.Type get_type ();
-               public virtual bool row_draggable (Gtk.TreePath path);
+               public abstract bool row_draggable (Gtk.TreePath path);
        }
        [CCode (cheader_filename = "gtk/gtk.h")]
        public interface TreeModel {
                public void @foreach (Gtk.TreeModelForeachFunc func, pointer user_data);
                public void get (out Gtk.TreeIter iter, ...);
-               public virtual GLib.Type get_column_type (int index_);
-               public virtual Gtk.TreeModelFlags get_flags ();
-               public virtual bool get_iter (out Gtk.TreeIter iter, Gtk.TreePath path);
+               public abstract GLib.Type get_column_type (int index_);
+               public abstract Gtk.TreeModelFlags get_flags ();
+               public abstract bool get_iter (out Gtk.TreeIter iter, Gtk.TreePath path);
                public bool get_iter_first (out Gtk.TreeIter iter);
                public bool get_iter_from_string (out Gtk.TreeIter iter, string path_string);
-               public virtual int get_n_columns ();
-               public virtual weak Gtk.TreePath get_path (out Gtk.TreeIter iter);
+               public abstract int get_n_columns ();
+               public abstract weak Gtk.TreePath get_path (out Gtk.TreeIter iter);
                public weak string get_string_from_iter (out Gtk.TreeIter iter);
                public static GLib.Type get_type ();
                public void get_valist (out Gtk.TreeIter iter, pointer var_args);
-               public virtual void get_value (out Gtk.TreeIter iter, int column, GLib.Value value);
-               public virtual bool iter_children (out Gtk.TreeIter iter, out Gtk.TreeIter parent);
-               public virtual bool iter_has_child (out Gtk.TreeIter iter);
-               public virtual int iter_n_children (out Gtk.TreeIter iter);
-               public virtual bool iter_next (out Gtk.TreeIter iter);
-               public virtual bool iter_nth_child (out Gtk.TreeIter iter, out Gtk.TreeIter parent, int n);
-               public virtual bool iter_parent (out Gtk.TreeIter iter, out Gtk.TreeIter child);
-               public virtual void ref_node (out Gtk.TreeIter iter);
-               public virtual void unref_node (out Gtk.TreeIter iter);
+               public abstract void get_value (out Gtk.TreeIter iter, int column, GLib.Value value);
+               public abstract bool iter_children (out Gtk.TreeIter iter, out Gtk.TreeIter parent);
+               public abstract bool iter_has_child (out Gtk.TreeIter iter);
+               public abstract int iter_n_children (out Gtk.TreeIter iter);
+               public abstract bool iter_next (out Gtk.TreeIter iter);
+               public abstract bool iter_nth_child (out Gtk.TreeIter iter, out Gtk.TreeIter parent, int n);
+               public abstract bool iter_parent (out Gtk.TreeIter iter, out Gtk.TreeIter child);
+               public abstract void ref_node (out Gtk.TreeIter iter);
+               public abstract void unref_node (out Gtk.TreeIter iter);
                [HasEmitter]
                public signal void row_changed (Gtk.TreePath path, out Gtk.TreeIter iter);
                [HasEmitter]
@@ -5121,12 +5121,12 @@ namespace Gtk {
        }
        [CCode (cheader_filename = "gtk/gtk.h")]
        public interface TreeSortable {
-               public virtual bool get_sort_column_id (int sort_column_id, Gtk.SortType order);
+               public abstract bool get_sort_column_id (int sort_column_id, Gtk.SortType order);
                public static GLib.Type get_type ();
-               public virtual bool has_default_sort_func ();
-               public virtual void set_default_sort_func (Gtk.TreeIterCompareFunc sort_func, pointer user_data, Gtk.DestroyNotify destroy);
-               public virtual void set_sort_column_id (int sort_column_id, Gtk.SortType order);
-               public virtual void set_sort_func (int sort_column_id, Gtk.TreeIterCompareFunc sort_func, pointer user_data, Gtk.DestroyNotify destroy);
+               public abstract bool has_default_sort_func ();
+               public abstract void set_default_sort_func (Gtk.TreeIterCompareFunc sort_func, pointer user_data, Gtk.DestroyNotify destroy);
+               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, pointer user_data, Gtk.DestroyNotify destroy);
                [HasEmitter]
                public signal void sort_column_changed ();
        }
index 75a2843..a29315b 100644 (file)
@@ -21,5 +21,6 @@
  */
 
 namespace Gst {
+       [Import]
        public void init (ref string[] args);
 }
index 62059cf..7b42147 100644 (file)
  */
 
 namespace Gtk {
+       [Import]
        public void init (out string[] args);
+       [Import]
        public void main ();
+       [Import]
        public void main_quit ();
 
        public struct Allocation {
index 1954a3f..a33d889 100644 (file)
@@ -729,8 +729,9 @@ public class Vala.GIdlParser : CodeVisitor {
                        m = new Method (node.name, return_type, current_source_reference);
                }
                m.access = MemberAccessibility.PUBLIC;
-               
-               m.is_virtual = is_virtual;
+
+               m.is_virtual = is_virtual && !is_interface;
+               m.is_abstract = is_virtual && is_interface;
                
                // GIDL generator can't provide array parameter information yet
                m.no_array_length = true;