aboutsummaryrefslogtreecommitdiffstats
path: root/composer
diff options
context:
space:
mode:
Diffstat (limited to 'composer')
-rw-r--r--composer/e-composer-header.c10
-rw-r--r--composer/e-composer-private.c92
2 files changed, 47 insertions, 55 deletions
diff --git a/composer/e-composer-header.c b/composer/e-composer-header.c
index 453317870f..f1524a62e6 100644
--- a/composer/e-composer-header.c
+++ b/composer/e-composer-header.c
@@ -47,6 +47,7 @@ struct _EComposerHeaderPrivate {
gboolean button;
gchar *addaction_text;
gboolean addaction; /*For Add button.*/
+ GtkWidget *action_label;
guint sensitive : 1;
guint visible : 1;
@@ -67,8 +68,13 @@ static void
composer_header_addaction_clicked_cb (GtkButton *button,
EComposerHeader *header)
{
- gtk_widget_hide ((GtkWidget *)button);
- e_composer_header_set_visible (header, TRUE);
+ gboolean show = !e_composer_header_get_visible(header);
+ if (!show)
+ gtk_label_set_markup ((GtkLabel *)header->priv->action_label, g_object_get_data ((GObject *)header->priv->action_label, "show"));
+ else
+ gtk_label_set_markup ((GtkLabel *)header->priv->action_label, g_object_get_data ((GObject *)header->priv->action_label, "hide"));
+
+ e_composer_header_set_visible (header, show);
}
static GObject *
diff --git a/composer/e-composer-private.c b/composer/e-composer-private.c
index d4ec9ddc69..5613670b13 100644
--- a/composer/e-composer-private.c
+++ b/composer/e-composer-private.c
@@ -90,7 +90,6 @@ e_composer_private_init (EMsgComposer *composer)
GtkWidget *container;
GtkWidget *widget;
GtkWidget *send_widget;
- GtkWidget *exp_box;
const gchar *path;
gchar *filename;
gint ii;
@@ -140,10 +139,45 @@ e_composer_private_init (EMsgComposer *composer)
send_widget = gtk_ui_manager_get_widget (ui_manager, path);
gtk_tool_item_set_is_important (GTK_TOOL_ITEM (send_widget), TRUE);
- exp_box = gtk_hbox_new (FALSE, 0);
- gtk_widget_show(exp_box);
+ composer_setup_charset_menu (composer);
+
+ if (error != NULL) {
+ /* Henceforth, bad things start happening. */
+ g_critical ("%s", error->message);
+ g_clear_error (&error);
+ }
+
+ /* Construct the header table. */
+
+ container = editor->vbox;
+
+ widget = e_composer_header_table_new ();
+ gtk_container_set_border_width (GTK_CONTAINER (widget), 6);
+ gtk_box_pack_start (GTK_BOX (editor->vbox), widget, FALSE, FALSE, 0);
+ if (composer->lite)
+ gtk_box_reorder_child (GTK_BOX (editor->vbox), widget, 0);
+ else
+ gtk_box_reorder_child (GTK_BOX (editor->vbox), widget, 2);
+
+ priv->header_table = g_object_ref (widget);
+ gtk_widget_show (widget);
+
+ /* Construct the attachment paned. */
+
+ widget = e_attachment_paned_new ();
+ gtk_box_pack_start (GTK_BOX (container), widget, TRUE, TRUE, 0);
+ priv->attachment_paned = g_object_ref (widget);
+ gtk_widget_show (widget);
+
if (composer->lite) {
- GtkWidget *tmp, *tmp1, *tmp_box;
+ GtkWidget *tmp, *tmp1, *tmp_box, *container;
+ GtkWidget *combo;
+
+ combo = e_attachment_paned_get_view_combo (
+ E_ATTACHMENT_PANED (widget));
+ gtk_widget_hide (combo);
+ container = e_attachment_paned_get_controls_container (
+ E_ATTACHMENT_PANED (widget));
tmp_box = gtk_hbox_new (FALSE, 0);
@@ -178,57 +212,9 @@ e_composer_private_init (EMsgComposer *composer)
gtk_container_add((GtkContainer *)send_widget, tmp);
gtk_button_set_relief ((GtkButton *)send_widget, GTK_RELIEF_NORMAL);
- path = "/main-toolbar/pre-main-toolbar/attach";
- send_widget = gtk_ui_manager_get_widget (ui_manager, path);
- tmp = gtk_hbox_new (FALSE, 0);
- tmp1 = gtk_image_new_from_stock (
- GTK_STOCK_ADD, GTK_ICON_SIZE_BUTTON);
- gtk_box_pack_start ((GtkBox *)tmp, tmp1, FALSE, FALSE, 0);
- tmp1 = gtk_label_new_with_mnemonic (_("Add attachment"));
- gtk_box_pack_start ((GtkBox *)tmp, tmp1, FALSE, FALSE, 3);
- gtk_widget_show_all(tmp);
- gtk_widget_reparent (send_widget, tmp_box);
- gtk_box_set_child_packing ((GtkBox *)tmp_box, send_widget, FALSE, FALSE, 6, GTK_PACK_START);
- gtk_tool_item_set_is_important (GTK_TOOL_ITEM (send_widget), TRUE);
- send_widget = gtk_bin_get_child ((GtkBin *)send_widget);
- gtk_container_remove((GtkContainer *)send_widget, gtk_bin_get_child ((GtkBin *)send_widget));
- gtk_container_add((GtkContainer *)send_widget, tmp);
- gtk_button_set_relief ((GtkButton *)send_widget, GTK_RELIEF_NORMAL);
-
gtk_widget_show(tmp_box);
- gtk_box_pack_end ((GtkBox *)exp_box, tmp_box, TRUE, TRUE, 0);
- gtk_box_pack_end ((GtkBox *)editor->vbox, exp_box, FALSE, FALSE, 3);
-
+ gtk_box_pack_end (GTK_BOX (container), tmp_box, FALSE, FALSE, 3);
}
- composer_setup_charset_menu (composer);
-
- if (error != NULL) {
- /* Henceforth, bad things start happening. */
- g_critical ("%s", error->message);
- g_clear_error (&error);
- }
-
- /* Construct the header table. */
-
- container = editor->vbox;
-
- widget = e_composer_header_table_new ();
- gtk_container_set_border_width (GTK_CONTAINER (widget), 6);
- gtk_box_pack_start (GTK_BOX (editor->vbox), widget, FALSE, FALSE, 0);
- if (composer->lite)
- gtk_box_reorder_child (GTK_BOX (editor->vbox), widget, 0);
- else
- gtk_box_reorder_child (GTK_BOX (editor->vbox), widget, 2);
-
- priv->header_table = g_object_ref (widget);
- gtk_widget_show (widget);
-
- /* Construct the attachment paned. */
-
- widget = e_attachment_paned_new ();
- gtk_box_pack_start (GTK_BOX (container), widget, TRUE, TRUE, 0);
- priv->attachment_paned = g_object_ref (widget);
- gtk_widget_show (widget);
g_object_set_data ((GObject *)composer, "vbox", editor->vbox);