spider 957093e8c5 Normandy Merge ....
git-svn-id: svn://10.0.0.236/trunk@4231 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-22 21:19:46 +00:00

279 lines
5.8 KiB
C++

/* -*- 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 <lwei@netscape.com>, 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;
}