Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

1193 lines
37 KiB

//=============================================================================
// (c) Copyright Wang Laboratories, Inc. 1996 All rights reserved.
//-----------------------------------------------------------------------------
// Project: Norway - Scan OCX
//
// Component: Scan UI (Dialog Prompt)
//
// File Name: ImagComp.cpp
//
// Class: CImageCompSheet
// CImageBW
// CImageGray16
// CImageGray256
// CImageColor256
// CImage24BitRGB
//
// Functions:
//-----------------------------------------------------------------------------
// Maintenance Log:
/*
$Header: S:\products\wangview\norway\scanocx\imagcomp.cpv 1.2 25 Mar 1996 13:20:56 PXJ53677 $
$Log: S:\products\wangview\norway\scanocx\imagcomp.cpv $
Rev 1.2 25 Mar 1996 13:20:56 PXJ53677
Invert order of jpeg options.
Rev 1.1 19 Mar 1996 13:36:46 BG
Added context sensitive help to property pages and removed the Help
and Apply buttons from the property sheet.
Rev 1.0 20 Feb 1996 11:36:30 PAJ
Initial revision.
*/
//=============================================================================
// ----------------------------> Includes <-------------------------------
// ImagComp.cpp : implementation file
//
#include "stdafx.h"
#include <afxpriv.h>
#include "imagscan.h"
#include "ImagComp.h"
#include "imagsctl.h"
#include "scan.h"
#include "imageppg.h"
#include "ctlhids.h"
#include "resource.h"
extern "C" {
#include <oidisp.h>
#include <oiadm.h>
#include <engadm.h>
#include <oierror.h>
#include <oiscan.h>
}
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
// For context-sensitive help:
// An array of dword pairs, where the first of each
// pair is the control ID, and the second is the
// context ID for a help topic, which is used
// in the help file.
static const DWORD aMenuHelpIDs[] =
{
//IDD_IMAGE_BW, HIDC_COLOR_BW,
IDC_COMPTYPE_TEXT, HIDC_COMPTYPE_TEXT,
IDC_COMP_COMBO, HIDC_COMP_COMBO,
//IDD_IMAGE_GRAY16, HIDC_COLOR_GRAY4,
//IDD_IMAGE_GRAY256, HIDC_COLOR_GRAY8,
IDC_COMP_RBO, HIDC_COMP_RBO,
//IDD_IMAGE_COLOR256, HIDC_COLOR_PAL8,
IDC_LBL_JPEGRES, HIDC_LBL_JPEGRES,
IDC_COMP_JPEGRES, HIDC_COMP_JPEGRES,
//IDD_IMAGE_24BITRGB, HIDC_COLOR_RGB24,
IDC_LBL_JPEGCOMP, HIDC_LBL_JPEGCOMP,
IDC_COMP_JPEGCOMP, HIDC_COMP_JPEGCOMP,
IDC_OPTIONS_BOX, HIDC_OPTIONS_BOX,
0, 0
};
// CImageCompSheet
IMPLEMENT_DYNAMIC(CImageCompSheet, CPropertySheet)
CImageCompSheet::CImageCompSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
}
CImageCompSheet::CImageCompSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
}
CImageCompSheet::~CImageCompSheet()
{
}
int CImageCompSheet::DoModal()
{
m_psh.dwFlags &= ~PSH_HASHELP;
m_psh.dwFlags |= PSH_NOAPPLYNOW;
int nResult = CPropertySheet::DoModal();
return nResult;
}
void CImageCompSheet::AddBWPage()
{
m_pBWPage = (CPropertyPage *)new CImageBW;
m_pBWPage->m_psp.dwFlags &= ~PSP_HASHELP;
AddPage(m_pBWPage);
//((CImageBW *)m_pBWPage)->SetParent(this);
}
void CImageCompSheet::AddGray16Page()
{
m_pGray16Page = (CPropertyPage *)new CImageGray16;
m_pGray16Page->m_psp.dwFlags &= ~PSP_HASHELP;
AddPage(m_pGray16Page);
//((CImageGray16 *)m_pGray16Page)->SetParent(this);
}
void CImageCompSheet::AddGray256Page()
{
m_pGray256Page = (CPropertyPage *)new CImageGray256;
m_pGray256Page->m_psp.dwFlags &= ~PSP_HASHELP;
AddPage(m_pGray256Page);
//((CImageGray256 *)m_pGray256Page)->SetParent(this);
}
void CImageCompSheet::AddColor256Page()
{
m_pColor256Page = (CPropertyPage *)new CImageColor256;
m_pColor256Page->m_psp.dwFlags &= ~PSP_HASHELP;
AddPage(m_pColor256Page);
//((CImageColor256 *)m_pColor256Page)->SetParent(this);
}
void CImageCompSheet::Add24BitRGBPage()
{
m_p24BitRGBPage = (CPropertyPage *)new CImage24BitRGB;
m_p24BitRGBPage->m_psp.dwFlags &= ~PSP_HASHELP;
AddPage(m_p24BitRGBPage);
//((CImage24BitRGB *)m_p24BitRGBPage)->SetParent(this);
}
unsigned short CImageCompSheet::GetBWCompType()
{
if (m_pBWPage != NULL)
return ((CImageBW *)m_pBWPage)->m_nCompType;
return 0;
}
unsigned short CImageCompSheet::GetBWCompOpts()
{
if (m_pBWPage != NULL)
return ((CImageBW *)m_pBWPage)->m_nCompOpts;
return 0;
}
unsigned short CImageCompSheet::GetGray256CompType()
{
if (m_pGray256Page != NULL)
return ((CImageGray256 *)m_pGray256Page)->m_nCompType;
return 0;
}
unsigned short CImageCompSheet::GetGray256CompOpts()
{
if (m_pGray256Page != NULL)
return ((CImageGray256 *)m_pGray256Page)->m_nCompOpts;
return 0;
}
unsigned short CImageCompSheet::Get24BitRGBCompType()
{
if (m_p24BitRGBPage != NULL)
return ((CImage24BitRGB *)m_p24BitRGBPage)->m_nCompType;
return 0;
}
unsigned short CImageCompSheet::Get24BitRGBCompOpts()
{
if (m_p24BitRGBPage != NULL)
return ((CImage24BitRGB *)m_p24BitRGBPage)->m_nCompOpts;
return 0;
}
BEGIN_MESSAGE_MAP(CImageCompSheet, CPropertySheet)
//{{AFX_MSG_MAP(CImageCompSheet)
ON_WM_SHOWWINDOW()
ON_MESSAGE(WM_HELP, OnHelp)
ON_MESSAGE(WM_CONTEXTMENU, OnContextMenu)
ON_MESSAGE(WM_COMMANDHELP, OnCommandHelp)
ON_WM_CREATE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CImageCompSheet message handlers
void CImageCompSheet::OnShowWindow(BOOL bShow, UINT nStatus)
{
//AFX_MANAGE_STATE(m_pModuleState);
CWnd *pButton = GetDlgItem(ID_APPLY_NOW);
pButton->ShowWindow(SW_HIDE);
pButton->EnableWindow(FALSE);
CPropertySheet::OnShowWindow(bShow, nStatus);
}
afx_msg LRESULT CImageCompSheet::OnHelp(WPARAM wParam, LPARAM lParam)
{
//AFX_MANAGE_STATE(m_pModuleState);
LPHELPINFO lpHelpInfo;
lpHelpInfo = (LPHELPINFO)lParam;
// All tabs have same ID so can't give tab specific help
if (lpHelpInfo->iCtrlId == AFX_IDC_TAB_CONTROL)
return 0L;
if (lpHelpInfo->iContextType == HELPINFO_WINDOW) // must be for a control
{
::WinHelp ((HWND)lpHelpInfo->hItemHandle, "wangocx.hlp",
HELP_WM_HELP,
(DWORD)(LPVOID)aMenuHelpIDs);
}
return 1L;
}
afx_msg LRESULT CImageCompSheet::OnContextMenu(WPARAM wParam, LPARAM lParam)
{
//AFX_MANAGE_STATE(m_pModuleState);
// All tabs have same ID so can't give tab specific help
if (::GetDlgCtrlID((HWND)wParam) == AFX_IDC_TAB_CONTROL)
return 0L;
return ::WinHelp ((HWND)wParam,"wangocx.hlp", HELP_CONTEXTMENU,
(DWORD)(LPVOID)aMenuHelpIDs);
}
afx_msg LRESULT CImageCompSheet::OnCommandHelp(WPARAM, LPARAM)
{
return TRUE;
}
int CImageCompSheet::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CPropertySheet::OnCreate(lpCreateStruct) == -1)
return -1;
ModifyStyleEx(0, WS_EX_CONTEXTHELP);
return 0;
}
/////////////////////////////////////////////////////////////////////////////
// CImageBW property page
IMPLEMENT_DYNCREATE(CImageBW, CPropertyPage)
CImageBW::CImageBW() : CPropertyPage(CImageBW::IDD)
{
//{{AFX_DATA_INIT(CImageBW)
//}}AFX_DATA_INIT
// Get the current settings from the registry.
if ( IMGSE_SUCCESS !=IMGGetImgCodingCgbw(NULL, BWFORMAT, &m_nCompType, &m_nCompOpts, TRUE) )
{
m_nCompType = FIO_1D; // Default to CCITT Group 3
m_nCompOpts = 0; // Default to MOD HUFFMAN
}
}
CImageBW::~CImageBW()
{
}
BEGIN_MESSAGE_MAP(CImageBW, CPropertyPage)
//{{AFX_MSG_MAP(CImageBW)
ON_CBN_SELCHANGE(IDC_COMP_COMBO, OnSelchangeCompCombo)
ON_BN_CLICKED(IDC_COMP_RBO, OnCompRbo)
ON_WM_CONTEXTMENU()
ON_WM_HELPINFO()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CImageBW message handlers
/////////////////////////////////////////////////////////////////////////////
// CImageGray16 property page
IMPLEMENT_DYNCREATE(CImageGray16, CPropertyPage)
CImageGray16::CImageGray16() : CPropertyPage(CImageGray16::IDD)
{
//{{AFX_DATA_INIT(CImageGray16)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_nCompType = FIO_0D;
m_nCompOpts = 0;
}
CImageGray16::~CImageGray16()
{
}
BEGIN_MESSAGE_MAP(CImageGray16, CPropertyPage)
//{{AFX_MSG_MAP(CImageGray16)
ON_WM_CONTEXTMENU()
ON_WM_HELPINFO()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CImageGray16 message handlers
/////////////////////////////////////////////////////////////////////////////
// CImageGray256 property page
IMPLEMENT_DYNCREATE(CImageGray256, CPropertyPage)
CImageGray256::CImageGray256() : CPropertyPage(CImageGray256::IDD)
{
//{{AFX_DATA_INIT(CImageGray256)
//}}AFX_DATA_INIT
// Get the current settings from the registry.
if ( IMGSE_SUCCESS !=IMGGetImgCodingCgbw(NULL, GRAYFORMAT, &m_nCompType, &m_nCompOpts, TRUE) )
{
m_nCompType = FIO_TJPEG; // Default to JPEG
m_nCompOpts = MakeJPEGInfo(RES_MD,LUM_MD,CHROM_MD); // Default to MED/MED
}
}
CImageGray256::~CImageGray256()
{
}
BEGIN_MESSAGE_MAP(CImageGray256, CPropertyPage)
//{{AFX_MSG_MAP(CImageGray256)
ON_CBN_SELCHANGE(IDC_COMP_COMBO, OnSelchangeCompCombo)
ON_CBN_SELCHANGE(IDC_COMP_JPEGCOMP, OnSelchangeCompJpegcomp)
ON_CBN_SELCHANGE(IDC_COMP_JPEGRES, OnSelchangeCompJpegres)
ON_WM_CONTEXTMENU()
ON_WM_HELPINFO()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CImageGray256 message handlers
/////////////////////////////////////////////////////////////////////////////
// CImageColor256 property page
IMPLEMENT_DYNCREATE(CImageColor256, CPropertyPage)
CImageColor256::CImageColor256() : CPropertyPage(CImageColor256::IDD)
{
//{{AFX_DATA_INIT(CImageColor256)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_nCompType = FIO_0D;
m_nCompOpts = 0;
}
CImageColor256::~CImageColor256()
{
}
BEGIN_MESSAGE_MAP(CImageColor256, CPropertyPage)
//{{AFX_MSG_MAP(CImageColor256)
ON_WM_CONTEXTMENU()
ON_WM_HELPINFO()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CImageColor256 message handlers
/////////////////////////////////////////////////////////////////////////////
// CImage24BitRGB property page
IMPLEMENT_DYNCREATE(CImage24BitRGB, CPropertyPage)
CImage24BitRGB::CImage24BitRGB() : CPropertyPage(CImage24BitRGB::IDD)
{
//{{AFX_DATA_INIT(CImage24BitRGB)
//}}AFX_DATA_INIT
// Get the current settings from the registry.
if ( IMGSE_SUCCESS !=IMGGetImgCodingCgbw(NULL, COLORFORMAT, &m_nCompType, &m_nCompOpts, TRUE) )
{
m_nCompType = FIO_TJPEG; // Default to JPEG
m_nCompOpts = MakeJPEGInfo(RES_MD,LUM_MD,CHROM_MD); // Default to MED/MED
}
}
CImage24BitRGB::~CImage24BitRGB()
{
}
BEGIN_MESSAGE_MAP(CImage24BitRGB, CPropertyPage)
//{{AFX_MSG_MAP(CImage24BitRGB)
ON_CBN_SELCHANGE(IDC_COMP_COMBO, OnSelchangeCompCombo)
ON_CBN_SELCHANGE(IDC_COMP_JPEGCOMP, OnSelchangeCompJpegcomp)
ON_CBN_SELCHANGE(IDC_COMP_JPEGRES, OnSelchangeCompJpegres)
ON_WM_CONTEXTMENU()
ON_WM_HELPINFO()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// message handlers
BOOL CImageGray16::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: Add extra initialization here
// NOTHING TO DO HERE!!!!!
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CImageGray256::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: Add extra initialization here
CString szType;
int nSel;
int nIndex;
// Setup pointers to controls
CComboBox *pCompCombo = (CComboBox *)GetDlgItem(IDC_COMP_COMBO);
CComboBox *pJPEGResCombo = (CComboBox *)GetDlgItem(IDC_COMP_JPEGRES);
CComboBox *pJPEGCompCombo = (CComboBox *)GetDlgItem(IDC_COMP_JPEGCOMP);
CStatic *pJPEGResLabel = (CStatic *)GetDlgItem(IDC_LBL_JPEGRES);
CStatic *pJPEGCompLabel = (CStatic *)GetDlgItem(IDC_LBL_JPEGCOMP);
// Fill in Compression combo box
if (pCompCombo == NULL)
return TRUE;
pCompCombo->ResetContent();
szType.LoadString(IDS_COMP_NONE);
nSel = nIndex = pCompCombo->AddString(szType);
szType.LoadString(IDS_COMP_JPEG);
nIndex = pCompCombo->AddString(szType);
if (m_nCompType == FIO_TJPEG)
{
nSel = nIndex;
pJPEGCompCombo->EnableWindow(TRUE); // Enable JPEG Options
pJPEGResCombo->EnableWindow(TRUE); // Enable JPEG Options
pJPEGResLabel->EnableWindow(TRUE); // Enable JPEG Options
pJPEGCompLabel->EnableWindow(TRUE); // Enable JPEG Options
}
else
{ // must be uncompressed
pJPEGCompCombo->EnableWindow(FALSE); // Disable JPEG Options
pJPEGResCombo->EnableWindow(FALSE); // Disable JPEG Options
pJPEGResLabel->EnableWindow(FALSE); // Disable JPEG Options
pJPEGCompLabel->EnableWindow(FALSE); // Disable JPEG Options
}
pCompCombo->SetCurSel(nSel); // Set selection to be none or JPEG
// Fill in JPEG combo boxes
if (pJPEGResCombo == NULL)
return TRUE;
pJPEGResCombo->ResetContent();
// Do JPEG Resolution Option
szType.LoadString(IDS_JPEG_LOWRES);
nIndex = pJPEGResCombo->AddString(szType);
if ((m_nCompOpts == MakeJPEGInfo(RES_HI,LUM_HI,CHROM_HI)) ||
(m_nCompOpts == MakeJPEGInfo(RES_HI,LUM_MD,CHROM_MD)) ||
(m_nCompOpts == MakeJPEGInfo(RES_HI,LUM_LO,CHROM_LO)))
nSel = nIndex;
szType.LoadString(IDS_JPEG_MEDRES);
nIndex = pJPEGResCombo->AddString(szType);
if ((m_nCompOpts == MakeJPEGInfo(RES_MD,LUM_HI,CHROM_HI)) ||
(m_nCompOpts == MakeJPEGInfo(RES_MD,LUM_MD,CHROM_MD)) ||
(m_nCompOpts == MakeJPEGInfo(RES_MD,LUM_LO,CHROM_LO)))
nSel = nIndex;
szType.LoadString(IDS_JPEG_HIGHRES);
nIndex = pJPEGResCombo->AddString(szType);
if ((m_nCompOpts == MakeJPEGInfo(RES_LO,LUM_HI,CHROM_HI)) ||
(m_nCompOpts == MakeJPEGInfo(RES_LO,LUM_MD,CHROM_MD)) ||
(m_nCompOpts == MakeJPEGInfo(RES_LO,LUM_LO,CHROM_LO)))
nSel = nIndex;
pJPEGResCombo->SetCurSel(nSel); // Set selection to be LO, MED, HI
// Do JPEG Compression Option
if (pJPEGCompCombo == NULL)
return TRUE;
pJPEGCompCombo->ResetContent();
szType.LoadString(IDS_JPEG_LOWRES);
nIndex = pJPEGCompCombo->AddString(szType);
if ((m_nCompOpts == MakeJPEGInfo(RES_HI,LUM_HI,CHROM_HI)) ||
(m_nCompOpts == MakeJPEGInfo(RES_MD,LUM_HI,CHROM_HI)) ||
(m_nCompOpts == MakeJPEGInfo(RES_LO,LUM_HI,CHROM_HI)))
nSel = nIndex;
szType.LoadString(IDS_JPEG_MEDRES);
nIndex = pJPEGCompCombo->AddString(szType);
if ((m_nCompOpts == MakeJPEGInfo(RES_HI,LUM_MD,CHROM_MD)) ||
(m_nCompOpts == MakeJPEGInfo(RES_MD,LUM_MD,CHROM_MD)) ||
(m_nCompOpts == MakeJPEGInfo(RES_LO,LUM_MD,CHROM_MD)))
nSel = nIndex;
szType.LoadString(IDS_JPEG_HIGHRES);
nIndex = pJPEGCompCombo->AddString(szType);
if ((m_nCompOpts == MakeJPEGInfo(RES_HI,LUM_LO,CHROM_LO)) ||
(m_nCompOpts == MakeJPEGInfo(RES_MD,LUM_LO,CHROM_LO)) ||
(m_nCompOpts == MakeJPEGInfo(RES_LO,LUM_LO,CHROM_LO)))
nSel = nIndex;
pJPEGCompCombo->SetCurSel(nSel); // Set selection to be LO, MED, HI
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CImage24BitRGB::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: Add extra initialization here
CString szType;
int nSel;
int nIndex;
// Setup pointers to controls
CComboBox *pCompCombo = (CComboBox *)GetDlgItem(IDC_COMP_COMBO);
CComboBox *pJPEGResCombo = (CComboBox *)GetDlgItem(IDC_COMP_JPEGRES);
CComboBox *pJPEGCompCombo = (CComboBox *)GetDlgItem(IDC_COMP_JPEGCOMP);
CStatic *pJPEGResLabel = (CStatic *)GetDlgItem(IDC_LBL_JPEGRES);
CStatic *pJPEGCompLabel = (CStatic *)GetDlgItem(IDC_LBL_JPEGCOMP);
// Fill in Compression combo box
if (pCompCombo == NULL)
return TRUE;
pCompCombo->ResetContent();
szType.LoadString(IDS_COMP_NONE);
nSel = nIndex = pCompCombo->AddString(szType);
szType.LoadString(IDS_COMP_JPEG);
nIndex = pCompCombo->AddString(szType);
if (m_nCompType == FIO_TJPEG)
{
nSel = nIndex;
pJPEGCompCombo->EnableWindow(TRUE); // Enable JPEG Options
pJPEGResCombo->EnableWindow(TRUE); // Enable JPEG Options
pJPEGResLabel->EnableWindow(TRUE); // Enable JPEG Options
pJPEGCompLabel->EnableWindow(TRUE); // Enable JPEG Options
}
else
{ // must be uncompressed
pJPEGCompCombo->EnableWindow(FALSE); // Disable JPEG Options
pJPEGResCombo->EnableWindow(FALSE); // Disable JPEG Options
pJPEGResLabel->EnableWindow(FALSE); // Disable JPEG Options
pJPEGCompLabel->EnableWindow(FALSE); // Disable JPEG Options
}
pCompCombo->SetCurSel(nSel); // Set selection to be none or JPEG
// Fill in JPEG combo boxes
if (pJPEGResCombo == NULL)
return TRUE;
pJPEGResCombo->ResetContent();
// Do JPEG Resolution Option
szType.LoadString(IDS_JPEG_LOWRES);
nIndex = pJPEGResCombo->AddString(szType);
if ((m_nCompOpts == MakeJPEGInfo(RES_HI,LUM_HI,CHROM_HI)) ||
(m_nCompOpts == MakeJPEGInfo(RES_HI,LUM_MD,CHROM_MD)) ||
(m_nCompOpts == MakeJPEGInfo(RES_HI,LUM_LO,CHROM_LO)))
nSel = nIndex;
szType.LoadString(IDS_JPEG_MEDRES);
nIndex = pJPEGResCombo->AddString(szType);
if ((m_nCompOpts == MakeJPEGInfo(RES_MD,LUM_HI,CHROM_HI)) ||
(m_nCompOpts == MakeJPEGInfo(RES_MD,LUM_MD,CHROM_MD)) ||
(m_nCompOpts == MakeJPEGInfo(RES_MD,LUM_LO,CHROM_LO)))
nSel = nIndex;
szType.LoadString(IDS_JPEG_HIGHRES);
nIndex = pJPEGResCombo->AddString(szType);
if ((m_nCompOpts == MakeJPEGInfo(RES_LO,LUM_HI,CHROM_HI)) ||
(m_nCompOpts == MakeJPEGInfo(RES_LO,LUM_MD,CHROM_MD)) ||
(m_nCompOpts == MakeJPEGInfo(RES_LO,LUM_LO,CHROM_LO)))
nSel = nIndex;
pJPEGResCombo->SetCurSel(nSel); // Set selection to be LO, MED, HI
// Do JPEG Compression Option
if (pJPEGCompCombo == NULL)
return TRUE;
pJPEGCompCombo->ResetContent();
szType.LoadString(IDS_JPEG_LOWRES);
nIndex = pJPEGCompCombo->AddString(szType);
if ((m_nCompOpts == MakeJPEGInfo(RES_HI,LUM_HI,CHROM_HI)) ||
(m_nCompOpts == MakeJPEGInfo(RES_MD,LUM_HI,CHROM_HI)) ||
(m_nCompOpts == MakeJPEGInfo(RES_LO,LUM_HI,CHROM_HI)))
nSel = nIndex;
szType.LoadString(IDS_JPEG_MEDRES);
nIndex = pJPEGCompCombo->AddString(szType);
if ((m_nCompOpts == MakeJPEGInfo(RES_HI,LUM_MD,CHROM_MD)) ||
(m_nCompOpts == MakeJPEGInfo(RES_MD,LUM_MD,CHROM_MD)) ||
(m_nCompOpts == MakeJPEGInfo(RES_LO,LUM_MD,CHROM_MD)))
nSel = nIndex;
szType.LoadString(IDS_JPEG_HIGHRES);
nIndex = pJPEGCompCombo->AddString(szType);
if ((m_nCompOpts == MakeJPEGInfo(RES_HI,LUM_LO,CHROM_LO)) ||
(m_nCompOpts == MakeJPEGInfo(RES_MD,LUM_LO,CHROM_LO)) ||
(m_nCompOpts == MakeJPEGInfo(RES_LO,LUM_LO,CHROM_LO)))
nSel = nIndex;
pJPEGCompCombo->SetCurSel(nSel); // Set selection to be LO, MED, HI
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CImageBW::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: Add extra initialization here
CString szType;
int nIndex;
int nSel;
// Setup pointers to controls
CButton *pReversedBit =(CButton *)GetDlgItem(IDC_COMP_RBO);
CComboBox *pCombo = (CComboBox *)GetDlgItem(IDC_COMP_COMBO);
// Fill in Compression combo box
if (pCombo == NULL)
return TRUE;
pCombo->ResetContent();
// Uncompressed
szType.LoadString(IDS_COMP_NONE);
nSel = nIndex = pCombo->AddString(szType);
if (m_nCompType == FIO_0D)
{
pReversedBit->ShowWindow(SW_HIDE); // Disable the Bit Order Check Box
nSel = nIndex;
}
// Group3 1D
szType.LoadString(IDS_COMP_GROUP3); // Add FAX to list box
nIndex = pCombo->AddString(szType);
szType.LoadString(IDS_COMP_HUFFMAN); // Add Mod HUFF to list box
nIndex = pCombo->AddString(szType);
if (m_nCompType == FIO_1D)
{
// We know its Group3, see if FAX or Mod HUFFMAN encoding
if (m_nCompOpts & FIO_EOL) // Only FAX uses EOLS
{
nSel = nIndex - 1;
}
else // must be Modified HUFFMAN
{
nSel = nIndex;
}
pReversedBit->ShowWindow(SW_SHOW); // Enable the Bit Order Check Box
}
// Group4 2D
szType.LoadString(IDS_COMP_GROUP4);
nIndex = pCombo->AddString(szType);
if (m_nCompType == FIO_2D)
{
nSel = nIndex;
pReversedBit->ShowWindow(SW_SHOW); // Enable the Bit Order Check Box
}
// TIFF Packbits
szType.LoadString(IDS_COMP_PACKED);
nIndex = pCombo->AddString(szType);
if (m_nCompType == FIO_PACKED)
{
pReversedBit->ShowWindow(SW_HIDE); // Disable the Bit Order Check Box
nSel = nIndex;
}
pCombo->SetCurSel(nSel); // Set selection
// See if reverse bit order is set
if (m_nCompOpts & FIO_COMPRESSED_LTR)
{
pReversedBit->SetCheck(1); // reverse bit order (LSB to MSB)
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CImageColor256::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: Add extra initialization here
// NOTHING TO DO HERE!!!!!
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CImageGray256::OnSelchangeCompCombo()
{
// TODO: Add your control notification handler code here
int nIndex;
CString szType;
CString szResSelected;
CString szCompSelected;
CComboBox *pJPEGResCombo = (CComboBox *)GetDlgItem(IDC_COMP_JPEGRES);
CComboBox *pJPEGCompCombo = (CComboBox *)GetDlgItem(IDC_COMP_JPEGCOMP);
CStatic *pJPEGResLabel = (CStatic *)GetDlgItem(IDC_LBL_JPEGRES);
CStatic *pJPEGCompLabel = (CStatic *)GetDlgItem(IDC_LBL_JPEGCOMP);
CComboBox *pTypes = (CComboBox *)GetDlgItem(IDC_COMP_COMBO);
nIndex = pTypes->GetCurSel();
pTypes->GetLBText(nIndex, szCompSelected); // get string from List Box
szType.LoadString(IDS_COMP_JPEG); // get string resource
if (szCompSelected == szType) // is JPEG selected?
{ // yes, enable the JPEG options
m_nCompType = FIO_TJPEG;
pJPEGCompCombo->EnableWindow(TRUE); // Enable JPEG Options
pJPEGResCombo->EnableWindow(TRUE); // Enable JPEG Options
pJPEGResLabel->EnableWindow(TRUE); // Enable JPEG Options
pJPEGCompLabel->EnableWindow(TRUE); // Enable JPEG Options
// Init the JPEG Options
nIndex = pJPEGResCombo->GetCurSel();
pJPEGResCombo->GetLBText(nIndex, szResSelected); // get string from List Box
nIndex = pJPEGCompCombo->GetCurSel();
pJPEGCompCombo->GetLBText(nIndex, szCompSelected); // get string from List Box
m_nCompOpts = CImageCompSheet::GetJPEGOptions(szResSelected, szCompSelected);
}
else
{ // no, disable the JPEG options
m_nCompType = FIO_0D;
m_nCompOpts = 0;
pJPEGCompCombo->EnableWindow(FALSE); // Disable JPEG Options
pJPEGResCombo->EnableWindow(FALSE); // Disable JPEG Options
pJPEGResLabel->EnableWindow(FALSE); // Disable JPEG Options
pJPEGCompLabel->EnableWindow(FALSE); // Disable JPEG Options
}
}
void CImage24BitRGB::OnSelchangeCompCombo()
{
// TODO: Add your control notification handler code here
int nIndex;
CString szType;
CString szResSelected;
CString szCompSelected;
CComboBox *pJPEGResCombo = (CComboBox *)GetDlgItem(IDC_COMP_JPEGRES);
CComboBox *pJPEGCompCombo = (CComboBox *)GetDlgItem(IDC_COMP_JPEGCOMP);
CStatic *pJPEGResLabel = (CStatic *)GetDlgItem(IDC_LBL_JPEGRES);
CStatic *pJPEGCompLabel = (CStatic *)GetDlgItem(IDC_LBL_JPEGCOMP);
CComboBox *pTypes = (CComboBox *)GetDlgItem(IDC_COMP_COMBO);
nIndex = pTypes->GetCurSel();
pTypes->GetLBText(nIndex, szCompSelected); // get string from List Box
szType.LoadString(IDS_COMP_JPEG); // get string resource
if (szCompSelected == szType) // is JPEG selected?
{ // yes, enable the JPEG options
m_nCompType = FIO_TJPEG;
pJPEGCompCombo->EnableWindow(TRUE); // Enable JPEG Options
pJPEGResCombo->EnableWindow(TRUE); // Enable JPEG Options
pJPEGResLabel->EnableWindow(TRUE); // Enable JPEG Options
pJPEGCompLabel->EnableWindow(TRUE); // Enable JPEG Options
// Init the JPEG Options
nIndex = pJPEGResCombo->GetCurSel();
pJPEGResCombo->GetLBText(nIndex, szResSelected); // get string from List Box
nIndex = pJPEGCompCombo->GetCurSel();
pJPEGCompCombo->GetLBText(nIndex, szCompSelected); // get string from List Box
m_nCompOpts = CImageCompSheet::GetJPEGOptions(szResSelected, szCompSelected);
}
else
{ // no, disable the JPEG options
m_nCompType = FIO_0D;
m_nCompOpts = 0;
pJPEGCompCombo->EnableWindow(FALSE); // Disable JPEG Options
pJPEGResCombo->EnableWindow(FALSE); // Disable JPEG Options
pJPEGResLabel->EnableWindow(FALSE); // Disable JPEG Options
pJPEGCompLabel->EnableWindow(FALSE); // Disable JPEG Options
}
}
void CImageBW::OnSelchangeCompCombo()
{
// TODO: Add your control notification handler code here
CString szTypeFax;
CString szTypeModHuff;
CString szTypeG42D;
CString szTypeTIFFPB;
CString szTypeUnComp;
CString szTypeSelected;
// Setup pointers to controls
CButton *pReversedBit = (CButton *)GetDlgItem(IDC_COMP_RBO);
CComboBox *pTypes = (CComboBox *)GetDlgItem(IDC_COMP_COMBO);
int nIndex = pTypes->GetCurSel();
pTypes->GetLBText(nIndex, szTypeSelected); // get string from List Box
// get string resources
szTypeFax.LoadString(IDS_COMP_GROUP3);
szTypeModHuff.LoadString(IDS_COMP_HUFFMAN);
szTypeG42D.LoadString(IDS_COMP_GROUP4);
szTypeUnComp.LoadString(IDS_COMP_NONE);
szTypeTIFFPB.LoadString(IDS_COMP_PACKED);
// Find the comp type selected
if (szTypeSelected == szTypeFax)
{ // yes, set and enable the compression options (so far only bit order)
m_nCompType = FIO_1D;
m_nCompOpts = FIO_EOL | FIO_PREFIXED_EOL;
if (pReversedBit->GetCheck()) m_nCompOpts |= FIO_COMPRESSED_LTR; // Query check box
pReversedBit->ShowWindow(SW_SHOW); // Enable check box
}
else if (szTypeSelected == szTypeModHuff)
{
m_nCompType = FIO_1D;
m_nCompOpts = 0; // no opts for Mod Huff
if (pReversedBit->GetCheck()) m_nCompOpts |= FIO_COMPRESSED_LTR; // Query check box
pReversedBit->ShowWindow(SW_SHOW); // Enable check box
}
else if (szTypeSelected == szTypeG42D)
{ // yes, enable the compression options (so far only bit order)
m_nCompType = FIO_2D;
m_nCompOpts = FIO_PACKED_LINES;
if (pReversedBit->GetCheck()) m_nCompOpts |= FIO_COMPRESSED_LTR; // Query check box
pReversedBit->ShowWindow(SW_SHOW); // Enable check box
}
else if (szTypeSelected == szTypeTIFFPB)
{
m_nCompType = FIO_PACKED;
m_nCompOpts = 0;
pReversedBit->ShowWindow(SW_HIDE); // // Disable check box
}
else if (szTypeSelected == szTypeUnComp)
{
m_nCompType = FIO_0D;
m_nCompOpts = 0;
pReversedBit->ShowWindow(SW_HIDE); // // Disable check box
}
}
void CImageGray256::OnSelchangeCompJpegcomp()
{
// TODO: Add your control notification handler code here
int nIndex;
CString szResSelected;
CString szCompSelected;
CComboBox *pJPEGResCombo = (CComboBox *)GetDlgItem(IDC_COMP_JPEGRES);
CComboBox *pJPEGCompCombo = (CComboBox *)GetDlgItem(IDC_COMP_JPEGCOMP);
// Init the JPEG Options
nIndex = pJPEGResCombo->GetCurSel();
pJPEGResCombo->GetLBText(nIndex, szResSelected); // get string from List Box
nIndex = pJPEGCompCombo->GetCurSel();
pJPEGCompCombo->GetLBText(nIndex, szCompSelected); // get string from List Box
m_nCompOpts = CImageCompSheet::GetJPEGOptions(szResSelected, szCompSelected);
}
void CImageGray256::OnSelchangeCompJpegres()
{
// TODO: Add your control notification handler code here
int nIndex;
CString szResSelected;
CString szCompSelected;
CComboBox *pJPEGResCombo = (CComboBox *)GetDlgItem(IDC_COMP_JPEGRES);
CComboBox *pJPEGCompCombo = (CComboBox *)GetDlgItem(IDC_COMP_JPEGCOMP);
// Init the JPEG Options
nIndex = pJPEGResCombo->GetCurSel();
pJPEGResCombo->GetLBText(nIndex, szResSelected); // get string from List Box
nIndex = pJPEGCompCombo->GetCurSel();
pJPEGCompCombo->GetLBText(nIndex, szCompSelected); // get string from List Box
m_nCompOpts = CImageCompSheet::GetJPEGOptions(szResSelected, szCompSelected);
}
void CImage24BitRGB::OnSelchangeCompJpegcomp()
{
// TODO: Add your control notification handler code here
int nIndex;
CString szResSelected;
CString szCompSelected;
CComboBox *pJPEGResCombo = (CComboBox *)GetDlgItem(IDC_COMP_JPEGRES);
CComboBox *pJPEGCompCombo = (CComboBox *)GetDlgItem(IDC_COMP_JPEGCOMP);
// Init the JPEG Options
nIndex = pJPEGResCombo->GetCurSel();
pJPEGResCombo->GetLBText(nIndex, szResSelected); // get string from List Box
nIndex = pJPEGCompCombo->GetCurSel();
pJPEGCompCombo->GetLBText(nIndex, szCompSelected); // get string from List Box
m_nCompOpts = CImageCompSheet::GetJPEGOptions(szResSelected, szCompSelected);
}
void CImage24BitRGB::OnSelchangeCompJpegres()
{
// TODO: Add your control notification handler code here
int nIndex;
CString szResSelected;
CString szCompSelected;
CComboBox *pJPEGResCombo = (CComboBox *)GetDlgItem(IDC_COMP_JPEGRES);
CComboBox *pJPEGCompCombo = (CComboBox *)GetDlgItem(IDC_COMP_JPEGCOMP);
// Init the JPEG Options
nIndex = pJPEGResCombo->GetCurSel();
pJPEGResCombo->GetLBText(nIndex, szResSelected); // get string from List Box
nIndex = pJPEGCompCombo->GetCurSel();
pJPEGCompCombo->GetLBText(nIndex, szCompSelected); // get string from List Box
m_nCompOpts = CImageCompSheet::GetJPEGOptions(szResSelected, szCompSelected);
}
int CImageCompSheet::GetJPEGOptions(CString &szJPEGRes, CString &szJPEGComp)
{
CString szJPEGType1;
CString szJPEGType2;
CString szJPEGType3;
// Cant do a switch on a CString, so I'll use Ints
int nJPEGRes;
int nJPEGComp;
int nJPEGOptions;
// Init the JPEG options
szJPEGType1.LoadString(IDS_JPEG_HIGHRES); // get string resource
szJPEGType2.LoadString(IDS_JPEG_MEDRES); // get string resource
szJPEGType3.LoadString(IDS_JPEG_LOWRES); // get string resource
if (szJPEGRes == szJPEGType1)
nJPEGRes = 1;
else if (szJPEGRes == szJPEGType2)
nJPEGRes = 2;
else if (szJPEGRes == szJPEGType3)
nJPEGRes = 3;
if (szJPEGComp == szJPEGType1)
nJPEGComp = 1;
else if (szJPEGComp == szJPEGType2)
nJPEGComp = 2;
else if (szJPEGComp == szJPEGType3)
nJPEGComp = 3;
switch(nJPEGRes)
{
case 1: // LOW Res
switch(nJPEGComp)
{
case 1: // LOW Comp
nJPEGOptions = MakeJPEGInfo(RES_LO,LUM_LO,CHROM_LO);
break;
case 2: // MED Comp
nJPEGOptions = MakeJPEGInfo(RES_LO,LUM_MD,CHROM_MD);
break;
case 3: // HI Comp
nJPEGOptions = MakeJPEGInfo(RES_LO,LUM_HI,CHROM_HI);
break;
}
break;
case 2: // MED Res
switch(nJPEGComp)
{
case 1: // LOW Comp
nJPEGOptions = MakeJPEGInfo(RES_MD,LUM_LO,CHROM_LO);
break;
case 2: // MED Comp
nJPEGOptions = MakeJPEGInfo(RES_MD,LUM_MD,CHROM_MD);
break;
case 3: // HI Comp
nJPEGOptions = MakeJPEGInfo(RES_MD,LUM_HI,CHROM_HI);
break;
}
break;
case 3: // HI Res
switch(nJPEGComp)
{
case 1: // LOW Comp
nJPEGOptions = MakeJPEGInfo(RES_HI,LUM_LO,CHROM_LO);
break;
case 2: // MED Comp
nJPEGOptions = MakeJPEGInfo(RES_HI,LUM_MD,CHROM_MD);
break;
case 3: // HI Comp
nJPEGOptions = MakeJPEGInfo(RES_HI,LUM_HI,CHROM_HI);
break;
}
break;
}
return nJPEGOptions;
}
void CImageBW::OnCompRbo()
{
// TODO: Add your control notification handler code here
// Setup pointers to controls
CButton *pReversedBit = (CButton *)GetDlgItem(IDC_COMP_RBO);
if (pReversedBit->GetCheck())
m_nCompOpts |= FIO_COMPRESSED_LTR; // Set rev bit order
else
m_nCompOpts &= ~FIO_COMPRESSED_LTR; // Clear rev bit order
}
void CImage24BitRGB::OnContextMenu(CWnd* pWnd, CPoint point)
{
// All tabs have same ID so can't give tab specific help
if (::GetDlgCtrlID(pWnd->GetSafeHwnd()) == AFX_IDC_TAB_CONTROL)
return;
::WinHelp (pWnd->GetSafeHwnd(),"wangocx.hlp", HELP_CONTEXTMENU,
(DWORD)(LPVOID)aMenuHelpIDs);
return;
}
BOOL CImage24BitRGB::OnHelpInfo(HELPINFO* pHelpInfo)
{
// TODO: Add your message handler code here and/or call default
// All tabs have same ID so can't give tab specific help
if (pHelpInfo->iCtrlId == AFX_IDC_TAB_CONTROL)
return 0L;
if (pHelpInfo->iContextType == HELPINFO_WINDOW) // must be for a control
{
::WinHelp ((HWND)pHelpInfo->hItemHandle, "wangocx.hlp",
HELP_WM_HELP,
(DWORD)(LPVOID)aMenuHelpIDs);
}
return 1L;
}
void CImageColor256::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: Add your message handler code here
// All tabs have same ID so can't give tab specific help
if (::GetDlgCtrlID(pWnd->GetSafeHwnd()) == AFX_IDC_TAB_CONTROL)
return;
::WinHelp (pWnd->GetSafeHwnd(),"wangocx.hlp", HELP_CONTEXTMENU,
(DWORD)(LPVOID)aMenuHelpIDs);
return;
}
BOOL CImageColor256::OnHelpInfo(HELPINFO* pHelpInfo)
{
// TODO: Add your message handler code here and/or call default
// All tabs have same ID so can't give tab specific help
if (pHelpInfo->iCtrlId == AFX_IDC_TAB_CONTROL)
return 0L;
if (pHelpInfo->iContextType == HELPINFO_WINDOW) // must be for a control
{
::WinHelp ((HWND)pHelpInfo->hItemHandle, "wangocx.hlp",
HELP_WM_HELP,
(DWORD)(LPVOID)aMenuHelpIDs);
}
return 1L;
}
void CImageGray256::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: Add your message handler code here
// All tabs have same ID so can't give tab specific help
if (::GetDlgCtrlID(pWnd->GetSafeHwnd()) == AFX_IDC_TAB_CONTROL)
return;
::WinHelp (pWnd->GetSafeHwnd(),"wangocx.hlp", HELP_CONTEXTMENU,
(DWORD)(LPVOID)aMenuHelpIDs);
return;
}
BOOL CImageGray256::OnHelpInfo(HELPINFO* pHelpInfo)
{
// TODO: Add your message handler code here and/or call default
// All tabs have same ID so can't give tab specific help
if (pHelpInfo->iCtrlId == AFX_IDC_TAB_CONTROL)
return 0L;
if (pHelpInfo->iContextType == HELPINFO_WINDOW) // must be for a control
{
::WinHelp ((HWND)pHelpInfo->hItemHandle, "wangocx.hlp",
HELP_WM_HELP,
(DWORD)(LPVOID)aMenuHelpIDs);
}
return 1L;
}
void CImageGray16::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: Add your message handler code here
// All tabs have same ID so can't give tab specific help
if (::GetDlgCtrlID(pWnd->GetSafeHwnd()) == AFX_IDC_TAB_CONTROL)
return;
::WinHelp (pWnd->GetSafeHwnd(),"wangocx.hlp", HELP_CONTEXTMENU,
(DWORD)(LPVOID)aMenuHelpIDs);
return;
}
BOOL CImageGray16::OnHelpInfo(HELPINFO* pHelpInfo)
{
// TODO: Add your message handler code here and/or call default
// All tabs have same ID so can't give tab specific help
if (pHelpInfo->iCtrlId == AFX_IDC_TAB_CONTROL)
return 0L;
if (pHelpInfo->iContextType == HELPINFO_WINDOW) // must be for a control
{
::WinHelp ((HWND)pHelpInfo->hItemHandle, "wangocx.hlp",
HELP_WM_HELP,
(DWORD)(LPVOID)aMenuHelpIDs);
}
return 1L;
}
void CImageBW::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: Add your message handler code here
// All tabs have same ID so can't give tab specific help
if (::GetDlgCtrlID(pWnd->GetSafeHwnd()) == AFX_IDC_TAB_CONTROL)
return;
::WinHelp (pWnd->GetSafeHwnd(),"wangocx.hlp", HELP_CONTEXTMENU,
(DWORD)(LPVOID)aMenuHelpIDs);
return;
}
BOOL CImageBW::OnHelpInfo(HELPINFO* pHelpInfo)
{
// TODO: Add your message handler code here and/or call default
// All tabs have same ID so can't give tab specific help
if (pHelpInfo->iCtrlId == AFX_IDC_TAB_CONTROL)
return 0L;
if (pHelpInfo->iContextType == HELPINFO_WINDOW) // must be for a control
{
::WinHelp ((HWND)pHelpInfo->hItemHandle, "wangocx.hlp",
HELP_WM_HELP,
(DWORD)(LPVOID)aMenuHelpIDs);
}
return 1L;
}