[maemo-commits] [maemo-commits] r17300 - in projects/haf/trunk/gtk+: . gtk
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Tue Jan 27 18:44:18 EET 2009
- Previous message: [maemo-commits] r17299 - in projects/haf/trunk/libmatchbox2: . matchbox/theme-engines
- Next message: [maemo-commits] r17301 - in projects/haf/trunk/gtk+: . gtk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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);
- Previous message: [maemo-commits] r17299 - in projects/haf/trunk/libmatchbox2: . matchbox/theme-engines
- Next message: [maemo-commits] r17301 - in projects/haf/trunk/gtk+: . gtk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]