Author: juha
Date: 2008-03-17 20:44:57 +0000 (Mon, 17 Mar 2008)
New Revision: 26682

Modified:
   xfcalendar/trunk/src/about-xfcalendar.c
   xfcalendar/trunk/src/appointment.c
   xfcalendar/trunk/src/appointment.h
   xfcalendar/trunk/src/event-list.c
   xfcalendar/trunk/src/main.c
   xfcalendar/trunk/src/mainbox.c
   xfcalendar/trunk/src/parameters.c
   xfcalendar/trunk/src/parameters.h
   xfcalendar/trunk/src/reminder.c
   xfcalendar/trunk/src/tray_icon.c
   xfcalendar/trunk/src/tray_icon.h
Log:
minor changes in tray icon handling
minor changes in h files making them less dependent on each other



Modified: xfcalendar/trunk/src/about-xfcalendar.c
===================================================================
--- xfcalendar/trunk/src/about-xfcalendar.c     2008-03-17 18:12:48 UTC (rev 
26681)
+++ xfcalendar/trunk/src/about-xfcalendar.c     2008-03-17 20:44:57 UTC (rev 
26682)
@@ -42,7 +42,7 @@
           , _("Manage your time with Xfce4")
           , XFCE_COPYRIGHT_TEXT("2003-2008", " Juha Kautto")
           , XFCE_LICENSE_GPL);
-  orage_logo = orage_create_icon(xfcal, FALSE, 48, 48);
+  orage_logo = orage_create_icon(FALSE, 48, 48);
   xfce_about_info_set_homepage(about, "http://www.xfce.org";);
 
   /* Credits */

Modified: xfcalendar/trunk/src/appointment.c
===================================================================
--- xfcalendar/trunk/src/appointment.c  2008-03-17 18:12:48 UTC (rev 26681)
+++ xfcalendar/trunk/src/appointment.c  2008-03-17 20:44:57 UTC (rev 26682)
@@ -704,7 +704,7 @@
     gtk_object_destroy(GTK_OBJECT(apptw->Tooltips));
     g_free(apptw->xf_uid);
     g_free(apptw->par);
-    xfical_appt_free(apptw->appt);
+    xfical_appt_free((xfical_appt *)apptw->xf_appt);
     g_free(apptw);
 }
 
