[Xfce4-commits] <orage:master> 4.7.4.9 possible to show multiple days in main calendar event box and new parameter to define extra rows in event list window.

Juha Kautto noreply at xfce.org
Sat Oct 10 22:02:01 CEST 2009


Updating branch refs/heads/master
         to e9281c2972c7940e73ebf297cdfe31c75163a6be (commit)
       from ffd1677e2cd932759bea065a120484b42ffda664 (commit)

commit e9281c2972c7940e73ebf297cdfe31c75163a6be
Author: Juha Kautto <juha at xfce.org>
Date:   Sat Oct 10 22:54:20 2009 +0300

    4.7.4.9 possible to show multiple days in main calendar event box and
    new parameter to define extra rows in event list window.
    
    Bug 5848 enhancement to show more than one days events in the main window
    event box. Also new parameter to define how many days to show.
    
    Bug 5847 enhancement to be able to define default extra days to show in event
    list window.

 configure.in.in  |    2 +-
 src/event-list.c |    4 +-
 src/functions.c  |   51 ++++-------------
 src/functions.h  |    1 +
 src/mainbox.c    |   31 ++++++++--
 src/mainbox.h    |    1 +
 src/parameters.c |  167 ++++++++++++++++++++++++-----------------------------
 src/parameters.h |    5 +-
 8 files changed, 122 insertions(+), 140 deletions(-)

diff --git a/configure.in.in b/configure.in.in
index 3862f08..21cf47e 100644
--- a/configure.in.in
+++ b/configure.in.in
@@ -9,7 +9,7 @@ dnl Written for Xfce by Juha Kautto <juha at xfce.org>
 dnl
 
 dnl Version information
-m4_define([orage_version], [4.7.4.8-test])
+m4_define([orage_version], [4.7.4.9-test])
 
 m4_define([gtk_minimum_version], [2.10.0])
 m4_define([xfce_minimum_version], [4.6.0])
diff --git a/src/event-list.c b/src/event-list.c
index 619a2b5..6cb5b15 100644
--- a/src/event-list.c
+++ b/src/event-list.c
@@ -1151,6 +1151,8 @@ static void build_event_tab(el_win *el)
     label = gtk_label_new(_("Extra days to show "));
     hbox =  gtk_hbox_new(FALSE, 0);
     el->event_spin = gtk_spin_button_new_with_range(0, 999, 1);
+    gtk_spin_button_set_value(GTK_SPIN_BUTTON(el->event_spin)
+            , (gdouble)el->days);
     gtk_box_pack_start(GTK_BOX(hbox), el->event_spin, FALSE, FALSE, 15);
     orage_table_add_row(el->event_notebook_page
             , label, hbox
@@ -1327,7 +1329,7 @@ el_win *create_el_win(char *start_date)
     /* initialisation + main window + base vbox */
     el = g_new(el_win, 1);
     el->today = FALSE;
-    el->days = 0;
+    el->days = g_par.el_days;
     el->time_now[0] = 0;
     el->apptw_list = NULL;
     el->Tooltips = gtk_tooltips_new();
diff --git a/src/functions.c b/src/functions.c
index df57036..5d3b8df 100644
--- a/src/functions.c
+++ b/src/functions.c
@@ -354,7 +354,7 @@ char *orage_tm_date_to_i18_date(struct tm *tm_date)
     return(i18_date);
 }
 
