[maemo-commits] [maemo-commits] r9290 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Wed Jan 24 14:57:58 EET 2007
Author: timj
Date: 2007-01-24 14:57:55 +0200 (Wed, 24 Jan 2007)
New Revision: 9290

Modified:
   projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog
   projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkcombobox.c
   projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkenums.h
   projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmain.c
   projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenushell.c
   projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtktoolbutton.c
   projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtktoolbutton.h
   projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkwidget.c
Log:
Wed Jan 24 13:37:41 2007  Tim Janik  <timj at imendio.com>

        * gtkwidget.c: ported GtkWidget::insensitive-press from maemo-gtk-2-6,
        which is used to display tooltips/info upon button clicks on insensitive
        widgets. completed gtk_widget_insensitive_press() body.

        * gtktoolbutton.c: proxy ::insensitive-press from button child.

        * gtktoolbutton.h: renamed unused ->UNUSED_insensitive_press pointer
        to catch erroneous uses, GtkWidget::insensitive-press should be used instead.

        * gtkcombobox.c: proxy ::insensitive-press from child widgets.

        * gtkmenushell.c: proxy ::insensitive-press to menu items.

        * gtkmain.c: emit GtkWidget::insensitive-press.

        * gtk/gtkenums.h: fixed enum value syntax to please glib-mkenums, added
        MAEMO_CHANGES-ifdefs.




Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog
===================================================================
--- projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog	2007-01-24 12:56:50 UTC (rev 9289)
+++ projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog	2007-01-24 12:57:55 UTC (rev 9290)
@@ -1,3 +1,23 @@
+Wed Jan 24 13:37:41 2007  Tim Janik  <timj at imendio.com>
+
+	* gtkwidget.c: ported GtkWidget::insensitive-press from maemo-gtk-2-6,
+	which is used to display tooltips/info upon button clicks on insensitive
+	widgets. completed gtk_widget_insensitive_press() body.
+
+	* gtktoolbutton.c: proxy ::insensitive-press from button child.
+
+	* gtktoolbutton.h: renamed unused ->UNUSED_insensitive_press pointer
+	to catch erroneous uses, GtkWidget::insensitive-press should be used instead.
+
+	* gtkcombobox.c: proxy ::insensitive-press from child widgets.
+
+	* gtkmenushell.c: proxy ::insensitive-press to menu items.
+
+	* gtkmain.c: emit GtkWidget::insensitive-press.
+
+	* gtk/gtkenums.h: fixed enum value syntax to please glib-mkenums, added
+	MAEMO_CHANGES-ifdefs.
+
 2007-01-24  Michael Natterer  <mitch at imendio.com>
 
 	* gtk/gtkwidget.c: port over set_extension_events_internal() which

Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkcombobox.c
===================================================================
--- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkcombobox.c	2007-01-24 12:56:50 UTC (rev 9289)
+++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkcombobox.c	2007-01-24 12:57:55 UTC (rev 9290)
@@ -1086,6 +1086,13 @@
           combo_box->priv->box = NULL;
         }
     }
+
+#ifdef MAEMO_CHANGES
+  /* Hildon: propagate the insensitive-press */
+  if (GTK_BIN (container)->child)
+    g_signal_connect_swapped (GTK_BIN (container)->child, "insensitive-press",
+			      G_CALLBACK (gtk_widget_insensitive_press), combo_box);
+#endif /* MAEMO_CHANGES */
 }
 
 static void
@@ -1099,6 +1106,11 @@
   if (widget == combo_box->priv->cell_view)
     combo_box->priv->cell_view = NULL;
 
+#ifdef MAEMO_CHANGES
+  /* Hildon: stop propagating the insensitive-press */
+  g_signal_handlers_disconnect_by_func (widget, G_CALLBACK (gtk_widget_insensitive_press), combo_box);
+#endif /* MAEMO_CHANGES */
+
   gtk_widget_unparent (widget);
   GTK_BIN (container)->child = NULL;
 
@@ -2609,6 +2621,12 @@
       gtk_widget_show_all (combo_box->priv->button);
     }
 
+#ifdef MAEMO_CHANGES
+  /* Hildon: propagate the insensitive press */
+  g_signal_connect_swapped (combo_box->priv->button, "insensitive-press",
+			    G_CALLBACK (gtk_widget_insensitive_press), combo_box);
+#endif /* MAEMO_CHANGES */
+
   g_signal_connect (combo_box->priv->button, "button_press_event",
                     G_CALLBACK (gtk_combo_box_menu_button_press),
                     combo_box);
@@ -3369,6 +3387,12 @@
   g_signal_connect (combo_box->priv->button, "toggled",
                     G_CALLBACK (gtk_combo_box_button_toggled), combo_box);
 
+#ifdef MAEMO_CHANGES
+  /* Hildon: propagate the insensitive press */
+  g_signal_connect_swapped (combo_box->priv->button, "insensitive-press",
+                            G_CALLBACK (gtk_widget_insensitive_press), combo_box);
+#endif /* MAEMO_CHANGES */
+
   combo_box->priv->arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE);
   gtk_container_add (GTK_CONTAINER (combo_box->priv->button),
                      combo_box->priv->arrow);
