Revision: 3084 http://geany.svn.sourceforge.net/geany/?rev=3084&view=rev Author: ntrel Date: 2008-10-14 14:49:41 +0000 (Tue, 14 Oct 2008)
Log Message: ----------- Add ui_add_document_sensitive() to the plugin API. Deprecate plugin_fields, PluginFlags - use ui_add_document_sensitive() instead.
Modified Paths: -------------- trunk/ChangeLog trunk/doc/pluginsymbols.c trunk/src/plugindata.h trunk/src/plugins.c trunk/src/ui_utils.c trunk/src/ui_utils.h
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2008-10-13 22:36:52 UTC (rev 3083) +++ trunk/ChangeLog 2008-10-14 14:49:41 UTC (rev 3084) @@ -1,3 +1,12 @@ +2008-10-14 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com> + + * src/ui_utils.h, src/plugindata.h, src/plugins.c, src/ui_utils.c, + doc/pluginsymbols.c: + Add ui_add_document_sensitive() to the plugin API. + Deprecate plugin_fields, PluginFlags - use + ui_add_document_sensitive() instead. + + 2008-10-13 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
* ko.po, LINGUAS, src/about.c, THANKS:
Modified: trunk/doc/pluginsymbols.c =================================================================== --- trunk/doc/pluginsymbols.c 2008-10-13 22:36:52 UTC (rev 3083) +++ trunk/doc/pluginsymbols.c 2008-10-14 14:49:41 UTC (rev 3084) @@ -61,7 +61,8 @@ * @c p_document->new_file(NULL, NULL, NULL); */ const GeanyFunctions *geany_functions;
-/** Plugin owned fields, including flags. */ +/** @deprecated Use @ref ui_add_document_sensitive() instead. + * Plugin owned fields, including flags. */ PluginFields *plugin_fields;
/** An array for connecting GeanyObject events, which should be terminated with
Modified: trunk/src/plugindata.h =================================================================== --- trunk/src/plugindata.h 2008-10-13 22:36:52 UTC (rev 3083) +++ trunk/src/plugindata.h 2008-10-14 14:49:41 UTC (rev 3084) @@ -41,7 +41,7 @@ enum { /** The Application Programming Interface (API) version, incremented * whenever any plugin data types are modified or appended to. */ - GEANY_API_VERSION = 99, + GEANY_API_VERSION = 100,
/** The Application Binary Interface (ABI) version, incremented whenever * existing fields in the plugin data types have to be changed or reordered. */ @@ -144,8 +144,8 @@ PluginCallback;
- -/** Flags to be set by plugins in PluginFields struct. */ +/** @deprecated Use @ref ui_add_document_sensitive() instead. + * Flags to be set by plugins in PluginFields struct. */ typedef enum { /** Whether a plugin's menu item should be disabled when there are no open documents */ @@ -153,7 +153,8 @@ } PluginFlags;
-/** Fields set and owned by the plugin. */ +/** @deprecated Use @ref ui_add_document_sensitive() instead. + * Fields set and owned by the plugin. */ typedef struct PluginFields { /** Bitmask of PluginFlags. */ @@ -348,6 +349,7 @@ void (*table_add_row) (GtkTable *table, gint row, ...) G_GNUC_NULL_TERMINATED; GtkWidget* (*path_box_new) (const gchar *title, GtkFileChooserAction action, GtkEntry *entry); GtkWidget* (*button_new_with_image) (const gchar *stock_id, const gchar *text); + void (*add_document_sensitive) (GtkWidget *widget); } UIUtilsFuncs;
Modified: trunk/src/plugins.c =================================================================== --- trunk/src/plugins.c 2008-10-13 22:36:52 UTC (rev 3083) +++ trunk/src/plugins.c 2008-10-14 14:49:41 UTC (rev 3084) @@ -203,6 +203,7 @@ &ui_table_add_row, &ui_path_box_new, &ui_button_new_with_image, + &ui_add_document_sensitive };
static DialogFuncs dialog_funcs = {
Modified: trunk/src/ui_utils.c =================================================================== --- trunk/src/ui_utils.c 2008-10-13 22:36:52 UTC (rev 3083) +++ trunk/src/ui_utils.c 2008-10-14 14:49:41 UTC (rev 3084) @@ -654,6 +654,23 @@ }
+static void on_doc_sensitive_widget_destroy(GtkWidget *widget, G_GNUC_UNUSED gpointer user_data) +{ + g_ptr_array_remove_fast(widgets.document_buttons, widget); +} + + +/** Add a widget to the list of widgets that should be set sensitive/insensitive + * when some documents are present/no documents are open. + * It will be removed when the widget is destroyed. + * @param widget The widget to add. */ +void ui_add_document_sensitive(GtkWidget *widget) +{ + g_ptr_array_add(widgets.document_buttons, widget); + g_signal_connect(widget, "destroy", G_CALLBACK(on_doc_sensitive_widget_destroy), NULL); +} + + void ui_widget_show_hide(GtkWidget *widget, gboolean show) { if (show)
Modified: trunk/src/ui_utils.h =================================================================== --- trunk/src/ui_utils.h 2008-10-13 22:36:52 UTC (rev 3083) +++ trunk/src/ui_utils.h 2008-10-14 14:49:41 UTC (rev 3084) @@ -243,4 +243,6 @@
gint ui_get_toolbar_insert_position(void);
+void ui_add_document_sensitive(GtkWidget *widget); + #endif
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.