]> Pileus Git - ~andy/gtk/commitdiff
Add an "activate_cursor_item" action signal and bind it to the return key.
authorAnders Carlsson <andersca@gnome.org>
Sun, 4 Jul 2004 23:19:46 +0000 (23:19 +0000)
committerAnders Carlsson <andersca@src.gnome.org>
Sun, 4 Jul 2004 23:19:46 +0000 (23:19 +0000)
2004-07-05  Anders Carlsson  <andersca@gnome.org>

* gtk/gtkiconview.c: (gtk_icon_view_class_init),
(gtk_icon_view_real_select_cursor_item),
(gtk_icon_view_real_activate_cursor_item):
* gtk/gtkiconview.h:
Add an "activate_cursor_item" action signal
and bind it to the return key.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkiconview.c
gtk/gtkiconview.h

index e2550590743c750401fc2f18776304c9f96999b6..649020ef461c0a123786f7c8e078edb55f73431d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2004-07-05  Anders Carlsson  <andersca@gnome.org>
+
+       * gtk/gtkiconview.c: (gtk_icon_view_class_init),
+       (gtk_icon_view_real_select_cursor_item),
+       (gtk_icon_view_real_activate_cursor_item):
+       * gtk/gtkiconview.h:
+       Add an "activate_cursor_item" action signal
+       and bind it to the return key.
+       
 2004-07-04  Anders Carlsson  <andersca@gnome.org>
 
        * demos/gtk-demo/Makefile.am:
index e2550590743c750401fc2f18776304c9f96999b6..649020ef461c0a123786f7c8e078edb55f73431d 100644 (file)
@@ -1,3 +1,12 @@
+2004-07-05  Anders Carlsson  <andersca@gnome.org>
+
+       * gtk/gtkiconview.c: (gtk_icon_view_class_init),
+       (gtk_icon_view_real_select_cursor_item),
+       (gtk_icon_view_real_activate_cursor_item):
+       * gtk/gtkiconview.h:
+       Add an "activate_cursor_item" action signal
+       and bind it to the return key.
+       
 2004-07-04  Anders Carlsson  <andersca@gnome.org>
 
        * demos/gtk-demo/Makefile.am:
index e2550590743c750401fc2f18776304c9f96999b6..649020ef461c0a123786f7c8e078edb55f73431d 100644 (file)
@@ -1,3 +1,12 @@
+2004-07-05  Anders Carlsson  <andersca@gnome.org>
+
+       * gtk/gtkiconview.c: (gtk_icon_view_class_init),
+       (gtk_icon_view_real_select_cursor_item),
+       (gtk_icon_view_real_activate_cursor_item):
+       * gtk/gtkiconview.h:
+       Add an "activate_cursor_item" action signal
+       and bind it to the return key.
+       
 2004-07-04  Anders Carlsson  <andersca@gnome.org>
 
        * demos/gtk-demo/Makefile.am:
index e2550590743c750401fc2f18776304c9f96999b6..649020ef461c0a123786f7c8e078edb55f73431d 100644 (file)
@@ -1,3 +1,12 @@
+2004-07-05  Anders Carlsson  <andersca@gnome.org>
+
+       * gtk/gtkiconview.c: (gtk_icon_view_class_init),
+       (gtk_icon_view_real_select_cursor_item),
+       (gtk_icon_view_real_activate_cursor_item):
+       * gtk/gtkiconview.h:
+       Add an "activate_cursor_item" action signal
+       and bind it to the return key.
+       
 2004-07-04  Anders Carlsson  <andersca@gnome.org>
 
        * demos/gtk-demo/Makefile.am:
index a7b83b052c4535d13ba88dc08167cf0cda2dcbf0..bca4983d2712bfdccaed60d60b379c2f0818cbf4 100644 (file)
@@ -124,6 +124,7 @@ enum
   SELECT_CURSOR_ITEM,
   TOGGLE_CURSOR_ITEM,
   MOVE_CURSOR,
+  ACTIVATE_CURSOR_ITEM,
   LAST_SIGNAL
 };
 
@@ -171,13 +172,14 @@ static gboolean gtk_icon_view_button_release (GtkWidget      *widget,
                                              GdkEventButton *event);
 
 /* GtkIconView signals */
