From 6ac17cdfa573454c2522b986473d392efc8a6831 Mon Sep 17 00:00:00 2001 From: Hugo Villeneuve Date: Sun, 2 Jun 2013 08:17:15 -0400 Subject: [PATCH] Using separate masks for clock and calendar modes --- pixmaps/calendar-mask.xpm | 69 ++++++++++++++++++++++++++ pixmaps/{master.xpm => clock-mask.xpm} | 2 +- src/clock.c | 4 ++ src/dockapp.c | 8 +-- src/dockapp.h | 4 ++ 5 files changed, 80 insertions(+), 7 deletions(-) create mode 100644 pixmaps/calendar-mask.xpm rename pixmaps/{master.xpm => clock-mask.xpm} (99%) diff --git a/pixmaps/calendar-mask.xpm b/pixmaps/calendar-mask.xpm new file mode 100644 index 0000000..1392d1f --- /dev/null +++ b/pixmaps/calendar-mask.xpm @@ -0,0 +1,69 @@ +/* XPM */ +static char * calendar_mask_xpm[] = { +"64 64 2 1", +" c None", +". c #000000", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/pixmaps/master.xpm b/pixmaps/clock-mask.xpm similarity index 99% rename from pixmaps/master.xpm rename to pixmaps/clock-mask.xpm index 8c86b40..19084cc 100644 --- a/pixmaps/master.xpm +++ b/pixmaps/clock-mask.xpm @@ -1,5 +1,5 @@ /* XPM */ -static char * master_xpm[] = { +static char * clock_mask_xpm[] = { "64 64 117 2", " c None", ". c #737584", diff --git a/src/clock.c b/src/clock.c index 798d152..3bd54aa 100644 --- a/src/clock.c +++ b/src/clock.c @@ -48,6 +48,8 @@ #include "clock.h" #include "hvclock.h" #include "dockapp.h" +#include "clock-mask.xpm" +#include "calendar-mask.xpm" /* Constants */ #define CLOCK_MODE 0 @@ -385,9 +387,11 @@ hvclock_expose(GtkWidget *clock, GdkEventExpose *event) cairo_clip(cr); if (hvclock_mode == CLOCK_MODE) { + dockapp_set_mask(clock, clock_mask_xpm); draw_clock_background(clock, cr); draw_clock_hands(clock, cr); } else { + dockapp_set_mask(clock, calendar_mask_xpm); draw_calendar(clock, cr); } diff --git a/src/dockapp.c b/src/dockapp.c index 6fa197c..d7e268e 100644 --- a/src/dockapp.c +++ b/src/dockapp.c @@ -41,7 +41,6 @@ #include "clock.h" #include "hvclock.h" #include "dockapp.h" -#include "master.xpm" #define GTK_WITHDRAWN_HACK 1 @@ -98,8 +97,8 @@ dockapp_gtk_withdrawn_hack(GtkWidget *dockwin, GtkWidget *iconwin) XDestroyWindow(d, win_temp); } -static void -dockapp_set_mask(GtkWidget *dockwin, GtkWidget *iconwin, char **xpm) +void +dockapp_set_mask(GtkWidget *iconwin, char **xpm) { GdkPixbuf *pixbuf; GdkPixmap *pixmap; @@ -116,7 +115,6 @@ dockapp_set_mask(GtkWidget *dockwin, GtkWidget *iconwin, char **xpm) exit(1); } - gtk_widget_shape_combine_mask(dockwin, mask, 0, 0); gtk_widget_shape_combine_mask(iconwin, mask, 0, 0); } @@ -150,8 +148,6 @@ dockapp_init(int argc, char *argv[], char *display_arg, char *geometry_arg) gtk_widget_realize(iconwin); gdk_window_set_icon(dockwin->window, iconwin->window, NULL, NULL); - dockapp_set_mask(dockwin, iconwin, master_xpm); - hvclock_init(dockwin, iconwin); gtk_widget_show(iconwin); diff --git a/src/dockapp.h b/src/dockapp.h index be19f47..5ae2ac5 100644 --- a/src/dockapp.h +++ b/src/dockapp.h @@ -21,9 +21,13 @@ #ifndef DOCKAPP_H #define DOCKAPP_H 1 +#include #include void dockapp_init(int argc, char *argv[], char *display_arg, char *geometry_arg); +void +dockapp_set_mask(GtkWidget *iconwin, char **xpm); + #endif /* DOCKAPP_H */ -- 2.20.1