summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorDom Lachowicz <doml@src.gnome.org>2004-12-01 17:25:19 +0000
committerDom Lachowicz <doml@src.gnome.org>2004-12-01 17:25:19 +0000
commitb00ab0259794e7011172875e72f407bc70c95191 (patch)
treeda80b5558c6c05206a181e09036eefdf44f3f9f6 /modules
parent29ada43da25e23cb35d9fb4c7c5eb72cf3090370 (diff)
downloadgdk-pixbuf-b00ab0259794e7011172875e72f407bc70c95191.tar.gz
xp theme combo box arrows on toolbars
Diffstat (limited to 'modules')
-rwxr-xr-xmodules/engines/ms-windows/msw_style.c49
1 files changed, 32 insertions, 17 deletions
diff --git a/modules/engines/ms-windows/msw_style.c b/modules/engines/ms-windows/msw_style.c
index 93052c596..34c88326b 100755
--- a/modules/engines/ms-windows/msw_style.c
+++ b/modules/engines/ms-windows/msw_style.c
@@ -1164,6 +1164,29 @@ reverse_engineer_stepper_box (GtkWidget *range,
*height = box_height;
}
+static XpThemeElement to_xp_arrow(GtkArrowType arrow_type)
+{
+ XpThemeElement xp_arrow;
+
+ switch (arrow_type)
+ {
+ case GTK_ARROW_UP:
+ xp_arrow = XP_THEME_ELEMENT_ARROW_UP;
+ break;
+ case GTK_ARROW_DOWN:
+ xp_arrow = XP_THEME_ELEMENT_ARROW_DOWN;
+ break;
+ case GTK_ARROW_LEFT:
+ xp_arrow = XP_THEME_ELEMENT_ARROW_LEFT;
+ break;
+ default:
+ xp_arrow = XP_THEME_ELEMENT_ARROW_RIGHT;
+ break;
+ }
+
+ return xp_arrow;
+}
+
static void
draw_arrow (GtkStyle *style,
GdkWindow *window,
@@ -1212,29 +1235,14 @@ draw_arrow (GtkStyle *style,
gint box_y = y;
gint box_width = width;
gint box_height = height;
- XpThemeElement xp_arrow;
+
reverse_engineer_stepper_box (widget, arrow_type,
&box_x, &box_y, &box_width, &box_height);
if (scrollbar->range.adjustment->page_size >= (scrollbar->range.adjustment->upper-scrollbar->range.adjustment->lower))
is_disabled = TRUE;
- switch (arrow_type)
- {
- case GTK_ARROW_UP:
- xp_arrow = XP_THEME_ELEMENT_ARROW_UP;
- break;
- case GTK_ARROW_DOWN:
- xp_arrow = XP_THEME_ELEMENT_ARROW_DOWN;
- break;
- case GTK_ARROW_LEFT:
- xp_arrow = XP_THEME_ELEMENT_ARROW_LEFT;
- break;
- default:
- xp_arrow = XP_THEME_ELEMENT_ARROW_RIGHT;
- break;
- }
- if (xp_theme_draw(window, xp_arrow, style, box_x, box_y, box_width, box_height, state, area))
+ if (xp_theme_draw(window, to_xp_arrow(arrow_type), style, box_x, box_y, box_width, box_height, state, area))
{
}
else if (arrow_type == GTK_ARROW_UP || arrow_type == GTK_ARROW_DOWN)
@@ -1262,6 +1270,13 @@ draw_arrow (GtkStyle *style,
if (xp_theme_draw(window, XP_THEME_ELEMENT_REBAR_CHEVRON, style, x, y, width, height, state, area))
return;
}
+ /* probably a gtk combo box on a toolbar */
+ else if (widget->parent && GTK_IS_BUTTON (widget->parent))
+ {
+ if (xp_theme_draw(window, XP_THEME_ELEMENT_COMBOBUTTON, style, x-3, widget->allocation.y+1,
+ width+5, widget->allocation.height-4, state, area))
+ return;
+ }
if (arrow_type == GTK_ARROW_UP || arrow_type == GTK_ARROW_DOWN)
{