Re: [Evolution-hackers] For the userinterface dudes (appointment alarm dialog)




Some fixes ... and important adjustments to the glade-stuff.

-- 
Philip Van Hoof, Software Developer @ Cronos
home: me at freax dot org
gnome: pvanhoof at gnome dot org
work: philip dot vanhoof at cronos dot be
junk: philip dot vanhoof at gmail dot com
http://www.freax.be, http://www.freax.eu.org
? alarm-notify.gladep
Index: alarm-notify-dialog.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/alarm-notify/alarm-notify-dialog.c,v
retrieving revision 1.33
diff -u -r1.33 alarm-notify-dialog.c
--- alarm-notify-dialog.c	4 Mar 2005 14:39:13 -0000	1.33
+++ alarm-notify-dialog.c	12 Mar 2005 14:15:01 -0000
@@ -22,6 +22,7 @@
 #include <config.h>
 #include <stdio.h>
 #include <string.h>
+#include <gtk/gtk.h>
 #include <gtk/gtkdialog.h>
 #include <gtk/gtkimage.h>
 #include <gtk/gtklabel.h>
@@ -42,7 +43,27 @@
 #include <e-util/e-icon-factory.h>
 
 
+	
+enum {
+	ALARM_SUMMARY_COLUMN,
+	ALARM_DESCRIPTION_COLUMN,
+	ALARM_LOCATION_COLUMN,
+
+	ALARM_START_COLUMN,
+	ALARM_END_COLUMN,
+	
+	ALARM_FUNCINFO_COLUMN,
+
+	N_ALARM_COLUMNS
+};
+
 /* The useful contents of the alarm notify dialog */
+
+typedef struct {
+	AlarmNotifyFunc func;
+	gpointer func_data;
+} AlarmFuncInfo;
+
 typedef struct {
 	GladeXML *xml;
 
@@ -54,19 +75,35 @@
 	GtkWidget *location;
 	GtkWidget *start;
 	GtkWidget *end;
-
-	AlarmNotifyFunc func;
-	gpointer func_data;
+	GtkWidget *treeview;
+	GtkWidget *scrolledwindow;
+	
+	AlarmFuncInfo *cur_funcinfo;
+	
 } AlarmNotify;
 
 enum {
-        AN_RESPONSE_EDIT = 0,
+	AN_RESPONSE_EDIT = 0,
 	AN_RESPONSE_SNOOZE = 1
 };
 
 
 
 static void
+tree_selection_changed_cb (GtkTreeSelection *selection, gpointer data);
+
+static void
+fill_in_labels (AlarmNotify *an, const gchar *summary, const gchar *description, 
+			const gchar *location, time_t occur_start, time_t occur_end);
+
+
+
+AlarmNotify *an = NULL;
+gboolean have_one = FALSE;
+
+
+
+static void
 an_update_minutes_label (GtkSpinButton *sb, gpointer data)
 {
 	AlarmNotify *an;
@@ -86,18 +123,52 @@
 {
 	int snooze_timeout;
 	AlarmNotify *an = user_data;
-
+	GtkTreeIter iter;
+	gboolean valid=FALSE;
+	GtkTreeModel *model = NULL;
+	AlarmFuncInfo *funcinfo;
+	GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (an->treeview));
+
+	if (gtk_tree_selection_get_selected (selection, &model, &iter))
+	{
+		gtk_tree_model_get (model, &iter, ALARM_FUNCINFO_COLUMN, &funcinfo, -1);	
+	} else {
+		funcinfo = an->cur_funcinfo;
+	}
+	
 	switch (response_id) {
 	case AN_RESPONSE_EDIT:
-		(* an->func) (ALARM_NOTIFY_EDIT, -1, an->func_data);
+		(* funcinfo->func) (ALARM_NOTIFY_EDIT, -1, funcinfo->func_data);
 		break;
 	case AN_RESPONSE_SNOOZE:
 		snooze_timeout = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (an->snooze_time));
-		(* an->func) (ALARM_NOTIFY_SNOOZE, snooze_timeout, an->func_data);
+		(* funcinfo->func) (ALARM_NOTIFY_SNOOZE, snooze_timeout, funcinfo->func_data);
+		gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
+	
+		/* If there isn't more then one in the store */
+		valid = gtk_tree_model_get_iter_first (model, &iter);
+		if (valid)
+		{
+			gtk_tree_selection_select_iter (selection, &iter);
+     		valid = gtk_tree_model_iter_next (model, &iter);
+			if (!valid)
+			{
+				gtk_widget_hide (an->treeview);
+				gtk_widget_hide (an->scrolledwindow);
+			} else {
+				gtk_tree_selection_select_iter (selection, &iter);
+			}
+		} else {
+			(* funcinfo->func) (ALARM_NOTIFY_CLOSE, -1, funcinfo->func_data);
+			have_one = FALSE;
+		}
+		
+		
 		break;
 	case GTK_RESPONSE_CLOSE:
 	case GTK_RESPONSE_DELETE_EVENT:
-		(* an->func) (ALARM_NOTIFY_CLOSE, -1, an->func_data);
+		(* funcinfo->func) (ALARM_NOTIFY_CLOSE, -1, funcinfo->func_data);
+		have_one = FALSE;
 		break;
 	}
 }
