CVS: sylpheed-claws/src mainwindow.c,1.274.2.108,1.274.2.109 toolbar.c,1.43.2.43,1.43.2.44 toolbar.h,1.19.2.10,1.19.2.11

Colin Leroy <[email protected]>
Newsgroups gmane.mail.sylpheed.claws.cvs
Message-ID <[email protected]>
Update of /cvsroot/sylpheed-claws/sylpheed-claws/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21226/src

Modified Files:
      Tag: gtk2
	mainwindow.c toolbar.c toolbar.h 
Log Message:
2006-05-08 [colin]	2.2.0cvs1

	* src/mainwindow.c
	* src/toolbar.c
	* src/toolbar.h
		Add contextual menu on Compose toolbar 
		button. Fixes bug #944 (Automatic 
		addresses not applied when changing account 
		from compose window)

Index: mainwindow.c
===================================================================
RCS file: /cvsroot/sylpheed-claws/sylpheed-claws/src/mainwindow.c,v
retrieving revision 1.274.2.108
retrieving revision 1.274.2.109
diff -u -r1.274.2.108 -r1.274.2.109
--- mainwindow.c	21 Apr 2006 16:52:18 -0000	1.274.2.108
+++ mainwindow.c	8 May 2006 11:57:07 -0000	1.274.2.109
@@ -402,6 +402,8 @@
 					  gpointer	 data);
 static void account_receive_menu_cb	 (GtkMenuItem	*menuitem,
 					  gpointer	 data);
+static void account_compose_menu_cb	 (GtkMenuItem	*menuitem,
+					  gpointer	 data);
 
 static void prefs_open_cb	(GtkMenuItem	*menuitem,
 				 gpointer 	 data);
@@ -1596,6 +1598,42 @@
 	}
 }
 
+static void main_window_set_toolbar_combo_compose_menu(MainWindow *mainwin,
+						       GList *account_list)
+{
+	GList *cur_ac, *cur_item;
+	GtkWidget *menuitem;
+	PrefsAccount *ac_prefs;
+	GtkWidget *menu = NULL;
+
+	if (mainwin->toolbar->compose_mail_btn == NULL
+	||  mainwin->toolbar->compose_combo == NULL) /* button doesn't exist */
+		return;
+
+	menu = mainwin->toolbar->compose_combo->menu;
+
+	/* destroy all previous menu item */
+	cur_item = GTK_MENU_SHELL(menu)->children;
+	while (cur_item != NULL) {
+		GList *next = cur_item->next;
+		gtk_widget_destroy(GTK_WIDGET(cur_item->data));
+		cur_item = next;
+	}
+
+	for (cur_ac = account_list; cur_ac != NULL; cur_ac = cur_ac->next) {
+		ac_prefs = (PrefsAccount *)cur_ac->data;
+
+		menuitem = gtk_menu_item_new_with_label
+			(ac_prefs->account_name
+			 ? ac_prefs->account_name : _("Untitled"));
+		gtk_widget_show(menuitem);
+		gtk_menu_append(GTK_MENU(menu), menuitem);
+		g_signal_connect(G_OBJECT(menuitem), "activate",
+				 G_CALLBACK(account_compose_menu_cb),
+				 ac_prefs);
+	}
+}
+
 void main_window_set_account_menu(GList *account_list)
 {
 	GList *cur;
@@ -1606,6 +1644,7 @@
 		main_window_set_account_selector_menu(mainwin, account_list);
 		main_window_set_account_receive_menu(mainwin, account_list);
 		main_window_set_toolbar_combo_receive_menu(mainwin, account_list);
+		main_window_set_toolbar_combo_compose_menu(mainwin, account_list);
 	}
 }
 
@@ -1617,6 +1656,7 @@
 	for (cur = mainwin_list; cur != NULL; cur = cur->next) {
 		mainwin = (MainWindow *)cur->data;
 		main_window_set_toolbar_combo_receive_menu(mainwin, account_list);
+		main_window_set_toolbar_combo_compose_menu(mainwin, account_list);
 	}
 }
 
