[Goodies-commits] r4820 - in xfce4-datetime-plugin/trunk: . panel-plugin

Diego Ongaro ongardie at xfce.org
Sat May 17 23:01:13 CEST 2008


Author: ongardie
Date: 2008-05-17 21:01:13 +0000 (Sat, 17 May 2008)
New Revision: 4820

Modified:
   xfce4-datetime-plugin/trunk/ChangeLog
   xfce4-datetime-plugin/trunk/panel-plugin/datetime.c
   xfce4-datetime-plugin/trunk/panel-plugin/datetime.h
Log:
GtkToggleButton in panel (Bug #3456)


Modified: xfce4-datetime-plugin/trunk/ChangeLog
===================================================================
--- xfce4-datetime-plugin/trunk/ChangeLog	2008-05-17 20:55:23 UTC (rev 4819)
+++ xfce4-datetime-plugin/trunk/ChangeLog	2008-05-17 21:01:13 UTC (rev 4820)
@@ -2,6 +2,7 @@
     * panel-plugin/datetime-dialog.c:
       - translate strings in combo boxes
     * panel-plugin/datetime.c:
+      - Use GtkToggleButton in panel (Bug #3456)
       - handle delete event on popup calendar (patch from Mike Massonet)
       - show popup calendar on all workspaces (patch from Mike Massonet)
       - allow ctrl-click on plugin (patch from Mike Massonet)

Modified: xfce4-datetime-plugin/trunk/panel-plugin/datetime.c
===================================================================
--- xfce4-datetime-plugin/trunk/panel-plugin/datetime.c	2008-05-17 20:55:23 UTC (rev 4819)
+++ xfce4-datetime-plugin/trunk/panel-plugin/datetime.c	2008-05-17 21:01:13 UTC (rev 4820)
@@ -30,6 +30,7 @@
 #include <libxfcegui4/libxfcegui4.h>
 #include <libxfce4util/libxfce4util.h>
 #include <libxfce4panel/xfce-panel-plugin.h>
+#include <libxfce4panel/xfce-panel-convenience.h>
 
 #include "datetime.h"
 #include "datetime-dialog.h"
@@ -123,15 +124,15 @@
   switch(datetime->layout)
   {
     case LAYOUT_DATE_TIMETT:
-      gtk_tooltips_set_tip(GTK_TOOLTIPS(datetime->tips), datetime->eventbox,
+      gtk_tooltips_set_tip(GTK_TOOLTIPS(datetime->tips), datetime->button,
           gtk_label_get_text(GTK_LABEL(datetime->time_label)), NULL);
       break;
     case LAYOUT_TIME_DATETT:
-      gtk_tooltips_set_tip(GTK_TOOLTIPS(datetime->tips), datetime->eventbox,
+      gtk_tooltips_set_tip(GTK_TOOLTIPS(datetime->tips), datetime->button,
           gtk_label_get_text(GTK_LABEL(datetime->date_label)), NULL);
       break;
     default:
-      gtk_tooltips_set_tip(GTK_TOOLTIPS(datetime->tips), datetime->eventbox,
+      gtk_tooltips_set_tip(GTK_TOOLTIPS(datetime->tips), datetime->button,
           NULL, NULL);
       break;
   }
@@ -252,10 +253,13 @@
   gtk_window_move(GTK_WINDOW(widget), x, y);
 }
 
-static gboolean on_calendar_delete(GtkWidget *widget, GdkEvent *event, t_datetime *datetime)
+static gboolean close_calendar_window(t_datetime *datetime)
 {
   gtk_widget_destroy(datetime->cal);
   datetime->cal = NULL;
+
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(datetime->button), FALSE);
+
   return TRUE;
 }
 
@@ -273,7 +277,7 @@
   GtkWidget *cal;
   GtkWidget *entry;
   GtkWidget *label;
-  GtkWidget *parent = datetime->eventbox;
+  GtkWidget *parent = datetime->button;
   GdkScreen *screen;
   GtkCalendarDisplayOptions display_options;
   int num;
@@ -319,11 +323,13 @@
   g_signal_connect_after(G_OBJECT(window), "realize",
       G_CALLBACK(on_calendar_realized),
       GINT_TO_POINTER(orientation));
-  g_signal_connect(G_OBJECT(window), "delete-event",
-      G_CALLBACK(on_calendar_delete),
+  g_signal_connect_swapped(G_OBJECT(window), "delete-event",
+      G_CALLBACK(close_calendar_window),
       datetime);
   gtk_widget_show_all(window);
 
+  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(datetime->button), TRUE);
+
   return window;
 }
 
@@ -344,8 +350,7 @@
 
   if (datetime->cal != NULL)
   {
-    gtk_widget_destroy(datetime->cal);
-    datetime->cal = NULL;
+    close_calendar_window(datetime);
   }
   else
   {
@@ -478,9 +483,9 @@
     t_datetime *datetime)
 {
   if(size > 26)
-    gtk_container_set_border_width(GTK_CONTAINER(datetime->frame), 2);
+    gtk_container_set_border_width(GTK_CONTAINER(datetime->button), 2);
   else
-    gtk_container_set_border_width(GTK_CONTAINER(datetime->frame), 0);
+    gtk_container_set_border_width(GTK_CONTAINER(datetime->button), 0);
 
   /* return true to please the signal handler ;) */
   return TRUE;
@@ -564,17 +569,12 @@
  */
 static void datetime_create_widget(t_datetime * datetime)
 {
-  /* create event box */
-  datetime->eventbox = gtk_event_box_new();
+  /* create button */
+  datetime->button = xfce_create_panel_toggle_button();
 
-  /* create frame */
-  datetime->frame = gtk_frame_new(NULL);
-  gtk_frame_set_shadow_type(GTK_FRAME(datetime->frame), GTK_SHADOW_NONE);
-  gtk_container_add(GTK_CONTAINER(datetime->eventbox), datetime->frame);
-
   /* create vertical box */
   datetime->vbox = gtk_vbox_new(TRUE, 0);
-  gtk_container_add(GTK_CONTAINER(datetime->frame), datetime->vbox);
+  gtk_container_add(GTK_CONTAINER(datetime->button), datetime->vbox);
 
   /* create time and date lines */
   datetime->time_label = gtk_label_new("");
@@ -594,7 +594,7 @@
   datetime->tips = gtk_tooltips_new ();
 
   /* connect widget signals to functions */
-  g_signal_connect(datetime->eventbox, "button-press-event",
+  g_signal_connect(datetime->button, "button-press-event",
       G_CALLBACK(datetime_clicked), datetime);
 }
 
@@ -627,7 +627,7 @@
   datetime_read_rc_file(plugin, datetime);
 
   /* display plugin */
-  gtk_widget_show_all(datetime->eventbox);
+  gtk_widget_show_all(datetime->button);
 
   /* set date and time labels */
   datetime_update(datetime);
@@ -644,7 +644,7 @@
   g_source_remove(datetime->timeout_id);
 
   /* destroy widget */
-  gtk_widget_destroy(datetime->eventbox);
+  gtk_widget_destroy(datetime->button);
 
   /* cleanup */
   g_free(datetime->date_font);
@@ -664,8 +664,8 @@
   t_datetime * datetime = datetime_new(plugin);
 
   /* add plugin to panel */
-  gtk_container_add(GTK_CONTAINER(plugin), datetime->eventbox);
-  xfce_panel_plugin_add_action_widget(plugin, datetime->eventbox);
+  gtk_container_add(GTK_CONTAINER(plugin), datetime->button);
+  xfce_panel_plugin_add_action_widget(plugin, datetime->button);
 
   /* connect plugin signals to functions */
   g_signal_connect(plugin, "save",

Modified: xfce4-datetime-plugin/trunk/panel-plugin/datetime.h
===================================================================
--- xfce4-datetime-plugin/trunk/panel-plugin/datetime.h	2008-05-17 20:55:23 UTC (rev 4819)
+++ xfce4-datetime-plugin/trunk/panel-plugin/datetime.h	2008-05-17 21:01:13 UTC (rev 4820)
@@ -41,8 +41,7 @@
 
 typedef struct {
   XfcePanelPlugin * plugin;
-  GtkWidget *eventbox;
-  GtkWidget *frame;
+  GtkWidget *button;
   GtkWidget *vbox;
   GtkWidget *date_label;
   GtkWidget *time_label;




More information about the Goodies-commits mailing list