CVS: sylpheedclaws/plugins/vcalendar/src vcal_meeting_gtk.c,1.1.2.48,1.1.2.49

[email protected] Thu, 28 Dec 2006 17:12:24 +0000
Newsgroups gmane.mail.sylpheed.claws.cvs
Message-ID <[email protected]>
Update of /pack/anoncvs/sylpheedclaws/plugins/vcalendar/src
In directory sunsite.dk:/tmp/cvs-serv7372/src

Modified Files:
      Tag: gtk2
	vcal_meeting_gtk.c 
Log Message:
2006-12-28 [colin]	1.91.0cvs10

	* src/vcal_meeting_gtk.c
		Make tooltips part of the meeting struct
		Add tooltip on attendees' entries

Index: vcal_meeting_gtk.c
===================================================================
RCS file: /pack/anoncvs/sylpheedclaws/plugins/vcalendar/src/vcal_meeting_gtk.c,v
retrieving revision 1.1.2.48
retrieving revision 1.1.2.49
diff -u -d -r1.1.2.48 -r1.1.2.49
--- vcal_meeting_gtk.c	2006/12/27 22:59:38	1.1.2.48
+++ vcal_meeting_gtk.c	2006/12/28 17:12:20	1.1.2.49
@@ -72,6 +72,7 @@
 	GtkWidget *total_avail_msg;
 	PrefsAccount *account;
 	gboolean visible;
+	GtkTooltips *tips;
 };
 
 struct _VCalAttendee {
@@ -208,6 +209,8 @@
 	gtk_widget_show(attendee->cutype);
 	gtk_widget_show(attendee->avail_evtbox);
 
+	gtk_tooltips_set_tip(meet->tips, attendee->address, 
+				_("Use <tab> to autocomplete from addressbook"), NULL);
 	gtk_widget_set_usize(attendee->avail_evtbox, 18, 16);
 	gtk_event_box_set_visible_window(GTK_EVENT_BOX(attendee->avail_evtbox), FALSE);
 	gtk_container_add (GTK_CONTAINER(attendee->avail_evtbox), attendee->avail_img);
@@ -497,10 +500,8 @@
 	g_signal_handlers_unblock_by_func(meet->start_mm, meeting_start_changed, meet);
 	g_signal_handlers_unblock_by_func(meet->start_c, meeting_start_changed, meet);
 }
-
-GtkTooltips *avail_tips = NULL;
 
-static void att_update_icon(VCalAttendee *attendee, gint avail, gchar *text)
+static void att_update_icon(VCalMeeting *meet, VCalAttendee *attendee, gint avail, gchar *text)
 {
 	const gchar *icon = GTK_STOCK_DIALOG_INFO;
 
@@ -514,14 +515,14 @@
 		if (attendee->avail_img) {
 			gtk_widget_hide(attendee->avail_img);
 		}
-		gtk_tooltips_set_tip(avail_tips, attendee->avail_evtbox, NULL, NULL);
+		gtk_tooltips_set_tip(meet->tips, attendee->avail_evtbox, NULL, NULL);
 	} else if (attendee->avail_img) {
 		gtk_image_set_from_stock
 		        (GTK_IMAGE(attendee->avail_img), 
 			icon, 
 			GTK_ICON_SIZE_SMALL_TOOLBAR);
 		gtk_widget_show(attendee->avail_img);
-		gtk_tooltips_set_tip(avail_tips, attendee->avail_evtbox, text, NULL);
+		gtk_tooltips_set_tip(meet->tips, attendee->avail_evtbox, text, NULL);
 	}
 }
 
@@ -674,12 +675,12 @@
 			}
 			total++;
 			g_free(mail);
-			att_update_icon(attendee, 0, _("not available"));
+			att_update_icon(meet, attendee, 0, _("not available"));
 		} else {
 			if (attendee->cached_contents != NULL)
-				att_update_icon(attendee, 1, _("available"));
+				att_update_icon(meet, attendee, 1, _("available"));
 			else
-				att_update_icon(attendee, 2, _("Free/busy retrieval failed"));
+				att_update_icon(meet, attendee, 2, _("Free/busy retrieval failed"));
 
 			g_hash_table_insert(avail_table_avail, attendee, GINT_TO_POINTER(1));
 		}