@@ -3377,6 +3417,15 @@
 	inc_account_mail(mainwin, account);
 }
 
+static void account_compose_menu_cb(GtkMenuItem *menuitem, gpointer data)
+{
+	MainWindow *mainwin = (MainWindow *)mainwin_list->data;
+	PrefsAccount *account = (PrefsAccount *)data;
+	FolderItem *item = mainwin->summaryview->folder_item;	
+
+	compose_new_with_folderitem(account, item);
+}
+
 static void prefs_open_cb(GtkMenuItem *menuitem, gpointer data)
 {
 	prefs_gtk_open();

Index: toolbar.c
===================================================================
RCS file: /cvsroot/sylpheed-claws/sylpheed-claws/src/toolbar.c,v
retrieving revision 1.43.2.43
retrieving revision 1.43.2.44
diff -u -r1.43.2.43 -r1.43.2.44
--- toolbar.c	6 Apr 2006 10:58:16 -0000	1.43.2.43
+++ toolbar.c	8 May 2006 11:57:08 -0000	1.43.2.44
@@ -1432,6 +1432,7 @@
 	ComboButton *replylist_combo;
 	ComboButton *replysender_combo;
 	ComboButton *fwd_combo;
+	ComboButton *compose_combo;
 
 	GtkTooltips *toolbar_tips;
 	ToolbarSylpheedActions *action_item;
@@ -1523,6 +1524,14 @@
 			gtk_tooltips_set_tip(GTK_TOOLTIPS(toolbar_tips), 
 					     toolbar_data->compose_news_btn,
 					   _("Compose News"), NULL);
+			compose_combo = gtkut_combo_button_create(toolbar_data->compose_mail_btn, NULL, 0,
+					"<Compose>", (gpointer)toolbar_item);
+			gtk_button_set_relief(GTK_BUTTON(compose_combo->arrow),
+					      GTK_RELIEF_NONE);
+			gtk_toolbar_append_widget(GTK_TOOLBAR(toolbar),
+				  		  GTK_WIDGET_PTR(compose_combo),
+				 		  _("Compose with selected Account"), "Compose");
+			toolbar_data->compose_combo = compose_combo;
 			break;
 		case A_LEARN_SPAM:
 			icon_ham = stock_pixmap_widget(container, STOCK_PIXMAP_HAM_BTN);
@@ -1857,6 +1866,9 @@
 	if (toolbar->getall_btn)
 		SET_WIDGET_COND(GTK_WIDGET_PTR(toolbar->getall_combo),
 			M_HAVE_ACCOUNT|M_UNLOCKED);
+	if (toolbar->compose_mail_btn)
+		SET_WIDGET_COND(GTK_WIDGET_PTR(toolbar->compose_combo),
+			M_HAVE_ACCOUNT);
 	SET_WIDGET_COND(toolbar->compose_news_btn, M_HAVE_ACCOUNT);
 	SET_WIDGET_COND(toolbar->reply_btn,
 			M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST);
@@ -1987,6 +1999,7 @@
 	toolbar->send_btn         	= NULL;
 	toolbar->compose_mail_btn 	= NULL;
 	toolbar->compose_news_btn 	= NULL;
+	toolbar->compose_combo	 	= NULL;
 	toolbar->reply_btn        	= NULL;
 	toolbar->replysender_btn  	= NULL;
 	toolbar->replyall_btn     	= NULL;

Index: toolbar.h
===================================================================
RCS file: /cvsroot/sylpheed-claws/sylpheed-claws/src/toolbar.h,v
retrieving revision 1.19.2.10
retrieving revision 1.19.2.11
diff -u -r1.19.2.10 -r1.19.2.11
--- toolbar.h	1 Mar 2006 15:13:46 -0000	1.19.2.10
+++ toolbar.h	8 May 2006 11:57:08 -0000	1.19.2.11
@@ -56,6 +56,7 @@
 
 	GtkWidget *compose_mail_btn;
 	GtkWidget *compose_news_btn;
+	ComboButton *compose_combo;
 
 	GtkWidget *reply_btn;
 	ComboButton *reply_combo;



-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.