-/* connection-specific-smtp-window.c */
+/* Copyright (c) 2006, Nokia Corporation
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of the Nokia Corporation nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
#include "modest-signature-editor-dialog.h"
-#include "maemo/modest-maemo-ui-constants.h"
-#include <hildon-widgets/hildon-caption.h>
-#include <hildon-widgets/hildon-number-editor.h>
+#include "widgets/modest-ui-constants.h"
+#include "modest-hildon-includes.h"
#include "widgets/modest-serversecurity-combo-box.h"
#include "widgets/modest-secureauth-combo-box.h"
#include "widgets/modest-validating-entry.h"
+#include "modest-runtime.h"
#include <modest-account-mgr-helpers.h>
#include <gtk/gtkcheckbutton.h>
#include <gtk/gtkhbox.h>
#include <gtk/gtkvbox.h>
#include <gtk/gtktextview.h>
#include <gtk/gtklabel.h>
+#include <gtk/gtkscrolledwindow.h>
#include <gtk/gtkstock.h>
-
#include <glib/gi18n.h>
+#include <modest-maemo-utils.h>
G_DEFINE_TYPE (ModestSignatureEditorDialog, modest_signature_editor_dialog, GTK_TYPE_DIALOG);
{
GtkWidget *checkbox_use;
GtkWidget *label;
+ GtkWidget *scrolledwindow;
GtkWidget *textview;
};
}
static void
+enable_widgets (ModestSignatureEditorDialog *self)
+{
+ ModestSignatureEditorDialogPrivate *priv =
+ SIGNATURE_EDITOR_DIALOG_GET_PRIVATE (self);
+
+ const gboolean enable = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->checkbox_use));
+ gtk_widget_set_sensitive (priv->label, enable);
+ gtk_widget_set_sensitive (priv->scrolledwindow, enable);
+ gtk_text_view_set_editable (GTK_TEXT_VIEW (priv->textview), enable);
+}
+
+static void
+on_toggle_button_changed (GtkToggleButton *togglebutton, gpointer user_data)
+{
+ ModestSignatureEditorDialog *self = MODEST_SIGNATURE_EDITOR_DIALOG (user_data);
+ enable_widgets (self);
+}
+
+static void
modest_signature_editor_dialog_init (ModestSignatureEditorDialog *self)
{
ModestSignatureEditorDialogPrivate *priv =
gtk_window_set_title (GTK_WINDOW (self), _("mcen_ti_email_signatures_edit_title"));
GtkWidget *box = GTK_DIALOG(self)->vbox; /* gtk_vbox_new (FALSE, MODEST_MARGIN_HALF); */
+ gtk_container_set_border_width (GTK_CONTAINER (box), MODEST_MARGIN_HALF);
priv->checkbox_use = gtk_check_button_new_with_label (
_("mcen_fi_email_signatures_use_signature"));
gtk_box_pack_start (GTK_BOX (box), priv->checkbox_use, FALSE, FALSE, MODEST_MARGIN_HALF);
gtk_widget_show (priv->checkbox_use);
+ g_signal_connect (G_OBJECT (priv->checkbox_use), "toggled",
+ G_CALLBACK (on_toggle_button_changed), self);
+
+
priv->label = gtk_label_new (""); /* Set in modest_signature_editor_dialog_set_settings(). */
gtk_box_pack_start (GTK_BOX (box), priv->label, FALSE, FALSE, MODEST_MARGIN_HALF);
gtk_widget_show (priv->label);
+ priv->scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
+ gtk_container_set_border_width (GTK_CONTAINER (priv->scrolledwindow), MODEST_MARGIN_DEFAULT);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->scrolledwindow),
+ GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+ gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (priv->scrolledwindow), GTK_SHADOW_IN);
+ gtk_box_pack_start (GTK_BOX (box), priv->scrolledwindow, FALSE, FALSE, MODEST_MARGIN_HALF);
+ gtk_widget_show (priv->scrolledwindow);
+
priv->textview = gtk_text_view_new ();
- gtk_box_pack_start (GTK_BOX (box), priv->textview, FALSE, FALSE, MODEST_MARGIN_HALF);
+ gtk_container_add (GTK_CONTAINER (priv->scrolledwindow), priv->textview);
gtk_widget_show (priv->textview);
+ GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->textview));
+ gtk_text_buffer_set_text (buffer, "--\n", -1); /* Default, as per the UI spec. */
/* Add the buttons: */
- gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_OK, GTK_RESPONSE_OK);
- gtk_dialog_add_button (GTK_DIALOG (self), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
-
+ gtk_dialog_add_button (GTK_DIALOG (self), _("mcen_bd_dialog_ok"), GTK_RESPONSE_OK);
+ gtk_dialog_add_button (GTK_DIALOG (self), _("mcen_bd_dialog_cancel"), GTK_RESPONSE_CANCEL);
gtk_widget_show (box);
+ gtk_widget_set_size_request (GTK_WIDGET (self), 480, -1);
+
+ /* When this window is shown, hibernation should not be possible,
+ * because there is no sensible way to save the state: */
+ modest_window_mgr_prevent_hibernation_while_window_is_shown (
+ modest_runtime_get_window_mgr (), GTK_WINDOW (self));
+
+ hildon_help_dialog_help_enable (GTK_DIALOG(self), "applications_email_signatureeditor",
+ modest_maemo_utils_get_osso_context());
}
ModestSignatureEditorDialog*
gchar* label_text = g_strdup_printf (_("mcen_ia_email_signatures_edit_dlg_label"),
account_title);
gtk_label_set_text (GTK_LABEL (priv->label), label_text);
+ gtk_label_set_ellipsize (GTK_LABEL (priv->label), PANGO_ELLIPSIZE_END);
g_free (label_text);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->checkbox_use), use_signature);
if (signature)
gtk_text_buffer_set_text (buffer, signature, -1);
else
- gtk_text_buffer_set_text (buffer, "", -1);
+ gtk_text_buffer_set_text (buffer, "--\n", -1); /* Default, as per the UI spec. */
+
+ enable_widgets (window);
}
/*