mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1072 lines
24 KiB
1072 lines
24 KiB
/*
|
|
Enhanced NCSA Mosaic from Spyglass
|
|
"Guitar"
|
|
|
|
Copyright 1994 Spyglass, Inc.
|
|
All Rights Reserved
|
|
|
|
Author(s):
|
|
Eric W. Sink [email protected]
|
|
Jeff Hostetler [email protected]
|
|
*/
|
|
|
|
/* w32cmd.c -- handle dispatch of WM_COMMAND (for menus, accelerators, etc.) */
|
|
|
|
#include "all.h"
|
|
|
|
/*
|
|
//
|
|
// Typedef for the ShellAbout function
|
|
//
|
|
typedef void (WINAPI *LPFNSHELLABOUT)(HWND, LPTSTR, LPTSTR, HICON);
|
|
|
|
#ifdef _UNICODE
|
|
#define FN_ABOUT _T("ShellAboutW")
|
|
#else
|
|
#define FN_ABOUT "ShellAboutA"
|
|
#endif // _UNICODE
|
|
*/
|
|
|
|
#ifdef _GIBRALTAR
|
|
|
|
#ifdef _USE_MAPI
|
|
|
|
static VOID
|
|
CC_OnItem_Mail(
|
|
HWND hWnd
|
|
)
|
|
{
|
|
MapiSendMail(hWnd, NULL);
|
|
}
|
|
|
|
#endif // _USE_MAPI
|
|
|
|
void
|
|
ShowPageSetup(
|
|
HWND hWnd
|
|
)
|
|
{
|
|
PAGESETUPDLG psd;
|
|
char szTemp[4];
|
|
BOOL fMetricConversion = FALSE;
|
|
|
|
ZeroMemory(&psd, sizeof(psd));
|
|
|
|
psd.lStructSize = sizeof(PAGESETUPDLG);
|
|
psd.Flags = PSD_DEFAULTMINMARGINS | PSD_INWININIINTLMEASURE | PSD_MARGINS;
|
|
psd.hwndOwner = hWnd;
|
|
psd.hDevMode = wg.hDevMode;
|
|
psd.hDevNames = wg.hDevNames;
|
|
psd.hInstance = wg.hInstance;
|
|
|
|
if (GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_IMEASURE, szTemp, NrElements(szTemp)) &&
|
|
szTemp[0] == '0')
|
|
{
|
|
psd.rtMargin.left = CONVERTTOMM(gPrefs.rtMargin.left);
|
|
psd.rtMargin.right = CONVERTTOMM(gPrefs.rtMargin.right);
|
|
psd.rtMargin.top = CONVERTTOMM(gPrefs.rtMargin.top);
|
|
psd.rtMargin.bottom = CONVERTTOMM(gPrefs.rtMargin.bottom);
|
|
fMetricConversion = TRUE;
|
|
}
|
|
else
|
|
{
|
|
memcpy(&psd.rtMargin, &gPrefs.rtMargin, sizeof(psd.rtMargin));
|
|
}
|
|
|
|
if (PageSetupDlg(&psd))
|
|
{
|
|
wg.hDevMode = psd.hDevMode;
|
|
wg.hDevNames = psd.hDevNames;
|
|
if (fMetricConversion)
|
|
{
|
|
gPrefs.rtMargin.left = CONVERTTOINCHES(psd.rtMargin.left);
|
|
gPrefs.rtMargin.right = CONVERTTOINCHES(psd.rtMargin.right);
|
|
gPrefs.rtMargin.top = CONVERTTOINCHES(psd.rtMargin.top);
|
|
gPrefs.rtMargin.bottom = CONVERTTOINCHES(psd.rtMargin.bottom);
|
|
}
|
|
else
|
|
{
|
|
memcpy(&gPrefs.rtMargin, &psd.rtMargin, sizeof(gPrefs.rtMargin));
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif // _GIBRALTAR
|
|
|
|
char szLastURLTyped[MAX_URL_STRING + 1];
|
|
|
|
static VOID CC_Forward(HWND hWnd, int id)
|
|
{
|
|
/* forward message to child (document contents) */
|
|
|
|
struct Mwin * tw = GetPrivateData(hWnd);
|
|
|
|
if (tw && tw->win)
|
|
{
|
|
XX_DMsg(DBG_MENU,
|
|
("CC_Forward: forwarding message 0x%x to window 0x%x.\n",
|
|
id, tw->win));
|
|
(void) SendMessage(tw->win, WM_COMMAND, (WPARAM) id, 0L);
|
|
}
|
|
else
|
|
{
|
|
char szError[1024];
|
|
|
|
sprintf(szError, GTR_GetString(SID_WINERR_UNABLE_TO_FORWARD_MESSAGE_D), id);
|
|
ERR_ReportWinError(NULL, SID_ERR_SIMPLY_SHOW_ARGUMENTS_S_S, szError, NULL);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
/*****************************************************************/
|
|
/*****************************************************************/
|
|
/*****************************************************************/
|
|
|
|
|
|
#ifdef DISABLED_BY_DAN /* No more FEATURE_OPTIONS_MENU for this. */
|
|
|
|
static VOID CC_OnItem_HistorySettings(HWND hWnd)
|
|
{
|
|
DlgHIST_RunDialog(hWnd, &gPrefs);
|
|
|
|
return;
|
|
}
|
|
|
|
static void CC_OnItem_SetHomePage(HWND hWnd)
|
|
{
|
|
char buf[MAX_URL_STRING+1];
|
|
|
|
if (0 == DlgPrompt_RunDialog(hWnd, RES_MENU_LABEL_OPT_SETHOMEPAGE_SHORT, GTR_GetString(SID_DLG_ENTER_URL), gPrefs.szHomeURL, buf, MAX_URL_STRING))
|
|
{
|
|
strcpy(gPrefs.szHomeURL, buf);
|
|
SavePreferences(&gPrefs);
|
|
}
|
|
}
|
|
|
|
/*
|
|
static void CC_OnItem_ProxyServer(HWND hWnd)
|
|
{
|
|
char buf[MAX_URL_STRING+1];
|
|
|
|
if (0 == DlgPrompt_RunDialog(hWnd, RES_MENU_LABEL_OPT_PROXYSERVER_SHORT, GTR_GetString(SID_DLG_ENTER_URL), gPrefs.szProxy, buf, MAX_URL_STRING))
|
|
{
|
|
strcpy(gPrefs.szProxy, buf);
|
|
SavePreferences(&gPrefs);
|
|
}
|
|
}
|
|
|
|
static VOID CC_OnItem_Styles(HWND hWnd)
|
|
{
|
|
DlgSTY_RunDialog(hWnd, &gPrefs);
|
|
|
|
return;
|
|
}
|
|
*/
|
|
|
|
static VOID CC_OnItem_Temp(HWND hWnd)
|
|
{
|
|
DlgTemp_RunDialog(hWnd, &gPrefs);
|
|
|
|
return;
|
|
}
|
|
|
|
static VOID CC_OnItem_LoadImagesAuto(HWND hWnd)
|
|
{
|
|
gPrefs.bAutoLoadImages = !gPrefs.bAutoLoadImages;
|
|
}
|
|
|
|
#endif /* 0 */
|
|
|
|
static VOID CC_OnItem_Viewers(HWND hWnd)
|
|
{
|
|
DlgViewers_RunDialog(hWnd);
|
|
|
|
return;
|
|
}
|
|
|
|
#ifdef PROTOCOL_HELPERS
|
|
static VOID CC_OnItem_Protocols(HWND hWnd)
|
|
{
|
|
DlgProtocols_RunDialog(hWnd);
|
|
|
|
return;
|
|
}
|
|
#endif /* PROTOCOL_HELPERS */
|
|
|
|
static VOID CC_OnItem_Stop(HWND hWnd)
|
|
{
|
|
struct Mwin *tw;
|
|
|
|
tw = GetPrivateData(hWnd);
|
|
if (tw)
|
|
{
|
|
Async_TerminateByWindow(tw);
|
|
}
|
|
}
|
|
|
|
void OpenLocalDocument(HWND hWnd, char *s)
|
|
{
|
|
char path[_MAX_PATH + 1];
|
|
char buf[MAX_URL_STRING + 1];
|
|
struct Mwin * tw;
|
|
|
|
strcpy(path, s);
|
|
|
|
FixPathName(path);
|
|
|
|
strcpy(buf, "file:///");
|
|
strcat(buf, path);
|
|
|
|
#ifdef _GIBRALTAR
|
|
|
|
tw = GetPrivateData(hWnd);
|
|
CreateOrLoad(tw, buf, NULL);
|
|
|
|
#else
|
|
|
|
#ifdef FEATURE_CHANGEURL
|
|
GTR_NewWindow(buf, NULL);
|
|
#else
|
|
tw = GetPrivateData(hWnd);
|
|
CreateOrLoad(tw, buf, NULL);
|
|
#endif
|
|
|
|
#endif // _GIBRALTAR
|
|
}
|
|
|
|
#ifndef FEATURE_CHANGEURL
|
|
static VOID CC_OnNewWindow(HWND hWnd)
|
|
{
|
|
#ifndef _GIBRALTAR
|
|
GTR_NewWindow(NULL, NULL, 0, FALSE, FALSE, NULL, NULL);
|
|
#endif // _GIBRALTAR
|
|
return;
|
|
}
|
|
#endif
|
|
|
|
/*
|
|
static VOID CC_OnOpenLocal(HWND hWnd)
|
|
{
|
|
extern char szLastURLTyped[MAX_URL_STRING + 1];
|
|
|
|
DlgOpen_RunDialog(hWnd);
|
|
|
|
return;
|
|
}
|
|
*/
|
|
|
|
#ifdef FEATURE_CHANGEURL
|
|
static VOID CC_OnChangeURL(HWND hWnd)
|
|
{
|
|
extern char szLastURLTyped[MAX_URL_STRING + 1];
|
|
|
|
if (0 == DlgPrompt_RunDialog(hWnd, RES_MENU_LABEL_CHANGEURL_SHORT, GTR_GetString(SID_DLG_ENTER_URL), szLastURLTyped, szLastURLTyped, MAX_URL_STRING))
|
|
{
|
|
struct Mwin * tw = GetPrivateData(hWnd);
|
|
CreateOrLoad(tw,szLastURLTyped,NULL);
|
|
}
|
|
|
|
return;
|
|
}
|
|
#endif
|
|
|
|
/* This function is called by Prompt dialog created in CC_OnOpenURL if the user selects OK */
|
|
|
|
VOID CC_OnOpenURL_End_Dialog(HWND hWnd)
|
|
{
|
|
#ifdef _GIBRALTAR
|
|
CreateOrLoad(GetPrivateData(hWnd), szLastURLTyped, NULL);
|
|
#else
|
|
|
|
#ifdef FEATURE_CHANGEURL
|
|
GTR_NewWindow(szLastURLTyped, NULL);
|
|
#else
|
|
CreateOrLoad(GetPrivateData(hWnd), szLastURLTyped, NULL);
|
|
#endif
|
|
#endif // _GIBRALTAR
|
|
}
|
|
|
|
static VOID CC_OnOpenURL(HWND hWnd)
|
|
{
|
|
extern char szLastURLTyped[MAX_URL_STRING + 1];
|
|
|
|
#ifdef _GIBRALTAR
|
|
DlgPrompt_RunDialog(hWnd, GTR_GetString(SID_DLG_OPEN_TITLE), szLastURLTyped, szLastURLTyped,
|
|
MAX_URL_STRING, (FARPROC) CC_OnOpenURL_End_Dialog);
|
|
#else
|
|
DlgPrompt_RunDialog(hWnd, RES_MENU_LABEL_OPENURL_SHORT, "Enter URL:", szLastURLTyped, szLastURLTyped,
|
|
MAX_URL_STRING, (FARPROC) CC_OnOpenURL_End_Dialog);
|
|
#endif // _GIBRALTAR
|
|
}
|
|
|
|
static VOID CC_OnAboutBox(HWND hWnd)
|
|
{
|
|
/*
|
|
//
|
|
// Display standard WIN32 About dialog
|
|
//
|
|
HMODULE hMod;
|
|
LPFNSHELLABOUT lpfn;
|
|
|
|
if (hMod = LoadLibrary("SHELL32"))
|
|
{
|
|
if (lpfn = (LPFNSHELLABOUT)GetProcAddress(hMod, FN_ABOUT))
|
|
{
|
|
//
|
|
// BUGBUG: DBCS
|
|
//
|
|
(*lpfn)(hWnd, TEXT("Internet Explorer"), "",
|
|
LoadIcon(wg.hInstance, MAKEINTRESOURCE(RES_ICO_FRAME)));
|
|
}
|
|
FreeLibrary(hMod);
|
|
}
|
|
else
|
|
{
|
|
//
|
|
// Something wrong here
|
|
//
|
|
MessageBeep( MB_ICONEXCLAMATION );
|
|
}
|
|
*/
|
|
DlgAbout_RunDialog(hWnd);
|
|
}
|
|
|
|
static VOID CC_OnItem_Exit(HWND hWnd)
|
|
{
|
|
struct Mwin * tw = GetPrivateData(hWnd);
|
|
int response;
|
|
|
|
if (Async_DoThreadsExist())
|
|
{
|
|
Hidden_EnableAllChildWindows(FALSE, FALSE);
|
|
|
|
response = MessageBox(NULL, GTR_GetString(SID_DLG_CONFIRM_EXIT),
|
|
vv_ApplicationFullName, MB_YESNO);
|
|
|
|
Hidden_EnableAllChildWindows(TRUE, FALSE);
|
|
|
|
if (response == IDNO)
|
|
return;
|
|
}
|
|
|
|
(void) Plan_CloseAll();
|
|
|
|
return;
|
|
}
|
|
|
|
static VOID CC_OnItem_Close(HWND hWnd)
|
|
{
|
|
struct Mwin * tw = GetPrivateData(hWnd);
|
|
|
|
(void) SendMessage(tw->hWndFrame, WM_CLOSE, (WPARAM) NULL, 0L);
|
|
return;
|
|
}
|
|
|
|
|
|
static VOID CC_OnItem_Back(HWND hWnd)
|
|
{
|
|
CC_Forward(hWnd, RES_MENU_ITEM_BACK);
|
|
return;
|
|
}
|
|
|
|
static VOID CC_OnItem_Home(HWND hWnd)
|
|
{
|
|
CC_Forward(hWnd, RES_MENU_ITEM_HOME);
|
|
return;
|
|
}
|
|
|
|
#ifdef _GIBRALTAR
|
|
static VOID CC_OnItem_SearchInternet(HWND hWnd)
|
|
{
|
|
CC_Forward(hWnd, RES_MENU_ITEM_SEARCH_INTERNET);
|
|
return;
|
|
}
|
|
|
|
static VOID CC_OnItem_Cache(HWND hWnd)
|
|
{
|
|
DlgCACHE_RunDialog(hWnd);
|
|
|
|
return;
|
|
}
|
|
|
|
#endif // _GIBRALTAR
|
|
|
|
static VOID CC_OnItem_Preferences(HWND hWnd)
|
|
{
|
|
DlgPREF_RunDialog(hWnd);
|
|
|
|
return;
|
|
}
|
|
|
|
static VOID CC_OnItem_Hotlist(HWND hWnd)
|
|
{
|
|
DlgHOT_RunDialog(FALSE);
|
|
return;
|
|
}
|
|
|
|
static VOID CC_OnItem_GlobalHistory(HWND hWnd)
|
|
{
|
|
DlgHOT_RunDialog(TRUE);
|
|
return;
|
|
}
|
|
|
|
static VOID CC_OnItem_Find(HWND hWnd)
|
|
{
|
|
CC_Forward(hWnd, RES_MENU_ITEM_FIND);
|
|
return;
|
|
}
|
|
|
|
static VOID CC_OnItem_Forward(HWND hWnd)
|
|
{
|
|
CC_Forward(hWnd, RES_MENU_ITEM_FORWARD);
|
|
return;
|
|
}
|
|
|
|
static VOID CC_OnItem_CUT(HWND hWnd)
|
|
{
|
|
CC_Forward(hWnd, RES_MENU_ITEM_CUT);
|
|
return;
|
|
}
|
|
|
|
static VOID CC_OnItem_COPY(HWND hWnd)
|
|
{
|
|
CC_Forward(hWnd, RES_MENU_ITEM_COPY);
|
|
return;
|
|
}
|
|
|
|
static VOID CC_OnItem_PASTE(HWND hWnd)
|
|
{
|
|
CC_Forward(hWnd, RES_MENU_ITEM_PASTE);
|
|
return;
|
|
}
|
|
|
|
static VOID CC_OnItem_PRINT(HWND hWnd)
|
|
{
|
|
CC_Forward(hWnd, RES_MENU_ITEM_PRINT);
|
|
return;
|
|
}
|
|
|
|
static VOID CC_OnItem_PAGESETUP(HWND hWnd)
|
|
{
|
|
#ifdef _GIBRALTAR
|
|
|
|
ShowPageSetup(hWnd);
|
|
|
|
#else
|
|
|
|
DlgPage_RunDialog(hWnd, &gPrefs.page);
|
|
|
|
#endif // _GIBRALTAR
|
|
}
|
|
|
|
#ifndef _GIBRALTAR
|
|
//
|
|
// Not supported on Gibraltar
|
|
//
|
|
static VOID CC_OnItem_PRINTSETUP(HWND hWnd)
|
|
{
|
|
BOOL bResult;
|
|
struct Mwin * tw = GetPrivateData(hWnd);
|
|
|
|
bResult = DlgPrnt_RunDialog(tw, hWnd, FALSE);
|
|
|
|
return;
|
|
}
|
|
#endif // _GIBRALTAR
|
|
|
|
static VOID CC_OnItemHelp(HWND hWnd)
|
|
{
|
|
OpenHelpWindow(hWnd);
|
|
|
|
return;
|
|
}
|
|
|
|
static VOID CC_OnItem_ContentsHelp(HWND hWnd)
|
|
{
|
|
char *ext;
|
|
char szHelp[_MAX_PATH];
|
|
char path[_MAX_PATH];
|
|
|
|
if (gPrefs.szHelpFile[0])
|
|
{
|
|
ext = strrchr(gPrefs.szHelpFile, '.');
|
|
PREF_GetHelpDirectory(path);
|
|
if (ext && 0 == _stricmp(ext, ".hlp"))
|
|
{
|
|
sprintf(szHelp, "%s%s", path, gPrefs.szHelpFile);
|
|
WinHelp(wg.hWndHidden, szHelp, HELP_CONTENTS, 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
static VOID CC_OnItem_SearchHelp(HWND hWnd)
|
|
{
|
|
char *ext;
|
|
char szHelp[_MAX_PATH];
|
|
char path[_MAX_PATH];
|
|
|
|
if (gPrefs.szHelpFile[0])
|
|
{
|
|
ext = strrchr(gPrefs.szHelpFile, '.');
|
|
PREF_GetHelpDirectory(path);
|
|
if (ext && 0 == _stricmp(ext, ".hlp"))
|
|
{
|
|
sprintf(szHelp, "%s%s", path, gPrefs.szHelpFile);
|
|
/* TODO: Figure out how to get searching */
|
|
WinHelp(wg.hWndHidden, szHelp, HELP_PARTIALKEY, (DWORD) "");
|
|
}
|
|
}
|
|
}
|
|
|
|
VOID
|
|
ShowDialogHelp(
|
|
HWND hWnd,
|
|
UINT nDialogID
|
|
)
|
|
{
|
|
char *ext;
|
|
char szHelp[_MAX_PATH];
|
|
char path[_MAX_PATH];
|
|
DWORD dwData;
|
|
|
|
if (gPrefs.szHelpFile[0])
|
|
{
|
|
ext = strrchr(gPrefs.szHelpFile, '.');
|
|
PREF_GetHelpDirectory(path);
|
|
if (ext && 0 == _stricmp(ext, ".hlp"))
|
|
{
|
|
sprintf(szHelp, "%s%s", path, gPrefs.szHelpFile);
|
|
dwData = MAKELONG(nDialogID, 0x0002);
|
|
WinHelp(wg.hWndHidden, szHelp, HELP_CONTEXT, dwData);
|
|
}
|
|
}
|
|
}
|
|
|
|
#ifdef FEATURE_HTML_HIGHLIGHT
|
|
static void CC_OnItem_LaunchSearchApp(HWND hWnd)
|
|
{
|
|
int err;
|
|
struct Mwin * tw = GetPrivateData(hWnd);
|
|
|
|
err = WinExec(gPrefs.szSearchEngine, SW_SHOW);
|
|
if (err <= 31)
|
|
{
|
|
ERR_ReportError(tw, SID_ERR_UNABLE_TO_LAUNCH_CHECK_PATH_S, gPrefs.szSearchEngine, NULL);
|
|
}
|
|
}
|
|
#endif /* FEATURE_HTML_HIGHLIGHT */
|
|
|
|
#ifdef FEATURE_HELP_TOPIC
|
|
static VOID CC_OnItem_GettingStarted(HWND hWnd)
|
|
{
|
|
char *ext;
|
|
char szHelp[_MAX_PATH];
|
|
char path[_MAX_PATH];
|
|
|
|
if (gPrefs.szHelpFile[0])
|
|
{
|
|
ext = strrchr(gPrefs.szHelpFile, '.');
|
|
PREF_GetHelpDirectory(path);
|
|
if (ext && 0 == _stricmp(ext, ".hlp"))
|
|
{
|
|
sprintf(szHelp, "%s%s", path, gPrefs.szHelpFile);
|
|
/* TODO: Figure out how to get searching */
|
|
WinHelp(wg.hWndHidden, szHelp, HELP_CONTEXT, FEATURE_HELP_TOPIC);
|
|
}
|
|
}
|
|
}
|
|
#endif /* FEATURE_GETTING_HELP */
|
|
|
|
static VOID CC_OnItem_HelpHelp(HWND hWnd)
|
|
{
|
|
char *ext;
|
|
char szHelp[_MAX_PATH];
|
|
char path[_MAX_PATH];
|
|
|
|
if (gPrefs.szHelpFile[0])
|
|
{
|
|
ext = strrchr(gPrefs.szHelpFile, '.');
|
|
PREF_GetHelpDirectory(path);
|
|
if (ext && 0 == _stricmp(ext, ".hlp"))
|
|
{
|
|
sprintf(szHelp, "%s%s", path, gPrefs.szHelpFile);
|
|
WinHelp(wg.hWndHidden, szHelp, HELP_HELPONHELP, 0);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
static VOID CC_OnItem_TileWindows(HWND hWnd)
|
|
{
|
|
TW_TileWindows();
|
|
}
|
|
|
|
static VOID CC_OnItem_CascadeWindows(HWND hWnd)
|
|
{
|
|
TW_CascadeWindows();
|
|
}
|
|
|
|
static VOID CC_OnItem_SwitchWindow(HWND hWnd)
|
|
{
|
|
HWND hwndNext;
|
|
|
|
/* User pressed Ctrl-Tab. Go to the next window in the following order:
|
|
HTML document window
|
|
Image viewer window
|
|
Sound player window
|
|
This order is consistent with how the windows appear under the window menu */
|
|
|
|
hwndNext = TW_GetNextWindow(hWnd);
|
|
if (hwndNext)
|
|
TW_RestoreWindow(hwndNext);
|
|
}
|
|
|
|
#ifdef _GIBRALTAR
|
|
|
|
static VOID CC_OnItem_Toolbar(HWND hWnd)
|
|
{
|
|
gPrefs.tb.bShowToolBar = !gPrefs.tb.bShowToolBar;
|
|
TBar_ToggleGwcMenu();
|
|
}
|
|
|
|
|
|
static VOID CC_OnItem_Location(HWND hWnd)
|
|
{
|
|
gPrefs.bShowLocation = !gPrefs.bShowLocation;
|
|
GWC_DOC_ToggleLocation();
|
|
}
|
|
|
|
static VOID CC_OnItem_StatusBar(HWND hWnd)
|
|
{
|
|
gPrefs.bShowStatusBar = !gPrefs.bShowStatusBar;
|
|
BHBar_ToggleBar();
|
|
}
|
|
|
|
//
|
|
// The font style or size has changed. Redraw the
|
|
// documents
|
|
//
|
|
static void
|
|
UpdateFont(
|
|
HWND hWnd,
|
|
BOOL fResolve
|
|
)
|
|
{
|
|
struct Mwin *tw;
|
|
|
|
if (fResolve)
|
|
{
|
|
ResolveFontType();
|
|
}
|
|
|
|
FONT_FlushCache();
|
|
W3Doc_UpdateBasePointSizes();
|
|
|
|
//
|
|
// Update toolbar controls
|
|
//
|
|
for (tw = Mlist; tw; tw = tw->next)
|
|
{
|
|
TBar_UpdateTBar(tw);
|
|
}
|
|
}
|
|
|
|
static VOID CC_OnItem_FontSmallest(HWND hWnd)
|
|
{
|
|
gPrefs.iUserTextSize = FONT_SMALLEST;
|
|
UpdateFont(hWnd, FALSE);
|
|
}
|
|
|
|
static VOID CC_OnItem_FontSmall(HWND hWnd)
|
|
{
|
|
gPrefs.iUserTextSize = FONT_SMALL;
|
|
UpdateFont(hWnd, FALSE);
|
|
}
|
|
|
|
static VOID CC_OnItem_FontMedium(HWND hWnd)
|
|
{
|
|
gPrefs.iUserTextSize = FONT_MEDIUM;
|
|
UpdateFont(hWnd, FALSE);
|
|
}
|
|
|
|
static VOID CC_OnItem_FontLarge(HWND hWnd)
|
|
{
|
|
gPrefs.iUserTextSize = FONT_LARGE;
|
|
UpdateFont(hWnd, FALSE);
|
|
}
|
|
|
|
static VOID CC_OnItem_FontLargest(HWND hWnd)
|
|
{
|
|
gPrefs.iUserTextSize = FONT_LARGEST;
|
|
UpdateFont(hWnd, FALSE);
|
|
}
|
|
|
|
static VOID CC_OnItem_FontPlain(HWND hWnd)
|
|
{
|
|
gPrefs.iUserTextType = FONT_PLAIN;
|
|
UpdateFont(hWnd, TRUE);
|
|
}
|
|
|
|
static VOID CC_OnItem_FontFancy(HWND hWnd)
|
|
{
|
|
gPrefs.iUserTextType = FONT_FANCY;
|
|
UpdateFont(hWnd, TRUE);
|
|
}
|
|
|
|
static VOID CC_OnItem_FontMixed(HWND hWnd)
|
|
{
|
|
gPrefs.iUserTextType = FONT_MIXED;
|
|
UpdateFont(hWnd, TRUE);
|
|
}
|
|
|
|
static VOID CC_OnItem_LoadImagesAuto(HWND hWnd)
|
|
{
|
|
gPrefs.bAutoLoadImages = !gPrefs.bAutoLoadImages;
|
|
}
|
|
|
|
static VOID CC_OnItem_Index(HWND hWnd)
|
|
{
|
|
}
|
|
|
|
static VOID CC_OnItem_FontPlus(HWND hWnd)
|
|
{
|
|
if (gPrefs.iUserTextSize < FONT_LARGEST)
|
|
{
|
|
++gPrefs.iUserTextSize;
|
|
UpdateFont(hWnd, FALSE);
|
|
}
|
|
}
|
|
|
|
static VOID CC_OnItem_FontMinus(HWND hWnd)
|
|
{
|
|
if (gPrefs.iUserTextSize > FONT_SMALLEST)
|
|
{
|
|
--gPrefs.iUserTextSize;
|
|
UpdateFont(hWnd, FALSE);
|
|
}
|
|
}
|
|
|
|
static VOID CC_OnItem_Gateway(HWND hWnd)
|
|
{
|
|
DlgGATE_RunDialog(hWnd);
|
|
}
|
|
|
|
#endif // _GIBRALTAR
|
|
|
|
/*================================================================*
|
|
*================================================================*
|
|
*================================================================*/
|
|
|
|
#define FORWARD_TO_ACTIVE_MDI_CHILD ((LPVOID)-1)
|
|
|
|
LRESULT CC_OnCommand(HWND hWnd, int wId, HWND hWndCtl, UINT wNotifyCode)
|
|
{
|
|
register WORD wNdx;
|
|
struct Mwin * tw;
|
|
|
|
XX_DMsg(DBG_MENU, ("\nMENU COMMAND %x\n\n", wId));
|
|
|
|
switch(wId)
|
|
{
|
|
#ifdef FEATURE_CHANGEURL
|
|
case RES_MENU_ITEM_CHANGEURL:
|
|
CC_OnChangeURL(hWnd);
|
|
return 0;
|
|
#endif
|
|
|
|
#ifdef FEATURE_HTML_HIGHLIGHT
|
|
case RES_MENU_ITEM_SEARCH_LAUNCH:
|
|
CC_OnItem_LaunchSearchApp(hWnd);
|
|
return 0;
|
|
#endif
|
|
|
|
#ifdef PROTOCOL_HELPERS
|
|
case RES_MENU_ITEM_PROTOCOLS:
|
|
CC_OnItem_Protocols(hWnd);
|
|
return 0;
|
|
#endif
|
|
|
|
#ifdef FEATURE_OPTIONS_MENU
|
|
case RES_MENU_ITEM_OPT_HISTORYSETTINGS:
|
|
CC_OnItem_HistorySettings(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_OPT_TEMPDIRECTORY:
|
|
CC_OnItem_Temp(hWnd);
|
|
return 0;
|
|
#endif
|
|
|
|
//#ifdef FEATURE_WINHELP
|
|
case RES_MENU_ITEM_CONTENTS_HELP:
|
|
CC_OnItem_ContentsHelp(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_SEARCH_HELP:
|
|
CC_OnItem_SearchHelp(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_HELP_HELP:
|
|
CC_OnItem_HelpHelp(hWnd);
|
|
return 0;
|
|
//#endif
|
|
|
|
#ifdef FEATURE_HELP_TOPIC
|
|
case RES_MENU_ITEM_GETTING_HELP:
|
|
CC_OnItem_GettingStarted(hWnd);
|
|
return 0;
|
|
#endif
|
|
|
|
case RES_MENU_ITEM_NEWWINDOW:
|
|
CC_OnNewWindow(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_OPENURL:
|
|
CC_OnOpenURL(hWnd);
|
|
return 0;
|
|
/*
|
|
case RES_MENU_ITEM_OPENLOCAL:
|
|
CC_OnOpenLocal(hWnd);
|
|
return 0;
|
|
*/
|
|
case RES_MENU_ITEM_CLOSE:
|
|
CC_OnItem_Close(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_PRINT:
|
|
CC_OnItem_PRINT(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_PAGESETUP:
|
|
CC_OnItem_PAGESETUP(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_EXIT:
|
|
CC_OnItem_Exit(hWnd);
|
|
return 0;
|
|
#ifndef _GIBRALTAR
|
|
case RES_MENU_ITEM_UNDO:
|
|
CC_OnItem_UNDO(hWnd);
|
|
return 0;
|
|
#endif // _GIBRALTAR
|
|
|
|
case RES_MENU_ITEM_CUT:
|
|
CC_OnItem_CUT(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_PASTE:
|
|
CC_OnItem_PASTE(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_COPY:
|
|
CC_OnItem_COPY(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_FIND:
|
|
CC_OnItem_Find(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_PREFERENCES:
|
|
CC_OnItem_Preferences(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_BACK:
|
|
CC_OnItem_Back(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_FORWARD:
|
|
CC_OnItem_Forward(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_GLOBALHISTORY:
|
|
CC_OnItem_GlobalHistory(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_HOTLIST:
|
|
CC_OnItem_Hotlist(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_TILEWINDOWS:
|
|
CC_OnItem_TileWindows(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_CASCADEWINDOWS:
|
|
CC_OnItem_CascadeWindows(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_HELPPAGE:
|
|
CC_OnItemHelp(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_ABOUTBOX:
|
|
CC_OnAboutBox(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_HOME:
|
|
CC_OnItem_Home(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_VIEWERS:
|
|
CC_OnItem_Viewers(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_STOP:
|
|
CC_OnItem_Stop(hWnd);
|
|
return 0;
|
|
case RES_MENU_ITEM_SWITCHWINDOW:
|
|
CC_OnItem_SwitchWindow(hWnd);
|
|
return 0;
|
|
|
|
#ifdef _GIBRALTAR
|
|
case RES_MENU_ITEM_CACHE:
|
|
CC_OnItem_Cache(hWnd);
|
|
return 0;
|
|
|
|
case RES_MENU_ITEM_SEARCH_INTERNET:
|
|
CC_OnItem_SearchInternet(hWnd);
|
|
return 0;
|
|
|
|
case RES_MENU_ITEM_TOOLBAR:
|
|
CC_OnItem_Toolbar(hWnd);
|
|
return 0;
|
|
|
|
case RES_MENU_ITEM_LOCATION:
|
|
CC_OnItem_Location(hWnd);
|
|
return 0;
|
|
|
|
case RES_MENU_ITEM_STATUSBAR:
|
|
CC_OnItem_StatusBar(hWnd);
|
|
return 0;
|
|
|
|
case RES_MENU_ITEM_SMALLEST:
|
|
CC_OnItem_FontSmallest(hWnd);
|
|
return 0;
|
|
|
|
case RES_MENU_ITEM_SMALL:
|
|
CC_OnItem_FontSmall(hWnd);
|
|
return 0;
|
|
|
|
case RES_MENU_ITEM_MEDIUM:
|
|
CC_OnItem_FontMedium(hWnd);
|
|
return 0;
|
|
|
|
case RES_MENU_ITEM_LARGE:
|
|
CC_OnItem_FontLarge(hWnd);
|
|
return 0;
|
|
|
|
case RES_MENU_ITEM_LARGEST:
|
|
CC_OnItem_FontLargest(hWnd);
|
|
return 0;
|
|
|
|
case RES_MENU_ITEM_PLAIN:
|
|
CC_OnItem_FontPlain(hWnd);
|
|
return 0;
|
|
|
|
case RES_MENU_ITEM_FANCY:
|
|
CC_OnItem_FontFancy(hWnd);
|
|
return 0;
|
|
|
|
case RES_MENU_ITEM_MIXED:
|
|
CC_OnItem_FontMixed(hWnd);
|
|
return 0;
|
|
|
|
case RES_MENU_ITEM_SHOWIMAGES:
|
|
CC_OnItem_LoadImagesAuto(hWnd);
|
|
return 0;
|
|
|
|
case RES_MENU_ITEM_FONTPLUS:
|
|
CC_OnItem_FontPlus(hWnd);
|
|
return 0;
|
|
|
|
case RES_MENU_ITEM_FONTMINUS:
|
|
CC_OnItem_FontMinus(hWnd);
|
|
return 0;
|
|
|
|
case RES_MENU_ITEM_GATEWAY:
|
|
CC_OnItem_Gateway(hWnd);
|
|
return 0;
|
|
|
|
#ifdef _USE_MAPI
|
|
|
|
case RES_MENU_ITEM_MAIL:
|
|
CC_OnItem_Mail(hWnd);
|
|
return 0;
|
|
|
|
#endif // _USE_MAPI
|
|
|
|
#endif // _GIBRALTAR
|
|
|
|
|
|
#ifdef FEATURE_HTML_HIGHLIGHT
|
|
case RES_MENU_ITEM_FINDFIRSTHIGHLIGHT:
|
|
case RES_MENU_ITEM_FINDNEXTHIGHLIGHT:
|
|
case RES_MENU_ITEM_FINDPREVIOUSHIGHLIGHT:
|
|
#endif
|
|
case RES_MENU_ITEM_HTMLSOURCE:
|
|
case RES_MENU_ITEM_SAVEAS:
|
|
case RES_MENU_ITEM_ADDCURRENTTOHOTLIST:
|
|
case RES_MENU_ITEM_RELOAD:
|
|
case RES_MENU_ITEM_LOADALLIMAGES:
|
|
case RES_MENU_ITEM_FINDAGAIN:
|
|
case RES_MENU_ITEM_SELECTALL:
|
|
case RES_MENU_ITEM_POPUP_LOAD:
|
|
case RES_MENU_ITEM_POPUP_SHOW:
|
|
case RES_MENU_ITEM_POPUP_SAVEAS:
|
|
case RES_MENU_ITEM_POPUP_COPY:
|
|
case RES_MENU_ITEM_POPUP_WALLPAPER:
|
|
case RES_MENU_ITEM_POPUP_OPEN:
|
|
case RES_MENU_ITEM_POPUP_OPENINNEWWINDOW:
|
|
case RES_MENU_ITEM_POPUP_DOWNLOAD:
|
|
case RES_MENU_ITEM_POPUP_ADDTOHOTLIST:
|
|
case RES_MENU_ITEM_POPUP_SETHOMEPAGE:
|
|
case RES_MENU_ITEM_POPUP_DUPLICATE:
|
|
case RES_MENU_ITEM_POPUP_VIEW_BACKGROUND:
|
|
case RES_MENU_ITEM_POPUP_BACKGROUND_WALLPAPER:
|
|
/*
|
|
Forward these to the currently active window
|
|
*/
|
|
CC_Forward(hWnd, wId);
|
|
return 0;
|
|
|
|
#ifdef FEATURE_CYBERWALLET
|
|
case RES_MENU_ITEM_CYBERWALLET:
|
|
Wallet_DoAboutBox(hWnd);
|
|
return 0;
|
|
#endif
|
|
|
|
default:
|
|
|
|
if ((wId >= RES_MENU_ITEM_URL__FIRST__) &&
|
|
(wId <= RES_MENU_ITEM_URL__LAST__))
|
|
{
|
|
tw = GetPrivateData(hWnd);
|
|
wNdx = wId - RES_MENU_ITEM_URL__FIRST__;
|
|
PREF_HandleCustomURLMenuItem(tw,wNdx);
|
|
return (0);
|
|
}
|
|
|
|
if ((wId >= RES_MENU_CHILD__FIRST__) &&
|
|
(wId <= RES_MENU_CHILD__LAST__))
|
|
{
|
|
TW_ActivateWindowFromList(wId, -1, NULL);
|
|
return 0;
|
|
}
|
|
|
|
if (wId == RES_MENU_CHILD_MOREWINDOWS)
|
|
{
|
|
DlgSelectWindow_RunDialog(hWnd);
|
|
return 0;
|
|
}
|
|
|
|
if ((wId >= RES_MENU_ITEM_SPM__FIRST__) &&
|
|
(wId <= RES_MENU_ITEM_SPM__LAST__))
|
|
{
|
|
tw = GetPrivateData(hWnd);
|
|
if (Hidden_EnableAllChildWindows(FALSE,TRUE))
|
|
{
|
|
OpaqueOSData osd;
|
|
HTSPMStatusCode hsc;
|
|
unsigned char * szMoreInfo;
|
|
|
|
szMoreInfo = NULL;
|
|
osd.tw = tw;
|
|
osd.request = NULL;
|
|
|
|
hsc = HTSPM_OS_DoMenuCommand(&osd,wId,&szMoreInfo);
|
|
Hidden_EnableAllChildWindows(TRUE,TRUE);
|
|
|
|
if (hsc==HTSPM_STATUS_MOREINFO) /* user asked for more information */
|
|
{ /* send them to a spm-defined url. */
|
|
if (szMoreInfo && *szMoreInfo)
|
|
CreateOrLoad(tw,szMoreInfo,NULL);
|
|
if (szMoreInfo)
|
|
GTR_FREE(szMoreInfo);
|
|
}
|
|
}
|
|
return (0);
|
|
}
|
|
|
|
/* We couldn't handle the command - pass to Windows */
|
|
|
|
FORWARD_WM_COMMAND(hWnd, wId, hWndCtl, wNotifyCode, Frame_DefProc);
|
|
return 0;
|
|
}
|
|
}
|