Remove autofocus adjustment in widgets autofocus doesn't help
[modest] / src / hildon2 / modest-signature-editor-dialog.c
index 2eb6069..0fa7c46 100644 (file)
 #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 <hildon/hildon-pannable-area.h>
 #include <gtk/gtkstock.h>
 #include <glib/gi18n.h>
 #include <modest-maemo-utils.h>
+#include "modest-text-utils.h"
+#include <hildon/hildon-text-view.h>
 
 G_DEFINE_TYPE (ModestSignatureEditorDialog, modest_signature_editor_dialog, GTK_TYPE_DIALOG);
 
@@ -54,7 +55,7 @@ struct _ModestSignatureEditorDialogPrivate
 {
        GtkWidget *checkbox_use;
        GtkWidget *label;
-       GtkWidget *scrolledwindow;
+       GtkWidget *pannable;
        GtkWidget *textview;
 };
 
@@ -110,9 +111,9 @@ 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));
+       const gboolean enable = hildon_check_button_get_active (HILDON_CHECK_BUTTON (priv->checkbox_use));
        gtk_widget_set_sensitive (priv->label, enable);
-       gtk_widget_set_sensitive (priv->scrolledwindow, enable);
+       gtk_widget_set_sensitive (priv->textview, enable);
        gtk_text_view_set_editable (GTK_TEXT_VIEW (priv->textview), enable);
 }
 
@@ -128,53 +129,59 @@ modest_signature_editor_dialog_init (ModestSignatureEditorDialog *self)
 {
        ModestSignatureEditorDialogPrivate *priv = 
                SIGNATURE_EDITOR_DIALOG_GET_PRIVATE (self);
+       GtkWidget *top_box, *align;
        
        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);
+       top_box = gtk_vbox_new (FALSE, 0);
+
+       priv->checkbox_use = hildon_check_button_new (HILDON_SIZE_FINGER_HEIGHT);
+       gtk_button_set_label (GTK_BUTTON (priv->checkbox_use), 
+                             _("mcen_fi_email_signatures_use_signature"));
+       gtk_button_set_alignment (GTK_BUTTON (priv->checkbox_use), 0.0, 0.5);
+       gtk_box_pack_start (GTK_BOX (top_box), priv->checkbox_use, FALSE, FALSE, 0);
        gtk_widget_show (priv->checkbox_use);
        
        g_signal_connect (G_OBJECT (priv->checkbox_use), "toggled",
-               G_CALLBACK (on_toggle_button_changed), self);
-               
+                         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_misc_set_alignment (GTK_MISC (priv->label), 0.0, 0.0);
+       gtk_misc_set_padding (GTK_MISC (priv->label), MODEST_MARGIN_DOUBLE, MODEST_MARGIN_DOUBLE);
+       gtk_box_pack_start (GTK_BOX (top_box), priv->label, FALSE, FALSE, 0);
        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_container_add (GTK_CONTAINER (priv->scrolledwindow), priv->textview);
+       priv->textview = hildon_text_view_new ();
        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. */
+       GtkTextBuffer *buffer = hildon_text_view_get_buffer (HILDON_TEXT_VIEW (priv->textview));
+       gtk_text_buffer_set_text (buffer, _("mcen_va_default_signature_tablet"), -1); /* Default, as per the UI spec. */
+       gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (priv->textview), GTK_WRAP_WORD_CHAR);
+       gtk_box_pack_start (GTK_BOX (top_box), priv->textview, TRUE, TRUE, 0);
        
        /* Add the buttons: */
-       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_dialog_add_button (GTK_DIALOG (self), _HL("wdgt_bd_save"), GTK_RESPONSE_OK);
+
+       align = gtk_alignment_new (0.0, 0.0, 1.0, 1.0);
+       gtk_alignment_set_padding (GTK_ALIGNMENT (align), 0, 0, MODEST_MARGIN_DOUBLE, 0);
+       gtk_widget_show (align);
+       gtk_container_add (GTK_CONTAINER (align), top_box);
        
+       gtk_widget_show (top_box);
+
+       priv->pannable = hildon_pannable_area_new ();
+       hildon_pannable_area_add_with_viewport (HILDON_PANNABLE_AREA (priv->pannable), align);
+       gtk_container_add (GTK_CONTAINER (GTK_DIALOG (self)->vbox), priv->pannable);
+       gtk_widget_show (priv->pannable);               
+
        gtk_widget_show (box);
-       gtk_widget_set_size_request (GTK_WIDGET (self), 480, -1);
+       gtk_widget_set_size_request (GTK_WIDGET (self), -1, MODEST_DIALOG_WINDOW_MAX_HEIGHT);
        
        /* 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*
@@ -198,13 +205,13 @@ modest_signature_editor_dialog_set_settings (
        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);
+       hildon_check_button_set_active (HILDON_CHECK_BUTTON (priv->checkbox_use), use_signature);
        
-       GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->textview));
-       if (signature)
+       GtkTextBuffer *buffer = hildon_text_view_get_buffer (HILDON_TEXT_VIEW (priv->textview));
+       if (signature && signature[0] != '\0')
                gtk_text_buffer_set_text (buffer, signature, -1);
        else
-               gtk_text_buffer_set_text (buffer, "--\n", -1); /* Default, as per the UI spec. */
+               gtk_text_buffer_set_text (buffer, _("mcen_va_default_signature_tablet"), -1); /* Default, as per the UI spec. */
                
        enable_widgets (window);
 }
@@ -220,9 +227,9 @@ modest_signature_editor_dialog_get_settings (
                
        g_assert(use_signature);
        
-       *use_signature = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->checkbox_use));
+       *use_signature = hildon_check_button_get_active (HILDON_CHECK_BUTTON (priv->checkbox_use));
                        
-       GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->textview));
+       GtkTextBuffer *buffer = hildon_text_view_get_buffer (HILDON_TEXT_VIEW (priv->textview));
        
        GtkTextIter start, end;
        gtk_text_buffer_get_bounds (buffer, &start, &end);