diff -Nur skipstone-bak/src/SkipStonePrompter.cpp skipstone/src/SkipStonePrompter.cpp --- skipstone-bak/src/SkipStonePrompter.cpp Thu Nov 22 19:08:23 2001 +++ skipstone/src/SkipStonePrompter.cpp Thu Jul 4 19:56:35 2002 @@ -10,6 +10,12 @@ #include "intl.h" #include "debug.h" +extern "C" +{ +gchar *mozilla_unicode_to_locale (const PRUnichar *uniStr); +PRUnichar *mozilla_locale_to_unicode (const gchar *locStr); +} + static gboolean toplevel_delete_cb(GtkWidget *aWidget, GdkEventAny *aEvent, SkipStonePrompter *aPrompter); static gboolean ok_clicked_cb(GtkButton *button, SkipStonePrompter *aPrompter); @@ -83,7 +89,7 @@ SkipStonePrompter::SetTitle(const PRUnichar *aTitle) { D_ENTER; - mTitle.AssignWithConversion(aTitle); + mTitle = aTitle; D_RETURN; } @@ -91,7 +97,7 @@ SkipStonePrompter::SetTextValue(const PRUnichar *aTextValue) { D_ENTER; - mTextValue.AppendWithConversion(aTextValue); + mTextValue = aTextValue; D_RETURN; } @@ -99,7 +105,7 @@ SkipStonePrompter::SetCheckMessage(const PRUnichar *aMessage) { D_ENTER; - mCheckMessage.AppendWithConversion(aMessage); + mCheckMessage = aMessage; D_RETURN; } @@ -107,7 +113,7 @@ SkipStonePrompter::SetMessageText(const PRUnichar *aMessageText) { D_ENTER; - mMessageText.AppendWithConversion(aMessageText); + mMessageText = aMessageText; D_RETURN; } @@ -115,7 +121,7 @@ SkipStonePrompter::SetUser(const PRUnichar *aUser) { D_ENTER; - mUser.AppendWithConversion(aUser); + mUser = aUser; D_RETURN; } @@ -123,7 +129,7 @@ SkipStonePrompter::SetPassword(const PRUnichar *aPass) { D_ENTER; - mPass.AppendWithConversion(aPass); + mPass = aPass; D_RETURN; } @@ -226,14 +232,14 @@ if (mUserField) { gchar *user; user = gtk_editable_get_chars(GTK_EDITABLE(mUserField), 0, -1); - mUser.Assign(user); + mUser.AssignWithConversion(user); g_free(user); } if (mPassField) { gchar *pass; pass = gtk_editable_get_chars(GTK_EDITABLE(mPassField), 0, -1); - mPass.Assign(pass); + mPass.AssignWithConversion(pass); g_free(pass); } @@ -243,7 +249,7 @@ if (mTextField) { gchar *text; text = gtk_editable_get_chars(GTK_EDITABLE(mTextField), 0, -1); - mTextValue.Assign(text); + mTextValue.AssignWithConversion(text); g_free(text); } @@ -276,7 +282,9 @@ gtk_container_add(GTK_CONTAINER(mWindow), GTK_WIDGET(topLevelVBox)); gtk_container_set_border_width(GTK_CONTAINER(mWindow),4); - GtkWidget *msgLabel = gtk_label_new(mMessageText.get()); + gchar *label_text = mozilla_unicode_to_locale (mMessageText.get()); + GtkWidget *msgLabel = gtk_label_new(label_text); + g_free (label_text); gtk_box_pack_start(topLevelVBox, msgLabel, FALSE, FALSE, 0); @@ -289,9 +297,11 @@ mUserField = gtk_entry_new(); if (mUser.Length()) { startPos = 0; + gchar *user = mozilla_unicode_to_locale (mUser.get()); gtk_editable_insert_text(GTK_EDITABLE(mUserField), - mUser.get(), mUser.Length(), + user, strlen(user), &startPos); + g_free (user); } gtk_box_pack_start(topLevelVBox,mUserField,FALSE,FALSE,0); @@ -308,8 +318,9 @@ gtk_entry_set_visibility(GTK_ENTRY(mPassField), FALSE); if (mPass.Length()) { startPos = 0; + gchar *pass = mozilla_unicode_to_locale (mPass.get()); gtk_editable_insert_text(GTK_EDITABLE(mPassField), - mPass.get(), mPass.Length(), + pass, strlen(pass), &startPos); } // add it @@ -318,8 +329,10 @@ // password manager field if (aFlags & SkipStonePrompter::INCLUDE_CHECKBOX) { - // make it - mCheckBox = gtk_check_button_new_with_label(mCheckMessage.get()); + // make it + gchar *check_message = mozilla_unicode_to_locale (mCheckMessage.get()); + mCheckBox = gtk_check_button_new_with_label(check_message); + g_free (check_message); // set its state gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mCheckBox),mCheckValue); gtk_box_pack_start(topLevelVBox,mCheckBox,FALSE,FALSE,0); @@ -363,7 +376,9 @@ gtk_container_set_border_width(GTK_CONTAINER(mWindow),4); // create our label - GtkWidget *label = gtk_label_new(mMessageText.get()); + gchar *label_text = mozilla_unicode_to_locale (mMessageText.get()); + GtkWidget *label = gtk_label_new(label_text); + g_free (label_text); gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); gtk_box_pack_start(topLevelVBox,label,TRUE,TRUE,0); @@ -372,16 +387,20 @@ mTextField = gtk_entry_new(); if (mTextValue.Length()) { int startPos = 0; + gchar *text_value = mozilla_unicode_to_locale (mTextValue.get()); gtk_editable_insert_text(GTK_EDITABLE(mTextField), - mTextValue.get(), mTextValue.Length(), + text_value, strlen(text_value), &startPos); + g_free (text_value); } gtk_box_pack_start(topLevelVBox,mTextField,FALSE,FALSE,0); } if (aFlags & SkipStonePrompter::INCLUDE_CHECKBOX) { // make it - mCheckBox = gtk_check_button_new_with_label(mCheckMessage.get()); + gchar *check_message = mozilla_unicode_to_locale (mCheckMessage.get()); + mCheckBox = gtk_check_button_new_with_label(check_message); + g_free (check_message); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mCheckBox),mCheckValue); gtk_box_pack_start(topLevelVBox,mCheckBox,FALSE,FALSE,0); } diff -Nur skipstone-bak/src/SkipStonePrompter.h skipstone/src/SkipStonePrompter.h --- skipstone-bak/src/SkipStonePrompter.h Mon Oct 22 22:53:54 2001 +++ skipstone/src/SkipStonePrompter.h Thu Jul 4 14:56:39 2002 @@ -56,15 +56,15 @@ void CreatePasswordPrompter(int aFlags); void CreateAlertPrompter(int aFlags); - nsCString mTitle; - nsCString mMessageText; - nsCString mTextValue; - nsCString mCheckMessage; + nsString mTitle; + nsString mMessageText; + nsString mTextValue; + nsString mCheckMessage; PRBool mCheckValue; PRBool mConfirmResult; - nsCString mUser; - nsCString mPass; + nsString mUser; + nsString mPass; GtkWidget *mWindow; GtkWidget *mUserField;