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.
730 lines
19 KiB
730 lines
19 KiB
/***************************************************************************
|
|
*
|
|
* File Name: trays.c
|
|
*
|
|
* Copyright (C) 1993, 1994 Hewlett-Packard Company.
|
|
* All rights reserved.
|
|
*
|
|
* 11311 Chinden Blvd.
|
|
* Boise, Idaho 83714
|
|
*
|
|
* This is a part of the HP JetAdmin Printer Utility
|
|
*
|
|
* This source code is only intended as a supplement for support and
|
|
* localization of HP JetAdmin by 3rd party Operating System vendors.
|
|
* Modification of source code cannot be made without the express written
|
|
* consent of Hewlett-Packard.
|
|
*
|
|
*
|
|
* Description:
|
|
*
|
|
* Author: Name
|
|
*
|
|
*
|
|
* Modification history:
|
|
*
|
|
* date initials change description
|
|
*
|
|
* mm-dd-yy MJB
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
*
|
|
***************************************************************************/
|
|
|
|
#include <pch_c.h>
|
|
#include <macros.h>
|
|
#include <hptabs.h>
|
|
#include <nolocal.h>
|
|
#include <string.h>
|
|
#include "..\help\hpprelk.hh"
|
|
#include "resource.h"
|
|
#include "main.h"
|
|
#include "trays.h"
|
|
#include "traylevl.h"
|
|
|
|
#define ITEM_HEIGHT 18
|
|
|
|
static long keywordIDListTrays[] = {
|
|
IDC_TIP_GROUP, IDH_RC_tips,
|
|
IDC_TIP_TEXT, IDH_RC_tips,
|
|
IDC_TIP_ICON, IDH_RC_tips,
|
|
IDC_ASSIGNMENT_GROUP, IDH_RC_trays_assignment,
|
|
IDC_TRAY1_NAME, IDH_RC_trays_assignment,
|
|
IDC_TRAY2_NAME, IDH_RC_trays_assignment,
|
|
IDC_TRAY3_NAME, IDH_RC_trays_assignment,
|
|
IDC_ENVL_NAME, IDH_RC_trays_assignment,
|
|
IDC_SIZE_COLUMN, IDH_RC_trays_size,
|
|
IDC_MEDIA_SIZE1, IDH_RC_trays_tray1_size,
|
|
IDC_MEDIA_SIZE2, IDH_RC_trays_tray2_size,
|
|
IDC_MEDIA_SIZE3, IDH_RC_trays_tray3_size,
|
|
IDC_MEDIA_SIZE5, IDH_RC_trays_tray5_size,
|
|
IDC_LEVEL_COLUMN, IDH_RC_trays_level,
|
|
IDC_MEDIA_STATUS1, IDH_RC_trays_tray1_level,
|
|
IDC_MEDIA_STATUS2, IDH_RC_trays_tray2_level,
|
|
IDC_MEDIA_STATUS3, IDH_RC_trays_tray3_level,
|
|
IDC_MEDIA_STATUS5, IDH_RC_trays_tray5_level,
|
|
0, 0};
|
|
|
|
//...................................................................
|
|
void Cls_OnTraysMeasureItem(HWND hwnd, MEASUREITEMSTRUCT * lpMeasureItem)
|
|
{
|
|
switch (lpMeasureItem->CtlID)
|
|
{
|
|
case IDC_MEDIA_ENABLED:
|
|
lpMeasureItem->itemHeight = LISTBOX_ITEM_HEIGHT;
|
|
break;
|
|
|
|
case IDC_DEF_PAPER_SIZE:
|
|
case IDC_MEDIA_SIZE1:
|
|
case IDC_MEDIA_SIZE2:
|
|
case IDC_MEDIA_SIZE3:
|
|
case IDC_MEDIA_SIZE5:
|
|
lpMeasureItem->itemHeight = COMBOBOX_ITEM_HEIGHT;
|
|
break;
|
|
}
|
|
}
|
|
void loadMediaSize(HWND hwnd, UINT uComboBoxID, UINT uMediaSizeID)
|
|
{
|
|
HWND hwndCtl;
|
|
|
|
if (hwndCtl = GetDlgItem(hwnd, uComboBoxID))
|
|
{
|
|
int i, index, iCurItemData = -1, iCurSelIndex = LB_ERR, iDefSelIndex = LB_ERR;
|
|
DWORD dwTray;
|
|
|
|
/* Note the following about Elkhorn: */
|
|
/* IDC_MEDIA_SIZE1 = mp tray = tray1 */
|
|
/* IDC_MEDIA_SIZE2 = pc tray = tray2 */
|
|
/* IDC_MEDIA_SIZE3 = lc tray = tray3 */
|
|
/* IDC_MEDIA_SIZE5 = ee feed = tray4 */
|
|
|
|
switch (uComboBoxID)
|
|
{
|
|
case IDC_MEDIA_SIZE1: dwTray = TRAY1; break;
|
|
case IDC_MEDIA_SIZE2: dwTray = TRAY2; break;
|
|
case IDC_MEDIA_SIZE3: dwTray = TRAY3; break;
|
|
case IDC_MEDIA_SIZE5: dwTray = TRAY4; break;
|
|
default: dwTray = ALL_TRAYS;
|
|
}
|
|
|
|
if (uMediaSizeID != 0)
|
|
{
|
|
for (i = 0; i < MEDIA_SIZE_MAX_NUMBER; i++)
|
|
{
|
|
if (media_size[i].uMediaSizeID == uMediaSizeID)
|
|
{
|
|
iCurItemData = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else if ((index = ComboBox_GetCurSel(hwndCtl)) != LB_ERR)
|
|
{
|
|
iCurItemData = (int)ComboBox_GetItemData(hwndCtl, index);
|
|
}
|
|
ComboBox_ResetContent(hwndCtl);
|
|
|
|
for (i = 0; i < MEDIA_SIZE_MAX_NUMBER; i++)
|
|
{
|
|
if (media_size[i].dwValidInTray & dwTray)
|
|
{
|
|
index = ComboBox_AddString(hwndCtl, media_size[i].szMediaSize);
|
|
ComboBox_SetItemData(hwndCtl, index, i);
|
|
|
|
if (iCurItemData == i)
|
|
{
|
|
iCurSelIndex = index;
|
|
}
|
|
|
|
if ((iDefSelIndex == LB_ERR) && media_size[i].bDefault)
|
|
{
|
|
iDefSelIndex = index;
|
|
}
|
|
}
|
|
}
|
|
ComboBox_SetCurSel(hwndCtl, (iCurSelIndex == LB_ERR) ? ((iDefSelIndex == LB_ERR) ? 0 : iDefSelIndex) : iCurSelIndex);
|
|
}
|
|
}
|
|
|
|
void Cls_OnTraysDrawItem(HWND hwnd, const DRAWITEMSTRUCT * lpDrawItem)
|
|
{
|
|
HDC hdc = lpDrawItem->hDC;
|
|
HBRUSH hBrush;
|
|
RECT rRect = lpDrawItem->rcItem,
|
|
rIcon = lpDrawItem->rcItem;
|
|
int itemHeight = rRect.bottom - rRect.top;
|
|
|
|
if (lpDrawItem->itemAction & (ODA_DRAWENTIRE | ODA_FOCUS))
|
|
{
|
|
if (hBrush = CreateSolidBrush(GetSysColor(COLOR_WINDOW)))
|
|
{
|
|
FrameRect(hdc, &rRect, hBrush);
|
|
DeleteObject(hBrush);
|
|
}
|
|
|
|
if (lpDrawItem->itemState & ODS_FOCUS)
|
|
{
|
|
DrawFocusRect(hdc, &rRect);
|
|
}
|
|
}
|
|
|
|
InflateRect(&rRect, -1, -1);
|
|
|
|
if (lpDrawItem->itemAction & ODA_DRAWENTIRE)
|
|
{
|
|
rIcon.right = rIcon.left + itemHeight;
|
|
InflateRect(&rIcon, -2, -2);
|
|
|
|
switch (lpDrawItem->CtlID)
|
|
{
|
|
case IDC_DEF_PAPER_SIZE:
|
|
case IDC_MEDIA_SIZE1:
|
|
case IDC_MEDIA_SIZE2:
|
|
case IDC_MEDIA_SIZE3:
|
|
case IDC_MEDIA_SIZE5:
|
|
{
|
|
HICON hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(media_size[(int)lpDrawItem->itemData].uMediaSizeIconID));
|
|
DrawIcon(hdc, rIcon.left, rIcon.top, hIcon);
|
|
DestroyIcon(hIcon);
|
|
break;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
rRect.left = itemHeight;
|
|
|
|
if (lpDrawItem->itemAction & (ODA_DRAWENTIRE | ODA_SELECT))
|
|
{
|
|
LPTSTR lpszPtr;
|
|
|
|
switch (lpDrawItem->CtlID)
|
|
{
|
|
case IDC_DEF_PAPER_SIZE:
|
|
case IDC_MEDIA_SIZE1:
|
|
case IDC_MEDIA_SIZE2:
|
|
case IDC_MEDIA_SIZE3:
|
|
case IDC_MEDIA_SIZE5:
|
|
lpszPtr = media_size[(int)lpDrawItem->itemData].szMediaSize;
|
|
break;
|
|
|
|
default:
|
|
lpszPtr = TEXT("");
|
|
}
|
|
|
|
if (hBrush = CreateSolidBrush(GetSysColor((lpDrawItem->itemState & ODS_SELECTED) ? COLOR_HIGHLIGHT : COLOR_WINDOW)))
|
|
{
|
|
FillRect(hdc, &rRect, hBrush);
|
|
DeleteObject(hBrush);
|
|
}
|
|
|
|
rRect.left += 2;
|
|
SetBkMode(hdc, TRANSPARENT);
|
|
SetTextColor(hdc, GetSysColor((lpDrawItem->itemState & ODS_SELECTED) ? COLOR_HIGHLIGHTTEXT : COLOR_WINDOWTEXT));
|
|
DrawText(hdc, lpszPtr, -1, &rRect, DT_SINGLELINE | DT_VCENTER);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LRESULT OnContextHelpTrays(WPARAM wParam, LPARAM lParam)
|
|
{
|
|
#ifdef WIN32
|
|
WinHelp((HWND)wParam, ELK_HELP_FILE, HELP_CONTEXTMENU,
|
|
(DWORD)(LPTSTR)keywordIDListTrays);
|
|
#endif
|
|
return(1);
|
|
}
|
|
|
|
//...................................................................
|
|
LRESULT OnF1HelpTrays(WPARAM wParam, LPARAM lParam)
|
|
{
|
|
#ifdef WIN32
|
|
WinHelp((HWND)((LPHELPINFO)lParam)->hItemHandle, ELK_HELP_FILE, HELP_WM_HELP,
|
|
(DWORD)(LPTSTR)keywordIDListTrays);
|
|
#endif
|
|
return(1);
|
|
}
|
|
|
|
BOOL Cls_OnTraysInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
|
|
{
|
|
TCHAR szBuffer[512];
|
|
HWND hwndChild;
|
|
int i;
|
|
|
|
#ifdef WIN32XXX
|
|
LPPROPSHEETPAGE psp = (LPPROPSHEETPAGE)lParam;
|
|
#else
|
|
LPTABINFOENTRY psp = (LPTABINFOENTRY)lParam;
|
|
#endif
|
|
|
|
#ifndef WIN32
|
|
hwndChild = GetFirstChild(hwnd);
|
|
while (hwndChild)
|
|
{
|
|
SetWindowFont(hwndChild, hFontDialog, FALSE);
|
|
hwndChild = GetNextSibling(hwndChild);
|
|
}
|
|
#endif
|
|
|
|
// Description
|
|
LoadString(hInstance, IDS_TRAYS_DESC1, szBuffer, SIZEOF_IN_CHAR(szBuffer));
|
|
LoadString(hInstance, IDS_TRAYS_DESC2, szBuffer + _tcslen(szBuffer), SIZEOF_IN_CHAR(szBuffer) - _tcslen(szBuffer));
|
|
SetDlgItemText(hwnd, IDC_TIP_TEXT, szBuffer);
|
|
|
|
/*****************************************************/
|
|
/* Load media size to the MP tray - this cannot */
|
|
/* sizes so load the current */
|
|
/*****************************************************/
|
|
loadMediaSize(hwnd, IDC_MEDIA_SIZE1, elk_media_tray[0].uMediaSizeID);
|
|
|
|
/*****************************************************/
|
|
/* Now, for the Tray 2 - loop through and match the */
|
|
/* size and then set it. */
|
|
/*****************************************************/
|
|
if (hwndChild = GetDlgItem(hwnd, IDC_MEDIA_SIZE2))
|
|
{
|
|
for (i = 0; i < MEDIA_SIZE_MAX_NUMBER; i++) {
|
|
if (elk_media_tray[1].uMediaSizeID IS media_size[i].uMediaSizeID) {
|
|
SetWindowText(hwndChild, media_size[i].szMediaSize);
|
|
SetWindowIcon(hwndChild, media_size[1].uMediaSizeIconID);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
/*****************************************************/
|
|
/* Set up the Tray 3 - this is the 500 sheet option */
|
|
/* If it is not installed,hide the dialog. */
|
|
/*****************************************************/
|
|
if (hwndChild = GetDlgItem(hwnd, IDC_MEDIA_SIZE3)) {
|
|
if (elk_media_tray[2].bInstalled IS TRUE) {
|
|
for (i = 0; i < MEDIA_SIZE_MAX_NUMBER; i++) {
|
|
if (elk_media_tray[2].uMediaSizeID IS media_size[i].uMediaSizeID) {
|
|
SetWindowText(hwndChild, media_size[i].szMediaSize);
|
|
SetWindowIcon(hwndChild, media_size[1].uMediaSizeIconID);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
ShowWindow(hwndChild, SW_HIDE);
|
|
if (hwndChild = GetDlgItem(hwnd, IDC_TRAY3_NAME))
|
|
ShowWindow(hwndChild, SW_HIDE);
|
|
}
|
|
}
|
|
|
|
/*****************************************************/
|
|
/* Now see if the envelope feeder is installed - */
|
|
/* This is elk_media_tray[3] for us, but it */
|
|
/* corresponds to IDC_MEDIA_SIZE 5. */
|
|
/*****************************************************/
|
|
if (elk_media_tray[3].bInstalled IS TRUE) {
|
|
loadMediaSize(hwnd, IDC_MEDIA_SIZE5, elk_media_tray[3].uMediaSizeID);
|
|
}
|
|
else {
|
|
if (hwndChild = GetDlgItem(hwnd, IDC_MEDIA_SIZE5))
|
|
ShowWindow(hwndChild, SW_HIDE);
|
|
if (hwndChild = GetDlgItem(hwnd, IDC_ENVL_NAME))
|
|
ShowWindow(hwndChild, SW_HIDE);
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void SetBuf(TCHAR * szBuffer, int bufSize, TCHAR * szFormat, signed short uLevel, WORD *wLevel) {
|
|
if ( (uLevel < 1) OR (uLevel > 100) ) {
|
|
if (uLevel IS 0) {
|
|
// empty
|
|
*wLevel = 0;
|
|
LoadString(hInstance, IDS_EMPTY, szBuffer, bufSize);
|
|
}
|
|
else if (uLevel IS -3) {
|
|
// not empty
|
|
*wLevel = 50;
|
|
LoadString(hInstance, IDS_NOT_EMPTY, szBuffer, bufSize);
|
|
}
|
|
else {
|
|
*wLevel = 0;
|
|
LoadString(hInstance, IDS_UNKNOWN_LEVEL, szBuffer, bufSize);
|
|
}
|
|
}
|
|
else { // uLevel > 0 AND <= 100
|
|
*wLevel = uLevel;
|
|
wsprintf(szBuffer, szFormat, uLevel);
|
|
}
|
|
}
|
|
|
|
static void OnActivateDialog(HWND hwnd)
|
|
{
|
|
int i;
|
|
TCHAR szBuffer[64],
|
|
szFormat[32];
|
|
WORD wLevel;
|
|
HWND hwndChild;
|
|
|
|
|
|
for (i = 0; i < MEDIA_TRAY_MAX_NUMBER; i++)
|
|
{
|
|
if (elk_media_tray[i].bInstalled IS TRUE)
|
|
{
|
|
/* test */
|
|
}
|
|
else {
|
|
if (hwndChild = GetDlgItem(hwnd, IDC_MEDIA_TYPE1 + i))
|
|
ShowWindow(hwndChild, SW_HIDE);
|
|
if (hwndChild = GetDlgItem(hwnd, IDC_TRAY1_NAME + i))
|
|
ShowWindow(hwndChild, SW_HIDE);
|
|
}
|
|
}
|
|
|
|
LoadString(hInstance, IDS_PERCENT, szFormat, SIZEOF_IN_CHAR(szFormat));
|
|
/* Tray 1 */
|
|
if (hwndChild = GetDlgItem(hwnd, IDC_MEDIA_STATUS1))
|
|
{
|
|
SetBuf( szBuffer, sizeof(szBuffer), szFormat, (signed short) elk_media_tray[0].uLevel, &wLevel);
|
|
SetWindowWord(hwndChild, GWW_TRAYLEVEL, wLevel);
|
|
SetWindowText(hwndChild, szBuffer);
|
|
}
|
|
|
|
/* Tray 2 */
|
|
if (hwndChild = GetDlgItem(hwnd, IDC_MEDIA_STATUS2))
|
|
{
|
|
SetBuf( szBuffer, sizeof(szBuffer), szFormat, (signed short) elk_media_tray[1].uLevel, &wLevel);
|
|
SetWindowWord(hwndChild, GWW_TRAYLEVEL, wLevel);
|
|
SetWindowText(hwndChild, szBuffer);
|
|
}
|
|
|
|
/* Tray 3 */
|
|
if (hwndChild = GetDlgItem(hwnd, IDC_MEDIA_STATUS3))
|
|
{
|
|
if (elk_media_tray[2].bInstalled IS TRUE)
|
|
{
|
|
SetBuf( szBuffer, sizeof(szBuffer), szFormat, (signed short) elk_media_tray[2].uLevel, &wLevel);
|
|
SetWindowWord(hwndChild, GWW_TRAYLEVEL, wLevel);
|
|
SetWindowText(hwndChild, szBuffer);
|
|
}
|
|
else
|
|
{
|
|
ShowWindow(hwndChild, SW_HIDE);
|
|
if (hwndChild = GetDlgItem(hwnd, IDC_MEDIA_STATUS3))
|
|
ShowWindow(hwndChild, SW_HIDE);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/* EE feeder */
|
|
if (hwndChild = GetDlgItem(hwnd, IDC_MEDIA_STATUS5)) {
|
|
if (elk_media_tray[3].bInstalled IS TRUE) {
|
|
SetBuf( szBuffer, sizeof(szBuffer), szFormat, (signed short) elk_media_tray[3].uLevel, &wLevel);
|
|
SetWindowWord(hwndChild, GWW_TRAYLEVEL, wLevel);
|
|
SetWindowText(hwndChild, szBuffer);
|
|
}
|
|
else ShowWindow(hwndChild, SW_HIDE);
|
|
}
|
|
|
|
}
|
|
|
|
void Cls_OnTraysCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
|
|
{
|
|
switch (id)
|
|
{
|
|
case IDOK:
|
|
case IDCANCEL:
|
|
EndDialog(hwnd, id);
|
|
break;
|
|
|
|
case IDHLP:
|
|
WinHelp(hwnd, ELK_HELP_FILE, HELP_CONTENTS, IDH_PP_trays);
|
|
break;
|
|
|
|
/*****************************************************/
|
|
/* IDC_MEDIA_SIZE1 = TRAY 1 - MP tray */
|
|
/* IDC_MEDIA_SIZE2 = TRAY 2 - PC tray */
|
|
/* IDC_MEDIA_SIZE3 = TRAY 3 - Lower Cassette */
|
|
/* IDC_MEDIA_SIZE5 = EE - Envelope Feeder */
|
|
/*****************************************************/
|
|
|
|
case IDC_MEDIA_SIZE1:
|
|
if (codeNotify == CBN_SELCHANGE)
|
|
{
|
|
elk_media_tray[0].bChangedSize = TRUE; // mp tray
|
|
}
|
|
break;
|
|
case IDC_MEDIA_SIZE2:
|
|
case IDC_MEDIA_SIZE3:
|
|
break;
|
|
case IDC_MEDIA_SIZE5:
|
|
if (codeNotify == CBN_SELCHANGE)
|
|
{
|
|
elk_media_tray[3].bChangedSize = TRUE; // envl tray
|
|
}
|
|
break;
|
|
|
|
}
|
|
}
|
|
|
|
DLL_EXPORT(BOOL) APIENTRY TraysProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
BOOL *pChanged = (BOOL *)lParam;
|
|
|
|
switch (uMsg)
|
|
{
|
|
case WM_INITDIALOG:
|
|
return (BOOL)HANDLE_WM_INITDIALOG(hwnd, wParam, lParam, Cls_OnTraysInitDialog);
|
|
|
|
case WM_COMMAND:
|
|
HANDLE_WM_COMMAND(hwnd, wParam, lParam, Cls_OnTraysCommand);
|
|
break;
|
|
|
|
case WM_MEASUREITEM:
|
|
HANDLE_WM_MEASUREITEM(hwnd, wParam, lParam, Cls_OnTraysMeasureItem);
|
|
break;
|
|
|
|
case WM_DRAWITEM:
|
|
HANDLE_WM_DRAWITEM(hwnd, wParam, lParam, Cls_OnTraysDrawItem);
|
|
break;
|
|
|
|
case WM_HELP:
|
|
return (BOOL)OnF1HelpTrays(wParam, lParam);
|
|
|
|
case WM_CONTEXTMENU:
|
|
return (BOOL)OnContextHelpTrays(wParam, lParam);
|
|
|
|
#ifdef WIN32XXX
|
|
case WM_NOTIFY:
|
|
switch (((NMHDR FAR *)lParam)->code)
|
|
{
|
|
case PSN_SETACTIVE:
|
|
break;
|
|
|
|
case PSN_APPLY:
|
|
SaveTrayValues(hwnd);
|
|
break;
|
|
|
|
case PSN_RESET:
|
|
break;
|
|
|
|
case PSN_HELP:
|
|
WinHelp(hwnd, ELK_HELP_FILE, HELP_CONTEXT, IDH_PP_trays);
|
|
break;
|
|
|
|
default:
|
|
return FALSE;
|
|
}
|
|
break;
|
|
#endif
|
|
|
|
case TSN_CANCEL:
|
|
break;
|
|
|
|
case TSN_ACTIVE:
|
|
OnActivateDialog(hwnd);
|
|
break;
|
|
|
|
case TSN_INACTIVE:
|
|
*pChanged = TRUE;
|
|
break;
|
|
|
|
case TSN_OK:
|
|
case TSN_APPLY_NOW:
|
|
SaveTrayValues(hwnd);
|
|
*pChanged = TRUE;
|
|
break;
|
|
|
|
case TSN_HELP:
|
|
WinHelp(hwnd, ELK_HELP_FILE, HELP_CONTEXT, IDH_PP_trays);
|
|
break;
|
|
|
|
default:
|
|
return FALSE;
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
DLL_EXPORT(BOOL) APIENTRY TraysPopupProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
switch (uMsg)
|
|
{
|
|
case WM_INITDIALOG:
|
|
{
|
|
BOOL bReturnValue = (BOOL)HANDLE_WM_INITDIALOG(hwnd, wParam, lParam, Cls_OnTraysInitDialog);
|
|
OnActivateDialog(hwnd);
|
|
return bReturnValue;
|
|
}
|
|
|
|
case WM_COMMAND:
|
|
HANDLE_WM_COMMAND(hwnd, wParam, lParam, Cls_OnTraysCommand);
|
|
break;
|
|
|
|
case WM_MEASUREITEM:
|
|
HANDLE_WM_MEASUREITEM(hwnd, wParam, lParam, Cls_OnTraysMeasureItem);
|
|
break;
|
|
|
|
case WM_DRAWITEM:
|
|
HANDLE_WM_DRAWITEM(hwnd, wParam, lParam, Cls_OnTraysDrawItem);
|
|
break;
|
|
|
|
case WM_HELP:
|
|
return (BOOL)OnF1HelpTrays(wParam, lParam);
|
|
|
|
case WM_CONTEXTMENU:
|
|
return (BOOL)OnContextHelpTrays(wParam, lParam);
|
|
|
|
default:
|
|
return FALSE;
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
//...................................................................
|
|
void SaveTrayValues(HWND hwnd)
|
|
{
|
|
DWORD dwMediaSize,
|
|
dWord,
|
|
dwResult;
|
|
long j, k;
|
|
int i, iSelIndex;
|
|
HWND hwndChild;
|
|
BOOL bIT = FALSE, bHCI = FALSE, bENVL = FALSE;
|
|
PeripheralInputTrays periphInputTrays;
|
|
PeripheralEnvl periphEnvl;
|
|
//garth
|
|
//char cBuf[64];
|
|
|
|
|
|
/*****************************************************/
|
|
/* Elkhorn Media Sizes elk_media index*/
|
|
/* IDC_MEDIA_SIZE1 = TRAY 1 - MP tray = 0 */
|
|
/* IDC_MEDIA_SIZE2 = TRAY 2 - PC tray = 1 */
|
|
/* IDC_MEDIA_SIZE3 = TRAY 3 - Lower Cassette= 2 */
|
|
/* IDC_MEDIA_SIZE5 = EE - Envelope Feeder = 3 */
|
|
/*****************************************************/
|
|
|
|
for (i = 0; i < 2; i++) {
|
|
periphInputTrays.inputTrays[i].flags = 0;
|
|
periphInputTrays.inputTrays[i].trayNum = (DWORD) i + 1;
|
|
}
|
|
for (i = 0; i < 1; i++) {
|
|
periphEnvl.inputTrays[i].flags = 0;
|
|
}
|
|
periphInputTrays.numTrays = 3;
|
|
periphEnvl.numTrays = 1;
|
|
periphEnvl.inputTrays[0].trayNum = (DWORD) 4;
|
|
|
|
// Execute the following code for tray 0 (MP tray) and tray 3 (Envl tray).
|
|
// If the media size in the tray was changed, set it
|
|
for (i = 0, j = IDC_MEDIA_SIZE1; i < MEDIA_TRAY_MAX_NUMBER; i += 3, j += 3) {
|
|
|
|
if (elk_media_tray[i].bChangedSize IS TRUE) {
|
|
hwndChild = GetDlgItem(hwnd, (int)j);
|
|
if (hwndChild ISNT NULL) {
|
|
iSelIndex = ComboBox_GetCurSel(hwndChild);
|
|
k = (long) ComboBox_GetItemData(hwndChild, iSelIndex);
|
|
switch (media_size[k].uMediaSizeID) {
|
|
case IDS_MEDIA_SIZE_LETTER:
|
|
dwMediaSize = PJL_LETTER;
|
|
break;
|
|
case IDS_MEDIA_SIZE_LEGAL:
|
|
dwMediaSize = PJL_LEGAL;
|
|
break;
|
|
case IDS_MEDIA_SIZE_A4:
|
|
dwMediaSize = PJL_A4;
|
|
break;
|
|
case IDS_MEDIA_SIZE_EXEC:
|
|
dwMediaSize = PJL_EXECUTIVE;
|
|
break;
|
|
case IDS_MEDIA_SIZE_CUSTOM:
|
|
dwMediaSize = PJL_CUSTOM;
|
|
break;
|
|
case IDS_MEDIA_SIZE_COM10:
|
|
dwMediaSize = PJL_COM10;
|
|
break;
|
|
case IDS_MEDIA_SIZE_C5:
|
|
dwMediaSize = PJL_C5;
|
|
break;
|
|
case IDS_MEDIA_SIZE_DL:
|
|
dwMediaSize = PJL_DL;
|
|
break;
|
|
case IDS_MEDIA_SIZE_MONARCH:
|
|
dwMediaSize = PJL_MONARCH;
|
|
break;
|
|
case IDS_MEDIA_SIZE_A5:
|
|
dwMediaSize = PJL_A5;
|
|
break;
|
|
|
|
default:
|
|
dwMediaSize = PJL_LETTER;
|
|
break;
|
|
}
|
|
switch (i) {
|
|
case 0:
|
|
periphInputTrays.inputTrays[0].flags |= SET_MEDIASIZE;
|
|
periphInputTrays.inputTrays[0].mediaSize = dwMediaSize;
|
|
//garth
|
|
//wsprintf(cBuf, "Just set tray[0] mediasize: %lu", periphInputTrays.inputTrays[0].mediaSize);
|
|
//MessageBox(hwnd, cBuf, "Media Size", MB_OK);
|
|
bIT = TRUE;
|
|
break;
|
|
case 3:
|
|
periphEnvl.inputTrays[0].flags |= SET_MEDIASIZE;
|
|
periphEnvl.inputTrays[0].mediaSize = dwMediaSize;
|
|
//garth
|
|
//wsprintf(cBuf, "Just set envl[0] mediasize: %lu", periphEnvl.inputTrays[0].mediaSize);
|
|
//MessageBox(hwnd, cBuf, "Media Size", MB_OK);
|
|
bENVL = TRUE;
|
|
break;
|
|
}
|
|
}
|
|
elk_media_tray[i].bChangedSize = FALSE;
|
|
}
|
|
else {
|
|
//garth
|
|
//wsprintf(cBuf, "elk_media_tray[%d].bChangedSize is FALSE", i);
|
|
//MessageBox(hwnd, cBuf, "Media Size", MB_OK);
|
|
|
|
}
|
|
}
|
|
|
|
// if input trays changed, set object
|
|
if (bIT IS TRUE) {
|
|
dWord = sizeof(PeripheralInputTrays);
|
|
dwResult = CALSetObject(hPeriph, OT_PERIPHERAL_INPUT_TRAYS, 0, &periphInputTrays, &dWord);
|
|
|
|
//garth
|
|
if (dwResult IS RC_SUCCESS) {
|
|
// MessageBox(hwnd, "Yes Set INPUT_TRAYS", "Success", MB_OK);
|
|
}
|
|
else {
|
|
// wsprintf(cBuf, "Fail Set INPUT_TRAYS: 0x%8.8lX", dwResult);
|
|
// MessageBox(hwnd, cBuf, "Failure", MB_OK);
|
|
}
|
|
bIT = FALSE;
|
|
}
|
|
|
|
// if envl feeder tray changed, set object
|
|
if (bENVL IS TRUE) {
|
|
dWord = sizeof(PeripheralEnvl);
|
|
dwResult = CALSetComponentObject(hPeriph, hCompEnvl, OT_PERIPHERAL_ENVL_FEEDER, 0, &periphEnvl, &dWord);
|
|
//garth
|
|
if (dwResult IS RC_SUCCESS) {
|
|
// MessageBox(hwnd, "Set Envl TRAY", "Success", MB_OK);
|
|
}
|
|
else {
|
|
// wsprintf(cBuf, "Fail Set Envl TRAY: 0x%8.8lX", dwResult);
|
|
// MessageBox(hwnd, cBuf, "Failure", MB_OK);
|
|
}
|
|
bENVL = FALSE;
|
|
}
|
|
|
|
|
|
}
|
|
|