Author: post
Date: 2009-12-30 19:48:46 +0100 (Wed, 30 Dec 2009)
New Revision: 2898

Modified:
   branches/rawstudio-ng-color/librawstudio/rs-lens-db-editor.c
Log:
Add right click to select lens.

Modified: branches/rawstudio-ng-color/librawstudio/rs-lens-db-editor.c
===================================================================
--- branches/rawstudio-ng-color/librawstudio/rs-lens-db-editor.c        
2009-12-30 18:19:53 UTC (rev 2897)
+++ branches/rawstudio-ng-color/librawstudio/rs-lens-db-editor.c        
2009-12-30 18:48:46 UTC (rev 2898)
@@ -275,6 +275,45 @@
                        0, gtk_get_current_event_time ());
 }
 
+gboolean
+view_onButtonPressed (GtkWidget *treeview, GdkEventButton *event, gpointer 
userdata)
+{
+       /* single click with the right mouse button? */
+       if (event->type == GDK_BUTTON_PRESS  &&  event->button == 3)
+       {
+               g_print ("Single right click on the tree view.\n");
+
+               GtkTreeSelection *selection;
+
+               selection = 
gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
+
+        /* Note: gtk_tree_selection_count_selected_rows() does not
+               *   exist in gtk+-2.0, only in gtk+ >= v2.2 ! */
+               GtkTreePath *path;
+
+               /* Get tree path for row that was clicked */
+               if (gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(treeview),
+                       (gint) event->x, 
+                        (gint) event->y,
+                         &path, NULL, NULL, NULL))
+               {
+                       gtk_tree_selection_unselect_all(selection);
+                       gtk_tree_selection_select_path(selection, path);
+                       gtk_tree_path_free(path);
+               }
+               selection = 
gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview));
+
+               GtkTreeModel *tree_model = 
gtk_tree_view_get_model(GTK_TREE_VIEW(treeview));
+
+               GList* selected = gtk_tree_selection_get_selected_rows 
(selection, &tree_model);
+
+               row_clicked(GTK_TREE_VIEW(treeview), path, selected->data, 
NULL);
+               return TRUE; /* we handled this */
+       }
+       return FALSE; /* we did not handle this */
+}
+
+void
 toggle_clicked (GtkCellRendererToggle *cell_renderer_toggle, const gchar 
*path, gpointer user_data)
 {
        GtkTreeIter iter;
@@ -366,7 +405,8 @@
 
         g_signal_connect (renderer_enabled, "toggled",
                          G_CALLBACK (toggle_clicked), view);
-
+               g_signal_connect(G_OBJECT(view), "button-press-event", 
G_CALLBACK(view_onButtonPressed), NULL);
+               
         gtk_tree_view_append_column (GTK_TREE_VIEW (view), column_lens_make);
         gtk_tree_view_append_column (GTK_TREE_VIEW (view), column_lens_model);
         gtk_tree_view_append_column (GTK_TREE_VIEW (view), column_focal);


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to