[Xfce4-commits] <orage:master> Possible to change the size of main calendar window (Bug 5890)

Juha Kautto noreply at xfce.org
Fri Oct 30 22:22:01 CET 2009


Updating branch refs/heads/master
         to 38ef8b460ce4ae627d5539c3db1f80137cceeab9 (commit)
       from 674fa8953d357f104311b2e347dd980f096ae1d6 (commit)

commit 38ef8b460ce4ae627d5539c3db1f80137cceeab9
Author: Juha Kautto <juha at xfce.org>
Date:   Fri Oct 30 23:17:50 2009 +0200

    Possible to change the size of main calendar window (Bug 5890)
    
        The size is allocated to events and todo lists.
        Also now remember the size of main calendar window and remember
        the position of eventlist window.

 NEWS             |    6 ++++++
 src/event-list.c |    9 +++++++--
 src/functions.c  |    3 +++
 src/mainbox.c    |   16 +++++++++++-----
 src/parameters.c |   10 ++++++++++
 src/parameters.h |    2 ++
 6 files changed, 39 insertions(+), 7 deletions(-)

diff --git a/NEWS b/NEWS
index 07c5181..18e5e40 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,9 @@
+20091030: Minor enhancements
+---------
+        * Possible to change the size of main calendar window (Bug 5890).
+        * Remember the size of main calendar window.
+        * Remember the position of eventlist window.
+
 20091017: Minor enhancements
 ---------
         * New parameter to define how many days are shown in the main
diff --git a/src/event-list.c b/src/event-list.c
index 0a91b4f..fa40f79 100644
--- a/src/event-list.c
+++ b/src/event-list.c
@@ -768,6 +768,8 @@ static void close_window(el_win *el)
 
     gtk_window_get_size(GTK_WINDOW(el->Window)
             , &g_par.el_size_x, &g_par.el_size_y);
+    gtk_window_get_position(GTK_WINDOW(el->Window)
+            , &g_par.el_pos_x, &g_par.el_pos_y);
     write_parameters();
 
     /* need to clean the appointment list and inform all appointments that
@@ -1339,8 +1341,11 @@ el_win *create_el_win(char *start_date)
     el->accel_group = gtk_accel_group_new();
 
     el->Window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-    gtk_window_set_default_size(GTK_WINDOW(el->Window)
-            , g_par.el_size_x, g_par.el_size_y);
+    if (g_par.el_size_x || g_par.el_size_y)
+        gtk_window_set_default_size(GTK_WINDOW(el->Window)
+                , g_par.el_size_x, g_par.el_size_y);
+    if (g_par.el_pos_x || g_par.el_pos_y)
+        gtk_window_move(GTK_WINDOW(el->Window), g_par.el_pos_x, g_par.el_pos_y);
     gtk_window_add_accel_group(GTK_WINDOW(el->Window), el->accel_group);
 
     el->Vbox = gtk_vbox_new(FALSE, 0);
diff --git a/src/functions.c b/src/functions.c
index e227748..9cda7ce 100644
--- a/src/functions.c
+++ b/src/functions.c
@@ -580,6 +580,9 @@ void orage_move_day(struct tm *t, int day)
 {
     guint monthdays[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
 
+    if (day < -1 || day > 1) {
+        g_warning("orage: orage_move_day wrong parameter %d", day);
+    }
     t->tm_year += 1900;
     if (((t->tm_year%4) == 0) 
     && (((t->tm_year%100) != 0) || ((t->tm_year%400) == 0)))
diff --git a/src/mainbox.c b/src/mainbox.c
index d1039b0..30a7ba6 100644
--- a/src/mainbox.c
+++ b/src/mainbox.c
@@ -485,7 +485,7 @@ static void create_mainbox_todo_info(void)
     orage_message(-100, P_N);
 #endif
     cal->mTodo_vbox = gtk_vbox_new(FALSE, 0);
-    gtk_box_pack_start(GTK_BOX(cal->mVbox), cal->mTodo_vbox, FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(cal->mVbox), cal->mTodo_vbox, TRUE, TRUE, 0);
     cal->mTodo_label = gtk_label_new(NULL);
     gtk_label_set_markup(GTK_LABEL(cal->mTodo_label), _("<b>To do:</b>"));
     gtk_box_pack_start(GTK_BOX(cal->mTodo_vbox), cal->mTodo_label
@@ -517,7 +517,7 @@ static void create_mainbox_event_info_box(void)
     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);
+    gtk_box_pack_start(GTK_BOX(cal->mVbox), cal->mEvent_vbox, TRUE, TRUE, 0);
     cal->mEvent_label = gtk_label_new(NULL);
     if (g_par.show_event_days == 1) {
         tmp2 = g_strdup(orage_tm_date_to_i18_date(&tm_date_start));
@@ -525,8 +525,11 @@ static void create_mainbox_event_info_box(void)
         g_free(tmp2);
     }
     else {
+        int i;
+
         tm_date_end = tm_date_start;
-        orage_move_day(&tm_date_end, g_par.show_event_days-1);
+        for (i = g_par.show_event_days-1; i; i--)
+            orage_move_day(&tm_date_end, 1);
         tmp2 = g_strdup(orage_tm_date_to_i18_date(&tm_date_start));
         tmp3 = g_strdup(orage_tm_date_to_i18_date(&tm_date_end));
         tmp = g_strdup_printf(_("<b>Events for %s - %s:</b>"), tmp2, tmp3);
@@ -725,7 +728,7 @@ void build_mainWin()
 
     gtk_window_set_title(GTK_WINDOW(cal->mWindow), _("Orage"));
     gtk_window_set_position(GTK_WINDOW(cal->mWindow), GTK_WIN_POS_NONE);
-    gtk_window_set_resizable(GTK_WINDOW(cal->mWindow), FALSE);
+    gtk_window_set_resizable(GTK_WINDOW(cal->mWindow), TRUE);
     gtk_window_set_destroy_with_parent(GTK_WINDOW(cal->mWindow), TRUE);
 
     if (orage_logo != NULL) {
@@ -744,7 +747,7 @@ void build_mainWin()
 
     /* Build the calendar */
     cal->mCalendar = gtk_calendar_new();
