diff -Nur galeon-0.10.4.bak/src/galeon.h galeon-0.10.4/src/galeon.h --- galeon-0.10.4.bak/src/galeon.h Fri Apr 6 20:13:09 2001 +++ galeon-0.10.4/src/galeon.h Sat Apr 21 01:56:33 2001 @@ -161,6 +161,8 @@ #define CONTEXT_OTHER 64 #define CONTEXT_XUL 128 +#define LANG_ENC_NUM 15 + /* key pressed char codes */ enum { diff -Nur galeon-0.10.4.bak/src/mozilla_i18n.c galeon-0.10.4/src/mozilla_i18n.c --- galeon-0.10.4.bak/src/mozilla_i18n.c Wed Mar 28 18:21:17 2001 +++ galeon-0.10.4/src/mozilla_i18n.c Sat Apr 21 01:56:33 2001 @@ -90,7 +90,45 @@ N_("x-imap4-modified-utf7"), N_("x-u-escaped") }; - + +const gchar *lang_encode_name[LANG_ENC_NUM] = +{ + N_("Western"), + N_("Central European"), + N_("Japanese"), + N_("Traditional Chinese"), + N_("Simplified Chinese"), + N_("Korean"), + N_("Cyrillic"), + N_("Baltic"), + N_("Greek"), + N_("Turkish"), + N_("Unicode"), + N_("User Defined"), + N_("Thai"), + N_("Hebrew"), + N_("Arabic") +}; + +const gchar *lang_encode_item[LANG_ENC_NUM] = +{ + "x-western", + "x-central-euro", + "ja", + "zh-TW", + "zh-CN", + "ko", + "x-cyrillic", + "x-baltic", + "el", + "tr", + "x-unicode", + "x-user-def", + "th", + "he", + "ar" +}; + gint get_lgroups_count(void) { diff -Nur galeon-0.10.4.bak/src/mozilla_prefs.c galeon-0.10.4/src/mozilla_prefs.c --- galeon-0.10.4.bak/src/mozilla_prefs.c Sun Apr 1 04:14:20 2001 +++ galeon-0.10.4/src/mozilla_prefs.c Sat Apr 21 01:56:33 2001 @@ -46,6 +46,9 @@ void mozilla_prefs_set_wheel_mouse (void); char * get_bracketed_string (char *str); +extern const gchar *lang_encode_name[LANG_ENC_NUM]; +extern const gchar *lang_encode_item[LANG_ENC_NUM]; + /** * mozilla_prefs_set: set mozilla preferences */ @@ -182,33 +185,65 @@ void mozilla_prefs_set_fonts (void) { + const gchar *default_font_name = "adobe-times-medium-r-normal-*-14-*-*-*-p-*-iso8859-1"; + const gchar *default_font_size = "14"; + const gchar *default_font_type = "0"; + const gchar *pref_key_prefix[5] = + { + "/galeon/Appearance/serif_font", + "/galeon/Appearance/sansserif_font", + "/galeon/Appearance/monospace_font", + "/galeon/Appearance/size_font", + "/galeon/Appearance/default_font" + }; + gchar *serif_font, *sansserif_font, *monospace_font, *default_font[2] = {"sans-serif","serif"}; - gchar **font; - int size_font,default_font_idx; + gchar **font, buf[128]; + int size_font,default_font_idx,i; - serif_font = gnome_config_get_string ("/galeon/Appearance/serif_font=-adobe-times-medium-r-normal-*-14-*-*-*-p-*-iso8859-1"); - sansserif_font = gnome_config_get_string ("/galeon/Appearance/sansserif_font=-adobe-times-medium-r-normal-*-14-*-*-*-p-*-iso8859-1"); - monospace_font = gnome_config_get_string ("/galeon/Appearance/monospace_font=-adobe-times-medium-r-normal-*-14-*-*-*-p-*-iso8859-1"); - size_font = gnome_config_get_int ("/galeon/Appearance/size_font=14"); - default_font_idx = gnome_config_get_int("/galeon/Appearance/default_font=0"); - - font = g_strsplit (serif_font,"-",-1); - mozilla_preference_set ("font.name.serif.x-western",g_strconcat(font[1],"-",font[2],"-",font[13], - "-",font[14],NULL)); - g_strfreev(font); - - font = g_strsplit (sansserif_font,"-",-1); - mozilla_preference_set ("font.name.sans-serif.x-western",g_strconcat(font[1],"-",font[2],"-",font[13], - "-",font[14],NULL)); - g_strfreev(font); - - font = g_strsplit (monospace_font,"-",-1); - mozilla_preference_set ("font.name.monospace.x-western",g_strconcat(font[1],"-",font[2],"-",font[13], - "-",font[14],NULL)); - mozilla_preference_set_int ("font.size.fixed.x-western",atoi(font[7])); - g_strfreev(font); + for ( i = 0; i < LANG_ENC_NUM; i++) { + g_snprintf (buf, 128, "%s_%s=%s", pref_key_prefix[0], + lang_encode_item[i], default_font_name); + serif_font = gnome_config_get_string (buf); + + g_snprintf (buf, 128, "%s_%s=%s", pref_key_prefix[1], + lang_encode_item[i], default_font_name); + sansserif_font = gnome_config_get_string (buf); + + g_snprintf (buf, 128, "%s_%s=%s", pref_key_prefix[2], + lang_encode_item[i], default_font_name); + monospace_font = gnome_config_get_string (buf); + + g_snprintf (buf, 128, "%s_%s=%s", pref_key_prefix[3], + lang_encode_item[i], default_font_size); + size_font = gnome_config_get_int (buf); + + g_snprintf (buf, 128, "%s=%s", pref_key_prefix[4], default_font_type); + default_font_idx = gnome_config_get_int(buf); + + font = g_strsplit (serif_font,"-",-1); + g_snprintf (buf, 128, "font.name.serif.%s", lang_encode_item[i]); + mozilla_preference_set (buf, g_strconcat(font[1],"-",font[2],"-",font[13], + "-",font[14],NULL)); + g_strfreev(font); + + font = g_strsplit (sansserif_font,"-",-1); + g_snprintf (buf, 128, "font.name.sans-serif.%s", lang_encode_item[i]); + mozilla_preference_set (buf, g_strconcat(font[1],"-",font[2],"-",font[13], + "-",font[14],NULL)); + g_strfreev(font); + + font = g_strsplit (monospace_font,"-",-1); + g_snprintf (buf, 128, "font.name.monospace.%s", lang_encode_item[i]); + mozilla_preference_set (buf, g_strconcat(font[1],"-",font[2],"-",font[13], + "-",font[14],NULL)); + g_snprintf (buf, 128, "font.size.fixed.%s", lang_encode_item[i]); + mozilla_preference_set_int (buf,atoi(font[7])); + g_strfreev(font); - mozilla_preference_set_int ("font.size.variable.x-western",size_font); + g_snprintf (buf, 128, "font.size.variable.%s", lang_encode_item[i]); + mozilla_preference_set_int (buf,size_font); + } mozilla_preference_set ("font.default",default_font[default_font_idx]); } diff -Nur galeon-0.10.4.bak/src/prefs.c galeon-0.10.4/src/prefs.c --- galeon-0.10.4.bak/src/prefs.c Sat Apr 7 21:48:14 2001 +++ galeon-0.10.4/src/prefs.c Sat Apr 21 01:56:33 2001 @@ -89,6 +89,7 @@ GtkWidget *no_proxies_for_entry; GtkWidget *disk_cache_entry; GtkWidget *mem_cache_entry; + GtkWidget *lang_encode; GtkWidget *serif_font_fpicker; GtkWidget *sansserif_font_fpicker; GtkWidget *monospace_font_fpicker; @@ -192,6 +193,10 @@ void mouse_wheel_controls_set_sensitive (GtkWidget *widget, wheel_mod_key key, gboolean sensitive); static void prefs_dialog_save_geometry (void); +void cb_reset_font_picker (GtkWidget *widget, gpointer data); + +extern const gchar *lang_encode_name[LANG_ENC_NUM]; +extern const gchar *lang_encode_item[LANG_ENC_NUM]; /** @@ -611,6 +616,12 @@ void preferences_set_config_to_dialog (GtkWidget *widget) { + gchar buf[128]; + GtkWidget *menu; + GList *list; + gpointer item; + gint index; + preferences_widgets pw; /* lookup all the widgets */ @@ -672,12 +683,25 @@ set_config_from_togglebutton(pw.tabbed_prefix_check, "tabbed_prefix"); set_config_from_optionmenu(pw.location_optionmenu, "url_location"); set_config_from_optionmenu(pw.toolbar_optionmenu, "toolbar_type"); - set_config_from_fontpicker(pw.serif_font_fpicker, "serif_font"); - set_config_from_fontpicker(pw.sansserif_font_fpicker, - "sansserif_font"); - set_config_from_fontpicker(pw.monospace_font_fpicker, - "monospace_font"); - set_config_from_spin_button(pw.size_font_spin, "size_font"); + set_config_from_optionmenu(pw.lang_encode, "lang_encode"); + + menu = GTK_OPTION_MENU(pw.lang_encode)->menu; + list = GTK_MENU_SHELL(menu)->children; + item = gtk_menu_get_active (GTK_MENU(menu)); + index = g_list_index (list, item); + + g_snprintf (buf, 128, "serif_font_%s", lang_encode_item[index]); + set_config_from_fontpicker(pw.serif_font_fpicker, buf); + + g_snprintf (buf, 128, "sansserif_font_%s", lang_encode_item[index]); + set_config_from_fontpicker(pw.sansserif_font_fpicker, buf); + + g_snprintf (buf, 128, "monospace_font_%s", lang_encode_item[index]); + set_config_from_fontpicker(pw.monospace_font_fpicker, buf); + + g_snprintf (buf, 128, "size_font_%s", lang_encode_item[index]); + set_config_from_spin_button(pw.size_font_spin, buf); + set_config_from_optionmenu(pw.use_provided_fonts_optionmenu, "use_provided_fonts"); set_config_from_optionmenu(pw.default_font_optionmenu, "default_font"); @@ -817,7 +841,11 @@ void preferences_set_dialog_to_config(GtkWidget *widget) { - preferences_widgets pw; + GtkWidget *menu, *menu_item; + gchar buf[128]; + int i; + + preferences_widgets pw; gint smart_bm_entry_width; /* lookup all the widgets */ @@ -886,13 +914,34 @@ "tabbed_prefix=TRUE"); set_optionmenu_from_config(pw.location_optionmenu, "url_location=1"); set_optionmenu_from_config(pw.toolbar_optionmenu, "toolbar_type=2"); - set_fontpicker_from_config(pw.serif_font_fpicker, - "serif_font=-*-times-medium-r-normal-*-14-*-*-*-*-*-*-*"); - set_fontpicker_from_config(pw.sansserif_font_fpicker, - "sansserif_font=-*-helvetica-medium-r-normal-*-14-*-*-*-*-*-*-*"); - set_fontpicker_from_config(pw.monospace_font_fpicker, - "monospace_font=-*-courier-medium-r-normal-*-14-*-*-*-*-*-*-*"); - set_spin_button_from_config(pw.size_font_spin, "size_font=14"); + + menu = gtk_menu_new(); + for ( i = 0; i < LANG_ENC_NUM; i++ ) { + menu_item = gtk_menu_item_new_with_label (gettext(lang_encode_name[i])); + gtk_menu_append (GTK_MENU(menu), menu_item); + gtk_signal_connect( GTK_OBJECT(menu_item), "activate", + GTK_SIGNAL_FUNC(cb_reset_font_picker), GINT_TO_POINTER(i)); + gtk_widget_show (menu_item); + } + gtk_option_menu_set_menu ( GTK_OPTION_MENU (pw.lang_encode), menu ); + set_optionmenu_from_config(pw.lang_encode, "lang_encode=0"); + + i = gnome_config_get_int("lang_encode=0"); + g_snprintf (buf, 128, "serif_font_%s=-*-times-medium-r-normal-*-14-*-*-*-*-*-*-*", + lang_encode_item[i]); + set_fontpicker_from_config(pw.serif_font_fpicker, buf); + + g_snprintf (buf, 128, "sansserif_font_%s=-*-helvetica-medium-r-normal-*-14-*-*-*-*-*-*-*", + lang_encode_item[i]); + set_fontpicker_from_config(pw.sansserif_font_fpicker, buf); + + g_snprintf (buf, 128, "monospace_font_%s=-*-courier-medium-r-normal-*-14-*-*-*-*-*-*-*", + lang_encode_item[i]); + set_fontpicker_from_config(pw.monospace_font_fpicker, buf); + + g_snprintf (buf, 128, "size_font_%s=14", lang_encode_item[i]); + set_spin_button_from_config(pw.size_font_spin, buf); + set_optionmenu_from_config(pw.use_provided_fonts_optionmenu, "use_provided_fonts=1"); set_optionmenu_from_config(pw.default_font_optionmenu, @@ -1279,6 +1328,7 @@ ftp_proxy_port_spin: Q("ftp_proxy_port_spin"), disk_cache_entry: Q("disk_cache_entry"), mem_cache_entry: Q("mem_cache_entry"), +lang_encode: Q("lang_encode"), serif_font_fpicker: Q("serif_font_fpicker"), sansserif_font_fpicker: Q("sansserif_font_fpicker"), monospace_font_fpicker: Q("monospace_font_fpicker"), @@ -1832,3 +1882,35 @@ gnome_config_sync(); } +void +cb_reset_font_picker (GtkWidget *widget, gpointer data) +{ + int i; + gchar buf[128]; + preferences_widgets pw; + const gchar *default_font [3] = + { + "-*-times-medium-r-normal-*-14-*-*-*-*-*-*-*", + "-*-helvetica-medium-r-normal-*-14-*-*-*-*-*-*-*", + "-*-courier-medium-r-normal-*-14-*-*-*-*-*-*-*" + }; + + preferences_lookup_widgets(prefs, &pw); + + i = (gint) data; + //gnome_config_set_int ("lang_encode", i); + g_snprintf (buf, 128, "/galeon/Appearance/serif_font_%s=%s", + lang_encode_item[i], default_font[0]); + set_fontpicker_from_config(pw.serif_font_fpicker, buf); + + g_snprintf (buf, 128, "/galeon/Appearance/sansserif_font_%s=%s", + lang_encode_item[i], default_font[1]); + set_fontpicker_from_config(pw.sansserif_font_fpicker, buf); + + g_snprintf (buf, 128, "/galeon/Appearance/monospace_font_%s=%s", + lang_encode_item[i], default_font[2]); + set_fontpicker_from_config(pw.monospace_font_fpicker, buf); + + g_snprintf (buf, 128, "/galeon/Appearance/size_font_%s=14", lang_encode_item[i]); + set_spin_button_from_config(pw.size_font_spin, buf); +} diff -Nur galeon-0.10.4.bak/ui/galeon.glade galeon-0.10.4/ui/galeon.glade --- galeon-0.10.4.bak/ui/galeon.glade Sat Apr 7 14:55:14 2001 +++ galeon-0.10.4/ui/galeon.glade Sat Apr 21 01:56:54 2001 @@ -4073,10 +4073,57 @@ table6 5 5 - 4 + 5 False 5 - 5 + 6 + + + GtkLabel + label1000 + + GTK_JUSTIFY_CENTER + False + 0.5 + 0.5 + 0 + 0 + + 0 + 1 + 0 + 1 + 0 + 0 + False + False + False + False + False + False + + + + + GtkOptionMenu + lang_encode + True + 0 + + 1 + 2 + 0 + 1 + 0 + 0 + True + False + True + False + True + False + + GnomeFontPicker @@ -4095,13 +4142,13 @@ AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz GNOME_FONT_PICKER_MODE_FONT_INFO False - True + False 14 1 2 - 0 - 1 + 1 + 2 0 0 True @@ -4129,13 +4176,13 @@ AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz GNOME_FONT_PICKER_MODE_FONT_INFO False - True + False 14 1 2 - 1 - 2 + 2 + 3 0 0 True @@ -4160,8 +4207,8 @@ 0 1 - 3 - 4 + 4 + 5 0 0 False @@ -4186,8 +4233,8 @@ 0 1 - 1 - 2 + 2 + 3 0 0 False @@ -4212,8 +4259,8 @@ 0 1 - 0 - 1 + 1 + 2 0 0 False @@ -4238,8 +4285,8 @@ 0 1 - 2 - 3 + 3 + 4 0 0 False @@ -4264,8 +4311,8 @@ 2 3 - 0 - 2 + 1 + 3 0 0 False @@ -4296,8 +4343,8 @@ 3 4 - 0 - 2 + 1 + 3 0 0 False @@ -4324,13 +4371,13 @@ AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz GNOME_FONT_PICKER_MODE_FONT_INFO True - True + False 14 1 4 - 2 - 3 + 3 + 4 0 0 True @@ -4353,8 +4400,8 @@ 1 4 - 3 - 4 + 4 + 5 0 0 True @@ -4377,8 +4424,8 @@ 1 4 - 4 - 5 + 5 + 6 0 0 True