@@ -3384,6 +3408,12 @@
       gtk_event_box_set_visible_window (GTK_EVENT_BOX (combo_box->priv->box), 
 					FALSE);
 
+#ifdef MAEMO_CHANGES
+      /* Hildon: propagate the insensitive press */
+      g_signal_connect_swapped (combo_box->priv->box, "insensitive-press",
+                                G_CALLBACK (gtk_widget_insensitive_press), combo_box);
+#endif /* MAEMO_CHANGES */
+
       if (combo_box->priv->has_frame)
 	{
 	  combo_box->priv->cell_view_frame = gtk_frame_new (NULL);

Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkenums.h
===================================================================
--- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkenums.h	2007-01-24 12:56:50 UTC (rev 9289)
+++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkenums.h	2007-01-24 12:57:55 UTC (rev 9290)
@@ -131,14 +131,14 @@
   GTK_ICON_SIZE_LARGE_TOOLBAR,
   GTK_ICON_SIZE_BUTTON,
   GTK_ICON_SIZE_DND,
-  GTK_ICON_SIZE_DIALOG
+  GTK_ICON_SIZE_DIALOG,
 
-  /* MAEMO START */
-  , HILDON_ICON_SIZE_26,
+#ifdef MAEMO_CHANGES
+  HILDON_ICON_SIZE_26,
   HILDON_ICON_SIZE_40,
   HILDON_ICON_SIZE_50,
   HILDON_ICON_SIZE_64
-  /* MAEMO END */
+#endif /* MAEMO_CHANGES */
 } GtkIconSize;
 
 /* automatic sensitivity */
@@ -521,7 +521,7 @@
   GTK_TREE_VIEW_GRID_LINES_BOTH
 } GtkTreeViewGridLines;
 
-/* MAEMO START */
+#ifdef MAEMO_CHANGES
 typedef enum
 {
   GTK_INVALID_INPUT_MAX_CHARS_REACHED,
@@ -536,13 +536,12 @@
   HILDON_GTK_INPUT_MODE_HEXA         = 1 << 3,
   HILDON_GTK_INPUT_MODE_TELE         = 1 << 4,
 
-  HILDON_GTK_INPUT_MODE_FULL         = (HILDON_GTK_INPUT_MODE_ALPHA | HILDON_GTK_INPUT_MODE_NUMERIC |
- HILDON_GTK_INPUT_MODE_SPECIAL),
+  HILDON_GTK_INPUT_MODE_FULL         = (HILDON_GTK_INPUT_MODE_ALPHA | HILDON_GTK_INPUT_MODE_NUMERIC | HILDON_GTK_INPUT_MODE_SPECIAL),
 
   HILDON_GTK_INPUT_MODE_INVISIBLE    = 1 << 29,
   HILDON_GTK_INPUT_MODE_AUTOCAP      = 1 << 30
 } HildonGtkInputMode;
-/* MAEMO END */
+#endif /* MAEMO_CHANGES */
 
 G_END_DECLS
 

Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmain.c
===================================================================
--- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmain.c	2007-01-24 12:56:50 UTC (rev 9289)
+++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmain.c	2007-01-24 12:57:55 UTC (rev 9290)
@@ -1400,10 +1400,15 @@
       gtk_widget_event (event_widget, event);
       break;
 
-    case GDK_SCROLL:
     case GDK_BUTTON_PRESS:
+#ifdef MAEMO_CHANGES
+      if (!GTK_WIDGET_IS_SENSITIVE (event_widget))
+        gtk_widget_insensitive_press (grab_widget);
+      /* fall through */
+#endif /* MAEMO_CHANGES */
     case GDK_2BUTTON_PRESS:
     case GDK_3BUTTON_PRESS:
+    case GDK_SCROLL:
       gtk_propagate_event (grab_widget, event);
       break;
 

Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenushell.c
===================================================================
--- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenushell.c	2007-01-24 12:56:50 UTC (rev 9289)
+++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenushell.c	2007-01-24 12:57:55 UTC (rev 9290)
@@ -203,7 +203,20 @@
 
 G_DEFINE_TYPE (GtkMenuShell, gtk_menu_shell, GTK_TYPE_CONTAINER)
 
+#ifdef MAEMO_CHANGES
 static void