@@ -109,8 +180,11 @@
 
 	g_object_unref (an->xml);
 	g_free (an);
+	have_one = FALSE;
+	an = NULL;
 }
 
+
 /**
  * alarm_notify_dialog:
  * @trigger: Trigger time for the alarm.
@@ -134,14 +208,18 @@
 		     const char *description, const char *location,
 		     AlarmNotifyFunc func, gpointer func_data)
 {
-	AlarmNotify *an;
 	GtkWidget *image;
-	icaltimezone *current_zone;
-	char *title;
-	char *start, *end;
 	char *icon_path;
 	GList *icon_list;
-
+	GtkTreeIter iter;
+	GtkTreeViewColumn *column = NULL;
+	GtkTreeModel *model = NULL;
+	AlarmFuncInfo *funcinfo = g_new0 (AlarmFuncInfo, 1);
+	GtkTreeSelection *selection = NULL;
+	
+	funcinfo->func = func;
+	funcinfo->func_data = func_data;
+	
 	g_return_val_if_fail (trigger != -1, NULL);
 
 	/* Only VEVENTs or VTODOs can have alarms */
@@ -151,85 +229,173 @@
 	g_return_val_if_fail (location != NULL, NULL);
 	g_return_val_if_fail (func != NULL, NULL);
 
-	an = g_new0 (AlarmNotify, 1);
+	if (!an || !have_one)
+	{
+		GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();
+		
+		model = GTK_TREE_MODEL (gtk_list_store_new (
+			N_ALARM_COLUMNS, 
+		
+			G_TYPE_STRING, /* Summary */
+			G_TYPE_STRING, /* Description */
+			G_TYPE_STRING, /* Location */
+		
+			G_TYPE_POINTER, /* Start */
+			G_TYPE_POINTER, /* End */
+		
+			G_TYPE_POINTER /* FuncInfo*/));
+		
+		an = g_new0 (AlarmNotify, 1);
+		
+		an->xml = glade_xml_new (EVOLUTION_GLADEDIR "/alarm-notify.glade", NULL, NULL);
+		if (!an->xml) {
+			g_message ("alarm_notify_dialog(): Could not load the Glade XML file!");
+				g_free (an);
+			return NULL;
+		}
+
+		an->dialog = glade_xml_get_widget (an->xml, "alarm-notify");
+		an->title = glade_xml_get_widget (an->xml, "title-label");
+		an->snooze_time = glade_xml_get_widget (an->xml, "snooze-time");
+		an->minutes_label = glade_xml_get_widget (an->xml, "minutes-label");
+		an->description = glade_xml_get_widget (an->xml, "description-label");
+		an->location = glade_xml_get_widget (an->xml, "location-label");
+		an->start = glade_xml_get_widget (an->xml, "start-label");
+		an->end = glade_xml_get_widget (an->xml, "end-label");
+		an->treeview = glade_xml_get_widget (an->xml, "appointments-treeview");
+		an->scrolledwindow = glade_xml_get_widget (an->xml, "treeview-scrolledwindow");
+		
+		if (!(an->dialog && an->scrolledwindow && an->treeview && an->title && an->snooze_time
+		      && an->description && an->location && an->start && an->end)) {
+			g_message ("alarm_notify_dialog(): Could not find all widgets in Glade file!");
+			g_object_unref (an->xml);
+			g_free (an);
+			an = NULL;
+			return NULL;
+		}
+
+		gtk_tree_view_set_model (GTK_TREE_VIEW(an->treeview), model);
+		
+		column = gtk_tree_view_column_new_with_attributes (_("Summary"),
+						renderer,
+						"text", ALARM_SUMMARY_COLUMN, NULL);
+		
+		gtk_tree_view_append_column (GTK_TREE_VIEW (an->treeview), column);
+			
+		selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (an->treeview));
+		g_signal_connect (G_OBJECT (selection), "changed",
+			G_CALLBACK (tree_selection_changed_cb), an);
+		
+		gtk_widget_realize (an->dialog);
+		gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (an->dialog)->vbox), 0);
+		gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (an->dialog)->action_area), 12);
 
