[maemo-commits] [maemo-commits] r17300 - in projects/haf/trunk/gtk+: . gtk

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Tue Jan 27 18:44:18 EET 2009
Author: kris
Date: 2009-01-27 18:44:04 +0200 (Tue, 27 Jan 2009)
New Revision: 17300

Modified:
   projects/haf/trunk/gtk+/ChangeLog
   projects/haf/trunk/gtk+/gtk/gtkiconview.c
   projects/haf/trunk/gtk+/gtk/gtktreeprivate.h
   projects/haf/trunk/gtk+/gtk/gtktreeview.c
Log:
2009-01-27  Kristian Rietveld  <kris at imendio.com>

	Fixes: NB#93725 - Finish theming of GtkTreeView and GtkIconView
	Part 1.

	* gtk/gtktreeview.c (gtk_tree_view_destroy),
	(gtk_tree_view_style_set): load/free the icon,
	(gtk_tree_view_bin_expose): draw tick mark icon from theme.

	* gtk/gtktreeprivate.h: add field.

	* gtk/gtkiconview.c (gtk_icon_view_destroy),
	(gtk_icon_view_style_set): ditto,
	(gtk_icon_view_expose): ditto.



Modified: projects/haf/trunk/gtk+/ChangeLog
===================================================================
--- projects/haf/trunk/gtk+/ChangeLog	2009-01-27 15:35:54 UTC (rev 17299)
+++ projects/haf/trunk/gtk+/ChangeLog	2009-01-27 16:44:04 UTC (rev 17300)
@@ -1,5 +1,20 @@
 2009-01-27  Kristian Rietveld  <kris at imendio.com>
 
+	Fixes: NB#93725 - Finish theming of GtkTreeView and GtkIconView
+	Part 1.
+
+	* gtk/gtktreeview.c (gtk_tree_view_destroy),
+	(gtk_tree_view_style_set): load/free the icon,
+	(gtk_tree_view_bin_expose): draw tick mark icon from theme.
+
+	* gtk/gtktreeprivate.h: add field.
+
+	* gtk/gtkiconview.c (gtk_icon_view_destroy),
+	(gtk_icon_view_style_set): ditto,
+	(gtk_icon_view_expose): ditto.
+
+2009-01-27  Kristian Rietveld  <kris at imendio.com>
+
 	* gtk/tests/treeview-hildon.c: plug memleaks.
 
 2009-01-27  Kristian Rietveld  <kris at imendio.com>

Modified: projects/haf/trunk/gtk+/gtk/gtkiconview.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtkiconview.c	2009-01-27 15:35:54 UTC (rev 17299)
+++ projects/haf/trunk/gtk+/gtk/gtkiconview.c	2009-01-27 16:44:04 UTC (rev 17300)
@@ -41,6 +41,9 @@
 #include "gtkcombobox.h"
 #include "gtktextbuffer.h"
 #include "gtktreednd.h"
+#ifdef MAEMO_CHANGES
+#include "gtkicontheme.h"
+#endif /* MAEMO_CHANGES */
 #include "gtkprivate.h"
 #include "gtkalias.h"
 
@@ -49,6 +52,7 @@
 #define SCROLL_EDGE_SIZE 15
 
 #ifdef MAEMO_CHANGES
+#define HILDON_TICK_MARK_SIZE 48
 #define HILDON_ROW_HEADER_HEIGHT 35
 #endif /* MAEMO_CHANGES */
 
@@ -191,6 +195,8 @@
   gpointer row_header_data;
   GDestroyNotify row_header_destroy;
   PangoLayout *row_header_layout;
+
+  GdkPixbuf *tickmark_icon;
 #endif /* MAEMO_CHANGES */
 
   /* scroll to */
@@ -1103,6 +1109,12 @@
       g_object_unref (icon_view->priv->row_header_layout);
       icon_view->priv->row_header_layout = NULL;
     }
+
+  if (icon_view->priv->tickmark_icon)
+    {
+      g_object_unref (icon_view->priv->tickmark_icon);
+      icon_view->priv->tickmark_icon = NULL;
+    }
 #endif /* MAEMO_CHANGES */
   
   clear_dest_info (icon_view);
@@ -1362,6 +1374,15 @@
   hildon_icon_view_set_hildon_ui_mode (icon_view, icon_view->priv->hildon_ui_mode);
 
   /* FIXME: might want to update the row_header_layout if it exists */
+
+  if (icon_view->priv->tickmark_icon)
+    g_object_unref (icon_view->priv->tickmark_icon);
+
+  icon_view->priv->tickmark_icon = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
+                                                             "widgets_tickmark_grid",
+                                                             HILDON_TICK_MARK_SIZE,
+                                                             0, NULL);
+
 #endif /* MAEMO_CHANGES */
 
   gtk_widget_queue_resize (widget);
