Mozilla/mozilla/cmd/xfe/src/PrefsDialog.h
spider d56dcfe52f NORMANDY_DDAY merge...
git-svn-id: svn://10.0.0.236/trunk@4478 18797224-902f-48f8-a5cc-f745e15eee43
1998-06-25 05:50:45 +00:00

1259 lines
30 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.
*/
/* */
/*
PrefsDialog.h -- class definitions for FE preferences dialog windows
Created: Linda Wei <lwei@netscape.com>, 17-Sep-96.
*/
// class XFE_PrefsDialog
// . class definition for the preferences dialog.
// . containing instances of XFE_PrefsPage
//
// class XFE_PrefsPage
// . abstract base class of all preferences pages
//
#ifndef _xfe_prefsdialog_h
#define _xfe_prefsdialog_h
#include "rosetta.h"
#include "outline.h"
#include "Dialog.h"
#include "xeditor.h"
#include "Outliner.h"
#include "Outlinable.h"
#include "PrefsData.h"
/* #ifdef MOZ_LDAP */ /* (rb) This file is required */
#include "dirprefs.h"
/* #endif */
#ifdef MOZ_MAIL_NEWS
#include "PrefsDialogMServer.h"
#include "PrefsMailFolderDlg.h"
#endif
#define PREFS_SET_GLOBALPREF_TEXT(SLOT1,SLOT2) \
{ \
char *s = 0; \
if (fe_globalPrefs.SLOT1) XP_FREE(fe_globalPrefs.SLOT1); \
s = fe_GetTextField(fep->SLOT2); \
fe_globalPrefs.SLOT1 = s ? XP_STRDUP(s) : XP_STRDUP(""); \
if (s) XtFree(s); \
}
#define PREFS_SET_GLOBALPREF_BOOLEAN(SLOT1,SLOT2) \
{ \
Boolean b; \
XtVaGetValues(fep->SLOT1, XmNset, &b, 0); \
fe_globalPrefs.SLOT2 = b; \
}
#define PREFS_CHECK_FILE(W,DESC,MSG,N) \
{ \
char *text = 0; \
char *orig_text = 0; \
orig_text = fe_GetTextField (W); \
text = fe_StringTrim (orig_text); \
if (!text || !*text || stat (text, &st)) { \
PR_snprintf (MSG, 200, \
XP_GetString(XFE_FILE_DOES_NOT_EXIST), \
DESC, (text ? text : "")); \
MSG += strlen (MSG); \
} \
if (orig_text) XtFree(orig_text); \
}
#define PREFS_CHECK_DIR(W,DESC,MSG,N) \
{ \
char *text = 0; \
char *orig_text = 0; \
orig_text = fe_GetTextField (W); \
text = fe_StringTrim (orig_text); \
if (!text || !*text) { \
PR_snprintf (MSG, 200, \
XP_GetString(XFE_EMPTY_DIR), \
DESC); \
MSG += strlen (MSG); \
} \
else if (stat (text, &st) || (!S_ISDIR(st.st_mode))) { \
PR_snprintf (MSG, 200, \
XP_GetString(XFE_DIR_DOES_NOT_EXIST), \
DESC, text); \
MSG += strlen (MSG); \
} \
if (orig_text) XtFree(orig_text); \
}
#define PREFS_CHECK_HOST_1(TEXT,DESC,MSG,N) \
{ \
int d; char c; \
PRHostEnt hpbuf; \
char dbbuf[PR_NETDB_BUF_SIZE]; \
if (TEXT && 4 == sscanf (TEXT, " %d.%d.%d.%d %c", \
&d, &d, &d, &d, &c)) \
/* IP addresses are ok */ ; \
else if (!TEXT || !*TEXT || \
(PR_GetHostByName(TEXT, dbbuf, sizeof(dbbuf), &hpbuf)) == PR_FAILURE) { \
PR_snprintf (MSG, 200,\
XP_GetString(XFE_HOST_IS_UNKNOWN), \
DESC, (TEXT ? TEXT : "")); \
MSG += strlen (MSG); \
} \
}
#define PREFS_CHECK_HOST(W,DESC,MSG,N) \
{ \
char *text = 0; \
char *orig_text = 0; \
orig_text = fe_GetTextField (W); \
text = fe_StringTrim (orig_text); \
PREFS_CHECK_HOST_1 (text, DESC, MSG, N); \
if (orig_text) XtFree(orig_text); \
}
#define PREFS_CHECK_PROXY(W1,W2,DESC,PORT_REQUIRED,MSG,N) \
{ \
char *orig_text1 = 0; \
char *orig_text2 = 0; \
char *text = 0;\
orig_text1 = fe_GetTextField (W1); \
text = fe_StringTrim (orig_text1); \
if (text && *text) { \
PREFS_CHECK_HOST_1 (text, DESC, MSG, N); \
text = 0; \
orig_text2 = fe_GetTextField(W2); \
text = fe_StringTrim (orig_text2); \
if ((!text || !*text) && PORT_REQUIRED) { \
PR_snprintf (MSG, 200, \
XP_GetString(XFE_NO_PORT_NUMBER), DESC); \
MSG += strlen (MSG); \
} \
if (orig_text2) XtFree(orig_text2); \
} \
if (orig_text1) XtFree(orig_text1); \
}
// Top level categories
#define CAT_APPEARANCE "Appearance"
#define CAT_BROWSER "Browser"
#define CAT_MAILNEWS "Mail & Groups"
#define CAT_EDITOR "Editor"
#ifdef PREFS_UNSUPPORTED
#define CAT_OFFLINE "Offline"
#endif /* PREFS_UNSUPPORTED */
#define CAT_ADVANCED "Advanced"
class XFE_PrefsDialog;
class XFE_PrefsPage;
struct PrefsCategory {
char *name;
char *categoryName;
char *categoryDesc;
Boolean leaf;
struct PrefsCategory *parent;
struct PrefsCategory *children;
int numChildren;
Boolean open;
XFE_PrefsPage *page;
};
// ************************* XFE_PrefsDialog *************************
class XFE_PrefsDialog : public XFE_Dialog
{
public:
// Constructors, Destructors
XFE_PrefsDialog(Widget parent,
char *name,
MWContext *context,
Boolean modal = TRUE);
virtual ~XFE_PrefsDialog();
MWContext *getContext(); // Getting MWContext
int getVisibleCategoryCount();
PrefsCategory *getCategoryByIndex(int);
PrefsCategory *getCategoryByName(const char *);
PrefsCategory *getCurrentCategory();
void refreshCategories();
Boolean isCurrentCategory(PrefsCategory *);
Widget getOutline();
Widget getPrefsParent();
Widget getPageForm();
Widget getDialogChrome();
virtual void show(); // pop up dialog
void setContext(MWContext *); // Setting MWContext (for now)
void calcVisibleCategoryCount(); // Calculate category count
void setCurrentCategory(PrefsCategory *);
void openCategory(const char *); // open a category
void closeCategory(const char *); // close a category
void setDoInitInSetPage(Boolean); // set the flag
void saveChanges(); // save all the changes
Dimension calculateWidth(); // calculate the dialog width
Dimension calculateHeight(); // calculate the dialog height
// Callbacks - main
static void prefsMainCb_ok(Widget, XtPointer, XtPointer);
static void prefsMainCb_cancel(Widget, XtPointer, XtPointer);
static void prefsMainCb_help(Widget, XtPointer, XtPointer);
static void prefsMainCb_destroy(Widget, XtPointer, XtPointer);
// Callbacks - category outline
static Boolean categoryDataFunc(Widget, void*, int, fe_OutlineDesc*, int);
static void categoryClickFunc(Widget, void*, int, int, const char*,
int, int, Boolean, Boolean, int);
static void categoryIconFunc(Widget, void*, int, int);
private:
void createRegions();
void initCategories();
void deleteCategories();
void newPage(XFE_PrefsPage *&, int);
Widget m_wPageLabel;
Widget m_wPageTitle;
Widget m_wPageForm;
Widget m_wOutline;
MWContext *m_context;
int m_numPages;
XFE_PrefsPage **m_pages;
char *m_columnWidths;
fe_OutlineHeaderDesc *m_outlineHeaders;
int m_numCategories;
PrefsCategory *m_categories;
int m_visibleCategoryCount;
PrefsCategory *m_currentCategory;
Boolean m_initPageLabel;
};
// ************************* XFE_PrefsPage *************************
class XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPage(XFE_PrefsDialog *dialog);
XFE_PrefsPage(Widget w);
virtual ~XFE_PrefsPage();
// Manipulators
virtual void create() = 0;
virtual void init() = 0;
virtual void map();
virtual void unmap();
virtual Boolean verify();
virtual void install() = 0;
virtual void save() = 0;
void setCreated(Boolean);
void setInitialized(Boolean);
void setDoInitInMap(Boolean);
void setChanged(Boolean);
// Gets
Boolean isCreated();
Boolean isInitialized();
Boolean doInitInMap();
Boolean isChanged();
MWContext *getContext();
XFE_PrefsDialog *getPrefsDialog();
Dimension getWidth();
Dimension getHeight();
protected:
// Data
MWContext *m_context;
XFE_PrefsDialog *m_prefsDialog;
Widget m_wPageForm; /* in the prefs dialog */
Widget m_wPage; /* top level form in this page */
Boolean m_created;
Boolean m_initialized;
Boolean m_doInitInMap;
Boolean m_changed;
};
// ************************* XFE_PrefsPageAppearance *************************
class XFE_PrefsPageGeneralAppearance : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageGeneralAppearance(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageGeneralAppearance();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
// Gets
PrefsDataGeneralAppearance *getData();
// Callbacks - page GeneralAppearance
static void cb_setToolbarAttr(Widget, XtPointer, XtPointer);
private:
// Data
PrefsDataGeneralAppearance *m_prefsDataGeneralAppearance;
XP_Bool m_toolbar_needs_updating;
};
// ************************* XFE_PrefsPageGeneralFonts *************************
class XFE_PrefsPageGeneralFonts : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageGeneralFonts(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageGeneralFonts();
// Manipulators
virtual void create();
virtual void relayout(PrefsDataGeneralFonts *fep);
virtual void init();
virtual void install();
virtual void save();
// Gets
PrefsDataGeneralFonts *getData();
// Callbacks - page General/Fonts
static void cb_charSet(Widget, XtPointer, XtPointer);
static void cb_toggleUseFont(Widget, XtPointer, XtPointer);
static void cb_allowScaling(Widget, XtPointer, XtPointer);
private:
// Data
PrefsDataGeneralFonts *m_prefsDataGeneralFonts;
};
// ************************* XFE_PrefsPageGeneralColors *************************
class XFE_PrefsPageGeneralColors : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageGeneralColors(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageGeneralColors();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
// Gets
PrefsDataGeneralColors *getData();
// Callbacks - page General/Colors
static void cb_activateColor(Widget, XtPointer, XtPointer);
static void cb_defaultColor(Widget, XtPointer, XtPointer);
private:
// Data
PrefsDataGeneralColors *m_prefsDataGeneralColors;
XP_Bool m_underlinelinks_changed;
XP_Bool m_colors_changed;
};
// ************************* XFE_PrefsPageGeneralAdvanced *************************
class XFE_PrefsPageGeneralAdvanced : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageGeneralAdvanced(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageGeneralAdvanced();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
// Gets
PrefsDataGeneralAdvanced *getData();
// Callbacks - page General/Advanced
static void cb_toggleCookieState(Widget, XtPointer, XtPointer);
private:
// Data
PrefsDataGeneralAdvanced *m_prefsDataGeneralAdvanced;
XP_Bool m_toolbar_needs_updating;
};
// ************************* XFE_PrefsPageGeneralAppl *************************
class XFE_PrefsPageGeneralAppl : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageGeneralAppl(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageGeneralAppl();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
virtual void unmap();
void setModified(Boolean);
// Gets
PrefsDataGeneralAppl *getData();
// Callbacks - page General/Applications
static void cb_new(Widget, XtPointer, XtPointer);
static void cb_edit(Widget, XtPointer, XtPointer);
static void cb_delete(Widget, XtPointer, XtPointer);
static void cb_browse(Widget, XtPointer, XtPointer);
private:
// Data
PrefsDataGeneralAppl *m_prefsDataGeneralAppl;
};
// ************************* XFE_PrefsPageGeneralCache *************************
class XFE_PrefsPageGeneralCache : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageGeneralCache(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageGeneralCache();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
// Gets
PrefsDataGeneralCache *getData();
// Callbacks - page General/Cache
static void cb_browse(Widget, XtPointer, XtPointer);
static void cb_clearDisk(Widget, XtPointer, XtPointer);
static void cb_clearMem(Widget, XtPointer, XtPointer);
private:
// Data
PrefsDataGeneralCache *m_prefsDataGeneralCache;
};
// ************************* XFE_PrefsPageGeneralProxies *************************
class XFE_PrefsPageGeneralProxies : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageGeneralProxies(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageGeneralProxies();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
// Gets
PrefsDataGeneralProxies *getData();
// Callbacks - page General/Proxies
static void cb_reloadProxies(Widget, XtPointer, XtPointer);
static void cb_setProxies(Widget, XtPointer, XtPointer);
static void cb_viewProxies(Widget, XtPointer, XtPointer);
private:
// Data
PrefsDataGeneralProxies *m_prefsDataGeneralProxies;
};
// ************************* XFE_PrefsPageBrowser *************************
class XFE_PrefsPageBrowser : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageBrowser(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageBrowser();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
// Gets
PrefsDataBrowser *getData();
// Callbacks - page Browser
static void cb_browse(Widget, XtPointer, XtPointer);
static void cb_setStartupPage(Widget, XtPointer, XtPointer);
static void cb_expireNow(Widget, XtPointer, XtPointer);
static void cb_useCurrent(Widget, XtPointer, XtPointer);
private:
// Data
PrefsDataBrowser *m_prefsDataBrowser;
XP_Bool m_home_changed;
};
// ************************* XFE_PrefsPageBrowserLang *************************
class XFE_PrefsPageBrowserLang : public XFE_PrefsPage, public XFE_Outlinable
{
public:
// Constructors, Destructors
XFE_PrefsPageBrowserLang(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageBrowserLang();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
void insertLang(char *lang);
void insertLangAtPos(int pos, char *lang);
void deleteLangAtPos(int pos);
void swapLangs(int pos1, int pos2, int selPos);
void setSelectionPos(int pos);
void deselectPos(int pos);
// Gets
PrefsDataBrowserLang *getData();
// Outlinable interface methods
virtual void *ConvFromIndex(int index);
virtual int ConvToIndex(void *item);
virtual char *getColumnName(int column);
virtual char *getColumnHeaderText(int column);
virtual fe_icon *getColumnHeaderIcon(int column);
virtual EOutlinerTextStyle getColumnHeaderStyle(int column);
virtual void *acquireLineData(int line);
virtual void getTreeInfo(XP_Bool *expandable, XP_Bool *is_expanded, int *depth,
OutlinerAncestorInfo **ancestor);
virtual EOutlinerTextStyle getColumnStyle(int column);
virtual char *getColumnText(int column);
virtual fe_icon *getColumnIcon(int column);
virtual void releaseLineData();
virtual void Buttonfunc(const OutlineButtonFuncData *data);
virtual void Flippyfunc(const OutlineFlippyFuncData *data);
virtual XFE_Outliner *getOutliner();
// Get tooltipString & docString;
// returned string shall be freed by the callee
// row < 0 indicates heading row; otherwise it is a content row
// (starting from 0)
//
virtual char *getCellTipString(int /* row */, int /* column */) {return NULL;}
virtual char *getCellDocString(int /* row */, int /* column */) {return NULL;}
// Callbacks - page BrowserLang
static void cb_add(Widget, XtPointer, XtPointer);
static void cb_delete(Widget, XtPointer, XtPointer);
static void cb_promote(Widget, XtPointer, XtPointer);
static void cb_demote(Widget, XtPointer, XtPointer);
private:
// Data
static const int OUTLINER_COLUMN_ORDER;
static const int OUTLINER_COLUMN_LANG;
static const int OUTLINER_COLUMN_MAX_LENGTH;
static const int OUTLINER_INIT_POS;
PrefsDataBrowserLang *m_prefsDataBrowserLang;
int m_rowIndex;
};
#ifdef MOZ_MAIL_NEWS
// ************************* XFE_PrefsPageMailNews *************************
class XFE_PrefsPageMailNews : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageMailNews(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageMailNews();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
// Gets
PrefsDataMailNews *getData();
// Callbacks - page MailNews
static void cb_toggleMsgFont(Widget, XtPointer, XtPointer);
static void cb_quotedTextColor(Widget, XtPointer, XtPointer);
private:
// Data
PrefsDataMailNews *m_prefsDataMailNews;
XP_Bool m_refresh_needed;
};
#endif
// ************************* XFE_PrefsPageMailNewsIdentity *************************
class XFE_PrefsPageMailNewsIdentity : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageMailNewsIdentity(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageMailNewsIdentity();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
virtual Boolean verify();
// Gets
PrefsDataMailNewsIdentity *getData();
// Callbacks - page Mail News/Identity
#ifdef MOZ_MAIL_NEWS
static void cb_browse(Widget, XtPointer, XtPointer);
static void cb_toggleAttachCard(Widget, XtPointer, XtPointer);
#endif
private:
// Data
PrefsDataMailNewsIdentity *m_prefsDataMailNewsIdentity;
};
#ifdef MOZ_MAIL_NEWS
// Incoming Mail Servers Data
class XFE_PrefsIncomingMServer
{
public:
XFE_PrefsIncomingMServer(Widget incomingServerBox, XFE_PrefsPage *page);
virtual ~XFE_PrefsIncomingMServer();
XFE_PrefsPage *getPage() { return prefsPage; };
void refresh_incoming();
XP_Bool has_pop();
XP_Bool has_imap();
XP_Bool has_many_imap();
private:
void select_incoming();
static void cb_select_incoming(Widget w, XtPointer closure,
XtPointer callData);
static void cb_new_incoming(Widget w, XtPointer closure,
XtPointer callData);
static void cb_edit_incoming(Widget w, XtPointer closure,
XtPointer callData);
static void cb_delete_incoming(Widget w, XtPointer closure,
XtPointer callData);
static void cb_refresh(Widget w, XtPointer closure, XtPointer callData);
XFE_PrefsMServerDialog *m_mserver_dialog;
XFE_PrefsPage* prefsPage;
void newIncoming();
void editIncoming();
void deleteIncoming();
Widget m_incoming;
Widget m_button_form;
Widget m_new_button;
Widget m_edit_button;
Widget m_delete_button;
};
// Outgoing Server Data
class XFE_PrefsOutgoingServer
{
public:
XFE_PrefsOutgoingServer(Widget outgoingServerBox);
Widget get_server_name() { return m_servername_text; };
Widget get_user_name() { return m_username_text; };
HG02621
private:
Widget m_outgoing;
// Labels
Widget m_servername_text; // Text field
Widget m_username_text; // Text field
HG19282
};
// Local mail directory data
class XFE_PrefsLocalMailDir
{
public:
XFE_PrefsLocalMailDir(Widget localMailDirBox, XFE_PrefsPage *page);
static void cb_choose(Widget w, XtPointer closure,
XtPointer callData);
Widget get_local_dir_text() { return m_local_dir_text; };
XFE_PrefsPage *getPage() { return prefsPage; };
private:
XFE_PrefsPage *prefsPage;
Widget m_local_dir_text;
};
// News Servers Data
class XFE_PrefsNewsServer
{
public:
XFE_PrefsNewsServer(Widget ServerBox, XFE_PrefsPage *page);
XFE_PrefsPage *getPage() { return prefsPage; };
private:
static void cb_option(Widget, XtPointer, XtPointer);
static void cb_new_news_server(Widget w, XtPointer closure,
XtPointer callData);
static void cb_edit_news_server(Widget w, XtPointer closure,
XtPointer callData);
static void cb_delete_news_server(Widget w, XtPointer closure,
XtPointer callData);
XFE_PrefsPage *prefsPage;
Widget news_servers;
Widget button_form;
Widget new_button;
Widget edit_button;
Widget delete_button;
};
// ************************* XFE_PrefsPageMailNewsMserver *************************
class XFE_PrefsPageMailNewsMserver : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageMailNewsMserver(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageMailNewsMserver();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
virtual Boolean verify();
// Callbacks - page Mail News/Mail Server
static void cb_browseApplication(Widget, XtPointer, XtPointer);
static void cb_more(Widget, XtPointer, XtPointer);
static void cb_toggleServerType(Widget, XtPointer, XtPointer);
static void cb_toggleApplication(Widget, XtPointer, XtPointer);
private:
XFE_PrefsIncomingMServer *xfe_incoming;
XFE_PrefsOutgoingServer *xfe_outgoing;
XFE_PrefsLocalMailDir *xfe_local_mail;
// Data
};
// ************************* XFE_PrefsPageMailNewsCopies ******************
class XFE_PrefsPageMailNewsCopies : public XFE_PrefsPage
{
public:
XFE_PrefsPageMailNewsCopies(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageMailNewsCopies();
virtual void create();
MSG_FolderInfo *GetFolderInfoFromPath(char *path,
MSG_FolderInfo *parent=NULL);
virtual void init();
virtual void install();
virtual void save();
virtual Boolean verify();
private:
MSG_FolderInfo *m_mailFcc, *m_newsFcc, *m_draftsFcc, *m_templatesFcc;
MSG_Master *m_master;
XFE_PrefsMailFolderDialog *m_chooseDialog;
MSG_FolderInfo *chooseFcc(int l10n_name, MSG_FolderInfo *selected_folder);
XmString VerboseFolderName(MSG_FolderInfo *,int folder_string_id=0);
MSG_FolderInfo *GetSpecialFolder(char *name, int l10n_name);
static void cb_chooseMailFcc(Widget, XtPointer closure,XtPointer);
static void cb_chooseNewsFcc(Widget, XtPointer closure, XtPointer);
static void cb_chooseDraftsFcc(Widget, XtPointer closure, XtPointer);
static void cb_chooseTemplatesFcc(Widget, XtPointer closure, XtPointer);
static void cb_gotMailFcc(Widget, XtPointer, XtPointer);
static void cb_gotNewsFcc(Widget, XtPointer, XtPointer);
static void cb_gotDraftsFcc(Widget, XtPointer, XtPointer);
static void cb_gotTemplatesFcc(Widget, XtPointer, XtPointer);
Widget createMailFrame(Widget parent, Widget attachTo);
Widget createNewsFrame(Widget parent, Widget attachTo);
Widget createDTFrame(Widget parent, Widget attachTo);
Widget m_mail_self_toggle;
Widget m_mail_other_toggle;
Widget m_mail_other_text;
Widget m_mail_fcc_toggle;
Widget m_mail_choose_button;
Widget m_news_self_toggle;
Widget m_news_other_toggle;
Widget m_news_other_text;
Widget m_news_fcc_toggle;
Widget m_news_choose_button;
Widget m_drafts_save_label;
Widget m_drafts_choose_button;
Widget m_templates_save_label;
Widget m_templates_choose_button;
};
// ************************* XFE_PrefsPageMailNewsHTML ******************
class XFE_PrefsPageMailNewsHTML : public XFE_PrefsPage
{
public:
XFE_PrefsPageMailNewsHTML(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageMailNewsHTML();
virtual void create();
virtual void init();
virtual void install();
virtual void save();
virtual Boolean verify();
private:
Widget createUseHTMLFrame(Widget parent, Widget attachTo);
Widget createNoHTMLFrame(Widget parent, Widget attachTo);
Widget m_usehtml_toggle;
Widget m_nohtml_ask_toggle;
Widget m_nohtml_text_toggle;
Widget m_nohtml_html_toggle;
Widget m_nohtml_both_toggle;
};
// ************************* XFE_PrefsPageMailNewsReceipts ******************
class XFE_PrefsPageMailNewsReceipts : public XFE_PrefsPage
{
public:
XFE_PrefsPageMailNewsReceipts(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageMailNewsReceipts();
virtual void create();
virtual void init();
virtual void install();
virtual void save();
virtual Boolean verify();
private:
Widget createRequestReceiptsFrame(Widget parent, Widget attachTo);
Widget createReceiptsArriveFrame(Widget parent, Widget attachTo);
Widget createReceiveReceiptsFrame(Widget parent, Widget attachTo);
Widget m_dsn_toggle;
Widget m_mdn_toggle;
Widget m_both_toggle;
Widget m_inbox_toggle;
Widget m_sentmail_toggle;
Widget m_never_toggle;
Widget m_some_toggle;
};
#endif /* MOZ_MAIL_NEWS */
#ifdef EDITOR
// ************************* XFE_PrefsPageEditor *************************
class XFE_PrefsPageEditor : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageEditor(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageEditor();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
virtual Boolean verify();
// Gets
PrefsDataEditor *getData();
// Callbacks - page Editor
static void cb_changed(Widget, XtPointer, XtPointer);
static void cb_browseToTextField(Widget, XtPointer, XtPointer);
static void cb_restoreTemplate(Widget, XtPointer, XtPointer);
static void cb_autosaveToggle(Widget, XtPointer, XtPointer);
static void cb_browseTemplate(Widget, XtPointer, XtPointer);
private:
// Data
PrefsDataEditor *m_prefsDataEditor;
};
// ************************* XFE_PrefsPageEditorAppearance *************************
class XFE_PrefsPageEditorAppearance : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageEditorAppearance(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageEditorAppearance();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
// Gets
PrefsDataEditorAppearance *getData();
// Callbacks - page Editor/Appearance
private:
// Data
PrefsDataEditorAppearance *m_prefsDataEditorAppearance;
};
// ************************* XFE_PrefsPageEditorPublish *************************
class XFE_PrefsPageEditorPublish : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageEditorPublish(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageEditorPublish();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
// Gets
PrefsDataEditorPublish *getData();
// Callbacks - page Editor/Publish
static void cb_changed(Widget, XtPointer, XtPointer);
static void cb_passwordChanged(Widget, XtPointer, XtPointer);
private:
// Data
PrefsDataEditorPublish *m_prefsDataEditorPublish;
};
#endif /* EDITOR */
#ifdef PREFS_UNSUPPORTED
// ************************* XFE_PrefsPageOffline *************************
class XFE_PrefsPageOffline : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageOffline(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageOffline();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
// Gets
PrefsDataOffline *getData();
// Callbacks - page Offline
static void cb_toggleStartup(Widget, XtPointer, XtPointer);
private:
// Data
PrefsDataOffline *m_prefsDataOffline;
};
#ifdef MOZ_MAIL_NEWS
// ************************* XFE_PrefsPageOfflineNews *************************
class XFE_PrefsPageOfflineNews : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageOfflineNews(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageOfflineNews();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
// Gets
PrefsDataOfflineNews *getData();
// Callbacks - page OfflineNews
static void cb_toggleDownLoadByDate(Widget, XtPointer, XtPointer);
private:
// Data
PrefsDataOfflineNews *m_prefsDataOfflineNews;
};
#endif /* MOZ_MAIL_NEWS */
#endif /* PREFS_UNSUPPORTED */
// ************************* XFE_PrefsPageDiskSpace *************************
class XFE_PrefsPageDiskSpace : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageDiskSpace(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageDiskSpace();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
// Gets
PrefsDataDiskSpace *getData();
// Callbacks - page DiskSpace
// static void cb_more(Widget, XtPointer, XtPointer);
static void cb_toggleKeepNews(Widget, XtPointer, XtPointer);
private:
// Data
PrefsDataDiskSpace *m_prefsDataDiskSpace;
};
#ifdef PREFS_UNSUPPORTED
// ************************* XFE_PrefsPageHelpFiles *************************
class XFE_PrefsPageHelpFiles : public XFE_PrefsPage
{
public:
// Constructors, Destructors
XFE_PrefsPageHelpFiles(XFE_PrefsDialog *dialog);
virtual ~XFE_PrefsPageHelpFiles();
// Manipulators
virtual void create();
virtual void init();
virtual void install();
virtual void save();
// Gets
PrefsDataHelpFiles *getData();
// Callbacks - page HelpFiles
static void cb_toggleHelpSite(Widget, XtPointer, XtPointer);
static void cb_browse(Widget, XtPointer, XtPointer);
private:
// Data
PrefsDataHelpFiles *m_prefsDataHelpFiles;
};
#endif
extern "C" void
fe_showEditorPreferences(XFE_Component *topLevel, MWContext *context);
#endif /* _xfe_prefsdialog_h */