aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--widgets/ChangeLog12
-rw-r--r--widgets/misc/e-calendar-item.c36
-rw-r--r--widgets/misc/e-calendar-item.h1
-rw-r--r--widgets/misc/e-calendar.c4
4 files changed, 28 insertions, 25 deletions
diff --git a/widgets/ChangeLog b/widgets/ChangeLog
index bde7240b53..e17316dd30 100644
--- a/widgets/ChangeLog
+++ b/widgets/ChangeLog
@@ -1,3 +1,15 @@
+2005-04-28 Li Yuan <li.yuan@sun.com>
+
+ * misc/e-calendar-item.c: (e_calendar_item_realize),
+ (e_calendar_item_set_selection_if_emission),
+ (e_calendar_item_style_set):
+ use widget->style instead of hard code colors.
+ * misc/e-calendar-item.h:
+ * misc/e-calendar.c: (e_calendar_style_set):
+ call e_calendar_item_style_set when style changes.
+
+ Fixes #6767.
+
2005-03-14 Not Zed <NotZed@Ximian.com>
* menus/gal-view-menus.c (build_menus): don't
diff --git a/widgets/misc/e-calendar-item.c b/widgets/misc/e-calendar-item.c
index 8e9c42c544..c3134c07fe 100644
--- a/widgets/misc/e-calendar-item.c
+++ b/widgets/misc/e-calendar-item.c
@@ -691,31 +691,7 @@ e_calendar_item_realize (GnomeCanvasItem *item)
colormap = gtk_widget_get_colormap (GTK_WIDGET (item->canvas));
- calitem->colors[E_CALENDAR_ITEM_COLOR_TODAY_BOX].red = 65535;
- calitem->colors[E_CALENDAR_ITEM_COLOR_TODAY_BOX].green = 0;
- calitem->colors[E_CALENDAR_ITEM_COLOR_TODAY_BOX].blue = 0;
-
- calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_FG].red = 65535;
- calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_FG].green = 65535;
- calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_FG].blue = 65535;
-
- calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG_FOCUSED].red = 4700;
- calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG_FOCUSED].green = 4700;
- calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG_FOCUSED].blue = 65535;
-
- calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG].red = 47000;
- calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG].green = 47000;
- calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG].blue = 48000;
-
- calitem->colors[E_CALENDAR_ITEM_COLOR_PREV_OR_NEXT_MONTH_FG].red = 47000;
- calitem->colors[E_CALENDAR_ITEM_COLOR_PREV_OR_NEXT_MONTH_FG].green = 47000;
- calitem->colors[E_CALENDAR_ITEM_COLOR_PREV_OR_NEXT_MONTH_FG].blue = 48000;
-
- nfailed = gdk_colormap_alloc_colors (colormap, calitem->colors,
- E_CALENDAR_ITEM_COLOR_LAST, FALSE,
- TRUE, success);
- if (nfailed)
- g_warning ("Failed to allocate all colors");
+ e_calendar_item_style_set (GTK_WIDGET(item->canvas), calitem);
}
@@ -2974,6 +2950,16 @@ e_calendar_item_set_selection_if_emission (ECalendarItem *calitem,
gnome_canvas_item_request_update (GNOME_CANVAS_ITEM (calitem));
}
+void
+e_calendar_item_style_set (GtkWidget *widget, ECalendarItem *calitem)
+{
+ calitem->colors[E_CALENDAR_ITEM_COLOR_TODAY_BOX] = widget->style->bg[GTK_STATE_SELECTED];
+ calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_FG] = widget->style->base[GTK_STATE_NORMAL];
+ calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG_FOCUSED] = widget->style->bg[GTK_STATE_SELECTED];
+ calitem->colors[E_CALENDAR_ITEM_COLOR_SELECTION_BG] = widget->style->fg[GTK_STATE_INSENSITIVE];
+ calitem->colors[E_CALENDAR_ITEM_COLOR_PREV_OR_NEXT_MONTH_FG] = widget->style->fg[GTK_STATE_INSENSITIVE];
+}
+
void
e_calendar_item_set_selection (ECalendarItem *calitem,
GDate *start_date,
diff --git a/widgets/misc/e-calendar-item.h b/widgets/misc/e-calendar-item.h
index d67d71d5cc..4de82cd62c 100644
--- a/widgets/misc/e-calendar-item.h
+++ b/widgets/misc/e-calendar-item.h
@@ -370,6 +370,7 @@ gint e_calendar_item_get_week_number (ECalendarItem *calitem,
gint day,
gint month,
gint year);
+void e_calendar_item_style_set (GtkWidget *widget, ECalendarItem *calitem);
#ifdef __cplusplus
diff --git a/widgets/misc/e-calendar.c b/widgets/misc/e-calendar.c
index c8798b5cfa..e410054ef1 100644
--- a/widgets/misc/e-calendar.c
+++ b/widgets/misc/e-calendar.c
@@ -265,6 +265,9 @@ static void
e_calendar_style_set (GtkWidget *widget,
GtkStyle *previous_style)
{
+ ECalendar *e_calendar;
+
+ e_calendar = E_CALENDAR(widget);
if (GTK_WIDGET_CLASS (e_calendar_parent_class)->style_set)
(*GTK_WIDGET_CLASS (e_calendar_parent_class)->style_set) (widget,
previous_style);
@@ -274,6 +277,7 @@ e_calendar_style_set (GtkWidget *widget,
if (GTK_WIDGET_REALIZED (widget->parent))
gdk_window_set_background (GTK_LAYOUT (widget)->bin_window,
&widget->style->bg[GTK_STATE_NORMAL]);
+ e_calendar_item_style_set (widget, e_calendar->calitem);
}