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

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Wed Jan 10 20:05:53 EET 2007
Author: kris
Date: 2007-01-10 20:05:49 +0200 (Wed, 10 Jan 2007)
New Revision: 9051

Modified:
   projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog
   projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkcellrenderertoggle.c
Log:
2007-01-10  Kristian Rietveld  <kris at imendio.com>

	* gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_class_init),
	(gtk_cell_renderer_toggle_get_property),
	(gtk_cell_renderer_toggle_set_property),
	(gtk_cell_renderer_toggle_render): port over checkbox-mode
	property.



Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog
===================================================================
--- projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog	2007-01-10 17:41:30 UTC (rev 9050)
+++ projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog	2007-01-10 18:05:49 UTC (rev 9051)
@@ -1,5 +1,13 @@
 2007-01-10  Kristian Rietveld  <kris at imendio.com>
 
+	* gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_class_init),
+	(gtk_cell_renderer_toggle_get_property),
+	(gtk_cell_renderer_toggle_set_property),
+	(gtk_cell_renderer_toggle_render): port over checkbox-mode
+	property.
+
+2007-01-10  Kristian Rietveld  <kris at imendio.com>
+
 	* gtk/gtkcellrenderertoggle.c (gtk_cell_renderer_toggle_init):
 	port over change which removes assignments to xpad, ypad.
 

Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkcellrenderertoggle.c
===================================================================
--- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkcellrenderertoggle.c	2007-01-10 17:41:30 UTC (rev 9050)
+++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkcellrenderertoggle.c	2007-01-10 18:05:49 UTC (rev 9051)
@@ -69,6 +69,9 @@
   PROP_RADIO,
   PROP_INCONSISTENT,
   PROP_INDICATOR_SIZE
+  /* MAEMO START */
+  , PROP_CHECKBOX_MODE
+  /* MAEMO END */
 };
 
 /* MAEMO START */
@@ -85,6 +88,9 @@
   gint indicator_size;
 
   guint inconsistent : 1;
+  /* MAEMO START */
+  guint checkbox_mode : 1;
+  /* MAEMO END */
 };
 
 
@@ -153,7 +159,26 @@
 							 FALSE,
 							 GTK_PARAM_READWRITE));
 
+  /* MAEMO START */
+  /**
+   * GtkCellRendererToggle:checkbox-mode:
+   *
+   * Activates the checkbox mode of drawing selection. Currently there are no 
+   * major differences in how the drawing is done.
+   * 
+   * Since: maemo 1.0
+   */
   g_object_class_install_property (object_class,
+                                   PROP_CHECKBOX_MODE,
+                                   g_param_spec_boolean ("checkbox-mode",
+                                                         P_("Checkbox Mode"),
+                                                         P_("Activates the checkbox mode of drawing selection"),
+                                                         FALSE,
+                                                         GTK_PARAM_READABLE |
+                                                         GTK_PARAM_WRITABLE));
+  /* MAEMO END */
+
+  g_object_class_install_property (object_class,
 				   PROP_INDICATOR_SIZE,
 				   g_param_spec_int ("indicator-size",
 						     P_("Indicator size"),
@@ -213,6 +238,11 @@
     case PROP_INDICATOR_SIZE:
       g_value_set_int (value, priv->indicator_size);
       break;
+    /* MAEMO START */
+    case PROP_CHECKBOX_MODE:
+      g_value_set_boolean (value, priv->checkbox_mode);
+      break;
+    /* MAEMO END */
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
       break;
@@ -248,6 +278,11 @@
     case PROP_INDICATOR_SIZE:
       priv->indicator_size = g_value_get_int (value);
       break;
+    /* MAEMO START */
+    case PROP_CHECKBOX_MODE:
+      priv->checkbox_mode = g_value_get_boolean (value);
+      break;
+    /* MAEMO END */
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
       break;
@@ -340,6 +375,46 @@
   if (width <= 0 || height <= 0)
     return;
 
+  /* MAEMO START */
+  if (priv->checkbox_mode)
+    {
+      /* Checkbox mode drawing */
+
+      state = GTK_STATE_NORMAL;
+
+      if (!cell->sensitive)
+        {
+          state = GTK_STATE_INSENSITIVE;
+        }
+#if 0
+      /* FIXME: Enable this after the activatable-issue is cleared up */
+      if (!celltoggle->activatable)
+        state = GTK_STATE_INSENSITIVE;
+#endif
+
+      if ((flags & GTK_CELL_RENDERER_SELECTED) == GTK_CELL_RENDERER_SELECTED)
+        shadow = GTK_SHADOW_IN;
+      else
+        shadow = GTK_SHADOW_OUT;
+
+      if (priv->inconsistent)
+        shadow = GTK_SHADOW_ETCHED_IN;
+
+      if ((flags & GTK_CELL_RENDERER_FOCUSED) == GTK_CELL_RENDERER_FOCUSED)
+        {
+          /* Don't overlap with the focus border */
+          height -= 2;
+          if (GTK_WIDGET_HAS_FOCUS (widget))
+            state = GTK_STATE_ACTIVE;
+          else
+            state = GTK_STATE_PRELIGHT;
+        }
+    }
+  else
+    {
+      /* Normal operation */
+      /* MAEMO END */
+
   if (priv->inconsistent)
     shadow = GTK_SHADOW_ETCHED_IN;
   else
@@ -363,6 +438,9 @@
       else
         state = GTK_STATE_INSENSITIVE;
     }
+  /* MAEMO START */
+    }
+  /* MAEMO END */
 
   if (celltoggle->radio)
     {


More information about the maemo-commits mailing list