@@ -744,13 +745,13 @@
 		gint o_before = GPOINTER_TO_INT(g_hash_table_lookup(avail_table_before, attendee));
 		gint o_after = GPOINTER_TO_INT(g_hash_table_lookup(avail_table_after, attendee));
 		if (!o_before && !o_after && !ok) {
-			att_update_icon(attendee, 0, _("not available"));
+			att_update_icon(meet, attendee, 0, _("not available"));
 		} else if ((o_before != 0 || o_after != 0) && !ok) {
 			if (attendee->org)
 				msg = get_avail_msg(_("You"), FALSE, TRUE, o_before, o_after);
 			else
 				msg = get_avail_msg(gtk_entry_get_text(GTK_ENTRY(attendee->address)), FALSE, TRUE, o_before, o_after);
-			att_update_icon(attendee, 0, msg);
+			att_update_icon(meet, attendee, 0, msg);
 			g_free(msg);
 		}
 		
@@ -775,7 +776,7 @@
 	gtk_widget_show(meet->total_avail_img);
 	gtk_label_set_text(GTK_LABEL(meet->total_avail_msg), _("Not everyone is available. "
 				"See tooltips for more info..."));
-	gtk_tooltips_set_tip(avail_tips, meet->total_avail_evtbox, msg, NULL);
+	gtk_tooltips_set_tip(meet->tips, meet->total_avail_evtbox, msg, NULL);
 	g_free(msg);
 	return (val == G_ALERTALTERNATE);
 }
@@ -861,7 +862,7 @@
 
 		if (*email == '\0') {
 			g_free(email);
-			att_update_icon(attendee, 0, NULL);
+			att_update_icon(meet, attendee, 0, NULL);
 			continue;
 		}
 
@@ -919,7 +920,7 @@
 		g_free(tmp);
 		if (contents == NULL) {
 			uncertain = TRUE;
-			att_update_icon(attendee, 2, _("Free/busy retrieval failed"));
+			att_update_icon(meet, attendee, 2, _("Free/busy retrieval failed"));
 			continue;
 		}
 		else {
@@ -928,7 +929,7 @@
 				debug_print("not available!\n");
 			} else {
 				debug_print("available!\n");
-				att_update_icon(attendee, 1, _("Available"));
+				att_update_icon(meet, attendee, 1, _("Available"));
 			}
 			attendee->cached_contents = contents;
 			
@@ -949,7 +950,7 @@
 					GTK_ICON_SIZE_SMALL_TOOLBAR);
 				gtk_widget_show(meet->total_avail_img);
 				gtk_label_set_text(GTK_LABEL(meet->total_avail_msg), _("Everyone is available."));
-				gtk_tooltips_set_tip(avail_tips, meet->total_avail_evtbox, NULL, NULL);
+				gtk_tooltips_set_tip(meet->tips, meet->total_avail_evtbox, NULL, NULL);
 			} else {
 				gtk_image_set_from_stock
 		        		(GTK_IMAGE(meet->total_avail_img), 
@@ -957,7 +958,7 @@
 					GTK_ICON_SIZE_SMALL_TOOLBAR);
 				gtk_widget_show(meet->total_avail_img);
 				gtk_label_set_text(GTK_LABEL(meet->total_avail_msg), _("Everyone is available."));
-				gtk_tooltips_set_tip(avail_tips, meet->total_avail_evtbox, 
+				gtk_tooltips_set_tip(meet->tips, meet->total_avail_evtbox, 
 					_("Everyone seems available, but some free/busy information failed to be retrieved."), NULL);
 			}
 		}
@@ -1133,6 +1134,7 @@
 	if (!watch_cursor)
 		watch_cursor = gdk_cursor_new(GDK_WATCH);
 
+	meet->tips = gtk_tooltips_new();
 	meet->visible = visible;
 	start_h_adj = gtk_adjustment_new (0, 0, 23, 1, 10, 10);
 	start_m_adj = gtk_adjustment_new (0, 0, 59, 1, 10, 10);
@@ -1426,7 +1428,6 @@
 		||  *vcalprefs.freebusy_get_url == '\0')
 			gtk_widget_hide(meet->avail_btn);
 	}
-	avail_tips = gtk_tooltips_new();
 	return meet;
 }