@@ -1553,17 +1574,16 @@
           && icon_view->priv->hildon_ui_mode == HILDON_UI_MODE_EDIT
           && item->selected)
         {
-          /* FIXME Draws a hard coded 36x36 tick */
-          gtk_paint_check (widget->style,
-                           icon_view->priv->bin_window,
-                           GTK_STATE_SELECTED,
-                           GTK_SHADOW_IN,
-                           &expose->area,
-                           widget,
-                           "check",
-                           item->x + (item->width - 36) / 2,
-                           item->y + (item->height - 36) / 2,
-                           36, 36);
+          gdk_draw_pixbuf (icon_view->priv->bin_window,
+                           NULL,
+                           icon_view->priv->tickmark_icon,
+                           0, 0,
+                           item->x + (item->width - HILDON_TICK_MARK_SIZE) / 2,
+                           item->y + (item->height - HILDON_TICK_MARK_SIZE) / 2,
+                           HILDON_TICK_MARK_SIZE,
+                           HILDON_TICK_MARK_SIZE,
+                           GDK_RGB_DITHER_MAX,
+                           0, 0);
         }
 #endif /* MAEMO_CHANGES */
 

Modified: projects/haf/trunk/gtk+/gtk/gtktreeprivate.h
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtktreeprivate.h	2009-01-27 15:35:54 UTC (rev 17299)
+++ projects/haf/trunk/gtk+/gtk/gtktreeprivate.h	2009-01-27 16:44:04 UTC (rev 17300)
@@ -287,6 +287,8 @@
 
   HildonUIMode hildon_ui_mode;
 
+  GdkPixbuf *tickmark_icon;
+
   HildonTreeViewRowHeaderFunc row_header_func;
   gpointer row_header_data;
   GDestroyNotify row_header_destroy;

Modified: projects/haf/trunk/gtk+/gtk/gtktreeview.c
===================================================================
--- projects/haf/trunk/gtk+/gtk/gtktreeview.c	2009-01-27 15:35:54 UTC (rev 17299)
+++ projects/haf/trunk/gtk+/gtk/gtktreeview.c	2009-01-27 16:44:04 UTC (rev 17300)
@@ -43,6 +43,9 @@
 #include "gtkframe.h"
 #include "gtktreemodelsort.h"
 #include "gtktooltip.h"
+#ifdef MAEMO_CHANGES
+#include "gtkicontheme.h"
+#endif /* MAEMO_CHANGES */
 #include "gtkprivate.h"
 #include "gtkalias.h"
 
@@ -54,9 +57,9 @@
 #define GTK_TREE_VIEW_SEARCH_DIALOG_TIMEOUT 5000
 #define AUTO_EXPAND_TIMEOUT 500
 
-/* The checkmarks that we need to draw are of a fixed size: 26x26 */
+/* The checkmarks that we need to draw are of a fixed size: 48x48 */
 #ifdef MAEMO_CHANGES
-#define HILDON_TICK_MARK_SIZE 26
+#define HILDON_TICK_MARK_SIZE 48
 #define HILDON_ROW_HEADER_HEIGHT 35
 #endif /* MAEMO_CHANGES */
 
@@ -1883,6 +1886,12 @@
       g_object_unref (tree_view->priv->row_header_layout);
       tree_view->priv->row_header_layout = NULL;
     }
+
+  if (tree_view->priv->tickmark_icon)
+    {
+      g_object_unref (tree_view->priv->tickmark_icon);
+      tree_view->priv->tickmark_icon = NULL;
+    }
 #endif /* MAEMO_CHANGES */
   
   gtk_tree_view_set_model (tree_view, NULL);
@@ -5300,20 +5309,17 @@
               background_area.width -= HILDON_TICK_MARK_SIZE;
               cell_area.width -= HILDON_TICK_MARK_SIZE;
 
-              /* FIXME: add padding if required. */
-              /* FIXME: draw the specified qgn_list_tick */
               if (GTK_RBNODE_FLAG_SET (node, GTK_RBNODE_IS_SELECTED))
-                gtk_paint_check (widget->style,
-                                 event->window,
-                                 state,
-                                 GTK_SHADOW_IN,
-                                 &event->area,
-                                 widget,
-                                 "check",
+                gdk_draw_pixbuf (event->window,
+                                 NULL,
+                                 tree_view->priv->tickmark_icon,
+                                 0, 0,
                                  background_area.x + background_area.width,
                                  background_area.y + (background_area.height - HILDON_TICK_MARK_SIZE) / 2,
                                  HILDON_TICK_MARK_SIZE,
-                                 HILDON_TICK_MARK_SIZE);
+                                 HILDON_TICK_MARK_SIZE,
+                                 GDK_RGB_DITHER_MAX,
+                                 0, 0);
             }
 
 
@@ -9079,6 +9085,14 @@
   hildon_tree_view_set_hildon_ui_mode (tree_view, tree_view->priv->hildon_ui_mode);
 
   /* FIXME: possibly update row_header_layout if it exists */
+
+  if (tree_view->priv->tickmark_icon)
+    g_object_unref (tree_view->priv->tickmark_icon);
+
+  tree_view->priv->tickmark_icon = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
+                                                             "widgets_tickmark_list",
+                                                             HILDON_TICK_MARK_SIZE,
+                                                             0, NULL);
 #endif /* MAEMO_CHANGES */
 
   gtk_widget_queue_resize (widget);


More information about the maemo-commits mailing list