/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * The contents of this file are subject to the Netscape Public License * Version 1.0 (the "NPL"); you may not use this file except in * compliance with the NPL. You may obtain a copy of the NPL at * http://www.mozilla.org/NPL/ * * Software distributed under the NPL is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL * for the specific language governing rights and limitations under the * NPL. * * The Initial Developer of this code under the NPL is Netscape * Communications Corporation. Portions created by Netscape are * Copyright (C) 1998 Netscape Communications Corporation. All Rights * Reserved. */ /* pref.cpp -- stuff shared by preferences dialog and other modules Created: Linda Wei , 03-Dec-96. */ #include "felocale.h" #include "structs.h" #include "fonts.h" #include "net.h" #include "xfe.h" #include "libmocha.h" #ifdef JAVA #include "java.h" #endif #include "PrefsDialog.h" #include "prefapi.h" extern "C" { char *fe_mn_getmailbox(void); } extern "C" void fe_installGeneralAppearance() { } extern "C" void fe_installGeneral() { } extern "C" void fe_installGeneralFonts() { } extern "C" void fe_installGeneralColors() { LO_SetUserOverride( !fe_globalPrefs.use_doc_colors ); } extern "C" void fe_installGeneralAdvanced() { /* NET_SetCookiePrefs((NET_CookiePrefsEnum)fe_globalPrefs.accept_cookie);*/ NET_SendEmailAddressAsFTPPassword(fe_globalPrefs.email_anonftp); } extern "C" void fe_installGeneralPasswd() { } extern "C" void fe_installGeneralCache() { FE_CacheDir = fe_globalPrefs.cache_dir; } extern "C" void fe_installGeneralProxies() { if ((fe_globalPrefs.proxy_mode == 0) || (fe_globalPrefs.proxy_mode == PROXY_STYLE_NONE)) NET_SelectProxyStyle(PROXY_STYLE_NONE); else if (fe_globalPrefs.proxy_mode == PROXY_STYLE_MANUAL) NET_SelectProxyStyle(PROXY_STYLE_MANUAL); else if (fe_globalPrefs.proxy_mode == PROXY_STYLE_AUTOMATIC) { NET_SetProxyServer(PROXY_AUTOCONF_URL, fe_globalPrefs.proxy_url); NET_SelectProxyStyle(PROXY_STYLE_AUTOMATIC); } } extern "C" void fe_installBrowser() { if (fe_globalPrefs.global_history_expiration <= 0) GH_SetGlobalHistoryTimeout (-1); else GH_SetGlobalHistoryTimeout (fe_globalPrefs.global_history_expiration * 24 * 60 * 60); } extern "C" void fe_installBrowserLang(char *lang) { fe_SetAcceptLanguage(lang); } extern "C" void fe_installBrowserAppl() { FE_TempDir = fe_globalPrefs.tmp_dir; } #ifdef MOZ_MAIL_NEWS extern "C" void fe_installMailNews() { } extern "C" void fe_installMailNewsIdentity() { NET_SetMailRelayHost((char *)((fe_globalPrefs.mailhost && *fe_globalPrefs.mailhost) ? fe_globalPrefs.mailhost : "localhost")); } extern "C" void fe_installMailNewsComposition() { MIME_ConformToStandard(fe_globalPrefs.qp_p); } extern "C" void fe_installMailNewsMserver() { char *user_name; PREF_CopyCharPref("mail.pop_name", &user_name); NET_SetPopUsername (user_name); MSG_SetBiffStatFile(fe_globalPrefs.use_movemail_p ? fe_mn_getmailbox() : (char *)NULL); } extern "C" void fe_installMailNewsNserver() { FE_UserNewsHost = fe_globalPrefs.newshost; NET_SetNewsHost(FE_UserNewsHost); FE_UserNewsRC = fe_globalPrefs.newsrc_directory; } extern "C" void fe_installMailNewsAddrBook() { } #endif // MOZ_MAIL_NEWS extern "C" void fe_installLangs() { } #ifdef MOZ_LDAP extern "C" void fe_installMserverMore() { MSG_SetFolderDirectory(fe_mailNewsPrefs, fe_globalPrefs.mail_directory); NET_SetPopPassword(fe_globalPrefs.rememberPswd ? fe_globalPrefs.pop3_password : (char *)NULL); } #endif // MOZ_LDAP extern "C" void fe_installProxiesView() { char buf[1024]; // This should be done in libnet with the proxies - malmer sprintf(buf, "%s:%d", fe_globalPrefs.socks_host, fe_globalPrefs.socks_host_port); NET_SetSocksHost(buf); } extern "C" void fe_installSslConfig() { } extern "C" void fe_installOffline() { } #ifdef MOZ_MAIL_NEWS extern "C" void fe_installOfflineNews() { } #endif // MOZ_MAIL_NEWS extern "C" void fe_installDiskSpace() { } extern "C" void fe_installDiskMore() { } extern "C" void fe_PrefsDialog(MWContext *context) { Widget mainw = CONTEXT_WIDGET(context); XFE_PrefsDialog *theDialog = 0; // Instantiate a preferences dialog if ((theDialog = new XFE_PrefsDialog(mainw, "prefs", context)) == 0) { // TODO: out of memory } // Open some categories theDialog->openCategory(CAT_APPEARANCE); theDialog->openCategory(CAT_MAILNEWS); // Pop up the preferences dialog theDialog->show(); } int fe_stringPrefToArray(const char *orig_string, char ***array_p) { int count = 0; int i; int len = 0; char **array = 0; char *string = 0; char *ptr; len = XP_STRLEN(orig_string); if (orig_string && len > 0) { string = XP_STRDUP(orig_string); // Get the number of entries count = 0; char *sep = XP_STRCHR(string, ','); while (sep) { count++; sep = XP_STRCHR(sep+1, ','); } count++; array = (char **)XP_CALLOC(count, sizeof(char *)); i = 0; ptr = XP_STRTOK(string, ","); while (ptr) { array[i] = XP_STRDUP(ptr); i++; ptr = XP_STRTOK(NULL, ","); } } if (string) XP_FREE(string); *array_p = array; return count; } char *fe_arrayToStringPref(char **array, int count) { char *string = 0; int i; char *ptr; if (array && (count > 0)) { int len = 0; for (i = 0; i < count; i++) { len += XP_STRLEN(array[i]); } len = len + count; string = (char *)XP_CALLOC(len, sizeof(char)); for (ptr= string, i = 0; i < count; i++) { int l = XP_STRLEN(array[i]); XP_MEMCPY(ptr, array[i], l); ptr += l; if (i == (count-1)) *ptr = '\0'; else *ptr = ','; ptr++; } } else { string = XP_STRDUP(""); } return string; }