[gedit/eggplugins] [libplugins] Make the argument of (de)activate a GObject.
- From: Steve Frécinaux <sfre src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gedit/eggplugins] [libplugins] Make the argument of (de)activate a GObject.
- Date: Sat, 10 Oct 2009 18:08:05 +0000 (UTC)
commit c0fb67469fc58b882b8f709f5b9d7a501349be1f
Author: Steve Frécinaux <code istique net>
Date: Fri Oct 9 21:15:44 2009 +0200
[libplugins] Make the argument of (de)activate a GObject.
This makes it possible to use the plugin framework with any toplevel
object, and not just windows.
libplugins/egg-plugins-engine.c | 34 +++++++++++++++++-----------------
libplugins/egg-plugins-engine.h | 8 ++++----
libplugins/egg-plugins-plugin.c | 26 +++++++++++++-------------
libplugins/egg-plugins-plugin.h | 12 ++++++------
4 files changed, 40 insertions(+), 40 deletions(-)
---
diff --git a/libplugins/egg-plugins-engine.c b/libplugins/egg-plugins-engine.c
index 390f93a..8df4503 100644
--- a/libplugins/egg-plugins-engine.c
+++ b/libplugins/egg-plugins-engine.c
@@ -616,7 +616,7 @@ egg_plugins_engine_activate_plugin_real (EggPluginsEngine *engine,
wins != NULL;
wins = wins->next)
{
- egg_plugins_plugin_activate (info->plugin, GTK_WINDOW (wins->data));
+ egg_plugins_plugin_activate (info->plugin, G_OBJECT (wins->data));
}
}
@@ -642,15 +642,16 @@ egg_plugins_engine_activate_plugin (EggPluginsEngine *engine,
static void
call_plugin_deactivate (EggPluginsPlugin *plugin,
- GtkWindow *window)
+ GObject *target_object)
{
- egg_plugins_plugin_deactivate (plugin, window);
+ egg_plugins_plugin_deactivate (plugin, target_object);
/* ensure update of ui manager, because we suspect it does something
with expected static strings in the type module (when unloaded the
strings don't exist anymore, and ui manager updates in an idle
- func) */
- gtk_ui_manager_ensure_update (gedit_window_get_ui_manager (GEDIT_WINDOW (window)));
+ func)
+ FIXME: move it to GeditPluginsEngine */
+ gtk_ui_manager_ensure_update (gedit_window_get_ui_manager (GEDIT_WINDOW (target_object)));
}
static void
@@ -668,7 +669,7 @@ egg_plugins_engine_deactivate_plugin_real (EggPluginsEngine *engine,
wins != NULL;
wins = wins->next)
{
- call_plugin_deactivate (info->plugin, GTK_WINDOW (wins->data));
+ call_plugin_deactivate (info->plugin, G_OBJECT (wins->data));
}
/* first unref the plugin (the loader still has one) */
@@ -701,13 +702,13 @@ egg_plugins_engine_deactivate_plugin (EggPluginsEngine *engine,
void
egg_plugins_engine_activate_plugins (EggPluginsEngine *engine,
- GtkWindow *window)
+ GObject *target_object)
{
GSList *active_plugins = NULL;
GList *pl;
g_return_if_fail (EGG_PLUGINS_IS_ENGINE (engine));
- g_return_if_fail (GTK_IS_WINDOW (window));
+ g_return_if_fail (G_IS_OBJECT (target_object));
/* the first time, we get the 'active' plugins from gconf */
if (engine->priv->activate_from_prefs)
@@ -731,8 +732,7 @@ egg_plugins_engine_activate_plugins (EggPluginsEngine *engine,
continue;
if (load_plugin (engine, info))
- egg_plugins_plugin_activate (info->plugin,
- window);
+ egg_plugins_plugin_activate (info->plugin, target_object);
}
if (engine->priv->activate_from_prefs)
@@ -743,17 +743,17 @@ egg_plugins_engine_activate_plugins (EggPluginsEngine *engine,
}
/* also call update_ui after activation */
- egg_plugins_engine_update_plugins_ui (engine, window);
+ egg_plugins_engine_update_plugins_ui (engine, target_object);
}
void
egg_plugins_engine_deactivate_plugins (EggPluginsEngine *engine,
- GtkWindow *window)
+ GObject *target_object)
{
GList *pl;
g_return_if_fail (EGG_PLUGINS_IS_ENGINE (engine));
- g_return_if_fail (GTK_IS_WINDOW (window));
+ g_return_if_fail (G_IS_OBJECT (target_object));
for (pl = engine->priv->plugin_list; pl; pl = pl->next)
{
@@ -764,18 +764,18 @@ egg_plugins_engine_deactivate_plugins (EggPluginsEngine *engine,
continue;
/* call deactivate for the plugin for this window */
- egg_plugins_plugin_deactivate (info->plugin, window);
+ egg_plugins_plugin_deactivate (info->plugin, target_object);
}
}
void
egg_plugins_engine_update_plugins_ui (EggPluginsEngine *engine,
- GtkWindow *window)
+ GObject *target_object)
{
GList *pl;
g_return_if_fail (EGG_PLUGINS_IS_ENGINE (engine));
- g_return_if_fail (GTK_IS_WINDOW (window));
+ g_return_if_fail (G_IS_OBJECT (target_object));
/* call update_ui for all active plugins */
for (pl = engine->priv->plugin_list; pl; pl = pl->next)
@@ -785,7 +785,7 @@ egg_plugins_engine_update_plugins_ui (EggPluginsEngine *engine,
if (!egg_plugins_info_is_active (info))
continue;
- egg_plugins_plugin_update_ui (info->plugin, window);
+ egg_plugins_plugin_update_ui (info->plugin, target_object);
}
}
diff --git a/libplugins/egg-plugins-engine.h b/libplugins/egg-plugins-engine.h
index 0c3f850..a909b1b 100644
--- a/libplugins/egg-plugins-engine.h
+++ b/libplugins/egg-plugins-engine.h
@@ -86,13 +86,13 @@ void egg_plugins_engine_configure_plugin (EggPluginsEngine *engine,
EggPluginsInfo *info,
GtkWindow *parent);
-/* plugin activation/deactivation per window, private to GtkWindow */
+/* plugin activation/deactivation per target_object */
void egg_plugins_engine_activate_plugins (EggPluginsEngine *engine,
- GtkWindow *window);
+ GObject *target_object);
void egg_plugins_engine_deactivate_plugins (EggPluginsEngine *engine,
- GtkWindow *window);
+ GObject *target_object);
void egg_plugins_engine_update_plugins_ui (EggPluginsEngine *engine,
- GtkWindow *window);
+ GObject *target_object);
/* private for gconf notification */
void egg_plugins_engine_active_plugins_changed
diff --git a/libplugins/egg-plugins-plugin.c b/libplugins/egg-plugins-plugin.c
index a8979e3..4acfed3 100644
--- a/libplugins/egg-plugins-plugin.c
+++ b/libplugins/egg-plugins-plugin.c
@@ -55,7 +55,7 @@ struct _EggPluginsPluginPrivate
G_DEFINE_TYPE(EggPluginsPlugin, egg_plugins_plugin, G_TYPE_OBJECT)
static void
-dummy (EggPluginsPlugin *plugin, GtkWindow *window)
+dummy (EggPluginsPlugin *plugin, GObject *target_object)
{
/* Empty */
}
@@ -203,53 +203,53 @@ egg_plugins_plugin_get_data_dir (EggPluginsPlugin *plugin)
/**
* egg_plugins_plugin_activate:
* @plugin: a #EggPluginsPlugin
- * @window: a #GtkWindow
+ * @target_object: a #GObject
*
* Activates the plugin.
*/
void
egg_plugins_plugin_activate (EggPluginsPlugin *plugin,
- GtkWindow *window)
+ GObject *target_object)
{
g_return_if_fail (EGG_PLUGINS_IS_PLUGIN (plugin));
- g_return_if_fail (GTK_IS_WINDOW (window));
+ g_return_if_fail (G_IS_OBJECT (target_object));
- EGG_PLUGINS_PLUGIN_GET_CLASS (plugin)->activate (plugin, window);
+ EGG_PLUGINS_PLUGIN_GET_CLASS (plugin)->activate (plugin, target_object);
}
/**
* egg_plugins_plugin_deactivate:
* @plugin: a #EggPluginsPlugin
- * @window: a #GtkWindow
+ * @target_object: a #GObject
*
* Deactivates the plugin.
*/
void
egg_plugins_plugin_deactivate (EggPluginsPlugin *plugin,
- GtkWindow *window)
+ GObject *target_object)
{
g_return_if_fail (EGG_PLUGINS_IS_PLUGIN (plugin));
- g_return_if_fail (GTK_IS_WINDOW (window));
+ g_return_if_fail (G_IS_OBJECT (target_object));
- EGG_PLUGINS_PLUGIN_GET_CLASS (plugin)->deactivate (plugin, window);
+ EGG_PLUGINS_PLUGIN_GET_CLASS (plugin)->deactivate (plugin, target_object);
}
/**
* egg_plugins_plugin_update_ui:
* @plugin: a #EggPluginsPlugin
- * @window: a #GtkWindow
+ * @target_object: a #GObject
*
* Triggers an update of the user interface to take into account state changes
* caused by the plugin.
*/
void
egg_plugins_plugin_update_ui (EggPluginsPlugin *plugin,
- GtkWindow *window)
+ GObject *target_object)
{
g_return_if_fail (EGG_PLUGINS_IS_PLUGIN (plugin));
- g_return_if_fail (GTK_IS_WINDOW (window));
+ g_return_if_fail (G_IS_OBJECT (target_object));
- EGG_PLUGINS_PLUGIN_GET_CLASS (plugin)->update_ui (plugin, window);
+ EGG_PLUGINS_PLUGIN_GET_CLASS (plugin)->update_ui (plugin, target_object);
}
/**
diff --git a/libplugins/egg-plugins-plugin.h b/libplugins/egg-plugins-plugin.h
index 5e50dba..d25a98f 100644
--- a/libplugins/egg-plugins-plugin.h
+++ b/libplugins/egg-plugins-plugin.h
@@ -72,12 +72,12 @@ struct _EggPluginsPluginClass
/* Virtual public methods */
void (*activate) (EggPluginsPlugin *plugin,
- GtkWindow *window);
+ GObject *target_object);
void (*deactivate) (EggPluginsPlugin *plugin,
- GtkWindow *window);
+ GObject *target_object);
void (*update_ui) (EggPluginsPlugin *plugin,
- GtkWindow *window);
+ GObject *target_object);
GtkWidget *(*create_configure_dialog)
(EggPluginsPlugin *plugin);
@@ -103,12 +103,12 @@ gchar *egg_plugins_plugin_get_install_dir (EggPluginsPlugin *plugin);
gchar *egg_plugins_plugin_get_data_dir (EggPluginsPlugin *plugin);
void egg_plugins_plugin_activate (EggPluginsPlugin *plugin,
- GtkWindow *window);
+ GObject *target_object);
void egg_plugins_plugin_deactivate (EggPluginsPlugin *plugin,
- GtkWindow *window);
+ GObject *target_object);
void egg_plugins_plugin_update_ui (EggPluginsPlugin *plugin,
- GtkWindow *window);
+ GObject *target_object);
gboolean egg_plugins_plugin_is_configurable (EggPluginsPlugin *plugin);
GtkWidget *egg_plugins_plugin_create_configure_dialog
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]