changeset 32303:63fb41aa3dbe

Add API: * purple_notify_searchresult_column_set_visible * purple_notify_searchresult_column_is_visible This allows columns to be defined in the search-results, but that are not visible to the user. These columns can, for example, be used to store values associated with the selected-row that are required in the search-result callback.
author andrew.victor@mxit.com
date Tue, 03 May 2011 20:55:39 +0000
parents 3448f64d197c
children a88631af0f5e
files ChangeLog.API finch/gntnotify.c libpurple/notify.c libpurple/notify.h pidgin/gtknotify.c
diffstat 5 files changed, 46 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog.API	Mon Apr 18 07:02:43 2011 +0000
+++ b/ChangeLog.API	Tue May 03 20:55:39 2011 +0000
@@ -2,6 +2,10 @@
 
 version 3.0.0 (??/??/????):
 	libpurple:
+		Added:
+		* purple_notify_searchresult_column_set_visible
+		* purple_notify_searchresult_column_is_visible
+
 		Removed:
 		* purple_core_migrate
 
--- a/finch/gntnotify.c	Mon Apr 18 07:02:43 2011 +0000
+++ b/finch/gntnotify.c	Tue May 03 20:55:39 2011 +0000
@@ -426,6 +426,9 @@
 	{
 		PurpleNotifySearchColumn *column = iter->data;
 		gnt_tree_set_column_title(GNT_TREE(tree), i, column->title);
+
+		if (!purple_notify_searchresult_column_is_visible(column))
+			gnt_tree_set_column_visible(GNT_TREE(tree), i, FALSE);
 		i++;
 	}
 
--- a/libpurple/notify.c	Mon Apr 18 07:02:43 2011 +0000
+++ b/libpurple/notify.c	Tue May 03 20:55:39 2011 +0000
@@ -363,10 +363,26 @@
 
 	sc = g_new0(PurpleNotifySearchColumn, 1);
 	sc->title = g_strdup(title);
+	sc->visible = TRUE;
 
 	return sc;
 }
 
+void purple_notify_searchresult_column_set_visible(PurpleNotifySearchColumn *column, gboolean visible)
+{
+	g_return_if_fail(column != NULL);
+
+	column->visible = visible;
+}
+
+gboolean
+purple_notify_searchresult_column_is_visible(const PurpleNotifySearchColumn *column)
+{
+	g_return_val_if_fail(column != NULL, FALSE);
+
+	return column->visible;
+}
+
 guint
 purple_notify_searchresults_get_columns_count(PurpleNotifySearchResults *results)
 {
--- a/libpurple/notify.h	Mon Apr 18 07:02:43 2011 +0000
+++ b/libpurple/notify.h	Tue May 03 20:55:39 2011 +0000
@@ -111,7 +111,8 @@
  */
 typedef struct
 {
-	char *title; /**< Title of the column. */
+	char *title;           /**< Title of the column. */
+	gboolean visible;
 
 } PurpleNotifySearchColumn;
 
@@ -275,6 +276,23 @@
 PurpleNotifySearchColumn *purple_notify_searchresults_column_new(const char *title);
 
 /**
+ * Sets whether or not a search result column is visible.
+ *
+ * @param field   The search column object.
+ * @param visible TRUE if visible, or FALSE if not.
+ */
+void purple_notify_searchresult_column_set_visible(PurpleNotifySearchColumn *column, gboolean visible);
+
+/**
+ * Returns whether or not a search result column is visible.
+ *
+ * @param field The search column object.
+ *
+ * @return TRUE if the search result column is visible. FALSE otherwise.
+ */
+gboolean purple_notify_searchresult_column_is_visible(const PurpleNotifySearchColumn *column);
+
+/**
  * Adds a new column to the search result object.
  *
  * @param results The result object to which the column will be added.
--- a/pidgin/gtknotify.c	Mon Apr 18 07:02:43 2011 +0000
+++ b/pidgin/gtknotify.c	Tue May 03 20:55:39 2011 +0000
@@ -1035,6 +1035,10 @@
 
 		gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(treeview), -1,
 				column->title, renderer, "text", i, NULL);
+
+		if (!purple_notify_searchresult_column_is_visible(column))
+			gtk_tree_view_column_set_visible(gtk_tree_view_get_column(GTK_TREE_VIEW(treeview), i), FALSE);
+
 		i++;
 	}