-static void     gtk_icon_view_set_adjustments             (GtkIconView             *icon_view,
-                                                          GtkAdjustment           *hadj,
-                                                          GtkAdjustment           *vadj);
-static void     gtk_icon_view_real_select_all             (GtkIconView             *icon_view);
-static void     gtk_icon_view_real_unselect_all           (GtkIconView             *icon_view);
-static void     gtk_icon_view_real_select_cursor_item     (GtkIconView             *icon_view);
-static void     gtk_icon_view_real_toggle_cursor_item     (GtkIconView             *icon_view);
+static void     gtk_icon_view_set_adjustments           (GtkIconView   *icon_view,
+                                                        GtkAdjustment *hadj,
+                                                        GtkAdjustment *vadj);
+static void     gtk_icon_view_real_select_all           (GtkIconView   *icon_view);
+static void     gtk_icon_view_real_unselect_all         (GtkIconView   *icon_view);
+static void     gtk_icon_view_real_select_cursor_item   (GtkIconView   *icon_view);
+static void     gtk_icon_view_real_toggle_cursor_item   (GtkIconView   *icon_view);
+static gboolean gtk_icon_view_real_activate_cursor_item (GtkIconView   *icon_view);
 
 /* Internal functions */
 static void       gtk_icon_view_adjustment_changed          (GtkAdjustment   *adjustment,
@@ -294,6 +296,7 @@ gtk_icon_view_class_init (GtkIconViewClass *klass)
   klass->unselect_all = gtk_icon_view_real_unselect_all;
   klass->select_cursor_item = gtk_icon_view_real_select_cursor_item;
   klass->toggle_cursor_item = gtk_icon_view_real_toggle_cursor_item;
+  klass->activate_cursor_item = gtk_icon_view_real_activate_cursor_item;  
   klass->move_cursor = gtk_icon_view_real_move_cursor;
   
   /* Properties */
@@ -412,7 +415,7 @@ gtk_icon_view_class_init (GtkIconViewClass *klass)
                  g_cclosure_marshal_VOID__VOID,
                  G_TYPE_NONE, 0);
 
-  icon_view_signals[SELECT_CURSOR_ITEM] =
+  icon_view_signals[TOGGLE_CURSOR_ITEM] =
     g_signal_new ("toggle_cursor_item",
                  G_TYPE_FROM_CLASS (gobject_class),
                  G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
@@ -421,6 +424,15 @@ gtk_icon_view_class_init (GtkIconViewClass *klass)
                  g_cclosure_marshal_VOID__VOID,
                  G_TYPE_NONE, 0);
 
+  icon_view_signals[ACTIVATE_CURSOR_ITEM] =
+    g_signal_new ("activate_cursor_item",
+                 G_TYPE_FROM_CLASS (gobject_class),
+                 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+                 G_STRUCT_OFFSET (GtkIconViewClass, activate_cursor_item),
+                 NULL, NULL,
+                 _gtk_marshal_BOOLEAN__VOID,
+                 G_TYPE_BOOLEAN, 0);
+  
   icon_view_signals[MOVE_CURSOR] =
     g_signal_new ("move_cursor",
                  G_TYPE_FROM_CLASS (gobject_class),
@@ -438,6 +450,10 @@ gtk_icon_view_class_init (GtkIconViewClass *klass)
   gtk_binding_entry_add_signal (binding_set, GDK_space, 0, "select_cursor_item", 0);
   gtk_binding_entry_add_signal (binding_set, GDK_space, GDK_CONTROL_MASK, "toggle_cursor_item", 0);
 
+  gtk_binding_entry_add_signal (binding_set, GDK_Return, 0, "activate_cursor_item", 0);
+  gtk_binding_entry_add_signal (binding_set, GDK_ISO_Enter, 0, "activate_cursor_item", 0);
+  gtk_binding_entry_add_signal (binding_set, GDK_KP_Enter, 0, "activate_cursor_item", 0);
+
   gtk_icon_view_add_move_binding (binding_set, GDK_Up, 0,
                                  GTK_MOVEMENT_DISPLAY_LINES, -1);
   gtk_icon_view_add_move_binding (binding_set, GDK_KP_Up, 0,
@@ -1308,6 +1324,23 @@ gtk_icon_view_real_select_cursor_item (GtkIconView *icon_view)
     gtk_icon_view_select_item (icon_view, icon_view->priv->cursor_item);
 }
 
+static gboolean
+gtk_icon_view_real_activate_cursor_item (GtkIconView *icon_view)
+{
+  GtkTreePath *path;
+  
+  if (!icon_view->priv->cursor_item)
+    return FALSE;
+
+  path = gtk_tree_path_new_from_indices (icon_view->priv->cursor_item->index, -1);
+  
+  gtk_icon_view_item_activated (icon_view, path);
+
+  gtk_tree_path_free (path);
+
+  return TRUE;
+}
+
 static void
 gtk_icon_view_real_toggle_cursor_item (GtkIconView *icon_view)
 {
index 76e71c476d504a71e1a17130cdc1b317ee6aa2ef..7e224e5c04f58b310286fa5504d5ca21c7194cb3 100644 (file)
@@ -66,6 +66,7 @@ struct _GtkIconViewClass
   gboolean (* move_cursor)           (GtkIconView      *icon_view,
                                      GtkMovementStep   step,
                                      gint              count);
+  gboolean (* activate_cursor_item)  (GtkIconView      *icon_view);
 };
 
 GType      gtk_icon_view_get_type       (void);