[Xfce4-commits] <exo:master> Add function to invert selection in icon view.

Nick Schermer noreply at xfce.org
Tue Sep 18 22:28:01 CEST 2012


Updating branch refs/heads/master
         to 2b103d2cc906b55829e3f8b0064e2f241127018f (commit)
       from 4d487fd7e4d18f5308297b05282fcb8974941b8a (commit)

commit 2b103d2cc906b55829e3f8b0064e2f241127018f
Author: Nick Schermer <nick at xfce.org>
Date:   Tue Sep 18 22:26:33 2012 +0200

    Add function to invert selection in icon view.

 docs/reference/exo-sections.txt |    1 +
 exo/exo-icon-view.c             |   35 +++++++++++++++++++++++++++++++++++
 exo/exo-icon-view.h             |    1 +
 exo/exo.symbols                 |    1 +
 4 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/docs/reference/exo-sections.txt b/docs/reference/exo-sections.txt
index 842fc1c..a1fe34f 100644
--- a/docs/reference/exo-sections.txt
+++ b/docs/reference/exo-sections.txt
@@ -198,6 +198,7 @@ exo_icon_view_get_item_row
 exo_icon_view_get_selected_items
 exo_icon_view_select_all
 exo_icon_view_unselect_all
+exo_icon_view_selection_invert
 exo_icon_view_item_activated
 exo_icon_view_get_cursor
 exo_icon_view_set_cursor
diff --git a/exo/exo-icon-view.c b/exo/exo-icon-view.c
index 9587596..39bf93c 100644
--- a/exo/exo-icon-view.c
+++ b/exo/exo-icon-view.c
@@ -5627,6 +5627,41 @@ exo_icon_view_select_all (ExoIconView *icon_view)
 
 
 /**
+ * exo_icon_view_selection_invert:
+ * @icon_view : A #ExoIconView.
+ *
+ * Selects all the icons that are currently not selected. @icon_view must
+ * has its selection mode set to #GTK_SELECTION_MULTIPLE.
+ **/
+void
+exo_icon_view_selection_invert (ExoIconView *icon_view)
+{
+  GList           *items;
+  gboolean         dirty = FALSE;
+  ExoIconViewItem *item;
+
+  g_return_if_fail (EXO_IS_ICON_VIEW (icon_view));
+
+  if (icon_view->priv->selection_mode != GTK_SELECTION_MULTIPLE)
+    return;
+
+  for (items = icon_view->priv->items; items; items = items->next)
+    {
+      item = items->data;
+
+      item->selected = !item->selected;
+      exo_icon_view_queue_draw_item (icon_view, item);
+
+      dirty = TRUE;
+    }
+
+  if (dirty)
+    g_signal_emit (icon_view, icon_view_signals[SELECTION_CHANGED], 0);
+}
+
+
+
+/**
  * exo_icon_view_unselect_all:
  * @icon_view : A #ExoIconView.
  *
diff --git a/exo/exo-icon-view.h b/exo/exo-icon-view.h
index 0dec327..6a8df23 100644
--- a/exo/exo-icon-view.h
+++ b/exo/exo-icon-view.h
@@ -260,6 +260,7 @@ gboolean              exo_icon_view_path_is_selected          (const ExoIconView
 GList                *exo_icon_view_get_selected_items        (const ExoIconView        *icon_view);
 void                  exo_icon_view_select_all                (ExoIconView              *icon_view);
 void                  exo_icon_view_unselect_all              (ExoIconView              *icon_view);
+void                  exo_icon_view_selection_invert          (ExoIconView              *icon_view);
 void                  exo_icon_view_item_activated            (ExoIconView              *icon_view,
                                                                GtkTreePath              *path);
 
diff --git a/exo/exo.symbols b/exo/exo.symbols
index 74511cb..9c3a659 100644
--- a/exo/exo.symbols
+++ b/exo/exo.symbols
@@ -197,6 +197,7 @@ exo_icon_view_get_item_row
 exo_icon_view_get_selected_items
 exo_icon_view_select_all
 exo_icon_view_unselect_all
+exo_icon_view_selection_invert
 exo_icon_view_item_activated
 exo_icon_view_get_cursor
 exo_icon_view_set_cursor


More information about the Xfce4-commits mailing list