Show
Ignore:
Timestamp:
04/12/06 11:14:58 (3 years ago)
Author:
jordi
Message:

The password dialog is implemented now. The application is now complete for the first release, once cleaned up a little :-)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/gtk/MainView.cxx

    r40 r41  
    111111MainView::promptPasswordDialog () 
    112112{ 
    113     return g_strdup(""); 
     113    /* Create the password dialog. */ 
     114    GtkWidget *primaryLabel = gtk_label_new (""); 
     115    gtk_label_set_markup (GTK_LABEL (primaryLabel), 
     116            "<span weight=\"bold\" size=\"larger\">Encrypted Document</span>"); 
     117    gtk_label_set_selectable (GTK_LABEL (primaryLabel), TRUE); 
     118    gtk_misc_set_alignment (GTK_MISC (primaryLabel), 0.0, 0.0); 
     119    GtkWidget *secondaryLabel = gtk_label_new ("This document is encrypted " 
     120                                               "and can't be accessed. " 
     121                                               "Please enter the document's " 
     122                                               "password:"); 
     123    gtk_label_set_line_wrap (GTK_LABEL (secondaryLabel), TRUE); 
     124    gtk_label_set_selectable (GTK_LABEL (secondaryLabel), TRUE); 
     125    gtk_misc_set_alignment (GTK_MISC (secondaryLabel), 0.0, 0.0); 
     126    GtkWidget *passwordEntry = gtk_entry_new (); 
     127    gtk_entry_set_visibility (GTK_ENTRY (passwordEntry), FALSE); 
     128    gtk_entry_set_activates_default (GTK_ENTRY (passwordEntry), TRUE); 
     129    GtkWidget *vbox = gtk_vbox_new (FALSE, 12); 
     130    gtk_box_pack_start (GTK_BOX (vbox), primaryLabel, FALSE, FALSE, 0); 
     131    gtk_box_pack_start (GTK_BOX (vbox), secondaryLabel, TRUE, TRUE, 0); 
     132    gtk_box_pack_start (GTK_BOX (vbox), passwordEntry, FALSE, FALSE, 6); 
     133 
     134    GtkWidget *image =  
     135        gtk_image_new_from_stock (GTK_STOCK_DIALOG_AUTHENTICATION, 
     136                                  GTK_ICON_SIZE_DIALOG); 
     137    gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0.0); 
     138    GtkWidget *hbox = gtk_hbox_new (FALSE, 12); 
     139    gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0); 
     140    gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0); 
     141    gtk_widget_show_all (hbox); 
     142 
     143     
     144    GtkWidget *passwordDialog = gtk_dialog_new_with_buttons ( 
     145            _("Password"), GTK_WINDOW (m_MainWindow), 
     146            GTK_DIALOG_DESTROY_WITH_PARENT, 
     147            GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, 
     148            GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, 
     149            NULL); 
     150    gtk_dialog_set_default_response (GTK_DIALOG (passwordDialog),  
     151                                     GTK_RESPONSE_ACCEPT); 
     152    gtk_box_pack_start (GTK_BOX (GTK_DIALOG (passwordDialog)->vbox), 
     153                        hbox, FALSE, FALSE, 0); 
     154     
     155    gchar *password = NULL; 
     156    if ( GTK_RESPONSE_ACCEPT == gtk_dialog_run (GTK_DIALOG (passwordDialog)) ) 
     157    { 
     158        password = g_strdup(gtk_entry_get_text (GTK_ENTRY (passwordEntry))); 
     159    } 
     160    gtk_widget_destroy (passwordDialog); 
     161    return password; 
    114162} 
    115163 
     
    210258MainView::showErrorMessage (const gchar *title, const gchar *body) 
    211259{ 
    212     GtkWidget *messageDialog = gtk_message_dialog_new_with_markup ( 
     260    GtkWidget *errorDialog = gtk_message_dialog_new ( 
    213261            GTK_WINDOW (m_MainWindow), 
    214262            GTK_DIALOG_DESTROY_WITH_PARENT, 
    215263            GTK_MESSAGE_ERROR, 
    216264            GTK_BUTTONS_OK, 
    217             "<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s", 
    218             title, body); 
    219  
    220     gtk_dialog_run (GTK_DIALOG (messageDialog)); 
    221     gtk_widget_destroy (messageDialog); 
     265            title); 
     266    gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG(errorDialog), 
     267                                              body); 
     268    gtk_dialog_run (GTK_DIALOG (errorDialog)); 
     269    gtk_widget_destroy (errorDialog); 
    222270} 
    223271