+gtk_menu_shell_insensitive_press (GtkWidget *widget)
+{
+  GtkMenuShell *menu_shell;
+  GdkEvent *event;
+  g_return_if_fail (GTK_IS_MENU_SHELL (widget));
+  menu_shell = GTK_MENU_SHELL (widget);
+  event = gtk_get_current_event ();
+  gtk_widget_insensitive_press (gtk_get_event_widget (event));
+}
+#endif /* MAEMO_CHANGES */
+
+static void
 gtk_menu_shell_class_init (GtkMenuShellClass *klass)
 {
   GObjectClass *object_class;
@@ -228,6 +241,9 @@
   widget_class->enter_notify_event = gtk_menu_shell_enter_notify;
   widget_class->leave_notify_event = gtk_menu_shell_leave_notify;
   widget_class->screen_changed = gtk_menu_shell_screen_changed;
+#ifdef MAEMO_CHANGES
+  widget_class->insensitive_press = gtk_menu_shell_insensitive_press;
+#endif /* MAEMO_CHANGES */
 
   container_class->add = gtk_menu_shell_add;
   container_class->remove = gtk_menu_shell_remove;

Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtktoolbutton.c
===================================================================
--- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtktoolbutton.c	2007-01-24 12:56:50 UTC (rev 9289)
+++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtktoolbutton.c	2007-01-24 12:57:55 UTC (rev 9290)
@@ -262,7 +262,16 @@
   g_type_class_add_private (object_class, sizeof (GtkToolButtonPrivate));
 }
 
+#ifdef MAEMO_CHANGES
 static void
+maemo_insensitive_press (GtkWidget     *widget,
+                         GtkToolButton *button)
+{
+  gtk_widget_insensitive_press (GTK_WIDGET (button));
+}
+#endif /* MAEMO_CHANGES */
+
+static void
 gtk_tool_button_init (GtkToolButton      *button,
 		      GtkToolButtonClass *klass)
 {
@@ -278,6 +287,12 @@
   g_signal_connect_object (button->priv->button, "clicked",
 			   G_CALLBACK (button_clicked), button, 0);
 
+#ifdef MAEMO_CHANGES
+  /* Hildon: connect "insensitive_press" signal for private button */
+  g_signal_connect_object (button->priv->button, "insensitive_press",
+                           G_CALLBACK (maemo_insensitive_press), button, 0);
+#endif /* MAEMO_CHANGES */
+
   gtk_container_add (GTK_CONTAINER (button), button->priv->button);
   gtk_widget_show (button->priv->button);
 }

Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtktoolbutton.h
===================================================================
--- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtktoolbutton.h	2007-01-24 12:56:50 UTC (rev 9289)
+++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtktoolbutton.h	2007-01-24 12:57:55 UTC (rev 9290)
@@ -57,7 +57,7 @@
 
   /* Padding for future expansion */
 #ifdef MAEMO_CHANGES
-  void       (* insensitive_press)   (GtkToolButton    *tool_item);
+  void       (* UNUSED_insensitive_press)   (GtkToolButton    *tool_item);
 #else
   void (* _gtk_reserved1) (void);
 #endif /* MAEMO_CHANGES */

Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkwidget.c
===================================================================
--- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkwidget.c	2007-01-24 12:56:50 UTC (rev 9289)
+++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkwidget.c	2007-01-24 12:57:55 UTC (rev 9290)
@@ -138,6 +138,7 @@
   COMPOSITED_CHANGED,
   KEYNAV_FAILED,
 #ifdef MAEMO_CHANGES
+  INSENSITIVE_PRESS,
   TAP_AND_HOLD,
   TAP_AND_HOLD_SETUP,
   TAP_AND_HOLD_QUERY,
@@ -614,7 +615,7 @@
  							 P_("Whether gtk_widget_show_all() should not affect this widget"),
  							 FALSE,
  							 GTK_PARAM_READWRITE));
-
+  
 #ifdef MAEMO_CHANGES
   /**
    * GtkWidget:tap-and-hold-state:
@@ -1584,6 +1585,24 @@
 
 #ifdef MAEMO_CHANGES
   /**
+   * GtkWidget::insensitive-press:
+   * @widget: the object which received the signal
+   *
+   * If a widget is insensitive and it receives click event,
+   * the signal is emited.  Signal is made to clarify situations where
+   * a widget is not easily noticable as an insenitive widget.
+   *
+   * Since: maemo 1.0
+   */
+  widget_signals[INSENSITIVE_PRESS] =
+    g_signal_new ("insensitive_press",
+                  G_TYPE_FROM_CLASS (gobject_class),
+                  G_SIGNAL_RUN_FIRST,
+                  G_STRUCT_OFFSET (GtkWidgetClass, insensitive_press),
+                  NULL, NULL,
+                  _gtk_marshal_VOID__VOID,
+                  G_TYPE_NONE, 0);
+  /**
    * GtkWidget::tap-and-hold:
    * @widget: the object which received the signal
    *
@@ -8871,8 +8890,19 @@
 }
 
 
-void gtk_widget_insensitive_press ( GtkWidget *widget )
+/**
+ * gtk_widget_insensitive_press:
+ * @widget: a #GtkWidget
+ *
+ * Emits the "insensitive-press" signal.
+ *
+ * Since: maemo 1.0
+ */
+void
+gtk_widget_insensitive_press ( GtkWidget *widget )
 {
+  g_return_if_fail (GTK_IS_WIDGET (widget));
+  g_signal_emit(widget, widget_signals[INSENSITIVE_PRESS], 0);
 }
 #endif /* MAEMO_CHANGES */
 


More information about the maemo-commits mailing list