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.
248 lines
8.4 KiB
248 lines
8.4 KiB
//*-----------------------------------------------------------------------
|
|
//| MODULE: WCTMAIN.C
|
|
//| PROJECT: Windows Comparison Tool
|
|
//|
|
|
//| PURPOSE: This module contains the code to handle all commands and
|
|
//| main window action.
|
|
//|
|
|
//| REVISION HISTORY:
|
|
//| 04-16-92 w-steves Testdlgs (2.0) code complete
|
|
//| 10-16-90 randyki Clean up work, create history
|
|
//| 07-30-90 garysp Created file
|
|
//*-----------------------------------------------------------------------
|
|
#include "uihdr.h"
|
|
#ifndef WIN32
|
|
#pragma hdrstop ("uipch.pch")
|
|
#endif
|
|
|
|
//*-----------------------------------------------------------------------
|
|
//| WctCommandHandler
|
|
//|
|
|
//| PURPOSE: Handles all the commands from the main window.
|
|
//|
|
|
//| ENTRY: wParam - word parameter (part of message info)
|
|
//| lParam - longword parameter (part of message info)
|
|
//|
|
|
//| EXIT: None.
|
|
//*-----------------------------------------------------------------------
|
|
VOID WctCommandHandler(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
INT wCurItem = 0;
|
|
INT fDelete;
|
|
CHAR szTmpDsc[cchMaxDsc + 1];
|
|
CHAR sztmpFName[cchFileNameMax];
|
|
HCURSOR hOldCursor;
|
|
|
|
switch ( wParam ) {
|
|
default:
|
|
break;
|
|
|
|
case IDM_NEW:
|
|
if (WctFileNew() == TRUE)
|
|
{
|
|
WctInitMenu(TRUE);
|
|
WctFillList();
|
|
SetStaticItemText();
|
|
}
|
|
break;
|
|
|
|
case IDM_OLD:
|
|
if (WctFileOpen() == TRUE)
|
|
{
|
|
WctInitMenu(TRUE);
|
|
WctFillList();
|
|
SetStaticItemText();
|
|
}
|
|
break;
|
|
|
|
case IDM_IMPORT:
|
|
if (WctFileImport((LPSTR)&sztmpFName) == TRUE)
|
|
{
|
|
hOldCursor = SetCursor (hHourGlass);
|
|
if (hWnd) fTDLImport((LPSTR)&sztmpFName,szFullFName,
|
|
(IMPORTERR) lpfnImportCallBack);
|
|
WctFillList();
|
|
SetStaticItemText();
|
|
SetCursor (hOldCursor);
|
|
}
|
|
break;
|
|
|
|
case IDM_EXPORT:
|
|
if (WctFileExport((LPSTR)&sztmpFName) == TRUE)
|
|
{
|
|
hOldCursor = SetCursor (hHourGlass);
|
|
if (hWnd) fTDLExport(szFullFName, (LPSTR)&sztmpFName);
|
|
SetCursor (hOldCursor);
|
|
}
|
|
break;
|
|
|
|
case IDM_NEWDLG:
|
|
WctDialogNew();
|
|
break;
|
|
|
|
case IDM_EDITDLG:
|
|
WctDialogEdit();
|
|
break;
|
|
|
|
case IDM_DELDLG:
|
|
// Can handle multiple selected list box. It will start from
|
|
// the bottom of the list and delete each one accordingly.
|
|
//-----------------------------------------------------------
|
|
for (wCurItem = cDlg; wCurItem > 0; wCurItem--)
|
|
{
|
|
if(SendMessage(hWndList, LB_GETSEL, wCurItem, 0L))
|
|
{
|
|
SendMessage(hWndList, LB_GETTEXT, wCurItem,
|
|
(LONG)(LPSTR)szTmpDsc);
|
|
|
|
fDelete = WctError(hWndMain, MB_YESNO | MB_DEFBUTTON2 |
|
|
MB_ICONQUESTION, (INT) IDS_DELETEDLG,
|
|
(LPSTR)szTmpDsc);
|
|
|
|
if (fDelete == IDYES)
|
|
{
|
|
hOldCursor = SetCursor (hHourGlass);
|
|
if (fDelDialog(szFullFName,wCurItem)==WCT_NOERR)
|
|
SendMessage(hWndList, LB_DELETESTRING,
|
|
wCurItem, 0);
|
|
cDlg--;
|
|
WinAssert(cDlg >= 0);
|
|
SetStaticItemText();
|
|
SetCursor (hOldCursor);
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
|
|
case IDM_COMPDLG:
|
|
WctDialogCompare();
|
|
break;
|
|
|
|
case IDM_PREVDLG:
|
|
ghViewWnd = WctViewControls(hWnd);
|
|
break;
|
|
|
|
case IDM_COMPPREF:
|
|
WctCompPref();
|
|
break;
|
|
|
|
#ifdef DOHELP
|
|
case IDM_HELP_INDEX:
|
|
fHelpFileUsed=TRUE;
|
|
WinHelp(hWnd, (LPSTR)szHelpFileName, HELP_INDEX, 0L) ;
|
|
break ;
|
|
|
|
case IDM_HELP_KEYBOARD:
|
|
fHelpFileUsed=TRUE;
|
|
WinHelp(hWnd, (LPSTR)szHelpFileName, HELP_CONTEXT, 100L) ;
|
|
break ;
|
|
|
|
case IDM_HELP_COMMANDS:
|
|
fHelpFileUsed=TRUE;
|
|
WinHelp(hWnd, (LPSTR)szHelpFileName, HELP_CONTEXT, 200L) ;
|
|
break ;
|
|
|
|
case IDM_HELP_PROCEDURES:
|
|
fHelpFileUsed=TRUE;
|
|
WinHelp(hWnd, (LPSTR)szHelpFileName, HELP_CONTEXT, 300L) ;
|
|
break ;
|
|
|
|
case IDM_HELP_HELP:
|
|
fHelpHelpUsed=TRUE;
|
|
WinHelp(hWnd, (LPSTR)szHelpHelpName, HELP_INDEX, 0L) ;
|
|
break ;
|
|
#endif
|
|
|
|
case IDM_ABOUT:
|
|
#ifdef WIN32
|
|
|
|
WctAbout ();
|
|
#else
|
|
AboutTestTool (hWndMain, MST_TESTDLGS, 0);
|
|
#endif
|
|
break;
|
|
|
|
case IDM_EXIT:
|
|
PostMessage(hWndMain, WM_SYSCOMMAND, SC_CLOSE, 0L);
|
|
break;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
//*-----------------------------------------------------------------------
|
|
//| WctListBoxEvent
|
|
//|
|
|
//| PURPOSE: Process events for the main window (listbox)
|
|
//|
|
|
//| ENTRY: wParam, lParam - parameters given as message parms
|
|
//|
|
|
//| EXIT: None.
|
|
//*-----------------------------------------------------------------------
|
|
VOID WctListBoxEvent(WPARAM wParam, LPARAM lParam)
|
|
{
|
|
INT wCurItem = 0, wCtrlKey = 0, wIdMsg = 0;
|
|
CHAR szKeyboardState[266];
|
|
|
|
// Should this be an assert LOWORD(lParam)==hWndList
|
|
//----------------------------------------------------------------
|
|
if ( GET_WM_COMMAND_HWND (wParam, lParam) != hWndList )
|
|
return;
|
|
|
|
switch ( GET_WM_COMMAND_ID (wParam, lParam) ){
|
|
default:
|
|
break;
|
|
case LBN_DBLCLK:
|
|
// Find the Selected Item
|
|
//-----------------------------------------------------
|
|
for (wCurItem = 0; wCurItem <= cDlg; wCurItem++)
|
|
if (SendMessage(hWndList, LB_GETSEL, wCurItem, 0L))
|
|
break;
|
|
|
|
// NO ITEM SELECTED 8/21/90 BUG FIX - SOURCE TERESAME.
|
|
// Changed vars (wCurItem, wCtrlKey, wIdMsg to int
|
|
// Just break if no item is selected.
|
|
if (wCurItem == LB_ERR)
|
|
break;
|
|
|
|
GetKeyboardState( (BYTE FAR *)szKeyboardState );
|
|
wCtrlKey = (128 & szKeyboardState[VK_CONTROL]);
|
|
if (wCurItem == 0)
|
|
wIdMsg = IDM_NEWDLG;
|
|
else
|
|
wIdMsg = ((wCtrlKey == 0)? IDM_EDITDLG : IDM_COMPDLG);
|
|
|
|
SendMessage(hWndMain, WM_COMMAND, wIdMsg, 0L);
|
|
break;
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
//*------------------------------------------------------------------------
|
|
//| WctError
|
|
//|
|
|
//| PURPOSE: Flashes a Message Box to the user. The format string is
|
|
//| taken from the STRINGTABLE.
|
|
//|
|
|
//| ENTRY: hwnd - handle of the window that is invoking the alert
|
|
//| bflags - the flags to be used by the MessageBox
|
|
//| id - address of additional string information to be
|
|
//| sent to message box.
|
|
//| ... - Other parameters sent to wsprintf
|
|
//|
|
|
//| EXIT: Returns value returned from message box.
|
|
//*------------------------------------------------------------------------
|
|
INT FAR WctError(HWND hwnd, WORD bFlags, INT id, ...)
|
|
{
|
|
CHAR sz[160];
|
|
CHAR szFmt[128];
|
|
va_list ap;
|
|
|
|
LoadString(hgInstWct, id, szFmt, sizeof(szFmt));
|
|
va_start( ap, id );
|
|
wvsprintf(sz, szFmt, ap);
|
|
va_end( ap );
|
|
LoadString(hgInstWct, IDS_APPNAME, szFmt, sizeof(szFmt));
|
|
return (MessageBox(hwnd, sz, szFmt, bFlags));
|
|
}
|