-char *orage_cal_to_i18_time(GtkCalendar *cal, gint hh, gint mm)
+struct tm orage_cal_to_tm_time(GtkCalendar *cal, gint hh, gint mm)
 {
     /* dst needs to -1 or mktime adjusts time if we are in another
      * dst setting */
@@ -370,62 +370,33 @@ char *orage_cal_to_i18_time(GtkCalendar *cal, gint hh, gint mm)
     /* need to fill missing tm_wday and tm_yday, which are in use 
      * in some locale's default date. For example in en_IN. mktime does it */
     if (mktime(&tm_date) == (time_t) -1) {
-        g_warning("orage: orage_cal_to_i18_time mktime failed %d %d %d"
+        g_warning("orage: orage_cal_to_tm_time mktime failed %d %d %d"
                 , tm_date.tm_year, tm_date.tm_mon, tm_date.tm_mday);
     }
+    return(tm_date);
+}
+
+char *orage_cal_to_i18_time(GtkCalendar *cal, gint hh, gint mm)
+{
+    struct tm tm_date = {0,0,0,0,0,0,0,0,-1};
+
+    tm_date = orage_cal_to_tm_time(cal, hh, mm);
     return(orage_tm_time_to_i18_time(&tm_date));
 }
 
 char *orage_cal_to_i18_date(GtkCalendar *cal)
 {
-    /* dst needs to -1 or mktime adjusts time if we are in another
-     * dst setting */
     struct tm tm_date = {0,0,0,0,0,0,0,0,-1};
 
-    gtk_calendar_get_date(cal
-            , (unsigned int *)&tm_date.tm_year
-            , (unsigned int *)&tm_date.tm_mon
-            , (unsigned int *)&tm_date.tm_mday);
-    tm_date.tm_year -= 1900;
-    /* need to fill missing tm_wday and tm_yday, which are in use 
-     * in some locale's default date. For example in en_IN. mktime does it */
-    if (mktime(&tm_date) == (time_t) -1) {
-        g_warning("orage: orage_cal_to_i18_date mktime failed %d %d %d"
-                , tm_date.tm_year, tm_date.tm_mon, tm_date.tm_mday);
-    }
+    tm_date = orage_cal_to_tm_time(cal, 1, 1);
     return(orage_tm_date_to_i18_date(&tm_date));
 }
 
 struct tm orage_icaltime_to_tm_time(const char *icaltime, gboolean real_tm)
 {
-    /*
-    int i;
-    */
     struct tm t = {0,0,0,0,0,0,0,0,0};
     char *ret;
 
-    /*
-    i = sscanf(icaltime, XFICAL_APPT_TIME_FORMAT
-            , &t.tm_year, &t.tm_mon, &t.tm_mday
-            , &t.tm_hour, &t.tm_min, &t.tm_sec);
-    switch (i) {
-        case 3: / * date * /
-            t.tm_hour = -1;
-            t.tm_min = -1;
-            t.tm_sec = -1;
-            break;
-        case 6: / * time * /
-            break;
-        default: / * error * /
-            g_error("orage: orage_icaltime_to_tm_time error %s %d", icaltime, i);
-            break;
-    }
-
-    if (real_tm) { / * normalise to standard tm format * /
-        t.tm_year -= 1900;
-        t.tm_mon -= 1;
-    }
-            */
     ret = strptime(icaltime, "%Y%m%dT%H%M%S", &t);
     if (ret == NULL) {
         /* not all format string matched, so it must be DATE */
diff --git a/src/functions.h b/src/functions.h
index c3e942a..685b00d 100644
--- a/src/functions.h
+++ b/src/functions.h
@@ -85,6 +85,7 @@ char *orage_tm_time_to_icaltime(struct tm *t);
 char *orage_icaltime_to_i18_time(const char *icaltime);
 char *orage_i18_time_to_icaltime(const char *i18_time);
 char *orage_i18_date_to_icaltime(const char *i18_date);
+struct tm orage_cal_to_tm_time(GtkCalendar *cal, gint hh, gint mm);
 char *orage_cal_to_i18_time(GtkCalendar *cal, gint hh, gint mm);
 char *orage_cal_to_i18_date(GtkCalendar *cal);
 char *orage_localdate_i18();
diff --git a/src/mainbox.c b/src/mainbox.c
index 70d75ce..412a28d 100644
--- a/src/mainbox.c
+++ b/src/mainbox.c
@@ -506,15 +506,26 @@ static void create_mainbox_event_info_box(void)
 #define P_N "create_mainbox_event_info_box: "
     CalWin *cal = (CalWin *)g_par.xfcal;
     gchar *tmp;
+    struct tm tm_date_start, tm_date_end;
 
 #ifdef ORAGE_DEBUG
     orage_message(-100, P_N);
 #endif
+    tm_date_start = orage_cal_to_tm_time(GTK_CALENDAR(cal->mCalendar), 1, 1);
+
     cal->mEvent_vbox = gtk_vbox_new(FALSE, 0);
     gtk_box_pack_start(GTK_BOX(cal->mVbox), cal->mEvent_vbox, FALSE, FALSE, 0);
     cal->mEvent_label = gtk_label_new(NULL);
-    tmp = g_strdup_printf(_("<b>Events for %s:</b>")
-            , orage_cal_to_i18_date(GTK_CALENDAR(cal->mCalendar)));
+    if (g_par.show_event_days == 1) 
+        tmp = g_strdup_printf(_("<b>Events for %s:</b>")
+                , orage_tm_date_to_i18_date(&tm_date_start));
+    else {
+        tm_date_end = tm_date_start;
+        orage_move_day(&tm_date_end, g_par.show_event_days-1);
+        tmp = g_strdup_printf(_("<b>Events for %s - %s:</b>")
+                , orage_tm_date_to_i18_date(&tm_date_start)
+                , orage_tm_date_to_i18_date(&tm_date_end));
+    }
     gtk_label_set_markup(GTK_LABEL(cal->mEvent_label), tmp);
     g_free(tmp);
 
@@ -597,7 +608,7 @@ static void build_mainbox_event_info(void)
 #ifdef ORAGE_DEBUG
     orage_message(-100, P_N);
 #endif
-    if (g_par.show_events) {
+    if (g_par.show_event_days) {
         gtk_calendar_get_date(GTK_CALENDAR(cal->mCalendar)
                 , (unsigned int *)&tt.tm_year
                 , (unsigned int *)&tt.tm_mon
@@ -612,14 +623,14 @@ static void build_mainbox_event_info(void)
         /*
         insert_rows(&event_list, a_day, ical_type, file_type);
         */
-        xfical_get_each_app_within_time(a_day, 1
+        xfical_get_each_app_within_time(a_day, g_par.show_event_days
                 , ical_type, file_type, &event_list);
         for (i = 0; i < g_par.foreign_count; i++) {
             g_sprintf(file_type, "F%02d.", i);
             /*
             insert_rows(&event_list, a_day, ical_type, file_type);
             */
-            xfical_get_each_app_within_time(a_day, 1
+            xfical_get_each_app_within_time(a_day, g_par.show_event_days
                     , ical_type, file_type, &event_list);
         }
     }
@@ -647,6 +658,16 @@ static void mCalendar_day_selected_cb(GtkCalendar *calendar
     orage_message(-100, P_N);
 #endif
     /* rebuild the info for the selected date */
+    build_mainbox_event_box();
+}
+
+void build_mainbox_event_box()
+{
+#undef P_N
+#define P_N "build_mainbox_event_box: "
+#ifdef ORAGE_DEBUG
+    orage_message(-100, P_N);
+#endif
     if (!xfical_file_open(TRUE))
         return;
     build_mainbox_event_info();
diff --git a/src/mainbox.h b/src/mainbox.h
index 9f913df..785960a 100644
--- a/src/mainbox.h
+++ b/src/mainbox.h
@@ -65,6 +65,7 @@ typedef struct _CalWin
 void build_mainWin();
 gboolean orage_mark_appointments();
 void build_mainbox_info();
+void build_mainbox_event_box();
 void mCalendar_month_changed_cb(GtkCalendar *calendar, gpointer user_data);
 
 #endif /* !__MAINBOX_H__ */
diff --git a/src/parameters.c b/src/parameters.c
index 89b14d3..fb1cf37 100644
--- a/src/parameters.c
+++ b/src/parameters.c
@@ -95,7 +95,7 @@ typedef struct _Itf
     GtkWidget *show_pager_checkbutton;
     GtkWidget *show_systray_checkbutton;
     GtkWidget *show_todos_checkbutton;
-    GtkWidget *show_events_checkbutton;
+    GtkWidget *show_events_spin;
     /* Start visibity show or hide */
     GtkWidget *visibility_frame;
     GSList    *visibility_radiobutton_group;
@@ -110,12 +110,6 @@ typedef struct _Itf
     GtkWidget *always_today_frame;
     GtkWidget *always_today_checkbutton;
 
-/* code removed. relying in get_first_weekday_from_locale now
-/ * ical week start day (0 = Monday, 1 = Tuesday,... 6 = Sunday) * /
-GtkWidget *ical_weekstartday_frame;
-GtkWidget *ical_weekstartday_combobox;
-*/
-
     /* icon size */
     GtkWidget *icon_size_frame;
     GtkWidget *icon_size_x_spin;
@@ -126,6 +120,10 @@ GtkWidget *ical_weekstartday_combobox;
     GtkWidget *click_to_show_days_radiobutton;
     GtkWidget *click_to_show_events_radiobutton;
 
+    /* eventlist window number of extra days to show */
+    GtkWidget *el_extra_days_frame;
+    GtkWidget *el_extra_days_spin;
+
     /* the rest */
     GtkWidget *close_button;
     GtkWidget *help_button;
@@ -282,23 +280,15 @@ static void todos_changed(GtkWidget *dialog, gpointer user_data)
     set_todos();
 }
 
-static void set_events()
+static void show_events_spin_changed(GtkSpinButton *sb, gpointer user_data)
 {
-    if (g_par.show_events)
-        gtk_widget_show_all(((CalWin *)g_par.xfcal)->mEvent_vbox);
+    g_par.show_event_days = gtk_spin_button_get_value(sb);
+    if (g_par.show_event_days)
+        build_mainbox_event_box();
     else
         gtk_widget_hide_all(((CalWin *)g_par.xfcal)->mEvent_vbox);
 }
 
-static void events_changed(GtkWidget *dialog, gpointer user_data)
-{
-    Itf *itf = (Itf *)user_data;
-
-    g_par.show_events = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(
-            itf->show_events_checkbutton));
-    set_events();
-}
-
 static void set_stick()
 {
     if (g_par.set_stick)
@@ -464,16 +454,6 @@ static void always_today_changed(GtkWidget *dialog, gpointer user_data)
             GTK_TOGGLE_BUTTON(itf->always_today_checkbutton));
 }
 
-/* code removed. relying in get_first_weekday_from_locale now
-static void ical_weekstartday_changed(GtkWidget *dialog, gpointer user_data)
-{
-    Itf *itf = (Itf *)user_data;
-
-    g_par.ical_weekstartday = gtk_combo_box_get_active(
-            GTK_COMBO_BOX(itf->ical_weekstartday_combobox));
-}
-*/
-
 static void set_icon_size()
 {
     refresh_TrayIcon();
@@ -491,6 +471,11 @@ static void icon_size_y_spin_changed(GtkSpinButton *sb, gpointer user_data)
     set_icon_size();
 }
 
+static void el_extra_days_spin_changed(GtkSpinButton *sb, gpointer user_data)
+{
+    g_par.el_days = gtk_spin_button_get_value(sb);
+}
+
 static void create_parameter_dialog_main_setup_tab(Itf *dialog)
 {
     GtkWidget *hbox, *vbox, *label;
@@ -579,7 +564,7 @@ static void create_parameter_dialog_main_setup_tab(Itf *dialog)
 
 static void create_parameter_dialog_display_tab(Itf *dialog)
 {
-    GtkWidget *hbox, *vbox;
+    GtkWidget *hbox, *vbox, *label;
 
     dialog->display_vbox = gtk_vbox_new(FALSE, 0);
     dialog->display_tab = 
@@ -638,12 +623,19 @@ static void create_parameter_dialog_display_tab(Itf *dialog)
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(
             dialog->show_todos_checkbutton), g_par.show_todos);
 
-    dialog->show_events_checkbutton = gtk_check_button_new_with_mnemonic(
-            _("Show event list"));
-    gtk_box_pack_start(GTK_BOX(vbox)
-            , dialog->show_events_checkbutton, FALSE, FALSE, 0);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(
-            dialog->show_events_checkbutton), g_par.show_events);
+    hbox = gtk_hbox_new(FALSE, 0);
+    label = gtk_label_new(_("Show"));
+    gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
+    dialog->show_events_spin = gtk_spin_button_new_with_range(0, 31, 1);
+    gtk_spin_button_set_value(GTK_SPIN_BUTTON(dialog->show_events_spin)
+            , g_par.show_event_days);
+    gtk_tooltips_set_tip(dialog->Tooltips, dialog->show_events_spin
+            , _("0 = do not show event list at all"), NULL);
+    gtk_box_pack_start(GTK_BOX(hbox)
+            , dialog->show_events_spin, FALSE, FALSE, 5);
+    gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+    label = gtk_label_new(_("days in event list"));
+    gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
 
     dialog->set_stick_checkbutton = gtk_check_button_new_with_mnemonic(
             _("Set sticked"));
@@ -659,26 +651,6 @@ static void create_parameter_dialog_display_tab(Itf *dialog)
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(
             dialog->set_ontop_checkbutton), g_par.set_ontop);
 
-    g_signal_connect(G_OBJECT(dialog->show_borders_checkbutton), "toggled"
-            , G_CALLBACK(borders_changed), dialog);
-    g_signal_connect(G_OBJECT(dialog->show_menu_checkbutton), "toggled"
-            , G_CALLBACK(menu_changed), dialog);
-    g_signal_connect(G_OBJECT(dialog->show_heading_checkbutton), "toggled"
-            , G_CALLBACK(heading_changed), dialog);
-    g_signal_connect(G_OBJECT(dialog->show_day_names_checkbutton), "toggled"
-            , G_CALLBACK(days_changed), dialog);
-    g_signal_connect(G_OBJECT(dialog->show_weeks_checkbutton), "toggled"
-            , G_CALLBACK(weeks_changed), dialog);
-    g_signal_connect(G_OBJECT(dialog->show_todos_checkbutton), "toggled"
-            , G_CALLBACK(todos_changed), dialog);
-    g_signal_connect(G_OBJECT(dialog->show_events_checkbutton), "toggled"
-            , G_CALLBACK(events_changed), dialog);
-    g_signal_connect(G_OBJECT(dialog->set_stick_checkbutton), "toggled"
-            , G_CALLBACK(stick_changed), dialog);
-    g_signal_connect(G_OBJECT(dialog->set_ontop_checkbutton), "toggled"
-            , G_CALLBACK(ontop_changed), dialog);
-    
-    /* Show in... taskbar pager systray */
     dialog->show_taskbar_checkbutton = gtk_check_button_new_with_mnemonic(
             _("Show in taskbar"));
     gtk_box_pack_start(GTK_BOX(vbox)
@@ -700,6 +672,24 @@ static void create_parameter_dialog_display_tab(Itf *dialog)
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(
             dialog->show_systray_checkbutton), g_par.show_systray);
 
+    g_signal_connect(G_OBJECT(dialog->show_borders_checkbutton), "toggled"
+            , G_CALLBACK(borders_changed), dialog);
+    g_signal_connect(G_OBJECT(dialog->show_menu_checkbutton), "toggled"
+            , G_CALLBACK(menu_changed), dialog);
+    g_signal_connect(G_OBJECT(dialog->show_heading_checkbutton), "toggled"
+            , G_CALLBACK(heading_changed), dialog);
+    g_signal_connect(G_OBJECT(dialog->show_day_names_checkbutton), "toggled"
+            , G_CALLBACK(days_changed), dialog);
+    g_signal_connect(G_OBJECT(dialog->show_weeks_checkbutton), "toggled"
+            , G_CALLBACK(weeks_changed), dialog);
+    g_signal_connect(G_OBJECT(dialog->show_todos_checkbutton), "toggled"
+            , G_CALLBACK(todos_changed), dialog);
+    g_signal_connect(G_OBJECT(dialog->show_events_spin), "value-changed"
+            , G_CALLBACK(show_events_spin_changed), dialog);
+    g_signal_connect(G_OBJECT(dialog->set_stick_checkbutton), "toggled"
+            , G_CALLBACK(stick_changed), dialog);
+    g_signal_connect(G_OBJECT(dialog->set_ontop_checkbutton), "toggled"
+            , G_CALLBACK(ontop_changed), dialog);
     g_signal_connect(G_OBJECT(dialog->show_taskbar_checkbutton), "toggled"
             , G_CALLBACK(taskbar_changed), dialog);
     g_signal_connect(G_OBJECT(dialog->show_pager_checkbutton), "toggled"
@@ -760,12 +750,6 @@ static void create_parameter_dialog_display_tab(Itf *dialog)
 static void create_parameter_dialog_extra_setup_tab(Itf *dialog)
 {
     GtkWidget *hbox, *vbox, *label;
-    /* code removed. relying in get_first_weekday_from_locale now
-    GtkWidget *event;
-    gchar *weekday_array[7] = {
-            _("Monday"), _("Tuesday"), _("Wednesday"), _("Thursday")
-          , _("Friday"), _("Saturday"), _("Sunday")};
-     */
 
     dialog->extra_vbox = gtk_vbox_new(FALSE, 0);
     dialog->extra_tab = 
@@ -793,29 +777,6 @@ static void create_parameter_dialog_extra_setup_tab(Itf *dialog)
     g_signal_connect(G_OBJECT(dialog->always_today_checkbutton), "toggled"
             , G_CALLBACK(always_today_changed), dialog);
 
-    /* code removed. relying in get_first_weekday_from_locale now
-    / ***** ical week start day (0 = Monday, 1 = Tuesday,... 6 = Sunday) ***** /
-    hbox = gtk_hbox_new(FALSE, 0);
-    dialog->ical_weekstartday_frame = orage_create_framebox_with_content(
-            _("Ical week start day"), hbox);
-    gtk_box_pack_start(GTK_BOX(dialog->extra_vbox)
-            , dialog->ical_weekstartday_frame, FALSE, FALSE, 5);
-
-    dialog->ical_weekstartday_combobox = orage_create_combo_box_with_content(
-            weekday_array, 7);
-    event =  gtk_event_box_new(); / * only needed for tooltips * /
-    gtk_container_add(GTK_CONTAINER(event), dialog->ical_weekstartday_combobox);
-    gtk_box_pack_start(GTK_BOX(hbox)
-            , event, FALSE, FALSE, 5);
-    gtk_combo_box_set_active(GTK_COMBO_BOX(dialog->ical_weekstartday_combobox)
-            , g_par.ical_weekstartday);
-    gtk_tooltips_set_tip(dialog->Tooltips, event
-            , _("This is used in some weekly repeating appointment rules. Just set it to the start day of the week for your country and forget it.")
-            , NULL);
-    g_signal_connect(G_OBJECT(dialog->ical_weekstartday_combobox), "changed"
-            , G_CALLBACK(ical_weekstartday_changed), dialog);
-    */
-
     /***** tray icon size  (0 = use static icon) *****/
     vbox = gtk_vbox_new(FALSE, 0);
     dialog->icon_size_frame = orage_create_framebox_with_content(
@@ -856,15 +817,15 @@ static void create_parameter_dialog_extra_setup_tab(Itf *dialog)
 
     /***** Start event or day window from main calendar *****/
     dialog->click_to_show_radiobutton_group = NULL;
-    hbox = gtk_vbox_new(FALSE, 0);
+    vbox = gtk_vbox_new(FALSE, 0);
     dialog->click_to_show_frame = orage_create_framebox_with_content(
-            _("Main Calendar double click shows"), hbox);
+            _("Main Calendar double click shows"), vbox);
     gtk_box_pack_start(GTK_BOX(dialog->extra_vbox)
             , dialog->click_to_show_frame, FALSE, FALSE, 5);
 
     dialog->click_to_show_days_radiobutton =
             gtk_radio_button_new_with_mnemonic(NULL, _("Days view"));
-    gtk_box_pack_start(GTK_BOX(hbox)
+    gtk_box_pack_start(GTK_BOX(vbox)
             , dialog->click_to_show_days_radiobutton, FALSE, FALSE, 0);
     gtk_radio_button_set_group(
             GTK_RADIO_BUTTON(dialog->click_to_show_days_radiobutton)
@@ -876,7 +837,7 @@ static void create_parameter_dialog_extra_setup_tab(Itf *dialog)
 
     dialog->click_to_show_events_radiobutton =
             gtk_radio_button_new_with_mnemonic(NULL, _("Event list"));
-    gtk_box_pack_start(GTK_BOX(hbox)
+    gtk_box_pack_start(GTK_BOX(vbox)
             , dialog->click_to_show_events_radiobutton, FALSE, FALSE, 0);
     gtk_radio_button_set_group(
             GTK_RADIO_BUTTON(dialog->click_to_show_events_radiobutton)
@@ -888,6 +849,28 @@ static void create_parameter_dialog_extra_setup_tab(Itf *dialog)
 
     g_signal_connect(G_OBJECT(dialog->click_to_show_days_radiobutton), "toggled"
             , G_CALLBACK(show_changed), dialog);
+
+    /***** Eventlist window number of extra days to show *****/
+    hbox = gtk_hbox_new(FALSE, 0);
+    dialog->el_extra_days_frame = orage_create_framebox_with_content(
+            _("Eventlist window"), hbox);
+    gtk_box_pack_start(GTK_BOX(dialog->extra_vbox)
+            , dialog->el_extra_days_frame, FALSE, FALSE, 5);
+
+    label = gtk_label_new(_("Show:"));
+    gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
+    dialog->el_extra_days_spin = gtk_spin_button_new_with_range(0, 999, 1);
+    gtk_box_pack_start(GTK_BOX(hbox)
+            , dialog->el_extra_days_spin, FALSE, FALSE, 5);
+    gtk_spin_button_set_value(GTK_SPIN_BUTTON(dialog->el_extra_days_spin)
+            , g_par.el_days);
+    label = gtk_label_new(_("extra days"));
+    gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
+    gtk_tooltips_set_tip(dialog->Tooltips, dialog->el_extra_days_spin
+            , _("This is just the default value, you can change it in the actual eventlist window.")
+            , NULL);
+    g_signal_connect(G_OBJECT(dialog->el_extra_days_spin), "value-changed"
+            , G_CALLBACK(el_extra_days_spin_changed), dialog);
 }
 
 Itf *create_parameter_dialog()
@@ -975,6 +958,7 @@ void write_parameters()
     orage_rc_put_int(orc, "Main window Y", g_par.pos_y);
     orage_rc_put_int(orc, "Eventlist window X", g_par.el_size_x);
     orage_rc_put_int(orc, "Eventlist window Y", g_par.el_size_y);
+    orage_rc_put_int(orc, "Eventlist extra days", g_par.el_days);
     orage_rc_put_bool(orc, "Show Main Window Menu", g_par.show_menu);
     orage_rc_put_bool(orc, "Select Always Today"
             , g_par.select_always_today);
@@ -983,7 +967,7 @@ void write_parameters()
     orage_rc_put_bool(orc, "Show day names", g_par.show_day_names);
     orage_rc_put_bool(orc, "Show weeks", g_par.show_weeks);
     orage_rc_put_bool(orc, "Show todos", g_par.show_todos);
-    orage_rc_put_bool(orc, "Show events", g_par.show_events);
+    orage_rc_put_int(orc, "Show event days", g_par.show_event_days);
     orage_rc_put_bool(orc, "Show in pager", g_par.show_pager);
     orage_rc_put_bool(orc, "Show in systray", g_par.show_systray);
     orage_rc_put_bool(orc, "Show in taskbar", g_par.show_taskbar);
@@ -1129,6 +1113,7 @@ void read_parameters(void)
     g_par.pos_y = orage_rc_get_int(orc, "Main window Y", 0);
     g_par.el_size_x = orage_rc_get_int(orc, "Eventlist window X", 500);
     g_par.el_size_y = orage_rc_get_int(orc, "Eventlist window Y", 350);
+    g_par.el_days = orage_rc_get_int(orc, "Eventlist extra days", 0);
     g_par.show_menu = orage_rc_get_bool(orc, "Show Main Window Menu", TRUE);
     g_par.select_always_today = 
             orage_rc_get_bool(orc, "Select Always Today", FALSE);
@@ -1137,7 +1122,7 @@ void read_parameters(void)
     g_par.show_day_names = orage_rc_get_bool(orc, "Show day names", TRUE);
     g_par.show_weeks = orage_rc_get_bool(orc, "Show weeks", TRUE);
     g_par.show_todos = orage_rc_get_bool(orc, "Show todos", TRUE);
-    g_par.show_events = orage_rc_get_bool(orc, "Show events", TRUE);
+    g_par.show_event_days = orage_rc_get_int(orc, "Show event days", 1);
     g_par.show_pager = orage_rc_get_bool(orc, "Show in pager", TRUE);
     g_par.show_systray = orage_rc_get_bool(orc, "Show in systray", TRUE);
     g_par.show_taskbar = orage_rc_get_bool(orc, "Show in taskbar", TRUE);
diff --git a/src/parameters.h b/src/parameters.h
index 8a3ca5f..23d80e9 100644
--- a/src/parameters.h
+++ b/src/parameters.h
@@ -41,7 +41,7 @@ typedef struct _parameters
     gboolean show_day_names;
     gboolean show_weeks;
     gboolean show_todos;
-    gboolean show_events;
+    gint     show_event_days;
     gboolean show_pager;
     gboolean show_systray;
     gboolean show_taskbar;
@@ -87,6 +87,7 @@ typedef struct _parameters
 
     /* event-list window */
     gint el_size_x, el_size_y;
+    gint el_days;
 
     /* show days window from main calendar */
     gboolean show_days; /* true=show days false=show events */
@@ -94,7 +95,7 @@ typedef struct _parameters
     /* Controls which messages are printed */
     gint log_level;
 
-    /* Controls which appointment priorities are shown in lists */
+    /* Controls which appointment priorities are shown in daylist */
     gint priority_list_limit;
 } global_parameters; /* global parameters */
 



More information about the Xfce4-commits mailing list