[Xfce4-commits] r22632 - xfcalendar/trunk/panel-plugin

Juha Kautto juha at xfce.org
Thu Aug 3 08:08:50 UTC 2006


Author: juha
Date: 2006-08-03 08:08:49 +0000 (Thu, 03 Aug 2006)
New Revision: 22632

Modified:
   xfcalendar/trunk/panel-plugin/oc_config.c
   xfcalendar/trunk/panel-plugin/orageclock.c
   xfcalendar/trunk/panel-plugin/orageclock.h
Log:
fixed bug 2101: 
Addedd possibility to define clock size in panel.


Modified: xfcalendar/trunk/panel-plugin/oc_config.c
===================================================================
--- xfcalendar/trunk/panel-plugin/oc_config.c	2006-08-03 07:53:22 UTC (rev 22631)
+++ xfcalendar/trunk/panel-plugin/oc_config.c	2006-08-03 08:08:49 UTC (rev 22632)
@@ -74,6 +74,30 @@
     oc_bg_set(clock);
 }
 
+static void oc_set_height_toggled(GtkToggleButton *cb, Clock *clock)
+{
+    clock->height_set = gtk_toggle_button_get_active(cb);
+    oc_size_set(clock);
+}
+
+static void oc_set_height_changed(GtkSpinButton *sb, Clock *clock)
+{
+    clock->height = gtk_spin_button_get_value_as_int(sb);
+    oc_size_set(clock);
+}
+
+static void oc_set_width_toggled(GtkToggleButton *cb, Clock *clock)
+{
+    clock->width_set = gtk_toggle_button_get_active(cb);
+    oc_size_set(clock);
+}
+
+static void oc_set_width_changed(GtkSpinButton *sb, Clock *clock)
+{
+    clock->width = gtk_spin_button_get_value_as_int(sb);
+    oc_size_set(clock);
+}
+
 static void oc_timezone_changed(GtkWidget *widget, GdkEventKey *key
         , Clock *clock)
 {
@@ -155,7 +179,7 @@
 
 static void oc_properties_appearance(GtkWidget *dlg, Clock *clock)
 {
-    GtkWidget *frame, *bin, *vbox, *cb, *hbox, *color;
+    GtkWidget *frame, *bin, *vbox, *cb, *hbox, *color, *sb;
     GdkColor def_fg, def_bg;
     GtkStyle *def_style;
 
@@ -208,6 +232,38 @@
     gtk_box_pack_start(GTK_BOX(hbox), color, FALSE, FALSE, 0);
     g_signal_connect(G_OBJECT(color), "color-set"
             , G_CALLBACK(oc_bg_color_changed), clock);
+
+    /* clock size (=vbox size): height and width */
+    hbox = gtk_hbox_new(FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+    cb = gtk_check_button_new_with_mnemonic(_("set _height:"));
+    gtk_box_pack_start(GTK_BOX(hbox), cb, FALSE, FALSE, 0);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb), clock->height_set);
+    g_signal_connect(cb, "toggled", G_CALLBACK(oc_set_height_toggled), clock);
+    sb = gtk_spin_button_new_with_range(10, 200, 1);
+    gtk_box_pack_start(GTK_BOX(hbox), sb, FALSE, FALSE, 0);
+    if (!clock->height_set)
+        clock->height = 32;
+    gtk_spin_button_set_value(GTK_SPIN_BUTTON(sb), (gdouble)clock->height);
+    g_signal_connect((gpointer) sb, "value-changed",
+            G_CALLBACK(oc_set_height_changed), clock);
+
+
+    hbox = gtk_hbox_new(FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
+
+    cb = gtk_check_button_new_with_mnemonic(_("set _width:"));
+    gtk_box_pack_start(GTK_BOX(hbox), cb, FALSE, FALSE, 0);
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(cb), clock->width_set);
+    g_signal_connect(cb, "toggled", G_CALLBACK(oc_set_width_toggled), clock);
+    sb = gtk_spin_button_new_with_range(10, 400, 1);
+    gtk_box_pack_start(GTK_BOX(hbox), sb, FALSE, FALSE, 0);
+    if (!clock->width_set)
+        clock->width = 70;
+    gtk_spin_button_set_value(GTK_SPIN_BUTTON(sb), (gdouble)clock->width);
+    g_signal_connect((gpointer) sb, "value-changed",
+            G_CALLBACK(oc_set_width_changed), clock);
 }
 
 static void oc_properties_options(GtkWidget *dlg, Clock *clock)

Modified: xfcalendar/trunk/panel-plugin/orageclock.c
===================================================================
--- xfcalendar/trunk/panel-plugin/orageclock.c	2006-08-03 07:53:22 UTC (rev 22631)
+++ xfcalendar/trunk/panel-plugin/orageclock.c	2006-08-03 08:08:49 UTC (rev 22632)
@@ -245,7 +245,7 @@
 
     clock->show_frame = xfce_rc_read_bool_entry(rc, "show_frame", TRUE);
 
