diff options
author | Miguel de Icaza <miguel@nuclecu.unam.mx> | 1999-02-01 02:30:56 +0800 |
---|---|---|
committer | Arturo Espinosa <unammx@src.gnome.org> | 1999-02-01 02:30:56 +0800 |
commit | 54441921320b97f80231beabcbc337382ecca6bf (patch) | |
tree | bba57c837a08bf5eaf0882ff793d54173fa4b326 /calendar/gncal-day-view.c | |
parent | 2d126d6634af26d7a4db216fe8c9922932b8f1f2 (diff) | |
download | gsoc2013-evolution-54441921320b97f80231beabcbc337382ecca6bf.tar.gz gsoc2013-evolution-54441921320b97f80231beabcbc337382ecca6bf.tar.zst gsoc2013-evolution-54441921320b97f80231beabcbc337382ecca6bf.zip |
Improve this draw routine. Now it can split the text in lines and fit as
1999-01-30 Miguel de Icaza <miguel@nuclecu.unam.mx>
* view-utils.c (view_utils_draw_events): Improve this draw
routine. Now it can split the text in lines and fit as many
events as possible.
(nicetime): Return strings without spaces at the beginning.
* gncal-day-view.c (gncal_day_view_expose): Move clip-clear
operation here.
svn path=/trunk/; revision=637
Diffstat (limited to 'calendar/gncal-day-view.c')
-rw-r--r-- | calendar/gncal-day-view.c | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/calendar/gncal-day-view.c b/calendar/gncal-day-view.c index 85d61292f1..1fc59c6fef 100644 --- a/calendar/gncal-day-view.c +++ b/calendar/gncal-day-view.c @@ -250,6 +250,7 @@ gncal_day_view_expose (GtkWidget *widget, GdkEventExpose *event) GdkRectangle rect, dest; GdkFont *font; int str_width; + GdkGC *gc; g_return_val_if_fail (widget != NULL, FALSE); g_return_val_if_fail (GNCAL_IS_DAY_VIEW (widget), FALSE); @@ -258,6 +259,7 @@ gncal_day_view_expose (GtkWidget *widget, GdkEventExpose *event) if (!GTK_WIDGET_DRAWABLE (widget)) return FALSE; + gc = widget->style->fg_gc [GTK_STATE_NORMAL]; dview = GNCAL_DAY_VIEW (widget); x1 = widget->style->klass->xthickness; @@ -300,18 +302,16 @@ gncal_day_view_expose (GtkWidget *widget, GdkEventExpose *event) dest.width -= 2 * TEXT_BORDER; dest.height -= 2 * TEXT_BORDER; - gdk_gc_set_clip_rectangle (widget->style->fg_gc[GTK_STATE_NORMAL], &dest); + gdk_gc_set_clip_rectangle (gc, &dest); str_width = gdk_string_width (font, dview->day_str); - gdk_draw_string (widget->window, - font, - widget->style->fg_gc[GTK_STATE_NORMAL], + gdk_draw_string (widget->window, font, gc, dest.x + (dest.width - str_width) / 2, dest.y + font->ascent, dview->day_str); - gdk_gc_set_clip_rectangle (widget->style->fg_gc[GTK_STATE_NORMAL], NULL); + gdk_gc_set_clip_rectangle (gc, NULL); } /* Division line */ @@ -325,21 +325,25 @@ gncal_day_view_expose (GtkWidget *widget, GdkEventExpose *event) /* Text */ - rect.x = x1 + TEXT_BORDER; - rect.y = y1 + 3 * TEXT_BORDER + font->ascent + font->descent + widget->style->klass->ythickness; - rect.width = width - 2 * TEXT_BORDER; - rect.height = height - (rect.y - y1) - TEXT_BORDER; - - if (gdk_rectangle_intersect (&rect, &event->area, &dest)) - view_utils_draw_events (widget, - widget->window, - widget->style->fg_gc[GTK_STATE_NORMAL], - &rect, - VIEW_UTILS_DRAW_END | VIEW_UTILS_DRAW_SPLIT, - dview->events, - dview->lower, - dview->upper); + if (dview->events != NULL){ + rect.x = x1 + TEXT_BORDER; + rect.y = y1 + 3 * TEXT_BORDER + + font->ascent + font->descent + + widget->style->klass->ythickness; + rect.width = width - 2 * TEXT_BORDER; + rect.height = height - (rect.y - y1) - TEXT_BORDER; + + if (gdk_rectangle_intersect (&rect, &event->area, &dest)) + view_utils_draw_events ( + widget, widget->window, gc, + &rect, + VIEW_UTILS_DRAW_END | VIEW_UTILS_DRAW_SPLIT, + dview->events, + dview->lower, + dview->upper); + } + gdk_gc_set_clip_rectangle (gc, NULL); return FALSE; } |