-    gtk_box_pack_start(GTK_BOX(cal->mVbox), cal->mCalendar, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(cal->mVbox), cal->mCalendar, FALSE, FALSE, 0);
     /*
     gtk_calendar_set_display_options(GTK_CALENDAR(cal->mCalendar)
             , GTK_CALENDAR_SHOW_HEADING | GTK_CALENDAR_SHOW_DAY_NAMES
@@ -769,6 +772,9 @@ void build_mainWin()
 
     gtk_window_add_accel_group(GTK_WINDOW(cal->mWindow), cal->mAccel_group);
 
+    if (g_par.size_x || g_par.size_y)
+        gtk_window_set_default_size(GTK_WINDOW(cal->mWindow)
+                , g_par.size_x, g_par.size_y);
     if (g_par.pos_x || g_par.pos_y)
         gtk_window_move(GTK_WINDOW(cal->mWindow), g_par.pos_x, g_par.pos_y);
     /*
diff --git a/src/parameters.c b/src/parameters.c
index fb1cf37..9f05a15 100644
--- a/src/parameters.c
+++ b/src/parameters.c
@@ -952,10 +952,16 @@ void write_parameters()
 #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_size(GTK_WINDOW(((CalWin *)g_par.xfcal)->mWindow)
+            , &g_par.size_x, &g_par.size_y);
     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);
+    orage_rc_put_int(orc, "Main window size X", g_par.size_x);
+    orage_rc_put_int(orc, "Main window size Y", g_par.size_y);
+    orage_rc_put_int(orc, "Eventlist window pos X", g_par.el_pos_x);
+    orage_rc_put_int(orc, "Eventlist window pos Y", g_par.el_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);
@@ -1111,6 +1117,10 @@ void read_parameters(void)
     g_par.sound_application=orage_rc_get_str(orc, "Sound application", "play");
     g_par.pos_x = orage_rc_get_int(orc, "Main window X", 0);
     g_par.pos_y = orage_rc_get_int(orc, "Main window Y", 0);
+    g_par.size_x = orage_rc_get_int(orc, "Main window size X", 0);
+    g_par.size_y = orage_rc_get_int(orc, "Main window size Y", 0);
+    g_par.el_pos_x = orage_rc_get_int(orc, "Eventlist window pos X", 0);
+    g_par.el_pos_y = orage_rc_get_int(orc, "Eventlist window pos 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);
diff --git a/src/parameters.h b/src/parameters.h
index 23d80e9..5cfdbd9 100644
--- a/src/parameters.h
+++ b/src/parameters.h
@@ -80,12 +80,14 @@ typedef struct _parameters
     /* main window */
     void *xfcal;     /* this is main calendar CalWin * */
     gint pos_x, pos_y;
+    gint size_x, size_y;
 
     /* tray icon */
     void *trayIcon; /* this is GtkStatusIcon * */
     gint icon_size_x, icon_size_y;
 
     /* event-list window */
+    gint el_pos_x, el_pos_y;
     gint el_size_x, el_size_y;
     gint el_days;
 



More information about the Xfce4-commits mailing list