summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorMatthias Clasen <maclas@gmx.de>2003-12-21 23:41:26 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2003-12-21 23:41:26 +0000
commit5bacfe393661cc4f8e9b5480f5d33bb094da0f47 (patch)
treee69b8a2b9b253646d57afec5e98bc76360fc3c36 /gtk
parent6a6455d7e3bb3e37762d93eae796db04b839500f (diff)
downloadgtk+-5bacfe393661cc4f8e9b5480f5d33bb094da0f47.tar.gz
Use gtk_paint_arrow instead of draw_arrow_left/draw_arrow_right. Removed.
Mon Dec 22 00:40:39 2003 Matthias Clasen <maclas@gmx.de> * gtk/gtkcalendar.c (gtk_calendar_paint_arrow): Use gtk_paint_arrow instead of draw_arrow_left/draw_arrow_right. * gtk/gtkcalendar.c (draw_arrow_left): (draw_arrow_right): Removed. * gtk/gtkcalendar.c (gtk_calendar_realize_arrows): * gtk/gtkcalendar.c (gtk_calendar_state_changed): Set the arrow_state to GTK_STATE_INSENSITIVE if the calendar is insensitive. (#97376)
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtkcalendar.c72
1 files changed, 23 insertions, 49 deletions
diff --git a/gtk/gtkcalendar.c b/gtk/gtkcalendar.c
index 8fbfe84a08..2a117759ba 100644
--- a/gtk/gtkcalendar.c
+++ b/gtk/gtkcalendar.c
@@ -826,48 +826,6 @@ top_y_for_row (GtkCalendar *calendar,
* row_height (calendar)));
}
-/* This function should be done by the toolkit, but we don't like the
- * GTK arrows because they don't look good on this widget */
-static void
-draw_arrow_right (GdkWindow *window,
- GdkGC *gc,
- gint x,
- gint y,
- gint size)
-{
- gint i;
-
- for (i = 0; i <= size / 2; i++)
- {
- gdk_draw_line (window, gc,
- x + i,
- y + i,
- x + i,
- y + size - i);
- }
-}
-
-/* This function should be done by the toolkit, but we don't like the
- * GTK arrows because they don't look good on this widget */
-static void
-draw_arrow_left (GdkWindow *window,
- GdkGC *gc,
- gint x,
- gint y,
- gint size)
-{
- gint i;
-
- for (i = 0; i <= size / 2; i++)
- {
- gdk_draw_line (window, gc,
- x + size/2 - i,
- y + i,
- x + size/2 - i,
- y + size - i);
- }
-}
-
static void
gtk_calendar_set_month_prev (GtkCalendar *calendar)
{
@@ -1150,7 +1108,10 @@ gtk_calendar_realize_arrows (GtkWidget *widget)
private_data->arrow_win[i] = gdk_window_new (private_data->header_win,
&attributes,
attributes_mask);
- private_data->arrow_state[i] = GTK_STATE_NORMAL;
+ if (GTK_WIDGET_IS_SENSITIVE (widget))
+ private_data->arrow_state[i] = GTK_STATE_NORMAL;
+ else
+ private_data->arrow_state[i] = GTK_STATE_INSENSITIVE;
gdk_window_set_background (private_data->arrow_win[i],
HEADER_BG_COLOR (GTK_WIDGET (calendar)));
gdk_window_show (private_data->arrow_win[i]);
@@ -3002,14 +2963,16 @@ gtk_calendar_paint_arrow (GtkWidget *widget,
gdk_window_clear_area (window,
0,0,
width,height);
-
- gdk_gc_set_foreground (gc, & (widget)->style->fg[state]);
-
if (arrow == ARROW_MONTH_LEFT || arrow == ARROW_YEAR_LEFT)
- draw_arrow_left (window, gc, width/2 - 3, height/2 - 4, 8);
+ gtk_paint_arrow (widget->style, window, state,
+ GTK_SHADOW_OUT, NULL, widget, "calendar",
+ GTK_ARROW_LEFT, TRUE,
+ width/2 - 3, height/2 - 4, 8, 8);
else
- draw_arrow_right (window, gc, width/2 - 2, height/2 - 4, 8);
- return;
+ gtk_paint_arrow (widget->style, window, state,
+ GTK_SHADOW_OUT, NULL, widget, "calendar",
+ GTK_ARROW_RIGHT, TRUE,
+ width/2 - 2, height/2 - 4, 8, 8);
}
}
@@ -3099,9 +3062,20 @@ static void
gtk_calendar_state_changed (GtkWidget *widget,
GtkStateType previous_state)
{
+ GtkCalendarPrivateData *private_data;
+ int i;
+
+ private_data = GTK_CALENDAR_PRIVATE_DATA (widget);
+
if (!GTK_WIDGET_IS_SENSITIVE (widget))
stop_spinning (widget);
+ for (i = 0; i < 4; i++)
+ if (GTK_WIDGET_IS_SENSITIVE (widget))
+ private_data->arrow_state[i] = GTK_STATE_NORMAL;
+ else
+ private_data->arrow_state[i] = GTK_STATE_INSENSITIVE;
+
gtk_calendar_set_background (widget);
}