@@ -1074,7 +1074,7 @@
 static gboolean save_xfical_from_appt_win(appt_win *apptw)
 {
     gboolean ok = FALSE;
-    xfical_appt *appt = apptw->appt;
+    xfical_appt *appt = (xfical_appt *)apptw->xf_appt;
 
     if (fill_appt_from_apptw(appt, apptw)) {
         /* Here we try to save the event... */
@@ -1241,7 +1241,7 @@
     appt_win *apptw = (appt_win *)user_data;
     xfical_appt *appt;
 
-    appt = apptw->appt;
+    appt = (xfical_appt *)apptw->xf_appt;
     if (xfical_timezone_button_clicked(button, GTK_WINDOW(apptw->Window)
             , &appt->start_tz_loc))
         mark_appointment_changed(apptw);
@@ -1253,7 +1253,7 @@
     appt_win *apptw = (appt_win *)user_data;
     xfical_appt *appt;
 
-    appt = apptw->appt;
+    appt = (xfical_appt *)apptw->xf_appt;
     if (xfical_timezone_button_clicked(button, GTK_WINDOW(apptw->Window)
             , &appt->end_tz_loc))
         mark_appointment_changed(apptw);
@@ -1265,7 +1265,7 @@
     appt_win *apptw = (appt_win *)user_data;
     xfical_appt *appt;
 
-    appt = apptw->appt;
+    appt = (xfical_appt *)apptw->xf_appt;
     if (xfical_timezone_button_clicked(button, GTK_WINDOW(apptw->Window)
             , &appt->completed_tz_loc))
         mark_appointment_changed(apptw);
@@ -1888,10 +1888,10 @@
 
     orage_message(10, "%s appointment: %s", action, par);
     if ((appt = fill_appt_window_get_appt(apptw, action, par)) == NULL) {
-        apptw->appt = NULL;
+        apptw->xf_appt = NULL;
         return;
     }
-    apptw->appt = appt;
+    apptw->xf_appt = appt;
 
     /* first flags */
     apptw->xf_uid = g_strdup(appt->uid);
@@ -2190,7 +2190,7 @@
         , gpointer user_data)
 {
     appt_win *apptw = (appt_win *)user_data;
-    xfical_appt *appt = apptw->appt;
+    xfical_appt *appt = (xfical_appt *)apptw->xf_appt;
 
     fill_appt_from_apptw_alarm(appt, apptw);
     store_default_alarm(appt);
@@ -2200,7 +2200,7 @@
         , gpointer user_data)
 {
     appt_win *apptw = (appt_win *)user_data;
-    xfical_appt *appt = apptw->appt;
+    xfical_appt *appt = (xfical_appt *)apptw->xf_appt;
 
     read_default_alarm(appt);
     fill_appt_window_alarm(appt, apptw);
@@ -2923,7 +2923,7 @@
     apptw = g_new(appt_win, 1);
     apptw->xf_uid = NULL;
     apptw->par = NULL;
-    apptw->appt = NULL;
+    apptw->xf_appt = NULL;
     apptw->el = NULL;
     apptw->dw = NULL;
     apptw->appointment_changed = FALSE;
@@ -2955,7 +2955,7 @@
             , G_CALLBACK(on_appWindow_delete_event_cb), apptw);
 
     fill_appt_window(apptw, action, par);
-    if (apptw->appt) { /* all fine */
+    if (apptw->xf_appt) { /* all fine */
         gtk_widget_show_all(apptw->Window);
         recur_hide_show(apptw);
         type_hide_show(apptw);

Modified: xfcalendar/trunk/src/appointment.h
===================================================================
--- xfcalendar/trunk/src/appointment.h  2008-03-17 18:12:48 UTC (rev 26681)
+++ xfcalendar/trunk/src/appointment.h  2008-03-17 20:44:57 UTC (rev 26682)
@@ -24,8 +24,6 @@
 #ifndef __APPOINTMENT_H__
 #define __APPOINTMENT_H__
 
-#include "ical-code.h"
-
 typedef struct _appt_win
 {
     GtkAccelGroup *accel_group;
@@ -181,7 +179,7 @@
     GtkWidget *Recur_byday_spin_hbox;
     GtkWidget *Recur_byday_spin[7];  /* 0=Mo, 1=Tu ... 6=Su */
 
-    xfical_appt *appt;
+    void *xf_appt; /* this is xfical_appt * */
     gchar *xf_uid;
     gchar *par;
     void  *el;          /* used to refresh calling event list */

Modified: xfcalendar/trunk/src/event-list.c
===================================================================
--- xfcalendar/trunk/src/event-list.c   2008-03-17 18:12:48 UTC (rev 26681)
+++ xfcalendar/trunk/src/event-list.c   2008-03-17 20:44:57 UTC (rev 26682)
@@ -695,7 +695,8 @@
 {
     char *title;
 
-    title = orage_cal_to_i18_date(GTK_CALENDAR(g_par.xfcal->mCalendar));
+    title = orage_cal_to_i18_date(
+            GTK_CALENDAR(((CalWin *)g_par.xfcal)->mCalendar));
     set_el_data(el, title);
 }
 
@@ -814,7 +815,7 @@
     tm_date = orage_i18_date_to_tm_date(
             gtk_window_get_title(GTK_WINDOW(el->Window)));
     orage_move_day(&tm_date, day);
-    orage_select_date(GTK_CALENDAR(g_par.xfcal->mCalendar)
+    orage_select_date(GTK_CALENDAR(((CalWin *)g_par.xfcal)->mCalendar)
             , tm_date.tm_year + 1900, tm_date.tm_mon, tm_date.tm_mday);
     set_el_data_from_cal(el);
 }
@@ -831,7 +832,7 @@
 
 static void go_to_today(el_win *el)
 {
-    orage_select_today(GTK_CALENDAR(g_par.xfcal->mCalendar));
+    orage_select_today(GTK_CALENDAR(((CalWin *)g_par.xfcal)->mCalendar));
     set_el_data_from_cal(el);
 }
 
@@ -1346,7 +1347,7 @@
 
     gtk_drag_source_set(el->TreeView, GDK_BUTTON1_MASK
             , drag_targets, DRAG_TARGET_COUNT, GDK_ACTION_COPY);
-    pixbuf = orage_create_icon(g_par.xfcal, TRUE, 16, 16);
+    pixbuf = orage_create_icon(TRUE, 16, 16);
     gtk_drag_source_set_icon_pixbuf(el->TreeView, pixbuf);
     g_object_unref(pixbuf);
     g_signal_connect(el->TreeView, "drag_data_get"

Modified: xfcalendar/trunk/src/main.c
===================================================================
--- xfcalendar/trunk/src/main.c 2008-03-17 18:12:48 UTC (rev 26681)
+++ xfcalendar/trunk/src/main.c 2008-03-17 20:44:57 UTC (rev 26682)
@@ -103,29 +103,32 @@
 {
     GdkScreen *screen = NULL;
     GdkWindow *window;
+    CalWin *cal = (CalWin *)g_par.xfcal;
 
     /*
     screen = xfce_gdk_display_locate_monitor_with_pointer(NULL, NULL);
     */
-    gtk_window_set_screen(GTK_WINDOW(g_par.xfcal->mWindow)
+    gtk_window_set_screen(GTK_WINDOW(cal->mWindow)
             , screen ? screen : gdk_screen_get_default());
     if (g_par.pos_x || g_par.pos_y)
-        gtk_window_move(GTK_WINDOW(g_par.xfcal->mWindow)
+        gtk_window_move(GTK_WINDOW(cal->mWindow)
                 , g_par.pos_x, g_par.pos_y);
     if (g_par.select_always_today)
-        orage_select_today(GTK_CALENDAR(g_par.xfcal->mCalendar));
+        orage_select_today(GTK_CALENDAR(cal->mCalendar));
     if (g_par.set_stick)
-        gtk_window_stick(GTK_WINDOW(g_par.xfcal->mWindow));
-    gtk_window_set_keep_above(GTK_WINDOW(g_par.xfcal->mWindow)
+        gtk_window_stick(GTK_WINDOW(cal->mWindow));
+    gtk_window_set_keep_above(GTK_WINDOW(cal->mWindow)
             , g_par.set_ontop);
-    window = GTK_WIDGET(g_par.xfcal->mWindow)->window;
+    window = GTK_WIDGET(cal->mWindow)->window;
     gdk_x11_window_set_user_time(window, gdk_x11_get_server_time(window));
-    gtk_window_present(GTK_WINDOW(g_par.xfcal->mWindow));
+    gtk_window_present(GTK_WINDOW(cal->mWindow));
 }
 
 static gboolean client_message_received(GtkWidget *widget
         , GdkEventClient *event, gpointer user_data)
 {
+    CalWin *cal = (CalWin *)g_par.xfcal;
+
     if (event->message_type ==
             gdk_atom_intern("_XFCE_CALENDAR_RAISE", FALSE)) {
         raise_window();
@@ -133,9 +136,9 @@
     }
     else if (event->message_type ==
             gdk_atom_intern("_XFCE_CALENDAR_TOGGLE_HERE", FALSE)) {
-        if (GTK_WIDGET_VISIBLE(g_par.xfcal->mWindow)) {
+        if (GTK_WIDGET_VISIBLE(cal->mWindow)) {
             write_parameters();
-            gtk_widget_hide(g_par.xfcal->mWindow);
+            gtk_widget_hide(cal->mWindow);
             return TRUE;
         }
         else {
@@ -433,8 +436,8 @@
 
     g_par.xfcal = g_new(CalWin, 1);
     /* Create the main window */
-    g_par.xfcal->mWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-    g_signal_connect((gpointer) g_par.xfcal->mWindow, "delete_event"
+    ((CalWin *)g_par.xfcal)->mWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+    g_signal_connect((gpointer) ((CalWin *)g_par.xfcal)->mWindow, 
"delete_event"
             , G_CALLBACK(mWindow_delete_event_cb), (gpointer)g_par.xfcal);
 
     /* 
@@ -461,19 +464,20 @@
     build_mainWin();
     set_parameters();
     if (g_par.start_visible) {
-        gtk_widget_show(g_par.xfcal->mWindow);
+        gtk_widget_show(((CalWin *)g_par.xfcal)->mWindow);
     }
     else if (g_par.start_minimized) {
-        gtk_window_iconify(GTK_WINDOW(g_par.xfcal->mWindow));
-        gtk_widget_show(g_par.xfcal->mWindow);
+        gtk_window_iconify(GTK_WINDOW(((CalWin *)g_par.xfcal)->mWindow));
+        gtk_widget_show(((CalWin *)g_par.xfcal)->mWindow);
     }
     else { /* hidden */
-        gtk_widget_realize(g_par.xfcal->mWindow);
-        gtk_widget_hide(g_par.xfcal->mWindow);
+        gtk_widget_realize(((CalWin *)g_par.xfcal)->mWindow);
+        gtk_widget_hide(((CalWin *)g_par.xfcal)->mWindow);
     }
     reset_orage_day_change(FALSE); /* first day change after we start */
     alarm_read();
-    mCalendar_month_changed_cb((GtkCalendar *)g_par.xfcal->mCalendar, NULL);
+    mCalendar_month_changed_cb(
+            (GtkCalendar *)((CalWin *)g_par.xfcal)->mCalendar, NULL);
 
     /* start monitoring foreign file updates if we have foreign files */
     if (g_par.foreign_count)

Modified: xfcalendar/trunk/src/mainbox.c
===================================================================
--- xfcalendar/trunk/src/mainbox.c      2008-03-17 18:12:48 UTC (rev 26681)
+++ xfcalendar/trunk/src/mainbox.c      2008-03-17 20:44:57 UTC (rev 26682)
@@ -65,7 +65,7 @@
 #endif
     if (!xfical_file_open(TRUE))
         return(FALSE);
-    xfical_mark_calendar(GTK_CALENDAR(g_par.xfcal->mCalendar));
+    xfical_mark_calendar(GTK_CALENDAR(((CalWin *)g_par.xfcal)->mCalendar));
     xfical_file_close(TRUE);
     return(TRUE);
 }
@@ -249,7 +249,7 @@
 #undef P_N
 #define P_N "build_menu: "
     GtkWidget *menu_separator;
-    CalWin *cal = g_par.xfcal;
+    CalWin *cal = (CalWin *)g_par.xfcal;
 
 #ifdef ORAGE_DEBUG
     orage_message(-100, P_N);
@@ -306,7 +306,7 @@
     cal->mHelp_about = orage_image_menu_item_new_from_stock("gtk-about"
             , cal->mHelp_menu, cal->mAccel_group);
 
-    gtk_widget_show_all(g_par.xfcal->mMenubar);
+    gtk_widget_show_all(((CalWin *)g_par.xfcal)->mMenubar);
 
     /* Signals */
     g_signal_connect((gpointer) cal->mFile_newApp, "activate"
@@ -352,7 +352,7 @@
 #undef P_N
 #define P_N "add_info_row: "
     GtkWidget *ev, *label;
-    CalWin *cal = g_par.xfcal;
+    CalWin *cal = (CalWin *)g_par.xfcal;
     gchar *tip, *tmp;
     struct tm *t;
     char      *l_time, *s_time, *e_time, *c_time, *na;
@@ -458,7 +458,7 @@
 #define P_N "info_process: "
     xfical_appt *appt = (xfical_appt *)a;;
     GtkBox *box = GTK_BOX(pbox);
-    CalWin *cal = g_par.xfcal;
+    CalWin *cal = (CalWin *)g_par.xfcal;
     gboolean todo;
 
 #ifdef ORAGE_DEBUG
@@ -476,7 +476,7 @@
 {
 #undef P_N
 #define P_N "create_mainbox_todo_info: "
-    CalWin *cal = g_par.xfcal;
+    CalWin *cal = (CalWin *)g_par.xfcal;
 
 #ifdef ORAGE_DEBUG
     orage_message(-100, P_N);
@@ -504,7 +504,7 @@
 {
 #undef P_N
 #define P_N "create_mainbox_event_info: "
-    CalWin *cal = g_par.xfcal;
+    CalWin *cal = (CalWin *)g_par.xfcal;
     gchar *tmp;
 
 #ifdef ORAGE_DEBUG
@@ -537,7 +537,7 @@
 {
 #undef P_N
 #define P_N "build_mainbox_todo_info: "
-    CalWin *cal = g_par.xfcal;
+    CalWin *cal = (CalWin *)g_par.xfcal;
     char      *s_time;
     char      a_day[9];  /* yyyymmdd */
     struct tm *t;
@@ -584,7 +584,7 @@
 {
 #undef P_N
 #define P_N "build_mainbox_event_info: "
-    CalWin *cal = g_par.xfcal;
+    CalWin *cal = (CalWin *)g_par.xfcal;
     char      *s_time;
     char      a_day[9];  /* yyyymmdd */
     struct tm tt= {0,0,0,0,0,0,0,0,0};
@@ -667,7 +667,7 @@
 #undef P_N
 #define P_N "build_mainWin: "
     GdkPixbuf *orage_logo;
-    CalWin *cal = g_par.xfcal;
+    CalWin *cal = (CalWin *)g_par.xfcal;
     GdkColormap *pic1_cmap;
 
 #ifdef ORAGE_DEBUG
@@ -682,7 +682,7 @@
     /* using static icon here since this dynamic icon is not updated
      * when date changes. Could be added, but not worth it.
      * Dynamic icon is used in systray and about windows */
-    orage_logo = orage_create_icon(cal, TRUE, 48, 48); 
+    orage_logo = orage_create_icon(TRUE, 48, 48); 
     cal->mAccel_group = gtk_accel_group_new();
     cal->Tooltips = gtk_tooltips_new();
 

Modified: xfcalendar/trunk/src/parameters.c
===================================================================
--- xfcalendar/trunk/src/parameters.c   2008-03-17 18:12:48 UTC (rev 26681)
+++ xfcalendar/trunk/src/parameters.c   2008-03-17 20:44:57 UTC (rev 26682)
@@ -43,6 +43,7 @@
 #include "tray_icon.h"
 #include "ical-code.h"
 #include "parameters.h"
+#include "mainbox.h"
 
 
 static gboolean is_running = FALSE;
@@ -185,7 +186,7 @@
 
 static void set_border()
 {
-    gtk_window_set_decorated(GTK_WINDOW(g_par.xfcal->mWindow)
+    gtk_window_set_decorated(GTK_WINDOW(((CalWin *)g_par.xfcal)->mWindow)
             , g_par.show_borders);
 }
 
@@ -201,9 +202,9 @@
 static void set_menu()
 {
     if (g_par.show_menu)
-        gtk_widget_show(g_par.xfcal->mMenubar);
+        gtk_widget_show(((CalWin *)g_par.xfcal)->mMenubar);
     else
-        gtk_widget_hide(g_par.xfcal->mMenubar);
+        gtk_widget_hide(((CalWin *)g_par.xfcal)->mMenubar);
 }
 
 static void menu_changed(GtkWidget *dialog, gpointer user_data)
@@ -218,9 +219,9 @@
 static void set_todos()
 {
     if (g_par.show_todos)
-        gtk_widget_show_all(g_par.xfcal->mTodo_vbox);
+        gtk_widget_show_all(((CalWin *)g_par.xfcal)->mTodo_vbox);
     else
-        gtk_widget_hide_all(g_par.xfcal->mTodo_vbox);
+        gtk_widget_hide_all(((CalWin *)g_par.xfcal)->mTodo_vbox);
 }
 
 static void todos_changed(GtkWidget *dialog, gpointer user_data)
@@ -235,9 +236,9 @@
 static void set_events()
 {
     if (g_par.show_events)
-        gtk_widget_show_all(g_par.xfcal->mEvent_vbox);
+        gtk_widget_show_all(((CalWin *)g_par.xfcal)->mEvent_vbox);
     else
-        gtk_widget_hide_all(g_par.xfcal->mEvent_vbox);
+        gtk_widget_hide_all(((CalWin *)g_par.xfcal)->mEvent_vbox);
 }
 
 static void events_changed(GtkWidget *dialog, gpointer user_data)
@@ -252,9 +253,9 @@
 static void set_stick()
 {
     if (g_par.set_stick)
-        gtk_window_stick(GTK_WINDOW(g_par.xfcal->mWindow));
+        gtk_window_stick(GTK_WINDOW(((CalWin *)g_par.xfcal)->mWindow));
     else
-        gtk_window_unstick(GTK_WINDOW(g_par.xfcal->mWindow));
+        gtk_window_unstick(GTK_WINDOW(((CalWin *)g_par.xfcal)->mWindow));
 }
 
 static void stick_changed(GtkWidget *dialog, gpointer user_data)
@@ -268,7 +269,7 @@
 
 static void set_ontop()
 {
-    gtk_window_set_keep_above(GTK_WINDOW(g_par.xfcal->mWindow)
+    gtk_window_set_keep_above(GTK_WINDOW(((CalWin *)g_par.xfcal)->mWindow)
             , g_par.set_ontop);
 }
 
@@ -283,8 +284,8 @@
 
 static void set_taskbar()
 {
-    gtk_window_set_skip_taskbar_hint(GTK_WINDOW(g_par.xfcal->mWindow)
-            , !g_par.show_taskbar);
+    gtk_window_set_skip_taskbar_hint(
+            GTK_WINDOW(((CalWin *)g_par.xfcal)->mWindow), !g_par.show_taskbar);
 }
 
 static void taskbar_changed(GtkWidget *dialog, gpointer user_data)
@@ -298,7 +299,7 @@
 
 static void set_pager()
 {
-    gtk_window_set_skip_pager_hint(GTK_WINDOW(g_par.xfcal->mWindow)
+    gtk_window_set_skip_pager_hint(GTK_WINDOW(((CalWin *)g_par.xfcal)->mWindow)
             , !g_par.show_pager);
 }
 
@@ -313,14 +314,15 @@
 
 static void set_systray()
 {
-    if (!(g_par.trayIcon && NETK_IS_TRAY_ICON(g_par.trayIcon->tray))) {
-        g_par.trayIcon = create_TrayIcon(g_par.xfcal);
+    if (!(g_par.trayIcon 
+    && NETK_IS_TRAY_ICON(((XfceTrayIcon *)g_par.trayIcon)->tray))) {
+        g_par.trayIcon = create_TrayIcon();
     }
 
     if (g_par.show_systray)
-        xfce_tray_icon_connect(g_par.trayIcon);
+        xfce_tray_icon_connect((XfceTrayIcon *)g_par.trayIcon);
     else
-        xfce_tray_icon_disconnect(g_par.trayIcon);
+        xfce_tray_icon_disconnect((XfceTrayIcon *)g_par.trayIcon);
 }
 
 static void systray_changed(GtkWidget *dialog, gpointer user_data)
@@ -425,13 +427,7 @@
 
 static void set_icon_size()
 {
-    if (g_par.trayIcon && NETK_IS_TRAY_ICON(g_par.trayIcon->tray)) {
-        /* refresh date in tray icon */
-        xfce_tray_icon_disconnect(g_par.trayIcon);
-        destroy_TrayIcon(g_par.trayIcon);
-        g_par.trayIcon = create_TrayIcon(g_par.xfcal);
-        xfce_tray_icon_connect(g_par.trayIcon);
-    }
+    refresh_TrayIcon();
 }
 
 static void icon_size_x_spin_changed(GtkSpinButton *sb, gpointer user_data)
@@ -895,7 +891,7 @@
 #endif
     orage_rc_put_str(orc, "Orage file", g_par.orage_file);
     orage_rc_put_str(orc, "Sound application", g_par.sound_application);
-    gtk_window_get_position(GTK_WINDOW(g_par.xfcal->mWindow)
+    gtk_window_get_position(GTK_WINDOW(((CalWin *)g_par.xfcal)->mWindow)
             , &g_par.pos_x, &g_par.pos_y);
     orage_rc_put_int(orc, "Main window X", g_par.pos_x);
     orage_rc_put_int(orc, "Main window Y", g_par.pos_y);

Modified: xfcalendar/trunk/src/parameters.h
===================================================================
--- xfcalendar/trunk/src/parameters.h   2008-03-17 18:12:48 UTC (rev 26681)
+++ xfcalendar/trunk/src/parameters.h   2008-03-17 20:44:57 UTC (rev 26682)
@@ -23,9 +23,6 @@
 #ifndef __ORAGE_PARAMETERS_H__
 #define __ORAGE_PARAMETERS_H__
 
-#include "xfce_trayicon.h"
-#include "mainbox.h"
-
 #define BORDER 5
 typedef struct _foreign_file
 {
@@ -78,11 +75,11 @@
     guint tooltip_timer; /* keeps tooltips upto date */
 
     /* main window */
-    CalWin *xfcal;
+    void *xfcal;     /* this is main calendar CalWin * */
     gint pos_x, pos_y;
 
     /* tray icon */
-    XfceTrayIcon *trayIcon;
+    void *trayIcon; /* this is XfceTrayIcon * */
     gint icon_size_x, icon_size_y;
 
     /* event-list window */

Modified: xfcalendar/trunk/src/reminder.c
===================================================================
--- xfcalendar/trunk/src/reminder.c     2008-03-17 18:12:48 UTC (rev 26681)
+++ xfcalendar/trunk/src/reminder.c     2008-03-17 20:44:57 UTC (rev 26682)
@@ -426,8 +426,10 @@
     strncat(heading, alarm->title, 50);
     n = notify_notification_new(heading, alarm->description, NULL, NULL);
     alarm->active_alarm->active_notify = n;
-    if (g_par.trayIcon && NETK_IS_TRAY_ICON(g_par.trayIcon->tray)) 
-        notify_notification_attach_to_widget(n, g_par.trayIcon->image);
+    if (g_par.trayIcon 
+    && NETK_IS_TRAY_ICON(((XfceTrayIcon *)g_par.trayIcon)->tray)) 
+        notify_notification_attach_to_widget(n
+                , ((XfceTrayIcon *)g_par.trayIcon)->image);
 
     if (alarm->notify_timeout == -1)
         notify_notification_set_timeout(n, NOTIFY_EXPIRES_NEVER);
@@ -648,7 +650,6 @@
 {
 #undef P_N
 #define P_N "orage_day_change: "
-    CalWin *xfcal;
     struct tm *t;
     static guint previous_year=0, previous_month=0, previous_day=0;
     guint selected_year=0, selected_month=0, selected_day=0;
@@ -666,29 +667,20 @@
         current_month = t->tm_mon;
         current_day   = t->tm_mday;
       /* Get the selected date from calendar */
-        xfcal = g_par.xfcal;
-        gtk_calendar_get_date(GTK_CALENDAR (xfcal->mCalendar),
+        gtk_calendar_get_date(GTK_CALENDAR(((CalWin *)g_par.xfcal)->mCalendar),
                  &selected_year, &selected_month, &selected_day);
         if (selected_year == previous_year 
         && selected_month == previous_month 
         && selected_day == previous_day) {
             /* previous day was indeed selected, 
                keep it current automatically */
-            orage_select_date(GTK_CALENDAR(xfcal->mCalendar)
+            orage_select_date(GTK_CALENDAR(((CalWin *)g_par.xfcal)->mCalendar)
                     , current_year, current_month, current_day);
         }
         previous_year  = current_year;
         previous_month = current_month;
         previous_day   = current_day;
-        if (g_par.show_systray) {
-            /* refresh date in tray icon */
-            if (g_par.trayIcon && NETK_IS_TRAY_ICON(g_par.trayIcon->tray)) { 
-                xfce_tray_icon_disconnect(g_par.trayIcon);
-                destroy_TrayIcon(g_par.trayIcon);
-            }
-            g_par.trayIcon = create_TrayIcon(xfcal);
-            xfce_tray_icon_connect(g_par.trayIcon);
-        }
+        refresh_TrayIcon();
         xfical_alarm_build_list(TRUE);  /* new alarm list when date changed */
         reset_orage_day_change(TRUE); /* setup for next time */
     }
@@ -821,7 +813,8 @@
 #ifdef ORAGE_DEBUG
     orage_message(-100, P_N);
 #endif
-    if (!(g_par.trayIcon && NETK_IS_TRAY_ICON(g_par.trayIcon->tray))) { 
+    if (!(g_par.trayIcon 
+    && NETK_IS_TRAY_ICON(((XfceTrayIcon *)g_par.trayIcon)->tray))) { 
            /* no trayicon => no need to update the tooltip */
         return(FALSE);
     }
@@ -863,7 +856,8 @@
     }
     if (alarm_cnt == 0)
         g_string_append_printf(tooltip, _("\nNo active alarms found"));
-    xfce_tray_icon_set_tooltip(g_par.trayIcon, tooltip->str, NULL);
+    xfce_tray_icon_set_tooltip((XfceTrayIcon *)g_par.trayIcon, tooltip->str
+            , NULL);
     g_string_free(tooltip, TRUE);
     return(TRUE);
 }

Modified: xfcalendar/trunk/src/tray_icon.c
===================================================================
--- xfcalendar/trunk/src/tray_icon.c    2008-03-17 18:12:48 UTC (rev 26681)
+++ xfcalendar/trunk/src/tray_icon.c    2008-03-17 20:44:57 UTC (rev 26682)
@@ -45,6 +45,7 @@
 #include "xfce_trayicon.h"
 #include "parameters.h"
 
+#define ORAGE_TRAYICON ((XfceTrayIcon *)g_par.trayIcon)
 
 void orage_toggle_visible();
 
@@ -79,208 +80,208 @@
 
 void on_about_activate(GtkMenuItem *menuitem, gpointer user_data)
 {
-  create_wAbout((GtkWidget *)menuitem, user_data);
+    create_wAbout((GtkWidget *)menuitem, user_data);
 }
 
 void toggle_visible_cb ()
 {
-  orage_toggle_visible ();
+    orage_toggle_visible ();
 }
 
-GdkPixbuf *orage_create_icon(CalWin *xfcal, gboolean static_icon
-        , gint x, gint y)
+GdkPixbuf *orage_create_icon(gboolean static_icon, gint x, gint y)
 {
-  GtkIconTheme *icon_theme = NULL;
-  GdkPixbuf *pixbuf;
-  GdkPixmap *pic1;
-  GdkGC *pic1_gc1, *pic1_gc2;
-  GdkColormap *pic1_cmap;
-  GdkColor color;
-  GdkVisual *pic1_vis;
-  PangoLayout *pl_day, *pl_head, *pl_month;
-  gint width = 0, height = 0, depth = 16;
-  gint red = 239, green = 235, blue = 230;
-  PangoRectangle real_rect, log_rect;
-  struct tm *t;
-  gchar ts[200], month[50];
-  gint x_offset = 0, y_offset = 0, y_used = 0, i, limit;
-  gint x_day = 0, y_day = 0;
-  gint x_head = 0, y_head = 0, y_used_head = 0;
-  gint x_month = 0, y_month = 0, y_used_month = 0;
-  gboolean draw_head = FALSE, draw_month = FALSE;
-  gboolean draw_dynamic = FALSE, work_in_progress = TRUE;
-  gchar *day_sizes[] = {"xx-large", "x-large", "large", "medium"
-                      , "small", "x-small", "xx-small", "END"};
+    CalWin *xfcal = (CalWin *)g_par.xfcal;
+    GtkIconTheme *icon_theme = NULL;
+    GdkPixbuf *pixbuf;
+    GdkPixmap *pic1;
+    GdkGC *pic1_gc1, *pic1_gc2;
+    GdkColormap *pic1_cmap;
+    GdkColor color;
+    GdkVisual *pic1_vis;
+    PangoLayout *pl_day, *pl_head, *pl_month;
+    gint width = 0, height = 0, depth = 16;
+    gint red = 239, green = 235, blue = 230;
+    PangoRectangle real_rect, log_rect;
+    struct tm *t;
+    gchar ts[200], month[50];
+    gint x_offset = 0, y_offset = 0, y_used = 0, i, limit;
+    gint x_day = 0, y_day = 0;
+    gint x_head = 0, y_head = 0, y_used_head = 0;
+    gint x_month = 0, y_month = 0, y_used_month = 0;
+    gboolean draw_head = FALSE, draw_month = FALSE;
+    gboolean draw_dynamic = FALSE, work_in_progress = TRUE;
+    gchar *day_sizes[] = {"xx-large", "x-large", "large", "medium"
+                         , "small", "x-small", "xx-small", "END"};
 
-  icon_theme = gtk_icon_theme_get_default();
-  if (static_icon) {
-      pixbuf = gtk_icon_theme_load_icon(icon_theme, "xfcalendar", x
-              , GTK_ICON_LOOKUP_USE_BUILTIN, NULL);
-      return(pixbuf);
-  }
-  if (x <= 12 || y <= 12) {
-      orage_message(110, "Too small icon size, using static icon\n");
-      pixbuf = gtk_icon_theme_load_icon(icon_theme, "xfcalendar", 16
-              , GTK_ICON_LOOKUP_USE_BUILTIN, NULL);
-      return(pixbuf);
-  }
-  if (g_par.icon_size_x == 0 
-  ||  g_par.icon_size_y == 0) { /* signal to use static icon */
-      orage_message(110, "Icon size set to zero, using static icon\n");
-      pixbuf = gtk_icon_theme_load_icon(icon_theme, "xfcalendar", x
-              , GTK_ICON_LOOKUP_USE_BUILTIN, NULL);
-      return(pixbuf);
-  }
+    icon_theme = gtk_icon_theme_get_default();
+    if (static_icon) {
+        pixbuf = gtk_icon_theme_load_icon(icon_theme, "xfcalendar", x
+                , GTK_ICON_LOOKUP_USE_BUILTIN, NULL);
+        return(pixbuf);
+    }
+    if (x <= 12 || y <= 12) {
+        orage_message(110, "Too small icon size, using static icon\n");
+        pixbuf = gtk_icon_theme_load_icon(icon_theme, "xfcalendar", 16
+                , GTK_ICON_LOOKUP_USE_BUILTIN, NULL);
+        return(pixbuf);
+    }
+    if (g_par.icon_size_x == 0 
+    ||  g_par.icon_size_y == 0) { /* signal to use static icon */
+        orage_message(110, "Icon size set to zero, using static icon\n");
+        pixbuf = gtk_icon_theme_load_icon(icon_theme, "xfcalendar", x
+                , GTK_ICON_LOOKUP_USE_BUILTIN, NULL);
+        return(pixbuf);
+    }
 
-  t = orage_localtime();
-  width = x; 
-  height = y;
-  pic1_cmap = gdk_colormap_get_system();
-  pic1_vis = gdk_colormap_get_visual(pic1_cmap);
-  depth = pic1_vis->depth;
-  pic1 = gdk_pixmap_new(NULL, width, height, depth);
-  gdk_drawable_set_colormap(pic1, pic1_cmap);
-  /* pic1_cmap = gtk_widget_get_colormap(xfcal->mWindow); */
-  pic1_gc1 = gdk_gc_new(pic1);
-  pic1_gc2 = gdk_gc_new(pic1);
-  color.red = red * (65535/255);
-  color.green = green * (65535/255);
-  color.blue = blue * (65535/255);
-  color.pixel = (gulong)(red*65536 + green*256 + blue);
-  /*
-  gdk_color_alloc(pic1_cmap, &color);
-  */
-  gdk_colormap_alloc_color(pic1_cmap, &color, FALSE, TRUE);
-  gdk_gc_set_foreground(pic1_gc1, &color);
-  gdk_draw_rectangle(pic1, pic1_gc1, TRUE, 0, 0, width, height);
-  gdk_draw_rectangle(pic1, pic1_gc2, FALSE, 0, 0, width-1, height-1);
-  gdk_draw_rectangle(pic1, pic1_gc2, FALSE, 0, 0, width-3, height-3);
+    t = orage_localtime();
+    width = x; 
+    height = y;
+    pic1_cmap = gdk_colormap_get_system();
+    pic1_vis = gdk_colormap_get_visual(pic1_cmap);
+    depth = pic1_vis->depth;
+    pic1 = gdk_pixmap_new(NULL, width, height, depth);
+    gdk_drawable_set_colormap(pic1, pic1_cmap);
+    /* pic1_cmap = gtk_widget_get_colormap(xfcal->mWindow); */
+    pic1_gc1 = gdk_gc_new(pic1);
+    pic1_gc2 = gdk_gc_new(pic1);
+    color.red = red * (65535/255);
+    color.green = green * (65535/255);
+    color.blue = blue * (65535/255);
+    color.pixel = (gulong)(red*65536 + green*256 + blue);
+    /*
+    gdk_color_alloc(pic1_cmap, &color);
+    */
+    gdk_colormap_alloc_color(pic1_cmap, &color, FALSE, TRUE);
+    gdk_gc_set_foreground(pic1_gc1, &color);
+    gdk_draw_rectangle(pic1, pic1_gc1, TRUE, 0, 0, width, height);
+    gdk_draw_rectangle(pic1, pic1_gc2, FALSE, 0, 0, width-1, height-1);
+    gdk_draw_rectangle(pic1, pic1_gc2, FALSE, 0, 0, width-3, height-3);
 
-  /* gdk_draw_line(pic1, pic1_gc1, 10, 20, 30, 38); */
+    /* gdk_draw_line(pic1, pic1_gc1, 10, 20, 30, 38); */
 
-  /* create any valid pango layout to get things started */
-  /* this does not quite work, but almost
-  pl_day = 
pango_layout_new(gdk_pango_context_get_for_screen(gdk_screen_get_default()));
-  */
-  pl_day = gtk_widget_create_pango_layout(xfcal->mWindow, "x");
-  pl_head = pango_layout_copy(pl_day);
-  pl_month = pango_layout_copy(pl_day);
+    /* create any valid pango layout to get things started */
+    /* this does not quite work, but almost
+    pl_day = 
pango_layout_new(gdk_pango_context_get_for_screen(gdk_screen_get_default()));
+    */
+    pl_day = gtk_widget_create_pango_layout(xfcal->mWindow, "x");
+    pl_head = pango_layout_copy(pl_day);
+    pl_month = pango_layout_copy(pl_day);
 
-  /* heading: orage */
-  g_snprintf(ts, 199
-          , "<span foreground=\"blue\" size=\"x-small\">Orage</span>");
-  pango_layout_set_markup(pl_head, ts, -1);
-  pango_layout_set_alignment(pl_head, PANGO_ALIGN_CENTER);
-  pango_layout_get_extents(pl_head, &real_rect, &log_rect);
-  x_offset = (width - PANGO_PIXELS(log_rect.width) - 2)/2;
-  y_offset = -2;
-  /* g_print("orage offset x=%d y=%d height=%d text height=%d real text 
height=%d\n" , x_offset, y_offset, height, PANGO_PIXELS(log_rect.height), 
PANGO_PIXELS(real_rect.height)); */
-  if (x_offset > 0 && (height-PANGO_PIXELS(log_rect.height)-y_offset) > 0) {
-      draw_head = TRUE; /* fits */
-      x_head = x_offset;
-      y_head = y_offset;
-      y_used_head = PANGO_PIXELS(real_rect.height);
-  }
-  else
-      orage_message(110, "trayicon: heading does not fit in dynamic icon");
+    /* heading: orage */
+    g_snprintf(ts, 199
+            , "<span foreground=\"blue\" size=\"x-small\">Orage</span>");
+    pango_layout_set_markup(pl_head, ts, -1);
+    pango_layout_set_alignment(pl_head, PANGO_ALIGN_CENTER);
+    pango_layout_get_extents(pl_head, &real_rect, &log_rect);
+    x_offset = (width - PANGO_PIXELS(log_rect.width) - 2)/2;
+    y_offset = -2;
+    /* g_print("orage offset x=%d y=%d height=%d text height=%d real text 
height=%d\n" , x_offset, y_offset, height, PANGO_PIXELS(log_rect.height), 
PANGO_PIXELS(real_rect.height)); */
+    if (x_offset > 0 && (height-PANGO_PIXELS(log_rect.height)-y_offset) > 0) {
+        draw_head = TRUE; /* fits */
+        x_head = x_offset;
+        y_head = y_offset;
+        y_used_head = PANGO_PIXELS(real_rect.height);
+    }
+    else
+        orage_message(110, "trayicon: heading does not fit in dynamic icon");
 
-  /* month */
-  if (strftime(month, 19, "%^b", t) == 0) {
-      g_warning("orage_create_icon: strftime %%^b failed");
-      if (strftime(month, 19, "%b", t) == 0) {
-          g_warning("orage_create_icon: strftime %%b failed");
-          g_sprintf(month, "orage");
-      }
-  }
-  g_snprintf(ts, 199
-          , "<span foreground=\"blue\" size=\"x-small\">%s</span>", month);
-  pango_layout_set_markup(pl_month, ts, -1);
-  pango_layout_set_alignment(pl_month, PANGO_ALIGN_CENTER);
-  pango_layout_get_extents(pl_month, &real_rect, &log_rect);
-  x_offset = (width - PANGO_PIXELS(real_rect.width) - 2)/2;
-  y_offset = (height - PANGO_PIXELS(log_rect.height) - 2);
-  if (x_offset > 0 && (height - y_offset - PANGO_PIXELS(log_rect.height))) {
-      draw_month = TRUE; /* fits */
-      x_month = x_offset;
-      y_month = y_offset;
-      y_used_month = PANGO_PIXELS(real_rect.height);
-  }
-  else
-      orage_message(110, "trayicon: month does not fit in dynamic icon");
+    /* month */
+    if (strftime(month, 19, "%^b", t) == 0) {
+        g_warning("orage_create_icon: strftime %%^b failed");
+        if (strftime(month, 19, "%b", t) == 0) {
+            g_warning("orage_create_icon: strftime %%b failed");
+            g_sprintf(month, "orage");
+        }
+    }
+    g_snprintf(ts, 199
+            , "<span foreground=\"blue\" size=\"x-small\">%s</span>", month);
+    pango_layout_set_markup(pl_month, ts, -1);
+    pango_layout_set_alignment(pl_month, PANGO_ALIGN_CENTER);
+    pango_layout_get_extents(pl_month, &real_rect, &log_rect);
+    x_offset = (width - PANGO_PIXELS(real_rect.width) - 2)/2;
+    y_offset = (height - PANGO_PIXELS(log_rect.height) - 2);
+    if (x_offset > 0 && (height - y_offset - PANGO_PIXELS(log_rect.height))) {
+        draw_month = TRUE; /* fits */
+        x_month = x_offset;
+        y_month = y_offset;
+        y_used_month = PANGO_PIXELS(real_rect.height);
+    }
+    else
+        orage_message(110, "trayicon: month does not fit in dynamic icon");
 
-  do { /* main loop where we try our best to fit header+day+month into icon */
-      y_used = 0;
-      if (draw_month || draw_head) {
-          limit = 3; /* = medium */
-          if (draw_head)
-              y_used += y_used_head;
-          if (draw_month)
-              y_used += y_used_month;
-      }
-      else
-          limit = 10; /* no limit */
+    do { /* main loop where we try our best to fit header+day+month into icon 
*/
+        y_used = 0;
+        if (draw_month || draw_head) {
+            limit = 3; /* = medium */
+            if (draw_head)
+                y_used += y_used_head;
+            if (draw_month)
+                y_used += y_used_month;
+        }
+        else
+            limit = 10; /* no limit */
 
-  /* day */
-      for (i = 0, x_offset = 0, y_offset = 0; 
-           (strcmp(day_sizes[i], "END") != 0) 
-                && (i <= limit)
-                && ((x_offset <= 0) || ((y_offset) <= 0));
-           i++) {
-          g_snprintf(ts, 199
-                  , "<span foreground=\"red\" weight=\"bold\" 
size=\"%s\">%02d</span>"
-                  , day_sizes[i], t->tm_mday);
-          pango_layout_set_markup(pl_day, ts, -1);
-          pango_layout_set_alignment(pl_day, PANGO_ALIGN_CENTER);
-          pango_layout_get_extents(pl_day, &real_rect, &log_rect);
-          x_offset = (width - PANGO_PIXELS(log_rect.width))/2;
-          y_offset = (height - y_used - PANGO_PIXELS(log_rect.height))/2;
-      } /* for */
-      if (x_offset >= 0 && (y_offset) >= 0) { /* it fits */
-          draw_dynamic = TRUE;
-          work_in_progress = FALSE; /* done! */
-          x_day = x_offset;
-          y_day = (height - PANGO_PIXELS(log_rect.height) - 2)/2;
-          if (!draw_head && draw_month)
-              y_day -= y_used_head/2;
-          if (draw_head && !draw_month)
-              y_day += y_used_head/2;
-      }
-      else {
-          if (draw_head)
-              draw_head = FALSE; /* does not fit */
-          else if (draw_month)
-              draw_month = FALSE; /* does not fit */
-          else
-              work_in_progress = FALSE; /* done! */
-      }
-  } while (work_in_progress);
+    /* day */
+        for (i = 0, x_offset = 0, y_offset = 0; 
+             (strcmp(day_sizes[i], "END") != 0) 
+                  && (i <= limit)
+                  && ((x_offset <= 0) || ((y_offset) <= 0));
+             i++) {
+            g_snprintf(ts, 199
+                    , "<span foreground=\"red\" weight=\"bold\" 
size=\"%s\">%02d</span>"
+                    , day_sizes[i], t->tm_mday);
+            pango_layout_set_markup(pl_day, ts, -1);
+            pango_layout_set_alignment(pl_day, PANGO_ALIGN_CENTER);
+            pango_layout_get_extents(pl_day, &real_rect, &log_rect);
+            x_offset = (width - PANGO_PIXELS(log_rect.width))/2;
+            y_offset = (height - y_used - PANGO_PIXELS(log_rect.height))/2;
+        } /* for */
+        if (x_offset >= 0 && (y_offset) >= 0) { /* it fits */
+            draw_dynamic = TRUE;
+            work_in_progress = FALSE; /* done! */
+            x_day = x_offset;
+            y_day = (height - PANGO_PIXELS(log_rect.height) - 2)/2;
+            if (!draw_head && draw_month)
+                y_day -= y_used_head/2;
+            if (draw_head && !draw_month)
+                y_day += y_used_head/2;
+        }
+        else {
+            if (draw_head)
+                draw_head = FALSE; /* does not fit */
+            else if (draw_month)
+                draw_month = FALSE; /* does not fit */
+            else
+                work_in_progress = FALSE; /* done! */
+        }
+    } while (work_in_progress);
 
-  if (draw_dynamic) {
-      if (draw_head)
-          gdk_draw_layout(pic1, pic1_gc1, x_head, y_head, pl_head);
-      if (draw_month)
-          gdk_draw_layout(pic1, pic1_gc1, x_month, y_month, pl_month);
-      gdk_draw_layout(pic1, pic1_gc1, x_day, y_day, pl_day);
+    if (draw_dynamic) {
+        if (draw_head)
+            gdk_draw_layout(pic1, pic1_gc1, x_head, y_head, pl_head);
+        if (draw_month)
+            gdk_draw_layout(pic1, pic1_gc1, x_month, y_month, pl_month);
+        gdk_draw_layout(pic1, pic1_gc1, x_day, y_day, pl_day);
 
-      pixbuf = gdk_pixbuf_get_from_drawable(NULL, pic1, pic1_cmap
-              , 0, 0, 0, 0, width, height);
-  }
-  else {
-      pixbuf = gtk_icon_theme_load_icon(icon_theme, "xfcalendar", x
-              , GTK_ICON_LOOKUP_USE_BUILTIN, NULL);
-  }
+        pixbuf = gdk_pixbuf_get_from_drawable(NULL, pic1, pic1_cmap
+                , 0, 0, 0, 0, width, height);
+    }
+    else {
+        pixbuf = gtk_icon_theme_load_icon(icon_theme, "xfcalendar", x
+                , GTK_ICON_LOOKUP_USE_BUILTIN, NULL);
+    }
 
-  if (pixbuf == NULL)
-      g_warning("orage_create_icon: load failed\n");
+    if (pixbuf == NULL)
+        g_warning("orage_create_icon: load failed\n");
 
-  g_object_unref(pic1_gc1);
-  g_object_unref(pic1_gc2);
-  g_object_unref(pl_day);
-  g_object_unref(pl_head);
-  g_object_unref(pl_month);
-  g_object_unref(pic1);
+    g_object_unref(pic1_gc1);
+    g_object_unref(pic1_gc2);
+    g_object_unref(pl_day);
+    g_object_unref(pl_head);
+    g_object_unref(pl_month);
+    g_object_unref(pic1);
   
-  return(pixbuf);
+    return(pixbuf);
 }
 
 void destroy_TrayIcon(XfceTrayIcon *trayIcon)
@@ -298,76 +299,88 @@
     */
 }
 
-XfceTrayIcon* create_TrayIcon(CalWin *xfcal)
+XfceTrayIcon* create_TrayIcon()
 {
-  XfceTrayIcon *trayIcon = NULL;
-  GtkWidget *menuItem;
-  GtkWidget *trayMenu;
-  GdkPixbuf *pixbuf;
+    CalWin *xfcal = (CalWin *)g_par.xfcal;
+    XfceTrayIcon *trayIcon = NULL;
+    GtkWidget *menuItem;
+    GtkWidget *trayMenu;
+    GdkPixbuf *pixbuf;
 
-  /*
-   * Create the tray icon popup menu
-   */
-  trayMenu = gtk_menu_new();
-  menuItem = gtk_image_menu_item_new_with_mnemonic(_("Today"));
-  gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuItem)
-          , gtk_image_new_from_stock(GTK_STOCK_HOME, GTK_ICON_SIZE_MENU));
-  g_signal_connect(menuItem, "activate", G_CALLBACK(on_Today_activate)
-          , xfcal);
-  gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
-  gtk_widget_show_all(menuItem);
-  menuItem = gtk_separator_menu_item_new();
-  gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
-  gtk_widget_show(menuItem);
+    /*
+     * Create the tray icon popup menu
+     */
+    trayMenu = gtk_menu_new();
+    menuItem = gtk_image_menu_item_new_with_mnemonic(_("Today"));
+    gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuItem)
+            , gtk_image_new_from_stock(GTK_STOCK_HOME, GTK_ICON_SIZE_MENU));
+    g_signal_connect(menuItem, "activate", G_CALLBACK(on_Today_activate)
+            , xfcal);
+    gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
+    gtk_widget_show_all(menuItem);
+    menuItem = gtk_separator_menu_item_new();
+    gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
+    gtk_widget_show(menuItem);
 
-  menuItem = gtk_image_menu_item_new_with_label(_("New appointment"));
-  gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuItem)
-          , gtk_image_new_from_stock(GTK_STOCK_NEW, GTK_ICON_SIZE_MENU));
-  g_signal_connect(menuItem, "activate"
-          , G_CALLBACK(on_new_appointment_activate), NULL);
-  gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
-  gtk_widget_show(menuItem);
-  menuItem = gtk_separator_menu_item_new();
-  gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
-  gtk_widget_show(menuItem);
+    menuItem = gtk_image_menu_item_new_with_label(_("New appointment"));
+    gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuItem)
+            , gtk_image_new_from_stock(GTK_STOCK_NEW, GTK_ICON_SIZE_MENU));
+    g_signal_connect(menuItem, "activate"
+            , G_CALLBACK(on_new_appointment_activate), NULL);
+    gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
+    gtk_widget_show(menuItem);
+    menuItem = gtk_separator_menu_item_new();
+    gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
+    gtk_widget_show(menuItem);
   
-  menuItem = gtk_image_menu_item_new_from_stock(GTK_STOCK_PREFERENCES, NULL);
-  g_signal_connect(menuItem, "activate", G_CALLBACK(on_preferences_activate)
-          , NULL);
-  gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
-  gtk_widget_show(menuItem);
-  menuItem = gtk_separator_menu_item_new();
-  gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
-  gtk_widget_show(menuItem);
+    menuItem = gtk_image_menu_item_new_from_stock(GTK_STOCK_PREFERENCES, NULL);
+    g_signal_connect(menuItem, "activate", G_CALLBACK(on_preferences_activate)
+            , NULL);
+    gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
+    gtk_widget_show(menuItem);
+    menuItem = gtk_separator_menu_item_new();
+    gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
+    gtk_widget_show(menuItem);
 
-  menuItem = gtk_image_menu_item_new_with_label(_("About Orage"));
-  gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuItem)
-          , gtk_image_new_from_stock(GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU));
-  g_signal_connect(menuItem, "activate", G_CALLBACK(on_about_activate)
-          , xfcal);
-  gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
-  gtk_widget_show(menuItem);
-  menuItem = gtk_separator_menu_item_new();
-  gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
-  gtk_widget_show(menuItem);
+    menuItem = gtk_image_menu_item_new_with_label(_("About Orage"));
+    gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menuItem)
+            , gtk_image_new_from_stock(GTK_STOCK_ABOUT, GTK_ICON_SIZE_MENU));
+    g_signal_connect(menuItem, "activate", G_CALLBACK(on_about_activate)
+            , xfcal);
+    gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
+    gtk_widget_show(menuItem);
+    menuItem = gtk_separator_menu_item_new();
+    gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
+    gtk_widget_show(menuItem);
 
-  menuItem = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, NULL);
-  g_signal_connect(menuItem, "activate", G_CALLBACK(gtk_main_quit), NULL);
-  gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
-  gtk_widget_show(menuItem);
+    menuItem = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, NULL);
+    g_signal_connect(menuItem, "activate", G_CALLBACK(gtk_main_quit), NULL);
+    gtk_menu_shell_append(GTK_MENU_SHELL(trayMenu), menuItem);
+    gtk_widget_show(menuItem);
 
-  /*
-   * Create the tray icon
-   */
+    /*
+     * Create the tray icon
+     */
 
-  pixbuf = orage_create_icon(xfcal, FALSE
-          , g_par.icon_size_x, g_par.icon_size_y);
-  trayIcon = xfce_tray_icon_new_with_menu_from_pixbuf(trayMenu, pixbuf);
-  g_object_ref(trayIcon);
-  gtk_object_sink(GTK_OBJECT(trayIcon));
-  g_object_unref(pixbuf);
+    pixbuf = orage_create_icon(FALSE, g_par.icon_size_x, g_par.icon_size_y);
+    trayIcon = xfce_tray_icon_new_with_menu_from_pixbuf(trayMenu, pixbuf);
+    g_object_ref(trayIcon);
+    gtk_object_sink(GTK_OBJECT(trayIcon));
+    g_object_unref(pixbuf);
 
-  g_signal_connect_swapped(G_OBJECT(trayIcon), "clicked",
-                          G_CALLBACK(toggle_visible_cb), xfcal);
-  return trayIcon;
+    g_signal_connect_swapped(G_OBJECT(trayIcon), "clicked",
+                          G_CALLBACK(toggle_visible_cb), xfcal);
+    return(trayIcon);
 }
+
+void refresh_TrayIcon()
+{
+    if (g_par.show_systray) { /* refresh tray icon */
+        if (ORAGE_TRAYICON && NETK_IS_TRAY_ICON(ORAGE_TRAYICON->tray)) {
+            xfce_tray_icon_disconnect(ORAGE_TRAYICON);
+            destroy_TrayIcon(ORAGE_TRAYICON);
+        }
+        g_par.trayIcon = create_TrayIcon();
+        xfce_tray_icon_connect(ORAGE_TRAYICON);
+    }
+}

Modified: xfcalendar/trunk/src/tray_icon.h
===================================================================
--- xfcalendar/trunk/src/tray_icon.h    2008-03-17 18:12:48 UTC (rev 26681)
+++ xfcalendar/trunk/src/tray_icon.h    2008-03-17 20:44:57 UTC (rev 26682)
@@ -25,13 +25,11 @@
 #define __TRAY_ICON_H__
 
 #include "xfce_trayicon.h"
-#include "mainbox.h"
 
-GdkPixbuf *orage_create_icon(CalWin *xfcal, gboolean static_icon
-        , gint x, gint y);
+GdkPixbuf *orage_create_icon(gboolean static_icon, gint x, gint y);
 
-XfceTrayIcon *create_TrayIcon(CalWin *xfcal);
+XfceTrayIcon *create_TrayIcon(void);
 
-void destroy_TrayIcon(XfceTrayIcon *trayIcon);
+void refresh_TrayIcon(void);
 
 #endif /* !__TRAY_ICON_H__ */

_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to