[anjal] Extra options for creating views.



commit 228ffa8e2109d7545cf3c3cf52ef34787e8b3d37
Author: Srinivasa Ragavan <sragavan novell com>
Date:   Fri May 29 23:44:30 2009 +0530

    Extra options for creating views.
---
 src/mail-view.c |   41 +++++++++++++++++++++++------------------
 src/mail-view.h |    2 +-
 2 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/src/mail-view.c b/src/mail-view.c
index 9e63016..dcb15ee 100644
--- a/src/mail-view.c
+++ b/src/mail-view.c
@@ -85,7 +85,7 @@ mail_view_class_init (MailViewClass *klass)
 static void
 mv_new_page (GtkButton *w, MailView *mv)
 {
-	mail_view_add_page (mv, MAIL_VIEW_FOLDER);
+	mail_view_add_page (mv, MAIL_VIEW_FOLDER, NULL);
 	gtk_notebook_set_current_page (mv, g_list_length (mv->priv->children)-1);
 }
 #endif
@@ -98,7 +98,7 @@ mv_switch (GtkNotebook     *notebook,GtkNotebookPage *page, guint page_num, gpoi
 
 #ifdef MV_NEW_TAB
 	if (page_num == g_list_length(priv->children) && shell->priv->new) {
-		mail_view_add_page (shell, MAIL_VIEW_FOLDER);
+		mail_view_add_page (shell, MAIL_VIEW_FOLDER, NULL);
 		gtk_notebook_set_current_page (shell, g_list_length (shell->priv->children)-1);
 	} else {
 #endif		 
@@ -257,7 +257,7 @@ mv_message_new (MailFolderView *mfv, gpointer data, char *umid, MailView *mv)
 }
 
 static MailViewChild *
-mail_view_add_folder (MailView *mv)
+mail_view_add_folder (MailView *mv, gpointer data)
 {
 	MailFolderView *mfv = mail_folder_view_new ();
 	gint position = 0;
@@ -278,11 +278,16 @@ mail_view_add_folder (MailView *mv)
 }
 
 static MailViewChild *
-mail_view_add_composer (MailView *mv)
+mail_view_add_composer (MailView *mv, gpointer data)
 {
-	MailComposerView *mcv = mail_composer_view_new ();
+	MailComposerView *mcv;
 	gint position = 0;
 
+	if (!data)
+		mcv = mail_composer_view_new ();
+	else
+		mcv = mail_composer_view_new_with_composer ((GtkWidget *)data);
+
 	mv->priv->current_view = (MailViewChild *)mcv;
 	mv->priv->children = g_list_append (mv->priv->children,  mcv);
 	
@@ -298,7 +303,7 @@ mail_view_add_composer (MailView *mv)
 }
 
 static MailViewChild *
-mail_view_add_message (MailView *mv)
+mail_view_add_message (MailView *mv, gpointer data)
 {
 	MailConvView *mcv = mail_conv_view_new ();
 	gint position = 0;
@@ -322,11 +327,11 @@ mail_view_add_message (MailView *mv)
 static void
 mv_show_acc_mcv (MailFolderView *mfv, MailView *mv)
 {
-	mail_view_add_page(mv, MAIL_VIEW_ACCOUNT);
+	mail_view_add_page(mv, MAIL_VIEW_ACCOUNT, NULL);
 }
 
 static MailViewChild *
-mail_view_add_settings (MailView *mv)
+mail_view_add_settings (MailView *mv, gpointer data)
 {
 	MailSettingsView *msv  = mail_settings_view_new ();
 	gint position = 0;
@@ -345,7 +350,7 @@ mail_view_add_settings (MailView *mv)
 }
 
 static MailViewChild *
-mail_view_add_account (MailView *mv)
+mail_view_add_account (MailView *mv, gpointer data)
 {
 	MailAccountView *msv  = mail_account_view_new (NULL);
 	gint position = 0;
@@ -364,27 +369,27 @@ mail_view_add_account (MailView *mv)
 }
 
 MailViewChild *
-mail_view_add_page (MailView *mv, guint16 type)
+mail_view_add_page (MailView *mv, guint16 type, gpointer data)
 {
 	MailViewChild *child = NULL;
 
 	g_signal_handlers_block_by_func(mv, mv_switch, mv);
 	switch (type){
 	case MAIL_VIEW_FOLDER:
-		child = mail_view_add_folder (mv);
+		child = mail_view_add_folder (mv, data);
 		break;
 
 	case MAIL_VIEW_COMPOSER:
-		child = mail_view_add_composer (mv);
+		child = mail_view_add_composer (mv, data);
 		break;
 	case MAIL_VIEW_MESSAGE:
-		child = mail_view_add_message (mv);
+		child = mail_view_add_message (mv, data);
 		break;
 	case MAIL_VIEW_SETTINGS:
-		child = mail_view_add_settings (mv);
+		child = mail_view_add_settings (mv, data);
 		break;
 	case MAIL_VIEW_ACCOUNT:
-		child = mail_view_add_account (mv);
+		child = mail_view_add_account (mv, data);
 		break;	
 	}
 	gtk_widget_grab_focus((GtkWidget *)child);
@@ -413,7 +418,7 @@ mv_switch_folder_view (MailView *mv, const char *uri)
 		  tmp = tmp->next;
 	 }
 
-	 mail_view_add_page (mv, MAIL_VIEW_FOLDER);
+	 mail_view_add_page (mv, MAIL_VIEW_FOLDER, NULL);
 	 mail_folder_view_set_folder_uri ((MailFolderView *)mv->priv->current_view, uri);
 }
 
@@ -433,7 +438,7 @@ mv_switch_message_view (MailView *mv, const char *uri)
 		  tmp = tmp->next;
 	 }
 
-	 return (MailConvView *)mail_view_add_page (mv, MAIL_VIEW_MESSAGE);
+	 return (MailConvView *)mail_view_add_page (mv, MAIL_VIEW_MESSAGE, NULL);
 }
 
 void
@@ -492,7 +497,7 @@ mv_tree_click_cb (GtkWidget *w, GdkEventButton *event, MailView *mv)
 		  
 		  if (!gtk_tree_view_get_path_at_pos ((GtkTreeView *)w, (int) event->x, (int) event->y, &tree_path, NULL, NULL, NULL))
 			   return FALSE;
-		  mail_view_add_page (mv, MAIL_VIEW_FOLDER);
+		  mail_view_add_page (mv, MAIL_VIEW_FOLDER, NULL);
 		  gtk_notebook_set_current_page ((GtkNotebook *)mv, g_list_length (mv->priv->children)-1);
 		  selection = gtk_tree_view_get_selection ((GtkTreeView *)w);
 		  gtk_tree_selection_unselect_path (selection, tree_path);
diff --git a/src/mail-view.h b/src/mail-view.h
index b550533..b74f2d2 100644
--- a/src/mail-view.h
+++ b/src/mail-view.h
@@ -74,7 +74,7 @@ void mail_view_check_mail(MailView *mv);
 void mail_view_set_folder_tree_widget (MailView *mv, GtkWidget *tree);
 void mail_view_set_folder_tree (MailView *mv, GtkWidget *tree);
 void mail_view_save (MailView *mv);
-MailViewChild * mail_view_add_page (MailView *mv, guint16 type);
+MailViewChild * mail_view_add_page (MailView *mv, guint16 type, gpointer data);
 void mail_view_set_search (MailView *view, const char *search);
 void mail_view_set_slider (MailView *mv, GtkWidget *slider);
 



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