-	an->func = func;
-	an->func_data = func_data;
+		image = glade_xml_get_widget (an->xml, "alarm-image");
+		icon_path = e_icon_factory_get_icon_filename ("stock_alarm", E_ICON_SIZE_DIALOG);
+		gtk_image_set_from_file (GTK_IMAGE (image), icon_path);
+		g_free (icon_path);
+		
+		g_signal_connect (G_OBJECT (an->dialog), "response", G_CALLBACK (dialog_response_cb), an);
+		g_signal_connect (G_OBJECT (an->dialog), "destroy", G_CALLBACK (dialog_destroyed_cb), an);
+		
+		if (!GTK_WIDGET_REALIZED (an->dialog))
+		gtk_widget_realize (an->dialog);
 
-	an->xml = glade_xml_new (EVOLUTION_GLADEDIR "/alarm-notify.glade", NULL, NULL);
-	if (!an->xml) {
-		g_message ("alarm_notify_dialog(): Could not load the Glade XML file!");
-		g_free (an);
-		return NULL;
+		icon_list = e_icon_factory_get_icon_list ("stock_alarm");
+		if (icon_list) {
+			gtk_window_set_icon_list (GTK_WINDOW (an->dialog), icon_list);
+			g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
+			g_list_free (icon_list);
+		}
+	
+		/* Set callback for updating the snooze "minutes" label */
+		g_signal_connect (G_OBJECT (an->snooze_time), "value_changed",
+		 		G_CALLBACK (an_update_minutes_label), an);
+		
+		
+		have_one = TRUE;
+		
+	} else {
+		gtk_widget_show (an->scrolledwindow);
+		gtk_widget_show (an->treeview);
+		selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (an->treeview));
 	}
 
