Index: addressbook/gui/component/addressbook-view.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/component/addressbook-view.c,v
retrieving revision 1.40
diff -u -p -r1.40 addressbook-view.c
--- addressbook/gui/component/addressbook-view.c	15 Nov 2005 16:23:34 -0000	1.40
+++ addressbook/gui/component/addressbook-view.c	16 Nov 2005 05:02:03 -0000
@@ -291,6 +291,44 @@ forget_passwords_cb (BonoboUIComponent *
 }
 
 static void
+focus_search_cb (BonoboUIComponent *uih, void *user_data, const char *path)
+{
+	AddressbookView *view = (AddressbookView *) user_data;
+	EABView *v = get_current_view (view);
+
+	gtk_widget_grab_focus (((ESearchBar *)v->search)->entry);
+}
+
+static void
+pane_move_cb (BonoboUIComponent *uih, void *user_data, const char *path)
+{
+	AddressbookView *view = (AddressbookView *) user_data;
+	EABView *v = get_current_view (view);	
+	GConfClient *gconf = mail_config_get_gconf_client();
+	int width_shown = gconf_client_get_int (gconf, "/apps/evolution/addressbook/display/hpane_position", NULL);
+	int width = gconf_client_get_int (gconf, "/apps/evolution/shell/view_defaults/width", NULL);
+	int folder_width = gconf_client_get_int (gconf, "/apps/evolution/shell/view_defaults/folder_bar/width", NULL);
+	int actual_width, measured, measured_left, measured_right;
+
+	if (!gconf_client_get_bool (gconf, "/apps/evolution/shell/view_defaults/wide_mode", NULL)) 
+		return;
+
+	actual_width = width - folder_width;
+	measured_left = actual_width * 25 / 100;
+	measured_right = actual_width *75 / 100;
+	
+	if (width_shown == measured_right)
+		measured = measured_left;
+	else
+		measured = measured_right;
+
+	gconf_client_set_int(gconf, "/apps/evolution/addressbook/display/hpane_position", measured, NULL);
+	
+	gtk_paned_set_position (v->paned, measured);
+}
+
+
+static void
 set_status_message (EABView *eav, const char *message, AddressbookView *view)
 {
 	AddressbookViewPrivate *priv = view->priv;
@@ -409,6 +447,9 @@ static BonoboUIVerb verbs [] = {
 	BONOBO_UI_UNSAFE_VERB ("ContactsMoveToFolder", move_contact_to_cb),
 	BONOBO_UI_UNSAFE_VERB ("ContactsCopyToFolder", copy_contact_to_cb),
 	BONOBO_UI_UNSAFE_VERB ("ContactsForgetPasswords", forget_passwords_cb),
+	BONOBO_UI_UNSAFE_VERB ("FocusSearch", focus_search_cb),
+	BONOBO_UI_UNSAFE_VERB ("PaneMove", pane_move_cb),
+	
 	/* ContactsViewPreview is a toggle */
 
 	BONOBO_UI_VERB_END
Index: addressbook/gui/component/apps_evolution_addressbook.schemas.in.in
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/component/apps_evolution_addressbook.schemas.in.in,v
retrieving revision 1.6
diff -u -p -r1.6 apps_evolution_addressbook.schemas.in.in
--- addressbook/gui/component/apps_evolution_addressbook.schemas.in.in	8 Feb 2005 00:38:40 -0000	1.6
+++ addressbook/gui/component/apps_evolution_addressbook.schemas.in.in	16 Nov 2005 05:02:03 -0000
@@ -48,12 +48,25 @@
       <applyto>/apps/evolution/addressbook/display/vpane_position</applyto>
       <owner>evolution-addressbook</owner>
       <type>int</type>
+      <default>400</default>      
       <locale name="C">
         <short>Vertical pane position</short>
         <long>Position of the vertical pane, between the card and list views and the preview pane, in pixels.</long>
       </locale>
     </schema>
 
+    <schema>
+      <key>/schemas/apps/evolution/addressbook/display/hpane_position</key>
+      <applyto>/apps/evolution/addressbook/display/hpane_position</applyto>
+      <owner>evolution-addressbook</owner>
+      <type>int</type>
+      <default>400</default>
+      <locale name="C">
+        <short>Horizontaal pane position</short>
+        <long>Position of the horizontal pane, between the card and list views and the preview pane, in pixels.</long>
+      </locale>
+    </schema>
+    
     <schema>
       <key>/schemas/apps/evolution/addressbook/display/show_preview</key>
       <applyto>/apps/evolution/addressbook/display/show_preview</applyto>
Index: addressbook/gui/widgets/e-addressbook-view.c
===================================================================
RCS file: /cvs/gnome/evolution/addressbook/gui/widgets/e-addressbook-view.c,v
retrieving revision 1.173
diff -u -p -r1.173 e-addressbook-view.c
--- addressbook/gui/widgets/e-addressbook-view.c	15 Nov 2005 16:23:34 -0000	1.173
+++ addressbook/gui/widgets/e-addressbook-view.c	16 Nov 2005 05:02:05 -0000
@@ -387,10 +387,17 @@ set_paned_position (EABView *eav)
 {
 	GConfClient *gconf_client;
 	gint         pos;
-
+	gboolean wide_mode;
+	
 	/* XXX this should use the addressbook's global gconf client */
 	gconf_client = gconf_client_get_default ();
-	pos = gconf_client_get_int (gconf_client, "/apps/evolution/addressbook/display/vpane_position", NULL);
+	wide_mode = gconf_client_get_bool (gconf_client, "/apps/evolution/shell/view_defaults/wide_mode", NULL);
+	
+	if (wide_mode)
+		pos = gconf_client_get_int (gconf_client, "/apps/evolution/addressbook/display/hpane_position", NULL);		
+	else
+		pos = gconf_client_get_int (gconf_client, "/apps/evolution/addressbook/display/vpane_position", NULL);
+
 	if (pos < 1)
 		pos = 144;
 
@@ -404,12 +411,17 @@ get_paned_position (EABView *eav)
 {
 	GConfClient *gconf_client;
 	gint pos;
-
+	gboolean wide_mode;
+	
 	/* XXX this should use the addressbook's global gconf client */
 	gconf_client = gconf_client_get_default ();
-
+	wide_mode = gconf_client_get_bool (gconf_client, "/apps/evolution/shell/view_defaults/wide_mode", NULL);
+	
 	pos = gtk_paned_get_position (GTK_PANED (eav->paned));
-	gconf_client_set_int (gconf_client, "/apps/evolution/addressbook/display/vpane_position", pos, NULL);
+	if (wide_mode)
+		gconf_client_set_int (gconf_client, "/apps/evolution/addressbook/display/hpane_position", pos, NULL);		
+	else
+		gconf_client_set_int (gconf_client, "/apps/evolution/addressbook/display/vpane_position", pos, NULL);
 
 	g_object_unref (gconf_client);
 
@@ -422,7 +434,10 @@ eab_view_new (void)
 	GtkWidget *widget = GTK_WIDGET (g_object_new (E_TYPE_AB_VIEW, NULL));
 	EABView *eav = EAB_VIEW (widget);
 	FilterPart *part;
-
+	GConfClient *gconf_client;
+	
+	gconf_client = gconf_client_get_default ();
+	
 	/* create our model */
 	eav->model = eab_model_new ();
 
@@ -475,7 +490,11 @@ eab_view_new (void)
 		filter_rule_add_part (eav->search_rule, filter_part_clone (part));
 
 	/* create the paned window and contact display */
-	eav->paned = gtk_vpaned_new ();
+	if (gconf_client_get_bool (gconf_client, "/apps/evolution/shell/view_defaults/wide_mode", NULL)) 
+		eav->paned = gtk_hpaned_new ();
+	else	
+		eav->paned = gtk_vpaned_new ();
+
 	gtk_box_pack_start (GTK_BOX (eav), eav->paned, TRUE, TRUE, 0);
 	g_signal_connect_swapped (eav->paned, "button_release_event",
 				  G_CALLBACK (get_paned_position), eav);
Index: calendar/gui/apps_evolution_calendar.schemas.in.in
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/apps_evolution_calendar.schemas.in.in,v
retrieving revision 1.13
diff -u -p -r1.13 apps_evolution_calendar.schemas.in.in
--- calendar/gui/apps_evolution_calendar.schemas.in.in	6 Oct 2005 18:21:51 -0000	1.13
+++ calendar/gui/apps_evolution_calendar.schemas.in.in	16 Nov 2005 05:02:08 -0000
@@ -170,6 +254,18 @@
       <locale name="C">
         <short>Tasks vertical pane position </short>
         <long>Position of the vertical pane, between the task list and the task preview pane, in pixels.</long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/evolution/calendar/display/task_hpane_position</key>
+      <applyto>/apps/evolution/calendar/display/task_hpane_position</applyto>
+      <owner>evolution-calendar</owner>
+      <type>int</type>
+      <default>400</default>
+      <locale name="C">
+        <short>Tasks horizontal pane position </short>
+        <long>Position of the horizontal pane, between the task list and the task preview pane, in pixels.</long>
       </locale>
     </schema>
 
Index: calendar/gui/calendar-config-keys.h
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/calendar-config-keys.h,v
retrieving revision 1.11
diff -u -p -r1.11 calendar-config-keys.h
--- calendar/gui/calendar-config-keys.h	19 Oct 2005 11:39:33 -0000	1.11
+++ calendar/gui/calendar-config-keys.h	16 Nov 2005 05:02:08 -0000
@@ -49,6 +56,7 @@ G_BEGIN_DECLS
 #define CALENDAR_CONFIG_MONTH_VPANE_POS CALENDAR_CONFIG_PREFIX "/display/month_vpane_position"
 #define CALENDAR_CONFIG_TASK_PREVIEW CALENDAR_CONFIG_PREFIX "/display/show_task_preview"
 #define CALENDAR_CONFIG_TASK_VPANE_POS CALENDAR_CONFIG_PREFIX "/display/task_vpane_position"
+#define CALENDAR_CONFIG_TASK_HPANE_POS CALENDAR_CONFIG_PREFIX "/display/task_hpane_position"
 #define CALENDAR_CONFIG_COMPRESS_WEEKEND CALENDAR_CONFIG_PREFIX "/display/compress_weekend"
 #define CALENDAR_CONFIG_SHOW_EVENT_END CALENDAR_CONFIG_PREFIX "/display/show_event_end"
 #define CALENDAR_CONFIG_WORKING_DAYS CALENDAR_CONFIG_PREFIX "/display/working_days"
@@ -82,6 +90,11 @@ G_BEGIN_DECLS
 /* Free/Busy settings */
 #define CALENDAR_CONFIG_PUBLISH CALENDAR_CONFIG_PREFIX"/publish/uris"
 #define CALENDAR_CONFIG_TEMPLATE CALENDAR_CONFIG_PREFIX"/publish/template"
+
+/* Global Settings*/
+#define CALENDAR_CONFIG_WIDE_MODE "/apps/evolution/shell/view_defaults/wide_mode"
+#define CALENDAR_CONFIG_FOLDER_WIDTH "/apps/evolution/shell/view_defaults/folder_bar/width"
+#define CALENDAR_CONFIG_WINDOW_WIDTH "/apps/evolution/shell/view_defaults/width"
 
 G_END_DECLS
 
Index: calendar/gui/calendar-config.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/calendar-config.c,v
retrieving revision 1.80
diff -u -p -r1.80 calendar-config.c
--- calendar/gui/calendar-config.c	19 Oct 2005 11:39:33 -0000	1.80
+++ calendar/gui/calendar-config.c	16 Nov 2005 05:02:08 -0000
@@ -647,6 +766,39 @@ void
 calendar_config_set_task_vpane_pos	(gint	      vpane_pos)
 {
 	gconf_client_set_int (config, CALENDAR_CONFIG_TASK_VPANE_POS, vpane_pos, NULL);
+}
+
+gint
+calendar_config_get_task_hpane_pos	(void)
+{
+	return  gconf_client_get_int (config, CALENDAR_CONFIG_TASK_HPANE_POS, NULL);
+}
+
+
+void
+calendar_config_set_task_hpane_pos	(gint	      hpane_pos)
+{
+	gconf_client_set_int (config, CALENDAR_CONFIG_TASK_HPANE_POS, hpane_pos, NULL);
+}
+
+/* Widemode */
+gboolean
+calendar_config_get_wide_mode	(void)
+{
+	return gconf_client_get_bool (config, CALENDAR_CONFIG_WIDE_MODE, NULL);
+}
+
+/* Global */
+guint
+calendar_config_get_folder_width	(void)
+{
+	return gconf_client_get_int (config, CALENDAR_CONFIG_FOLDER_WIDTH, NULL);
+}
+
+guint
+calendar_config_get_window_width	(void)
+{
+	return gconf_client_get_int (config, CALENDAR_CONFIG_WINDOW_WIDTH, NULL);
 }
 
 /***************************************/
Index: calendar/gui/calendar-config.h
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/calendar-config.h,v
retrieving revision 1.42
diff -u -p -r1.42 calendar-config.h
--- calendar/gui/calendar-config.h	19 Oct 2005 11:39:33 -0000	1.42
+++ calendar/gui/calendar-config.h	16 Nov 2005 05:02:08 -0000
@@ -162,10 +184,20 @@ char     *calendar_config_get_primary_ta
 void	  calendar_config_set_primary_tasks (const char *primary_uid);
 guint	  calendar_config_add_notification_primary_tasks (GConfClientNotifyFunc func, gpointer data);
 
-/* The pane position */
+/* The vpane position */
 gint      calendar_config_get_task_vpane_pos    (void);
 void      calendar_config_set_task_vpane_pos    (gint         vpane_pos);
 
+/* The hpane position */
+gint      calendar_config_get_task_hpane_pos    (void);
+void      calendar_config_set_task_hpane_pos    (gint         hpane_pos);
+
+/* Wide mode*/
+gboolean  calendar_config_get_wide_mode	(void);
+
+/* Global */
+guint  calendar_config_get_folder_width	(void);
+guint  calendar_config_get_window_width	(void);
 
 /* The current list of memo lists selected */
 GSList   *calendar_config_get_memos_selected (void);
Index: calendar/gui/e-tasks.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/e-tasks.c,v
retrieving revision 1.125
diff -u -p -r1.125 e-tasks.c
--- calendar/gui/e-tasks.c	18 Oct 2005 10:30:50 -0000	1.125
+++ calendar/gui/e-tasks.c	16 Nov 2005 05:02:18 -0000
@@ -241,7 +241,10 @@ search_bar_category_changed_cb (CalSearc
 static gboolean
 vpaned_resized_cb (GtkWidget *widget, GdkEventButton *event, ETasks *tasks)
 {
-	calendar_config_set_task_vpane_pos (gtk_paned_get_position (GTK_PANED (widget)));
+	if (calendar_config_get_wide_mode())
+		calendar_config_set_task_hpane_pos (gtk_paned_get_position (GTK_PANED (widget)));
+	else	
+		calendar_config_set_task_vpane_pos (gtk_paned_get_position (GTK_PANED (widget)));
 
 	return FALSE;
 }
@@ -507,7 +510,22 @@ table_drag_data_delete (ETable         *
 static void
 pane_realized (GtkWidget *widget, ETasks *tasks)
 {
-	gtk_paned_set_position ((GtkPaned *)widget, calendar_config_get_task_vpane_pos ());
+	if (calendar_config_get_wide_mode()) 
+		gtk_paned_set_position ((GtkPaned *)widget, calendar_config_get_task_hpane_pos ());
+	else	
+		gtk_paned_set_position ((GtkPaned *)widget, calendar_config_get_task_vpane_pos ());
+}
+
+void
+e_tasks_pane_set_mode (ETasks *tasks, gboolean left, int width)
+{
+	if (left) {
+		gtk_paned_set_position((GtkPaned *)tasks->priv->paned, width);	
+		gtk_widget_grab_focus (tasks->priv->preview);
+	} else {
+		gtk_paned_set_position((GtkPaned *)tasks->priv->paned, width);	
+		gtk_widget_grab_focus (tasks->priv->tasks_view);
+	}
 }
 
 static void
@@ -532,7 +550,11 @@ setup_widgets (ETasks *tasks)
 	gtk_widget_show (priv->search_bar);
 
 	/* add the paned widget for the task list and task detail areas */
-	priv->paned = gtk_vpaned_new ();
+	if (calendar_config_get_wide_mode())
+		priv->paned = gtk_hpaned_new ();
+	else
+		priv->paned = gtk_vpaned_new ();
+
 	g_signal_connect (priv->paned, "realize", G_CALLBACK (pane_realized), tasks);
 
 	g_signal_connect (G_OBJECT (priv->paned), "button_release_event",
@@ -1292,7 +1314,10 @@ display_view_cb (GalViewInstance *instan
 		gal_view_etable_attach_table (GAL_VIEW_ETABLE (view), e_table_scrolled_get_table (E_TABLE_SCROLLED (E_CALENDAR_TABLE (tasks->priv->tasks_view)->etable)));
 	}
 
-	gtk_paned_set_position ((GtkPaned *)tasks->priv->paned, calendar_config_get_task_vpane_pos ());
+	if (calendar_config_get_wide_mode())
+		gtk_paned_set_position ((GtkPaned *)tasks->priv->paned, calendar_config_get_task_hpane_pos ());
+	else
+		gtk_paned_set_position ((GtkPaned *)tasks->priv->paned, calendar_config_get_task_vpane_pos ());
 }
 
 /**
Index: calendar/gui/tasks-control.c
===================================================================
RCS file: /cvs/gnome/evolution/calendar/gui/tasks-control.c,v
retrieving revision 1.84
diff -u -p -r1.84 tasks-control.c
--- calendar/gui/tasks-control.c	6 Oct 2005 18:21:51 -0000	1.84
+++ calendar/gui/tasks-control.c	16 Nov 2005 05:02:22 -0000
@@ -237,6 +237,33 @@ selection_changed_cb (ETasks *tasks, int
 	tasks_control_sensitize_commands (control, tasks, n_selected);
 }
 
+static void
+tasks_control_pane_move (BonoboUIComponent *uid, ETasks *tasks, const char *path)
+{
+	int width_shown = calendar_config_get_task_hpane_pos ();
+	int width = calendar_config_get_window_width();
+	int folder_width = calendar_config_get_folder_width();
+	int actual_width, measured, measured_left, measured_right;
+
+	if (!calendar_config_get_wide_mode()) 
+		return;
+
+	actual_width = width - folder_width;
+
+	measured_left = actual_width * 25 / 100;
+	measured_right = actual_width *75 / 100;
+	
+	if (width_shown == measured_right)
+		measured = measured_left;
+	else
+		measured = measured_right;
+	
+	calendar_config_set_task_hpane_pos(measured);
+	
+	e_tasks_pane_set_mode (tasks, TRUE, measured);
+}
+
+
 static BonoboUIVerb verbs [] = {
 	BONOBO_UI_VERB ("TasksOpenTask", tasks_control_open_task_cmd),
 	BONOBO_UI_VERB ("TasksNewTask", tasks_control_new_task_cmd),
@@ -251,6 +278,8 @@ static BonoboUIVerb verbs [] = {
 	BONOBO_UI_VERB ("TasksAssign", tasks_control_assign_cmd),
         BONOBO_UI_VERB ("TasksForward", tasks_control_forward_cmd),
      	BONOBO_UI_VERB ("ViewPreview", tasks_control_view_preview),
+     	BONOBO_UI_VERB ("PaneMove", tasks_control_pane_move),
+	
 	BONOBO_UI_VERB_END
 };
 
Index: mail/em-folder-browser.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/em-folder-browser.c,v
retrieving revision 1.70
diff -u -p -r1.70 em-folder-browser.c
--- mail/em-folder-browser.c	18 Oct 2005 08:31:39 -0000	1.70
+++ mail/em-folder-browser.c	16 Nov 2005 05:02:31 -0000
@@ -144,7 +144,11 @@ emfb_pane_realised(GtkWidget *w, EMFolde
 	GConfClient *gconf;
 
 	gconf = mail_config_get_gconf_client ();
-	gtk_paned_set_position((GtkPaned *)emfb->vpane, gconf_client_get_int(gconf, "/apps/evolution/mail/display/paned_size", NULL));
+	if (gconf_client_get_bool (gconf, "/apps/evolution/shell/view_defaults/wide_mode", NULL)) 
+		gtk_paned_set_position((GtkPaned *)emfb->vpane, gconf_client_get_int(gconf, "/apps/evolution/mail/display/hpaned_size", NULL));
+	else
+		gtk_paned_set_position((GtkPaned *)emfb->vpane, gconf_client_get_int(gconf, "/apps/evolution/mail/display/paned_size", NULL));
+
 }
 
 static gboolean
@@ -152,10 +156,16 @@ emfb_pane_button_release_event(GtkWidget
 {
 	GConfClient *gconf = mail_config_get_gconf_client ();
 
-	if (GTK_WIDGET_REALIZED (w))
-		gconf_client_set_int(gconf, "/apps/evolution/mail/display/paned_size",
-				     gtk_paned_get_position(GTK_PANED(w)), NULL);
-	
+	if (GTK_WIDGET_REALIZED (w)) {
+		if (gconf_client_get_bool (gconf, "/apps/evolution/shell/view_defaults/wide_mode", NULL)) 
+			gconf_client_set_int(gconf, "/apps/evolution/mail/display/hpaned_size",
+					     gtk_paned_get_position(GTK_PANED(w)), NULL);
+		else
+			gconf_client_set_int(gconf, "/apps/evolution/mail/display/paned_size",
+					     gtk_paned_get_position(GTK_PANED(w)), NULL);
+
+	}
+
 	return FALSE;
 }
 
@@ -165,7 +175,8 @@ emfb_init(GObject *o)
 	EMFolderBrowser *emfb = (EMFolderBrowser *)o;
 	RuleContext *search_context = mail_component_peek_search_context (mail_component_peek ());
 	struct _EMFolderBrowserPrivate *p;
-
+	GConfClient *client = mail_config_get_gconf_client ();
+	
 	p = emfb->priv = g_malloc0(sizeof(struct _EMFolderBrowserPrivate));
 
 	emfb->view.preview_active = TRUE;
@@ -193,7 +204,11 @@ emfb_init(GObject *o)
 		gtk_box_pack_start((GtkBox *)emfb, (GtkWidget *)emfb->search, FALSE, TRUE, 0);
 	}
 
-	emfb->vpane = gtk_vpaned_new();
+	if (gconf_client_get_bool (client, "/apps/evolution/shell/view_defaults/wide_mode", NULL))
+		emfb->vpane = gtk_hpaned_new();
+	else
+		emfb->vpane = gtk_vpaned_new();
+
 	g_signal_connect(emfb->vpane, "realize", G_CALLBACK(emfb_pane_realised), emfb);
 	emfb->priv->vpane_resize_id = g_signal_connect(emfb->vpane, "button_release_event", G_CALLBACK(emfb_pane_button_release_event), emfb);
 
@@ -206,7 +221,7 @@ emfb_init(GObject *o)
 
 	/* currently: just use a scrolledwindow for preview widget */
 	p->preview = gtk_scrolled_window_new(NULL, NULL);
-	gtk_scrolled_window_set_policy((GtkScrolledWindow *)p->preview, GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
+	gtk_scrolled_window_set_policy((GtkScrolledWindow *)p->preview, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
 	gtk_scrolled_window_set_shadow_type((GtkScrolledWindow *)p->preview, GTK_SHADOW_IN);
 	gtk_widget_show(p->preview);
 
@@ -317,8 +332,12 @@ void em_folder_browser_show_preview(EMFo
 		GConfClient *gconf = mail_config_get_gconf_client ();
 		int paned_size /*, y*/;
 
-		paned_size = gconf_client_get_int(gconf, "/apps/evolution/mail/display/paned_size", NULL);
-
+		if (gconf_client_get_bool (gconf, "/apps/evolution/shell/view_defaults/wide_mode", NULL)) 
+			paned_size = gconf_client_get_int(gconf, "/apps/evolution/mail/display/hpaned_size", NULL);
+		else
+			paned_size = gconf_client_get_int(gconf, "/apps/evolution/mail/display/paned_size", NULL);
+			
+		
 		/*y = save_cursor_pos (emfb);*/
 		gtk_paned_set_position (GTK_PANED (emfb->vpane), paned_size);
 		gtk_widget_show (GTK_WIDGET (emfb->priv->preview));
@@ -773,6 +792,35 @@ emfb_focus_search(BonoboUIComponent *uid
 }
 
 static void
+emfb_wide_pane_move(BonoboUIComponent *uid, void *data, const char *path)
+{
+	EMFolderBrowser *emfb = data;
+	GConfClient *gconf = mail_config_get_gconf_client();
+	int width_shown = gconf_client_get_int (gconf, "/apps/evolution/mail/display/hpaned_size", NULL);
+	int width = gconf_client_get_int (gconf, "/apps/evolution/shell/view_defaults/width", NULL);
+	int folder_width = gconf_client_get_int (gconf, "/apps/evolution/shell/view_defaults/folder_bar/width", NULL);
+	int actual_width, measured_left, measured_right, measured;
+
+
+	if (!gconf_client_get_bool (gconf, "/apps/evolution/shell/view_defaults/wide_mode", NULL)) 
+		return;
+
+	actual_width = width - folder_width;
+	measured_left = actual_width * 25 / 100;
+	measured_right = actual_width *75 / 100;
+	
+	if (width_shown == measured_right)
+		measured = measured_left;
+	else
+		measured = measured_right;
+
+	gconf_client_set_int(gconf, "/apps/evolution/mail/display/hpaned_size", measured, NULL);
+	
+	gtk_paned_set_position (GTK_PANED (emfb->vpane), measured);
+	gtk_widget_grab_focus (emfb->view.list);
+}
+
+static void
 emfb_tools_vfolders(BonoboUIComponent *uid, void *data, const char *path)
 {
 	/* FIXME: rename/refactor this */
@@ -808,6 +856,7 @@ static BonoboUIVerb emfb_verbs[] = {
 	BONOBO_UI_UNSAFE_VERB ("ToolsSubscriptions", emfb_tools_subscriptions),
 	BONOBO_UI_UNSAFE_VERB ("ToolsVFolders", emfb_tools_vfolders),
 	BONOBO_UI_UNSAFE_VERB ("FocusSearch", emfb_focus_search),
+	BONOBO_UI_UNSAFE_VERB ("PaneMove", emfb_wide_pane_move),
 	
 	/* ViewPreview is a toggle */
 
Index: mail/em-folder-view.c
===================================================================
RCS file: /cvs/gnome/evolution/mail/em-folder-view.c,v
retrieving revision 1.133
diff -u -p -r1.133 em-folder-view.c
--- mail/em-folder-view.c	18 Oct 2005 08:31:39 -0000	1.133
+++ mail/em-folder-view.c	16 Nov 2005 05:02:32 -0000
@@ -1860,6 +1860,12 @@ emfv_enable_menus(EMFolderView *emfv)
 		}
 	}
 
+	/* Just Hide/Unhide Junk-Not Junk*/
+	bonobo_ui_component_set_prop(emfv->uic, "/commands/MessageMarkAsJunk", "hidden", 
+				*(bonobo_ui_component_get_prop(emfv->uic, "/commands/MessageMarkAsJunk", "sensitive",NULL)) == '1'?"0":"1", NULL);
+	bonobo_ui_component_set_prop(emfv->uic, "/commands/MessageMarkAsNotJunk", "hidden", 
+				*(bonobo_ui_component_get_prop(emfv->uic, "/commands/MessageMarkAsNotJunk", "sensitive",NULL)) == '1'?"0":"1", NULL);	
+
 	g_string_free(name, TRUE);
 }
 
Index: mail/evolution-mail.schemas.in.in
===================================================================
RCS file: /cvs/gnome/evolution/mail/evolution-mail.schemas.in.in,v
retrieving revision 1.21
diff -u -p -r1.21 evolution-mail.schemas.in.in
--- mail/evolution-mail.schemas.in.in	6 May 2005 07:08:45 -0000	1.21
+++ mail/evolution-mail.schemas.in.in	16 Nov 2005 05:02:33 -0000
@@ -360,6 +360,20 @@
     </schema>
 
     <schema>
+      <key>/schemas/apps/evolution/mail/display/hpaned_size</key>
+      <applyto>/apps/evolution/mail/display/hpaned_size</applyto>
+      <owner>evolution-mail</owner>
+      <type>int</type>
+      <default>350</default>
+      <locale name="C">
+         <short>Width of the message-list pane</short>
+         <long>
+          Width of the message-list pane.
+         </long>
+      </locale>
+    </schema>
+
+    <schema>
       <key>/schemas/apps/evolution/mail/display/fonts/variable</key>
       <applyto>/apps/evolution/mail/display/fonts/variable</applyto>
       <owner>evolution-mail</owner>
Index: shell/apps_evolution_shell.schemas.in.in
===================================================================
RCS file: /cvs/gnome/evolution/shell/apps_evolution_shell.schemas.in.in,v
retrieving revision 1.11
diff -u -p -r1.11 apps_evolution_shell.schemas.in.in
--- shell/apps_evolution_shell.schemas.in.in	21 Mar 2005 21:40:25 -0000	1.11
+++ shell/apps_evolution_shell.schemas.in.in	16 Nov 2005 05:02:45 -0000
@@ -156,6 +156,29 @@
       </locale>
     </schema>
 
+    <schema>
+      <key>/schemas/apps/evolution/shell/view_defaults/folder_bar/visible</key>
+      <applyto>/apps/evolution/shell/view_defaults/folder_bar/visible</applyto>
+      <owner>evolution</owner>
+      <type>bool</type>
+      <default>true</default>
+      <locale name="C">
+        <short>Show folder bar</short>
+        <long>Show the folder side bar.</long>
+      </locale>
+    </schema>
+
+    <schema>
+      <key>/schemas/apps/evolution/shell/view_defaults/wide_mode</key>
+      <applyto>/apps/evolution/shell/view_defaults/wide_mode</applyto>
+      <owner>evolution</owner>
+      <type>bool</type>
+      <default>false</default>
+      <locale name="C">
+        <short>Show Evolution in three column mode</short>
+        <long>Show Evolution Mail, Calendar, Task, Contacts preview in three column mode.</long>
+      </locale>
+    </schema>
     <!-- Print defaults -->
 
     <schema>
Index: shell/e-shell-window-commands.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-shell-window-commands.c,v
retrieving revision 1.43
diff -u -p -r1.43 e-shell-window-commands.c
--- shell/e-shell-window-commands.c	23 Sep 2005 09:44:58 -0000	1.43
+++ shell/e-shell-window-commands.c	16 Nov 2005 05:02:45 -0000
@@ -922,6 +922,26 @@ view_statusbar_item_toggled_handler (Bon
 	gconf_client_set_bool (gconf_client_get_default (),"/apps/evolution/shell/view_defaults/statusbar_visible", is_visible, NULL);
 }
 
+static void
+view_sidebar_item_toggled_handler   (BonoboUIComponent           *ui_component,
+				     const char                  *path,
+				     Bonobo_UIComponent_EventType type,
+				     const char                  *state,
+				     EShellWindow                *shell_window)
+{
+	GtkWidget *side_bar = e_shell_window_peek_sidebar (shell_window);
+	gboolean is_visible;
+
+	is_visible = state[0] == '1';	
+
+	if(is_visible)
+		gtk_widget_show (side_bar);
+	else
+		gtk_widget_hide (side_bar);
+
+	gconf_client_set_bool (gconf_client_get_default (),"/apps/evolution/shell/view_defaults/folder_bar/visible", is_visible, NULL);
+}
+
 /* Public API.  */
 
 void
@@ -962,7 +982,9 @@ e_shell_window_commands_setup (EShellWin
 	bonobo_ui_component_add_listener (uic, "ViewStatusBar",
 					  (BonoboUIListenerFn)view_statusbar_item_toggled_handler,
 					  (gpointer)shell_window);
-
+	bonobo_ui_component_add_listener (uic, "ViewSideBar",
+					  (BonoboUIListenerFn)view_sidebar_item_toggled_handler,
+					  (gpointer)shell_window);
 	e_pixmaps_update (uic, pixmaps);
 
 	/* Set up the work online / work offline menu item.  */
Index: shell/e-shell-window.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-shell-window.c,v
retrieving revision 1.39
diff -u -p -r1.39 e-shell-window.c
--- shell/e-shell-window.c	23 Sep 2005 09:44:58 -0000	1.39
+++ shell/e-shell-window.c	16 Nov 2005 05:02:46 -0000
@@ -683,12 +683,24 @@ setup_widgets (EShellWindow *window)
 	/* Status Bar*/
 	visible = gconf_client_get_bool (gconf_client,
 				         "/apps/evolution/shell/view_defaults/statusbar_visible",
-					 NULL);
+							 NULL);
 	bonobo_ui_component_set_prop (e_shell_window_peek_bonobo_ui_component (window),
 				      "/commands/ViewStatusBar",
 				      "state",
 				      visible ? "1" : "0",
 				      NULL);
+	/* Folder Bar*/
+	visible = gconf_client_get_bool (gconf_client,
+				         "/apps/evolution/shell/view_defaults/folder_bar/visible",
+					 NULL);
+	bonobo_ui_component_set_prop (e_shell_window_peek_bonobo_ui_component (window),
+				      "/commands/ViewSideBar",
+				      "state",
+				      visible ? "1" : "0",
+				      NULL);
 
+	if (!visible)
+		gtk_widget_hide (priv->sidebar);

 	/* The tool bar */
 	visible = gconf_client_get_bool (gconf_client,
Index: ui/evolution-addressbook.xml
===================================================================
RCS file: /cvs/gnome/evolution/ui/evolution-addressbook.xml,v
retrieving revision 1.70
diff -u -p -r1.70 evolution-addressbook.xml
--- ui/evolution-addressbook.xml	6 Oct 2005 18:21:50 -0000	1.70
+++ ui/evolution-addressbook.xml	16 Nov 2005 05:02:46 -0000
@@ -65,6 +65,11 @@
 	 type="toggle"/>
   </commands>
 
+  <keybindings>
+	  <accel name="slash" id="FocusSearch"/>
+	  <accel name="*Control*z" id="PaneMove"/>
+  </keybindings>
+
   <menu>
     <submenu name="File">
       <placeholder name="FileOps">
Index: ui/evolution-mail-global.xml
===================================================================
RCS file: /cvs/gnome/evolution/ui/evolution-mail-global.xml,v
retrieving revision 1.36
diff -u -p -r1.36 evolution-mail-global.xml
--- ui/evolution-mail-global.xml	18 Oct 2005 08:34:38 -0000	1.36
+++ ui/evolution-mail-global.xml	16 Nov 2005 05:02:46 -0000
@@ -40,6 +40,7 @@
 
   <keybindings>
 	  <accel name="slash" id="FocusSearch"/>
+	  <accel name="*Control*z" id="PaneMove"/>
   </keybindings>
 
   <menu>
Index: ui/evolution-mail-message.xml
===================================================================
RCS file: /cvs/gnome/evolution/ui/evolution-mail-message.xml,v
retrieving revision 1.77
diff -u -p -r1.77 evolution-mail-message.xml
--- ui/evolution-mail-message.xml	11 Nov 2005 08:02:48 -0000	1.77
+++ ui/evolution-mail-message.xml	16 Nov 2005 05:02:46 -0000
@@ -407,16 +407,6 @@
        _label="Forward" priority="1"
        pixtype="pixbuf"/>
 
-      <separator f="" name="emaillist1"/>
-
-      <toolitem name="MessageMove" verb=""
-       _label="Move"
-       pixtype="pixbuf"/>
- 
-      <toolitem name="MessageCopy" verb=""
-       _label="Copy"
-       pixtype="pixbuf"/>
-
       <separator f="" name="emaillist2"/>
 
       <toolitem name="PrintMessage" verb=""
Index: ui/evolution-tasks.xml
===================================================================
RCS file: /cvs/gnome/evolution/ui/evolution-tasks.xml,v
retrieving revision 1.39
diff -u -p -r1.39 evolution-tasks.xml
--- ui/evolution-tasks.xml	6 Oct 2005 18:21:50 -0000	1.39
+++ ui/evolution-tasks.xml	16 Nov 2005 05:02:46 -0000
@@ -19,7 +19,12 @@
     <cmd name="ViewPreview" _tip="Show task preview window" accel="*Control**Alt*v" type="toggle"/>
 
   </commands>
-  
+
+  <keybindings>
+	  <accel name="slash" id="FocusSearch"/>
+	  <accel name="*Control*z" id="PaneMove"/>
+  </keybindings>
+
   <menu>
     <submenu name="File">
       <placeholder name="FileOps">
Index: ui/evolution.xml
===================================================================
RCS file: /cvs/gnome/evolution/ui/evolution.xml,v
retrieving revision 1.101
diff -u -p -r1.101 evolution.xml
--- ui/evolution.xml	23 Sep 2005 09:44:58 -0000	1.101
+++ ui/evolution.xml	16 Nov 2005 05:02:46 -0000
@@ -31,6 +31,9 @@
     <cmd name="ViewStatusBar" _label="_View Status Bar" type="toggle"
       _tip="View/Hide the Status Bar" state="1"/>
 
+    <cmd name="ViewSideBar" _label="View Folder Bar" type="toggle"
+    _tip="View/Hide the Side Folder Bar and Component Buttons"/>
+
     <cmd name="HelpSubmitBug" _label="Submit Bug Report"
       _tip="Submit a bug report using Bug Buddy"/>
 
@@ -112,7 +115,9 @@
       <placeholder name="ViewBegin"/>
       <submenu name="Window" _label="_Window"/>
       <menuitem name="ViewToolbar" id="ViewToolbar" verb="" accel="*Control**Shift*o"/>
-      <menuitem name="ViewStatusBar" id="ViewStatusBar" accel="*Control**Shift*v"/>
+      <menuitem name="ViewStatusBar" id="ViewStatusBar" accel="F3"/>
+      <menuitem name="ViewSideBar" id="ViewSideBar" accel="F2"/>
+
       <placeholder name="ViewPreview"/>
       <submenu name="Buttons" _label="_Switcher Appearance">
             <menuitem name="ViewButtonsIconText" id="ViewButtonsIconText" verb=""/>
