rpms/planner/devel planner-gnome604510.calcolors.patch, NONE, 1.1 planner.spec, 1.73, 1.74
Caolan McNamara
caolanm at fedoraproject.org
Mon Dec 14 09:08:02 UTC 2009
Author: caolanm
Update of /cvs/pkgs/rpms/planner/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv21455/devel
Modified Files:
planner.spec
Added Files:
planner-gnome604510.calcolors.patch
Log Message:
- Resolves: rhbz#546850 use different colors for different day types
planner-gnome604510.calcolors.patch:
libplanner/mrp-calendar.c | 5 -
src/planner-calendar.c | 177 ++++++++++++++++------------------------------
src/planner-calendar.h | 26 ------
3 files changed, 68 insertions(+), 140 deletions(-)
--- NEW FILE planner-gnome604510.calcolors.patch ---
diff -ru planner-0.14.4.orig/libplanner/mrp-calendar.c planner-0.14.4/libplanner/mrp-calendar.c
--- planner-0.14.4.orig/libplanner/mrp-calendar.c 2008-07-22 14:41:46.000000000 +0100
+++ planner-0.14.4/libplanner/mrp-calendar.c 2009-12-12 17:08:50.000000000 +0000
@@ -159,9 +161,10 @@
g_object_class_install_property (object_class,
PROP_PROJECT,
- g_param_spec_pointer ("project",
+ g_param_spec_object ("project",
"Project",
"The project this calendar belongs to",
+ G_TYPE_OBJECT,
G_PARAM_READWRITE));
imrp_day_setup_defaults ();
@@ -254,7 +257,7 @@
mrp_calendar_set_name (calendar, g_value_get_string (value));
break;
case PROP_PROJECT:
- priv->project = MRP_PROJECT (g_value_get_pointer (value));
+ priv->project = g_value_get_object (value);
break;
default:
break;
diff -ru planner-0.14.4.orig/src/planner-calendar.c planner-0.14.4/src/planner-calendar.c
--- planner-0.14.4.orig/src/planner-calendar.c 2009-12-14 08:55:30.000000000 +0000
+++ planner-0.14.4/src/planner-calendar.c 2009-12-13 15:47:15.000000000 +0000
@@ -180,10 +180,8 @@
#define HEADER_BG_COLOR(widget) (& (widget)->style->bg[GTK_WIDGET_STATE (widget)])
#define SELECTED_BG_COLOR(widget) (& (widget)->style->base[GTK_WIDGET_HAS_FOCUS (widget) ? GTK_STATE_SELECTED : GTK_STATE_ACTIVE])
#define SELECTED_FG_COLOR(widget) (& (widget)->style->text[GTK_WIDGET_HAS_FOCUS (widget) ? GTK_STATE_SELECTED : GTK_STATE_ACTIVE])
-#define NORMAL_DAY_COLOR(widget) (& (widget)->style->fg[GTK_WIDGET_STATE (widget)])
#define PREV_MONTH_COLOR(widget) (& (widget)->style->mid[GTK_WIDGET_STATE (widget)])
#define NEXT_MONTH_COLOR(widget) (& (widget)->style->mid[GTK_WIDGET_STATE (widget)])
-#define MARKED_COLOR(widget) (& (widget)->style->fg[GTK_WIDGET_STATE (widget)])
#define BACKGROUND_COLOR(widget) (& (widget)->style->base[GTK_WIDGET_STATE (widget)])
#define HIGHLIGHT_BACK_COLOR(widget) (& (widget)->style->mid[GTK_WIDGET_STATE (widget)])
@@ -430,6 +428,25 @@
G_TYPE_NONE, 0);
}
+/* Tango palette */
+static const GdkColor tango_palette[14] =
+{
+ { 0, 0xcccc, 0x0000, 0x0000 },
+ { 0, 0x4e4e, 0x9a9a, 0x0606 },
+ { 0, 0xc4c4, 0xa0a0, 0x0000 },
+ { 0, 0x3434, 0x6565, 0xa4a4 },
+ { 0, 0x7575, 0x5050, 0x7b7b },
+ { 0, 0x0606, 0x9820, 0x9a9a },
+ { 0, 0x5555, 0x5757, 0x5353 },
+ { 0, 0xefef, 0x2929, 0x2929 },
+ { 0, 0x8a8a, 0xe2e2, 0x3434 },
+ { 0, 0xfcfc, 0xe9e9, 0x4f4f },
+ { 0, 0x7272, 0x9f9f, 0xcfcf },
+ { 0, 0xadad, 0x7f7f, 0xa8a8 },
+ { 0, 0x3434, 0xe2e2, 0xe2e2 },
+ { 0, 0xeeee, 0xeeee, 0xecec }
+};
+
static void
planner_calendar_init (PlannerCalendar *calendar)
{
@@ -470,8 +487,11 @@
calendar->year = 1900 + tm->tm_year;
for (i=0;i<31;i++)
- calendar->marked_date[i] = PLANNER_CALENDAR_MARK_NONE;
- calendar->num_marked_dates = 0;
+ calendar->marked_date[i] = NULL;
+
+ for (i=0;i<14;i++)
+ calendar->mark_colors[i] = tango_palette[i];
+
calendar->selected_day = tm->tm_mday;
calendar->display_flags = ( PLANNER_CALENDAR_SHOW_HEADING |
@@ -1049,6 +1069,7 @@
PlannerCalendarPrivateData *private_data;
GdkWindowAttr attributes;
gint attributes_mask;
+ gint i;
GdkGCValues values;
calendar = PLANNER_CALENDAR (widget);
@@ -1110,6 +1131,9 @@
&values,
GDK_GC_FOREGROUND |
GDK_GC_FUNCTION);
+
+ for (i=0;i<14;i++)
+ gdk_rgb_find_color(attributes.colormap, &(calendar->mark_colors[i]));
}
static void
@@ -1839,51 +1863,13 @@
gdk_draw_rectangle (private_data->main_win, gc, TRUE, x_left, y_top,
private_data->day_width, day_height);
}
- else
+ else if (calendar->marked_date[day-1])
{
- switch (calendar->marked_date[day-1]) {
- case PLANNER_CALENDAR_MARK_NONE:
- case PLANNER_CALENDAR_MARK_UNDERLINE:
- case PLANNER_CALENDAR_MARK_BOLD:
- break;
- case PLANNER_CALENDAR_MARK_SHADE:
- gdk_gc_set_foreground (gc, SHADED_BG_COLOR (GTK_WIDGET (calendar)));
- gdk_draw_rectangle (private_data->main_win, gc, TRUE, x_left, y_top,
- private_data->day_width, day_height);
- break;
- case PLANNER_CALENDAR_MARK_STRIPE:
- {
- static GdkBitmap *stripe_stipple = NULL;
- gchar stipple_pattern[] = { 2, 1, 8, 4 };
-
- if (!stripe_stipple) {
- stripe_stipple = gdk_bitmap_create_from_data (NULL,
- stipple_pattern,
- 4, 4);
- }
-
- gdk_gc_set_foreground (gc, STRIPED_BG_COLOR (GTK_WIDGET (calendar)));
- gdk_gc_set_fill (gc, GDK_STIPPLED);
- gdk_gc_set_stipple (gc, stripe_stipple);
- gdk_draw_rectangle (private_data->main_win, gc, TRUE, x_left, y_top,
- private_data->day_width, day_height);
- gdk_gc_set_fill (gc, GDK_SOLID);
- }
- break;
- }
+ gdk_gc_set_foreground (gc, calendar->marked_date[day-1]);
+ gdk_draw_rectangle (private_data->main_win, gc, TRUE, x_left, y_top,
+ private_data->day_width, day_height);
}
- switch (calendar->marked_date[day-1]) {
- case PLANNER_CALENDAR_MARK_BOLD:
- gdk_gc_set_foreground (gc, MARKED_COLOR (GTK_WIDGET (calendar)));
- break;
- case PLANNER_CALENDAR_MARK_SHADE:
- case PLANNER_CALENDAR_MARK_UNDERLINE:
- case PLANNER_CALENDAR_MARK_NONE:
- gdk_gc_set_foreground (gc, NORMAL_DAY_COLOR (GTK_WIDGET (calendar)));
- break;
- }
-
if (calendar->selected_day == day)
gdk_gc_set_foreground (gc, SELECTED_FG_COLOR (GTK_WIDGET (calendar)));
else
@@ -1901,17 +1887,6 @@
gdk_draw_layout (private_data->main_win, gc,
x_loc, y_loc, layout);
- switch (calendar->marked_date[day-1]) {
- case PLANNER_CALENDAR_MARK_BOLD:
- if (calendar->day_month[row][col] == MONTH_CURRENT)
- gdk_draw_layout (private_data->main_win, gc,
- x_loc-1, y_loc, layout);
- break;
-
- default:
- break;
- }
-
if (GTK_WIDGET_HAS_FOCUS (calendar)
&& calendar->focus_row == row && calendar->focus_col == col)
{
@@ -2257,46 +2232,6 @@
}
void
-planner_calendar_clear_marks (PlannerCalendar *calendar)
-{
- guint day;
-
- g_return_if_fail (PLANNER_IS_CALENDAR (calendar));
-
- for (day = 0; day < 31; day++)
- {
- calendar->marked_date[day] = PLANNER_CALENDAR_MARK_NONE;
- }
-
- calendar->num_marked_dates = 0;
-
- if (GTK_WIDGET_DRAWABLE (calendar))
- {
- planner_calendar_paint_main (GTK_WIDGET (calendar));
- }
-}
-
-gboolean
-planner_calendar_unmark_day (PlannerCalendar *calendar,
- guint day)
-{
- g_return_val_if_fail (PLANNER_IS_CALENDAR (calendar), FALSE);
-
- if (day >= 1 && day <= 31 && calendar->marked_date[day-1] == TRUE)
- {
- calendar->marked_date[day - 1] = FALSE;
- calendar->num_marked_dates--;
- }
-
- if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (calendar)))
- {
- planner_calendar_paint_main (GTK_WIDGET (calendar));
- }
-
- return TRUE;
-}
-
-void
planner_calendar_get_date (PlannerCalendar *calendar,
guint *year,
guint *month,
@@ -2754,10 +2689,10 @@
/* ------------------------------- */
-void
+static void
planner_calendar_mark_day (PlannerCalendar *calendar,
guint day,
- PlannerCalendarMarkType type)
+ const GdkColor *color)
{
gint index;
@@ -2766,16 +2701,11 @@
index = day - 1;
- if (calendar->marked_date[index] == type) {
+ if (calendar->marked_date[index] == color) {
return;
}
- calendar->marked_date[index] = type;
- if (type != PLANNER_CALENDAR_MARK_NONE) {
- calendar->num_marked_dates++;
- } else {
- calendar->num_marked_dates--;
- }
+ calendar->marked_date[index] = color;
if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (calendar))) {
planner_calendar_paint_main (GTK_WIDGET (calendar));
@@ -2790,9 +2720,19 @@
MrpTime *t;
mrptime time;
MrpDay *day;
+ MrpProject *project=NULL;
+ const GdkColor *color;
+ GList *daytypes;
+ gint dayindex;
planner_calendar_get_date (calendar, &y, &m, &d);
+ g_object_get (mrp_calendar, "project", &project, NULL);
+
+ daytypes = mrp_day_get_all (project);
+ daytypes = g_list_prepend (daytypes, mrp_day_get_nonwork ());
+ daytypes = g_list_prepend (daytypes, mrp_day_get_work ());
+
t = mrp_time2_new ();
mrp_time2_set_date (t, y, m+1, 1);
mrp_time2_set_time (t, 0, 0, 0);
@@ -2801,19 +2741,26 @@
time = mrp_time2_get_epoch (t);
day = mrp_calendar_get_day (mrp_calendar, time, TRUE);
+ dayindex = g_list_index (daytypes, day);
- if (day == mrp_day_get_nonwork ()) {
- planner_calendar_mark_day (calendar,
- d,
- PLANNER_CALENDAR_MARK_SHADE);
- }
- else if (day == mrp_day_get_work ()) {
- planner_calendar_mark_day (calendar,
- d,
- PLANNER_CALENDAR_MARK_NONE);
+ switch (dayindex)
+ {
+ case 0:
+ color = NULL;
+ break;
+ case 1:
+ color = SHADED_BG_COLOR (GTK_WIDGET (calendar));
+ break;
+ default:
+ color = &(calendar->mark_colors[(dayindex-2)%14]);
+ break;
}
+ planner_calendar_mark_day (calendar, d, color);
+
mrp_time2_add_days (t, 1);
}
mrp_time2_free (t);
+ g_list_free (daytypes);
+ g_object_unref (project);
}
diff -ru planner-0.14.4.orig/src/planner-calendar.h planner-0.14.4/src/planner-calendar.h
--- planner-0.14.4.orig/src/planner-calendar.h 2009-12-14 08:55:30.000000000 +0000
+++ planner-0.14.4/src/planner-calendar.h 2009-12-13 15:44:31.000000000 +0000
@@ -52,15 +52,6 @@
PLANNER_CALENDAR_SHOW_WEEK_NUMBERS = 1 << 3,
PLANNER_CALENDAR_WEEK_START_MONDAY = 1 << 4} PlannerCalendarDisplayOptions;
-typedef enum
-{
- PLANNER_CALENDAR_MARK_NONE,
- PLANNER_CALENDAR_MARK_BOLD,
- PLANNER_CALENDAR_MARK_UNDERLINE,
- PLANNER_CALENDAR_MARK_SHADE,
- PLANNER_CALENDAR_MARK_STRIPE
-} PlannerCalendarMarkType;
-
struct _PlannerCalendar
{
GtkWidget widget;
@@ -75,10 +66,9 @@
gint day_month[6][7];
gint day[6][7];
- gint num_marked_dates;
- gint marked_date[31];
+ const GdkColor *marked_date[31];
PlannerCalendarDisplayOptions display_flags;
- GdkColor marked_date_color[31];
+ GdkColor mark_colors[14];
GdkGC *gc;
GdkGC *xor_gc;
@@ -123,10 +113,6 @@
guint year);
void planner_calendar_select_day (PlannerCalendar *calendar,
guint day);
-gboolean planner_calendar_unmark_day (PlannerCalendar *calendar,
- guint day);
-void planner_calendar_clear_marks (PlannerCalendar *calendar);
-
void planner_calendar_display_options (PlannerCalendar *calendar,
PlannerCalendarDisplayOptions flags);
@@ -138,14 +124,8 @@
void planner_calendar_freeze (PlannerCalendar *calendar);
void planner_calendar_thaw (PlannerCalendar *calendar);
-
-
-void planner_calendar_mark_day (PlannerCalendar *calendar,
- guint day,
- PlannerCalendarMarkType type);
-
void planner_calendar_mark_days (PlannerCalendar *calendar,
- MrpCalendar *mrp_calendar);
+ MrpCalendar *mrp_calendar);
#endif /* __PLANNER_CALENDAR_H__ */
Index: planner.spec
===================================================================
RCS file: /cvs/pkgs/rpms/planner/devel/planner.spec,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -p -r1.73 -r1.74
--- planner.spec 11 Dec 2009 10:34:31 -0000 1.73
+++ planner.spec 14 Dec 2009 09:08:02 -0000 1.74
@@ -1,7 +1,7 @@
Summary: A graphical project management tool
Name: planner
Version: 0.14.4
-Release: 8%{?dist}
+Release: 9%{?dist}
License: GPLv2+
Group: Applications/Productivity
URL: http://live.gnome.org/Planner
@@ -26,6 +26,7 @@ Patch4: planner-buildfix.patch
Patch5: planner-gnome603693-planner-calendar-for-edittask.patch
Patch6: planner-gnome604169-comboboxentry.patch
Patch7: planner-gnome604355-scrolling.patch
+Patch8: planner-gnome604510.calcolors.patch
%description
Planner is a visual project management application which allows users to
@@ -63,6 +64,7 @@ This package provides a plugin to integr
%patch5 -p1 -b .edittask
%patch6 -p1 -b .combobox
%patch7 -p1 -b .scrolling
+%patch8 -p1 -b .calcolors
%build
rm -rf libegg
@@ -161,6 +163,9 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/pkgconfig/*
%changelog
+* Mon Dec 14 2009 Caolán McNamara <caolanm at redhat.com> - 0.14.4-9
+- Resolves: rhbz#546850 use different colors for different day types
+
* Fri Dec 11 2009 Caolán McNamara <caolanm at redhat.com> - 0.14.4-8
- Resolves: rhbz#546515 allow scrolling
More information about the fedora-extras-commits
mailing list