-	an->dialog = glade_xml_get_widget (an->xml, "alarm-notify");
-	an->title = glade_xml_get_widget (an->xml, "title-label");
-	an->snooze_time = glade_xml_get_widget (an->xml, "snooze-time");
-	an->minutes_label = glade_xml_get_widget (an->xml, "minutes-label");
-	an->description = glade_xml_get_widget (an->xml, "description-label");
-	an->location = glade_xml_get_widget (an->xml, "location-label");
-	an->start = glade_xml_get_widget (an->xml, "start-label");
-	an->end = glade_xml_get_widget (an->xml, "end-label");
-
-	if (!(an->dialog && an->title && an->snooze_time
-	      && an->description && an->location && an->start && an->end)) {
-		g_message ("alarm_notify_dialog(): Could not find all widgets in Glade file!");
-		g_object_unref (an->xml);
-		g_free (an);
-		return NULL;
+	
+	gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
+	
+	model = gtk_tree_view_get_model (GTK_TREE_VIEW (an->treeview));
+	
+	gtk_list_store_append (GTK_LIST_STORE(model), &iter);
+
+	gtk_list_store_set (GTK_LIST_STORE(model), &iter, ALARM_SUMMARY_COLUMN, summary, -1);
+	gtk_list_store_set (GTK_LIST_STORE(model), &iter, ALARM_DESCRIPTION_COLUMN, description, -1);
+	gtk_list_store_set (GTK_LIST_STORE(model), &iter, ALARM_LOCATION_COLUMN, location, -1);
+	gtk_list_store_set (GTK_LIST_STORE(model), &iter, ALARM_START_COLUMN, occur_start, -1);
+	gtk_list_store_set (GTK_LIST_STORE(model), &iter, ALARM_END_COLUMN, occur_end, -1);
+	gtk_list_store_set (GTK_LIST_STORE(model), &iter, ALARM_FUNCINFO_COLUMN, funcinfo, -1);
+
+	fill_in_labels (an, summary, description, location, occur_start, occur_end);
+	an->cur_funcinfo = funcinfo;
+	
+	gtk_tree_selection_select_iter (selection, &iter);
+		
+	gtk_widget_show (an->dialog);
+
+	return an->dialog;
+}
+
+static void
+tree_selection_changed_cb (GtkTreeSelection *selection, gpointer user_data)
+{
+	GtkTreeModel *model;
+	GtkTreeIter iter;
+
+	if (gtk_tree_selection_get_selected (selection, &model, &iter))
+	{
+		AlarmNotify *an = user_data;
+		gchar *summary, *description, *location;
+		time_t occur_start, occur_end;
+		
+		gtk_tree_model_get (model, &iter, ALARM_SUMMARY_COLUMN, &summary, -1);
+		gtk_tree_model_get (model, &iter, ALARM_DESCRIPTION_COLUMN, &description, -1);
+		gtk_tree_model_get (model, &iter, ALARM_LOCATION_COLUMN, &location, -1);
+		gtk_tree_model_get (model, &iter, ALARM_START_COLUMN, &occur_start, -1);
+		gtk_tree_model_get (model, &iter, ALARM_END_COLUMN, &occur_end, -1);\
+		gtk_tree_model_get (model, &iter, ALARM_FUNCINFO_COLUMN, &an->cur_funcinfo, -1);
+		
+		fill_in_labels (an, summary, description, location, occur_start, occur_end);
 	}
+}
 
-	gtk_widget_realize (an->dialog);
-	gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (an->dialog)->vbox), 0);
-	gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (an->dialog)->action_area), 12);
-
-	image = glade_xml_get_widget (an->xml, "alarm-image");
-	icon_path = e_icon_factory_get_icon_filename ("stock_alarm", E_ICON_SIZE_DIALOG);
-	gtk_image_set_from_file (GTK_IMAGE (image), icon_path);
-	g_free (icon_path);
 
-	/* Title */
 
-	gtk_window_set_title (GTK_WINDOW (an->dialog), summary);
+static void 
+fill_in_labels (AlarmNotify *an, const gchar *summary, const gchar *description, 
+		const gchar *location, time_t occur_start, time_t occur_end)
+{
+		icaltimezone *current_zone;
+		gchar *title, *start, *end;
 
+	/* Title */
+	gtk_window_set_title (GTK_WINDOW (an->dialog), summary);
+	
 	/* Set the widget contents */
-
 	title = g_strdup_printf ("<big><b>%s</b></big>", summary);
 	gtk_label_set_markup (GTK_LABEL (an->title), title);
 	g_free (title);
-
+	
 	gtk_label_set_text (GTK_LABEL (an->description), description);
 	gtk_label_set_text (GTK_LABEL (an->location), location);
 
 	/* Stringize the times */
-
 	current_zone = config_data_get_timezone ();
-
 	start = timet_to_str_with_zone (occur_start, current_zone);
 	gtk_label_set_text (GTK_LABEL (an->start), start);
-
+	g_free (start);
+	
 	end = timet_to_str_with_zone (occur_end, current_zone);
 	gtk_label_set_text (GTK_LABEL (an->end), end);
-
-	/* Set callback for updating the snooze "minutes" label */
-	g_signal_connect (G_OBJECT (an->snooze_time), "value_changed",
-			  G_CALLBACK (an_update_minutes_label), an);
-	/* Run! */
-
-	if (!GTK_WIDGET_REALIZED (an->dialog))
-		gtk_widget_realize (an->dialog);
-
-	icon_list = e_icon_factory_get_icon_list ("stock_alarm");
-	if (icon_list) {
-		gtk_window_set_icon_list (GTK_WINDOW (an->dialog), icon_list);
-		g_list_foreach (icon_list, (GFunc) g_object_unref, NULL);
-		g_list_free (icon_list);
-	}
-
-	g_signal_connect (G_OBJECT (an->dialog), "response", G_CALLBACK (dialog_response_cb), an);
-	g_signal_connect (G_OBJECT (an->dialog), "destroy", G_CALLBACK (dialog_destroyed_cb), an);
-	gtk_widget_show (an->dialog);
-
-	return an->dialog;
+	g_free (end);
+			  
 }
