225 lines
4.7 KiB
C
225 lines
4.7 KiB
C
|
/*++
|
||
|
|
||
|
Copyright (c) 1992 Microsoft Corporation
|
||
|
|
||
|
Module Name:
|
||
|
|
||
|
PANEOPT.C
|
||
|
|
||
|
Abstract:
|
||
|
|
||
|
This file contains the code for dealing with the Pane Manager Options
|
||
|
|
||
|
Author:
|
||
|
|
||
|
Bill Heaton (v-willhe)
|
||
|
Griffith Wm. Kadnier (v-griffk) 10-Mar-1993
|
||
|
|
||
|
Environment:
|
||
|
|
||
|
Win32 - User
|
||
|
|
||
|
--*/
|
||
|
|
||
|
|
||
|
#include "precomp.h"
|
||
|
#pragma hdrstop
|
||
|
|
||
|
#include "include\cntxthlp.h"
|
||
|
|
||
|
#define MAXFMT 512
|
||
|
|
||
|
INT_PTR DlgPaneOptInit(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
|
||
|
INT_PTR DlgPaneOptCommand(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);
|
||
|
|
||
|
extern void CheckHorizontalScroll (PPANE p);
|
||
|
|
||
|
|
||
|
WORD DialogType;
|
||
|
HWND hWnd;
|
||
|
PPANE pPane;
|
||
|
PANEINFO Info;
|
||
|
char format[MAXFMT];
|
||
|
char tformat[MAXFMT];
|
||
|
|
||
|
/*** DlgQuickW
|
||
|
|
||
|
** Synopsis:
|
||
|
** bool = DlgQuickW(hwnd, message, wParam, lParam)
|
||
|
|
||
|
** Entry:
|
||
|
|
||
|
** Returns:
|
||
|
|
||
|
** Description:
|
||
|
** Processes messages for "xxx Options" dialog box
|
||
|
** (Edit Find Option)
|
||
|
|
||
|
** MESSAGES:
|
||
|
|
||
|
** WM_INITDIALOG - Initialize dialog box
|
||
|
** WM_COMMAND- Input received
|
||
|
|
||
|
*/
|
||
|
|
||
|
INT_PTR
|
||
|
CALLBACK
|
||
|
DlgPaneOptions(
|
||
|
HWND hDlg,
|
||
|
UINT message,
|
||
|
WPARAM wParam,
|
||
|
LPARAM lParam
|
||
|
)
|
||
|
{
|
||
|
static DWORD HelpArray[]=
|
||
|
{
|
||
|
ID_PANEMGR_FORMAT, IDH_FMT,
|
||
|
ID_PANEMGR_EXPAND_1ST, IDH_EXPAND,
|
||
|
ID_PANEMGR_EXPAND_NONE, IDH_NOTEXPAND,
|
||
|
0, 0
|
||
|
};
|
||
|
|
||
|
|
||
|
switch (message) {
|
||
|
case WM_INITDIALOG:
|
||
|
return ( DlgPaneOptInit( hDlg, message, wParam, lParam) );
|
||
|
|
||
|
case WM_COMMAND:
|
||
|
return ( DlgPaneOptCommand( hDlg, message, wParam, lParam) );
|
||
|
|
||
|
case WM_HELP:
|
||
|
WinHelp((HWND)((LPHELPINFO) lParam)->hItemHandle, "windbg.hlp", HELP_WM_HELP,
|
||
|
(DWORD_PTR)(LPVOID) HelpArray );
|
||
|
return TRUE;
|
||
|
|
||
|
case WM_CONTEXTMENU:
|
||
|
WinHelp ((HWND) wParam, "windbg.hlp", HELP_CONTEXTMENU,
|
||
|
(DWORD_PTR)(LPVOID) HelpArray );
|
||
|
return TRUE;
|
||
|
|
||
|
}
|
||
|
return (FALSE);
|
||
|
|
||
|
} /* DlgPaneOptions() */
|
||
|
|
||
|
|
||
|
|
||
|
INT_PTR
|
||
|
DlgPaneOptInit(
|
||
|
HWND hDlg,
|
||
|
UINT message,
|
||
|
WPARAM wParam,
|
||
|
LPARAM lParam
|
||
|
)
|
||
|
{
|
||
|
|
||
|
|
||
|
switch ( DialogType ) {
|
||
|
case WATCH_WIN:
|
||
|
SendMessage(hDlg, WM_SETTEXT, 0, (LPARAM)"Watch Window Options");
|
||
|
hWnd = GetWatchHWND();
|
||
|
break;
|
||
|
|
||
|
case LOCALS_WIN:
|
||
|
SendMessage(hDlg, WM_SETTEXT, 0, (LPARAM)"Locals Window Options");
|
||
|
hWnd = GetLocalHWND();
|
||
|
break;
|
||
|
|
||
|
case CPU_WIN:
|
||
|
SendMessage(hDlg, WM_SETTEXT, 0, (LPARAM)"CPU Window Options");
|
||
|
hWnd = GetCpuHWND();
|
||
|
break;
|
||
|
|
||
|
case FLOAT_WIN:
|
||
|
SendMessage(hDlg, WM_SETTEXT, 0, (LPARAM)"Float Window Options");
|
||
|
hWnd = GetFloatHWND();
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
DAssert(FALSE);
|
||
|
|
||
|
}
|
||
|
|
||
|
// Get the Options for the Window
|
||
|
pPane = (PPANE)GetWindowLongPtr(hWnd, GWW_EDIT );
|
||
|
DAssert(pPane);
|
||
|
Info.CtrlId = pPane->nCtrlId;
|
||
|
Info.ItemId = pPane->CurIdx;
|
||
|
(PSTR)(*pPane->fnEditProc)(hWnd,WU_INFO,(WPARAM)&Info,(LPARAM)pPane);
|
||
|
|
||
|
// Set the Format string if it exists
|
||
|
if ( Info.pFormat) {
|
||
|
SendDlgItemMessage(hDlg, ID_PANEMGR_FORMAT, WM_SETTEXT, 0, (LPARAM)Info.pFormat);
|
||
|
}
|
||
|
|
||
|
// Set the Expand button if true
|
||
|
if ( pPane->bFlags.Expand1st ) {
|
||
|
SendDlgItemMessage(hDlg, ID_PANEMGR_EXPAND_1ST, BM_SETCHECK, 1, 0);
|
||
|
} else {
|
||
|
SendDlgItemMessage(hDlg, ID_PANEMGR_EXPAND_NONE, BM_SETCHECK, 1, 0);
|
||
|
}
|
||
|
|
||
|
return(TRUE);
|
||
|
}
|
||
|
|
||
|
|
||
|
INT_PTR
|
||
|
DlgPaneOptCommand(
|
||
|
HWND hDlg,
|
||
|
UINT message,
|
||
|
WPARAM wParam,
|
||
|
LPARAM lParam
|
||
|
)
|
||
|
|
||
|
{
|
||
|
PTRVIT pVit = NULL;
|
||
|
PCHAR pFmt = &format[0];
|
||
|
|
||
|
switch (wParam) {
|
||
|
|
||
|
case ID_PANEMGR_FORMAT:
|
||
|
return 0;
|
||
|
|
||
|
case ID_PANEMGR_EXPAND_1ST:
|
||
|
pPane->bFlags.Expand1st = TRUE;
|
||
|
return 0;
|
||
|
|
||
|
case ID_PANEMGR_EXPAND_NONE:
|
||
|
pPane->bFlags.Expand1st = FALSE;
|
||
|
return 0;
|
||
|
|
||
|
case IDOK:
|
||
|
SendDlgItemMessage(hDlg, ID_PANEMGR_FORMAT, WM_GETTEXT, MAXFMT, (LPARAM)&format[0]);
|
||
|
while ( isspace(*pFmt) ) {
|
||
|
pFmt++;
|
||
|
}
|
||
|
|
||
|
if ( strlen (pFmt) == 0) {
|
||
|
Info.pFormat = NULL;
|
||
|
} else {
|
||
|
// Ensure a leading comma
|
||
|
if ( *pFmt != ',') {
|
||
|
|
||
|
strcpy (tformat,",");
|
||
|
strcat (tformat,pFmt);
|
||
|
pFmt = &tformat[0];
|
||
|
}
|
||
|
|
||
|
Info.pFormat = pFmt;
|
||
|
}
|
||
|
|
||
|
(PSTR)(*pPane->fnEditProc)(hWnd,WU_OPTIONS,(WPARAM)&Info,(LPARAM)pPane);
|
||
|
CheckHorizontalScroll (pPane);
|
||
|
|
||
|
// No break intended
|
||
|
case IDCANCEL:
|
||
|
pPane = NULL;
|
||
|
hWnd = 0;
|
||
|
memset( &Info, 0, sizeof(PANEINFO));
|
||
|
EndDialog(hDlg, FALSE);
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
return 1;
|
||
|
}
|