296 lines
5.8 KiB
C
296 lines
5.8 KiB
C
|
/*++
|
|||
|
|
|||
|
Copyright (c) 1996 Microsoft Corporation
|
|||
|
|
|||
|
Module Name:
|
|||
|
|
|||
|
faxopts.c
|
|||
|
|
|||
|
Abstract:
|
|||
|
|
|||
|
Functions for handling events in the "Fax Options" tab of
|
|||
|
the fax client configuration property sheet
|
|||
|
|
|||
|
Environment:
|
|||
|
|
|||
|
Fax configuration applet
|
|||
|
|
|||
|
Revision History:
|
|||
|
|
|||
|
03/13/96 -davidx-
|
|||
|
Created it.
|
|||
|
|
|||
|
mm/dd/yy -author-
|
|||
|
description
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
#include "faxcpl.h"
|
|||
|
|
|||
|
|
|||
|
|
|||
|
VOID
|
|||
|
DoActivateFaxOptions(
|
|||
|
HWND hDlg
|
|||
|
)
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Called when the "Fax Options" page is activated
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
hDlg - Window handle to the "Fax Options" page
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
NONE
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
{
|
|||
|
//
|
|||
|
// Controls on the "Fax Options" page which may be enabled or disabled
|
|||
|
//
|
|||
|
|
|||
|
static INT faxOptionsCtrls[] = {
|
|||
|
|
|||
|
IDC_BILLING_CODE,
|
|||
|
IDC_EMAIL,
|
|||
|
0,
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
SetChangedFlag(hDlg, CLIENT_OPTIONS_PAGE, FALSE);
|
|||
|
|
|||
|
//
|
|||
|
// Disable dialog controls if there is no printer is selected
|
|||
|
//
|
|||
|
|
|||
|
Verbose(("Updating 'Fax Options' page ...\n"));
|
|||
|
|
|||
|
//
|
|||
|
// Enable dialog controls
|
|||
|
//
|
|||
|
|
|||
|
EnableControls(hDlg, faxOptionsCtrls, TRUE);
|
|||
|
|
|||
|
//
|
|||
|
// Billing code
|
|||
|
//
|
|||
|
|
|||
|
MySetDlgItemText(hDlg, IDC_BILLING_CODE, pdmPrivate->billingCode);
|
|||
|
|
|||
|
//
|
|||
|
// Email Address
|
|||
|
//
|
|||
|
|
|||
|
MySetDlgItemText(hDlg, IDC_EMAIL, pdmPrivate->emailAddress);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
VOID
|
|||
|
DoSaveFaxOptions(
|
|||
|
HWND hDlg
|
|||
|
)
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Save the information on the "Fax Options" property sheet page
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
hDlg - Handle to the Fax Options property sheet page
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
NONE
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
{
|
|||
|
PDEVMODE pdmPublic;
|
|||
|
PDMPRIVATE pdmPrivate;
|
|||
|
HWND hwndList;
|
|||
|
INT listIdx;
|
|||
|
LPTSTR pPrinterSelName;
|
|||
|
|
|||
|
//
|
|||
|
// Check if anything on this page was changed
|
|||
|
//
|
|||
|
|
|||
|
Verbose(("Saving 'Fax Options' page ...\n"));
|
|||
|
|
|||
|
if (! GetChangedFlag(CLIENT_OPTIONS_PAGE) ||
|
|||
|
! IsPrinterSelInSync(CLIENT_OPTIONS_PAGE) ||
|
|||
|
! (pPrinterSelName = GetPrinterSelName()))
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
//
|
|||
|
// Time to send
|
|||
|
//
|
|||
|
|
|||
|
pdmPublic = &gConfigData->devmode.dmPublic;
|
|||
|
pdmPrivate = &gConfigData->devmode.dmPrivate;
|
|||
|
|
|||
|
pdmPrivate->whenToSend =
|
|||
|
IsDlgButtonChecked(hDlg, IDC_SEND_AT_CHEAP) ? SENDFAX_AT_CHEAP :
|
|||
|
IsDlgButtonChecked(hDlg, IDC_SEND_AT_TIME) ? SENDFAX_AT_TIME : SENDFAX_ASAP;
|
|||
|
|
|||
|
//
|
|||
|
// Retrieve the current settings of send-at time control
|
|||
|
//
|
|||
|
|
|||
|
GetTimeControlValue(hDlg, IDC_TC_AT_TIME, &pdmPrivate->sendAtTime);
|
|||
|
|
|||
|
//
|
|||
|
// Retrieve the current settings of print setup controls:
|
|||
|
// paper size
|
|||
|
// image quality
|
|||
|
// orientation
|
|||
|
// billing code
|
|||
|
//
|
|||
|
|
|||
|
if ((hwndList = GetDlgItem(hDlg, IDC_PAPER_SIZE)) &&
|
|||
|
(listIdx = SendMessage(hwndList, CB_GETCURSEL, 0, 0)) != CB_ERR)
|
|||
|
{
|
|||
|
listIdx = SendMessage(hwndList, CB_GETITEMDATA, listIdx, 0);
|
|||
|
|
|||
|
if (listIdx >= 0 && listIdx < gConfigData->cForms) {
|
|||
|
|
|||
|
pdmPublic->dmFields &= ~(DM_PAPERLENGTH|DM_PAPERWIDTH);
|
|||
|
pdmPublic->dmFields |= DM_FORMNAME;
|
|||
|
pdmPublic->dmPaperSize = gConfigData->pFormInfo[listIdx].paperSizeIndex;
|
|||
|
|
|||
|
_tcscpy(pdmPublic->dmFormName, gConfigData->pFormInfo[listIdx].pFormName);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
pdmPublic->dmPrintQuality = FAXRES_HORIZONTAL;
|
|||
|
|
|||
|
pdmPublic->dmYResolution =
|
|||
|
(SendDlgItemMessage(hDlg, IDC_IMAGE_QUALITY, CB_GETCURSEL, 0, 0) == 1) ?
|
|||
|
FAXRES_VERTDRAFT :
|
|||
|
FAXRES_VERTICAL;
|
|||
|
|
|||
|
pdmPublic->dmOrientation =
|
|||
|
IsDlgButtonChecked(hDlg, IDC_LANDSCAPE) ? DMORIENT_LANDSCAPE : DMORIENT_PORTRAIT;
|
|||
|
|
|||
|
GetDlgItemText(hDlg, IDC_BILLING_CODE, pdmPrivate->billingCode, MAX_BILLING_CODE);
|
|||
|
GetDlgItemText(hDlg, IDC_EMAIL, pdmPrivate->emailAddress, MAX_EMAIL_ADDRESS);
|
|||
|
|
|||
|
//
|
|||
|
// Save per-user devmode information
|
|||
|
//
|
|||
|
|
|||
|
SavePerUserDevmode(pPrinterSelName, (PDEVMODE) &gConfigData->devmode);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
BOOL
|
|||
|
FaxOptionsProc(
|
|||
|
HWND hDlg,
|
|||
|
UINT message,
|
|||
|
UINT wParam,
|
|||
|
LONG lParam
|
|||
|
)
|
|||
|
|
|||
|
/*++
|
|||
|
|
|||
|
Routine Description:
|
|||
|
|
|||
|
Procedure for handling the "Fax Options" tab
|
|||
|
|
|||
|
Arguments:
|
|||
|
|
|||
|
hDlg - Identifies the property sheet page
|
|||
|
message - Specifies the message
|
|||
|
wParam - Specifies additional message-specific information
|
|||
|
lParam - Specifies additional message-specific information
|
|||
|
|
|||
|
Return Value:
|
|||
|
|
|||
|
Depends on the value of message parameter
|
|||
|
|
|||
|
--*/
|
|||
|
|
|||
|
{
|
|||
|
INT cmdId;
|
|||
|
BOOL result;
|
|||
|
|
|||
|
switch (message) {
|
|||
|
|
|||
|
case WM_INITDIALOG:
|
|||
|
|
|||
|
SendDlgItemMessage(hDlg, IDC_BILLING_CODE, EM_SETLIMITTEXT, MAX_BILLING_CODE-1, 0);
|
|||
|
SendDlgItemMessage(hDlg, IDC_EMAIL, EM_SETLIMITTEXT, MAX_EMAIL_ADDRESS-1, 0);
|
|||
|
|
|||
|
if (gConfigData->configType & FAXCONFIG_WORKSTATION) {
|
|||
|
HideWindow( GetDlgItem( hDlg, IDC_EMAIL ) );
|
|||
|
HideWindow( GetDlgItem( hDlg, IDCSTATIC_EMAIL ) );
|
|||
|
}
|
|||
|
|
|||
|
return TRUE;
|
|||
|
|
|||
|
case WM_COMMAND:
|
|||
|
|
|||
|
switch (cmdId = GET_WM_COMMAND_ID(wParam, lParam)) {
|
|||
|
|
|||
|
case IDC_BILLING_CODE:
|
|||
|
|
|||
|
if (GET_WM_COMMAND_CMD(wParam, lParam) != EN_CHANGE || insideSetDlgItemText)
|
|||
|
return TRUE;
|
|||
|
break;
|
|||
|
|
|||
|
case IDC_EMAIL:
|
|||
|
|
|||
|
if (GET_WM_COMMAND_CMD(wParam, lParam) != EN_CHANGE || insideSetDlgItemText)
|
|||
|
return TRUE;
|
|||
|
break;
|
|||
|
|
|||
|
default:
|
|||
|
return FALSE;
|
|||
|
}
|
|||
|
|
|||
|
SetChangedFlag(hDlg, CLIENT_OPTIONS_PAGE, TRUE);
|
|||
|
return result;
|
|||
|
|
|||
|
case WM_NOTIFY:
|
|||
|
|
|||
|
switch (((NMHDR *) lParam)->code) {
|
|||
|
|
|||
|
case PSN_SETACTIVE:
|
|||
|
|
|||
|
DoActivateFaxOptions(hDlg);
|
|||
|
break;
|
|||
|
|
|||
|
case PSN_APPLY:
|
|||
|
|
|||
|
//
|
|||
|
// User pressed OK or Apply - validate inputs and save changes
|
|||
|
//
|
|||
|
|
|||
|
DoSaveFaxOptions(hDlg);
|
|||
|
SetChangedFlag(hDlg, CLIENT_OPTIONS_PAGE, FALSE);
|
|||
|
return PSNRET_NOERROR;
|
|||
|
}
|
|||
|
|
|||
|
break;
|
|||
|
|
|||
|
case WM_HELP:
|
|||
|
case WM_CONTEXTMENU:
|
|||
|
|
|||
|
return HandleHelpPopup(hDlg, message, wParam, lParam, CLIENT_OPTIONS_PAGE);
|
|||
|
}
|
|||
|
|
|||
|
return FALSE;
|
|||
|
}
|