Index: alarm-notify.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/alarm-notify/alarm-notify.c,v
retrieving revision 1.48
diff -u -r1.48 alarm-notify.c
--- alarm-notify.c	28 Feb 2005 23:38:48 -0000	1.48
+++ alarm-notify.c	12 Mar 2005 14:15:01 -0000
@@ -285,7 +285,7 @@
 alarm_notify_new (void)
 {
 	AlarmNotify *an;
-
+	
 	an = g_object_new (TYPE_ALARM_NOTIFY,
 			   "poa", bonobo_poa_get_threaded (ORBIT_THREAD_HINT_PER_REQUEST, NULL),
 			   NULL);
Index: alarm-notify.glade
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/alarm-notify/alarm-notify.glade,v
retrieving revision 1.10
diff -u -r1.10 alarm-notify.glade
--- alarm-notify.glade	23 Nov 2004 06:24:57 -0000	1.10
+++ alarm-notify.glade	12 Mar 2005 14:15:02 -0000
@@ -5,7 +5,7 @@
 
 <widget class="GtkDialog" id="alarm-notify">
   <property name="visible">True</property>
-  <property name="title" translatable="yes">Appointment</property>
+  <property name="title" translatable="yes">Appointments</property>
   <property name="type">GTK_WINDOW_TOPLEVEL</property>
   <property name="window_position">GTK_WIN_POS_NONE</property>
   <property name="modal">False</property>
@@ -18,6 +18,7 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
   <property name="has_separator">False</property>
 
   <child internal-child="vbox">
@@ -88,6 +89,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -159,6 +164,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -202,6 +211,36 @@
 	  <property name="spacing">12</property>
 
 	  <child>
+	    <widget class="GtkScrolledWindow" id="treeview-scrolledwindow">
+	      <property name="width_request">150</property>
+	      <property name="can_focus">True</property>
+	      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+	      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+	      <property name="shadow_type">GTK_SHADOW_IN</property>
+	      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+	      <child>
+		<widget class="GtkTreeView" id="appointments-treeview">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="headers_visible">False</property>
+		  <property name="rules_hint">False</property>
+		  <property name="reorderable">False</property>
+		  <property name="enable_search">True</property>
+		  <property name="fixed_height_mode">False</property>
+		  <property name="hover_selection">False</property>
+		  <property name="hover_expand">False</property>
+		</widget>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">False</property>
+	      <property name="fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
 	    <widget class="GtkImage" id="alarm-image">
 	      <property name="visible">True</property>
 	      <property name="stock">gtk-dialog-info</property>
@@ -214,7 +253,7 @@
 	    <packing>
 	      <property name="padding">0</property>
 	      <property name="expand">False</property>
-	      <property name="fill">False</property>
+	      <property name="fill">True</property>
 	    </packing>
 	  </child>
 
@@ -237,6 +276,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -265,6 +308,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -295,6 +342,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -319,6 +370,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -343,6 +398,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>
@@ -367,6 +426,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">1</property>
@@ -392,6 +455,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">1</property>
@@ -417,6 +484,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">1</property>
@@ -466,6 +537,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -498,6 +573,10 @@
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
 			  <property name="mnemonic_widget">snooze-time</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="left_attach">0</property>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]