From: Juerg Billeter Date: Mon, 30 Jul 2007 18:39:03 +0000 (+0000) Subject: use abstract instead of virtual methods in generated interfaces X-Git-Tag: VALA_0_1_3~139 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=38d906994cf995e04d9eb56ff879b90a28caf688;p=platform%2Fupstream%2Fvala.git use abstract instead of virtual methods in generated interfaces 2007-07-30 Juerg Billeter * 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 --- diff --git a/ChangeLog b/ChangeLog index a578b74..38f000e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2007-07-30 Jürg Billeter + * 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 + * gobject/valacodegeneratormethod.vala: support array length parameters in virtual methods diff --git a/vala/valasemanticanalyzer.vala b/vala/valasemanticanalyzer.vala index 23cc7a7..93f2cfd 100644 --- a/vala/valasemanticanalyzer.vala +++ b/vala/valasemanticanalyzer.vala @@ -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; diff --git a/vapi/atk.vala b/vapi/atk.vala index 8f4713b..344c10d 100644 --- a/vapi/atk.vala +++ b/vapi/atk.vala @@ -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")] diff --git a/vapi/gio-standalone.vala b/vapi/gio-standalone.vala index 21ccbb5..2c85c5d 100644 --- a/vapi/gio-standalone.vala +++ b/vapi/gio-standalone.vala @@ -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] diff --git a/vapi/gstreamer-0.10.vala b/vapi/gstreamer-0.10.vala index c61c2b4..882fc94 100644 --- a/vapi/gstreamer-0.10.vala +++ b/vapi/gstreamer-0.10.vala @@ -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")] diff --git a/vapi/gtk+-2.0.vala b/vapi/gtk+-2.0.vala index 347401f..7e0bdd1 100644 --- a/vapi/gtk+-2.0.vala +++ b/vapi/gtk+-2.0.vala @@ -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 (); } diff --git a/vapi/packages/gstreamer-0.10/gstreamer-0.10-custom.vala b/vapi/packages/gstreamer-0.10/gstreamer-0.10-custom.vala index 75a2843..a29315b 100644 --- a/vapi/packages/gstreamer-0.10/gstreamer-0.10-custom.vala +++ b/vapi/packages/gstreamer-0.10/gstreamer-0.10-custom.vala @@ -21,5 +21,6 @@ */ namespace Gst { + [Import] public void init (ref string[] args); } diff --git a/vapi/packages/gtk+-2.0/gtk+-2.0-custom.vala b/vapi/packages/gtk+-2.0/gtk+-2.0-custom.vala index 62059cf..7b42147 100644 --- a/vapi/packages/gtk+-2.0/gtk+-2.0-custom.vala +++ b/vapi/packages/gtk+-2.0/gtk+-2.0-custom.vala @@ -21,8 +21,11 @@ */ namespace Gtk { + [Import] public void init (out string[] args); + [Import] public void main (); + [Import] public void main_quit (); public struct Allocation { diff --git a/vapigen/valagidlparser.vala b/vapigen/valagidlparser.vala index 1954a3f..a33d889 100644 --- a/vapigen/valagidlparser.vala +++ b/vapigen/valagidlparser.vala @@ -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;