-    clock->fg_set = xfce_rc_read_bool_entry(rc, "fg_set", TRUE);
+    clock->fg_set = xfce_rc_read_bool_entry(rc, "fg_set", FALSE);
     if (clock->fg_set) {
         ret = xfce_rc_read_entry(rc, "fg", NULL);
         sscanf(ret, "%uR %uG %uB"
@@ -255,7 +255,7 @@
         clock->fg.pixel = 0;
     }
 
-    clock->bg_set = xfce_rc_read_bool_entry(rc, "bg_set", TRUE);
+    clock->bg_set = xfce_rc_read_bool_entry(rc, "bg_set", FALSE);
     if (clock->bg_set) {
         ret = xfce_rc_read_entry(rc, "bg", NULL);
         sscanf(ret, "%uR %uG %uB"
@@ -267,10 +267,19 @@
 
     ret = xfce_rc_read_entry(rc, "timezone", NULL);
     g_string_assign(clock->timezone, ret); 
+
+    clock->width_set = xfce_rc_read_bool_entry(rc, "width_set", FALSE);
+    if (clock->width_set) {
+        clock->width = xfce_rc_read_int_entry(rc, "width", -1);
+    }
+    clock->height_set = xfce_rc_read_bool_entry(rc, "height_set", FALSE);
+    if (clock->height_set) {
+        clock->height = xfce_rc_read_int_entry(rc, "height", -1);
+    }
     
     for (i = 0; i < OC_MAX_LINES; i++) {
         sprintf(tmp, "show%d", i);
-        clock->line[i].show = xfce_rc_read_bool_entry(rc, tmp, TRUE);
+        clock->line[i].show = xfce_rc_read_bool_entry(rc, tmp, FALSE);
         if (clock->line[i].show) {
             sprintf(tmp, "data%d", i);
             ret = xfce_rc_read_entry(rc, tmp, NULL);
@@ -326,6 +335,22 @@
 
     xfce_rc_write_entry(rc, "timezone",  clock->timezone->str);
 
+    xfce_rc_write_bool_entry(rc, "width_set", clock->width_set);
+    if (clock->width_set) {
+        xfce_rc_write_int_entry(rc, "width", clock->width);
+    }
+    else {
+        xfce_rc_delete_entry(rc, "width", TRUE);
+    }
+
+    xfce_rc_write_bool_entry(rc, "height_set", clock->height_set);
+    if (clock->height_set) {
+        xfce_rc_write_int_entry(rc, "height", clock->height);
+    }
+    else {
+        xfce_rc_delete_entry(rc, "height", TRUE);
+    }
+
     for (i = 0; i < OC_MAX_LINES; i++) {
         sprintf(tmp, "show%d", i);
         xfce_rc_write_bool_entry(rc, tmp, clock->line[i].show);
@@ -438,6 +463,15 @@
     tzset();
 }
 
+void oc_size_set(Clock *clock)
+{
+    gint w, h;
+
+    w = clock->width_set ? clock->width : -1;
+    h = clock->height_set ? clock->height : -1;
+    gtk_widget_set_size_request(clock->vbox, w, h);
+}
+
 void oc_show_line_set(Clock *clock, gint lno)
 {
     GtkWidget *line_label = clock->line[lno].label;
@@ -496,6 +530,7 @@
     oc_fg_set(clock);
     oc_bg_set(clock);
     oc_timezone_set(clock);
+    oc_size_set(clock);
     for (i = 0; i < OC_MAX_LINES; i++) {
         if (clock->line[i].show)  /* need to add */
             oc_show_line_set(clock, i);

Modified: xfcalendar/trunk/panel-plugin/orageclock.h
===================================================================
--- xfcalendar/trunk/panel-plugin/orageclock.h	2006-08-03 07:53:22 UTC (rev 22631)
+++ xfcalendar/trunk/panel-plugin/orageclock.h	2006-08-03 08:08:49 UTC (rev 22632)
@@ -38,6 +38,10 @@
     GtkWidget *ebox;
     GtkWidget *frame;
     GtkWidget *vbox;
+    gboolean   width_set;
+    gint       width;
+    gboolean   height_set;
+    gint       height;
     gboolean   show_frame;
     gboolean   fg_set;
     GdkColor   fg;
@@ -58,6 +62,7 @@
 void oc_show_frame_set(Clock *clock);
 void oc_fg_set(Clock *clock);
 void oc_bg_set(Clock *clock);
+void oc_size_set(Clock *clock);
 void oc_timezone_set(Clock *clock);
 void oc_show_line_set(Clock *clock, gint lno);
 void oc_line_font_set(Clock *clock, gint lno);



More information about the Xfce4-commits mailing list