Branch: refs/heads/master Author: Thomas Martitz kugel@rockbox.org Committer: Thomas Martitz kugel@rockbox.org Date: Wed, 22 Jun 2016 14:10:32 UTC Commit: 2acba3dc3193176f447a06d4ac03c561da1ad978 https://github.com/geany/geany/commit/2acba3dc3193176f447a06d4ac03c561da1ad9...
Log Message: ----------- plugin api: export geanyobject
geanyobject can be used by plugins to connect to plugin signals directly (required for GI-based plugins). Access through GeanyData::object. The related doxygen comments are @gironly for now, since plugin_signal_connect() is still preferred.
Finally, the useless function pointer prototypes are removed from the GeanyObjectClass structure as they became useless (they have been unused and generally wrong since ever).
Modified Paths: -------------- src/geanyobject.c src/geanyobject.h src/plugindata.h src/plugins.c
Modified: src/geanyobject.c 6 lines changed, 6 insertions(+), 0 deletions(-) =================================================================== @@ -52,6 +52,12 @@ struct _GeanyObjectPrivate gchar dummy; };
+/** @gironly + * Get the GObject-derived GType for GeanyObject + * + * @return GeanyObject type */ +GEANY_API_SYMBOL +GType geany_object_get_type(void);
G_DEFINE_TYPE(GeanyObject, geany_object, G_TYPE_OBJECT)
Modified: src/geanyobject.h 25 lines changed, 4 insertions(+), 21 deletions(-) =================================================================== @@ -74,6 +74,8 @@ GeanyCallbackId; typedef struct _GeanyObject GeanyObject; typedef struct _GeanyObjectClass GeanyObjectClass;
+/** @gironly + * Instance structure for GeanyObject */ struct _GeanyObject { GObject parent; @@ -82,30 +84,11 @@ struct _GeanyObject
extern GObject *geany_object;
+/** @gironly + * Class structure for @a GeanyObject */ struct _GeanyObjectClass { GObjectClass parent_class; - - void (*document_new)(GeanyDocument *doc); - void (*document_open)(GeanyDocument *doc); - void (*document_reload)(GeanyDocument *doc); - void (*document_before_save)(GeanyDocument *doc); - void (*document_save)(GeanyDocument *doc); - void (*document_filetype_set)(GeanyDocument *doc, GeanyFiletype *filetype_old); - void (*document_activate)(GeanyDocument *doc); - void (*document_close)(GeanyDocument *doc); - void (*project_open)(GKeyFile *keyfile); - void (*project_save)(GKeyFile *keyfile); - void (*project_close)(void); - void (*project_dialog_open)(GtkWidget *notebook); - void (*project_dialog_confirmed)(GtkWidget *notebook); - void (*project_dialog_close)(GtkWidget *notebook); - void (*update_editor_menu)(const gchar *word, gint click_pos, GeanyDocument *doc); - gboolean (*editor_notify)(GeanyEditor *editor, gpointer scnt); - void (*geany_startup_complete)(void); - void (*build_start)(void); - void (*save_settings)(GKeyFile *keyfile); - void (*load_settings)(GKeyFile *keyfile); };
GType geany_object_get_type (void);
Modified: src/plugindata.h 6 lines changed, 6 insertions(+), 0 deletions(-) =================================================================== @@ -183,6 +183,12 @@ typedef struct GeanyData struct GeanyTemplatePrefs *template_prefs; /**< Template settings */ gpointer *_compat; /* Remove field on next ABI break (abi-todo) */ GSList *filetypes_by_title; /**< See filetypes.h#filetypes_by_title. */ + /** @gironly + * Global object signalling events via signals + * + * This is mostly for language bindings. Otherwise prefer to use + * plugin_signal_connect() instead this which adds automatic cleanup. */ + GObject *object; } GeanyData;
Modified: src/plugins.c 3 lines changed, 2 insertions(+), 1 deletions(-) =================================================================== @@ -120,7 +120,8 @@ geany_data_init(void) &tool_prefs, &template_prefs, NULL, /* Remove field on next ABI break (abi-todo) */ - filetypes_by_title + filetypes_by_title, + geany_object, };
geany_data = gd;
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).