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.
293 lines
9.3 KiB
293 lines
9.3 KiB
//=============================================================================
|
|
// (c) Copyright Wang Laboratories, Inc. 1995 All rights reserved.
|
|
//-----------------------------------------------------------------------------
|
|
// Project: Norway - Image Editor
|
|
//
|
|
// Component: CPageRangeDlg
|
|
//
|
|
// File Name: pagerang.cpp
|
|
//
|
|
// Class: CPageRangeDlg
|
|
//
|
|
// Functions:
|
|
//-----------------------------------------------------------------------------
|
|
// Maintenance Log:
|
|
/*
|
|
$Header: S:\norway\iedit95\pagerang.cpv 1.9 05 Feb 1996 13:38:42 GMP $
|
|
$Log: S:\norway\iedit95\pagerang.cpv $
|
|
|
|
Rev 1.9 05 Feb 1996 13:38:42 GMP
|
|
nt changes.
|
|
|
|
Rev 1.8 06 Sep 1995 10:23:44 MMB
|
|
no message beeps
|
|
|
|
Rev 1.7 25 Aug 1995 14:48:16 MMB
|
|
bug fixes
|
|
|
|
Rev 1.6 22 Aug 1995 14:08:34 MMB
|
|
fixed numerous bugs
|
|
|
|
Rev 1.5 08 Aug 1995 11:24:56 MMB
|
|
added context help & whats this help
|
|
|
|
Rev 1.4 26 Jul 1995 10:21:18 MMB
|
|
fix bug for Alt +F and Alt+T keys
|
|
|
|
Rev 1.3 30 Jun 1995 09:27:20 MMB
|
|
fixed bug with tab not working and tab order not correct
|
|
|
|
Rev 1.2 06 Jun 1995 11:35:18 MMB
|
|
added code to disable the OK button on invalid input
|
|
|
|
Rev 1.1 05 Jun 1995 15:56:44 MMB
|
|
added code to the dlg box
|
|
|
|
Rev 1.0 31 May 1995 09:28:30 MMB
|
|
Initial entry
|
|
*/
|
|
|
|
//=============================================================================
|
|
|
|
// ----------------------------> Includes <-------------------------------
|
|
#include "stdafx.h"
|
|
#include <afxpriv.h>
|
|
#include "iedit.h"
|
|
#include "pagerang.h"
|
|
// includes for the help system
|
|
#include "helpids.h"
|
|
#include "iedithm.h"
|
|
|
|
// ----------------------------> Globals <-------------------------------
|
|
#ifdef _DEBUG
|
|
#undef THIS_FILE
|
|
static char BASED_CODE THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
static const DWORD PageRangeDlgHelpIDs [] =
|
|
{
|
|
IDC_ALLPAGES, HIDC_ALLPAGES,
|
|
IDC_RANGE, HIDC_RANGE,
|
|
IDC_FROM_STATIC, HIDC_FROM_STATIC,
|
|
IDC_TO_STATIC, HIDC_TO_STATIC,
|
|
IDC_FROMPAGE, HIDC_FROMPAGE,
|
|
IDC_TOPAGE, HIDC_TOPAGE,
|
|
IDC_RANGEOPTIONS_TEXT, HIDC_RANGEOPTIONS_TEXT,
|
|
IDC_INSERTORAPPENDPAGES_INFO, HIDC_INSERTORAPPENDPAGES_INFO,
|
|
IDOK, HIDC_RANGEDLG_OK,
|
|
IDCANCEL, HIDC_RANGEDLG_CANCEL,
|
|
0,0
|
|
};
|
|
|
|
// ---------------------------> Message Maps <----------------------------
|
|
BEGIN_MESSAGE_MAP(CPageRangeDlg, CDialog)
|
|
//{{AFX_MSG_MAP(CPageRangeDlg)
|
|
ON_BN_CLICKED(IDC_ALLPAGES, OnAllpages)
|
|
ON_BN_CLICKED(IDC_RANGE, OnRange)
|
|
//}}AFX_MSG_MAP
|
|
ON_MESSAGE (WM_HELP, OnHelp)
|
|
ON_MESSAGE (WM_COMMANDHELP, OnCommandHelp)
|
|
ON_MESSAGE (WM_CONTEXTMENU, OnContextMenu)
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
//=============================================================================
|
|
// Function: CPageRangeDlg ()
|
|
// CPageRangeDlg class construction
|
|
//-----------------------------------------------------------------------------
|
|
CPageRangeDlg::CPageRangeDlg(long lMaxPages, CWnd* pParent /*=NULL*/)
|
|
: CDialog(CPageRangeDlg::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CPageRangeDlg)
|
|
m_FromPage = 0;
|
|
m_ToPage = 0;
|
|
//}}AFX_DATA_INIT
|
|
m_lMaxPages = lMaxPages;
|
|
m_bInInit = FALSE;
|
|
}
|
|
|
|
|
|
//=============================================================================
|
|
// Function: DoDataExchange(CDataExchange* pDX)
|
|
//-----------------------------------------------------------------------------
|
|
void CPageRangeDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CPageRangeDlg)
|
|
DDX_Text(pDX, IDC_FROMPAGE, m_FromPage);
|
|
DDX_Text(pDX, IDC_TOPAGE, m_ToPage);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
|
|
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
// CPageRangeDlg message handlers
|
|
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
|
|
//=============================================================================
|
|
// Function: OnOK()
|
|
//-----------------------------------------------------------------------------
|
|
void CPageRangeDlg::OnOK()
|
|
{
|
|
if (IsDlgButtonChecked (IDC_RANGE))
|
|
{
|
|
UINT cErr = 0;
|
|
|
|
char szTmp[10];
|
|
GetDlgItemText (IDC_FROMPAGE, szTmp, 10);
|
|
m_FromPage = atoi (szTmp);
|
|
|
|
GetDlgItemText (IDC_TOPAGE, szTmp, 10);
|
|
m_ToPage = atoi (szTmp);
|
|
|
|
if (m_FromPage == 0 || m_FromPage > m_lMaxPages)
|
|
cErr = IDC_FROMPAGE;
|
|
else if (m_ToPage == 0 || m_ToPage > m_lMaxPages)
|
|
cErr = IDC_TOPAGE;
|
|
|
|
if (cErr != 0)
|
|
{
|
|
// to do : post a message box warning the user of faulty input
|
|
char szTmp [10];
|
|
_itoa (m_lMaxPages, szTmp, 10);
|
|
CString szMsg;
|
|
AfxFormatString2 (szMsg, IDS_E_PAGERANGE_SHOWVALIDRANGE, "1" ,szTmp);
|
|
AfxMessageBox (szMsg, MB_OK | MB_ICONSTOP);
|
|
CEdit* pWnd = (CEdit*)GetDlgItem (cErr);
|
|
pWnd->SetFocus ();
|
|
pWnd->SetSel (0, -1);
|
|
return;
|
|
}
|
|
|
|
if (m_FromPage > m_ToPage)
|
|
{
|
|
AfxMessageBox (IDS_E_PAGERANGE_WRONGRANGE, MB_OK | MB_ICONSTOP);
|
|
CEdit* pWnd = (CEdit*)GetDlgItem (IDC_FROMPAGE);
|
|
pWnd->SetFocus ();
|
|
pWnd->SetSel (0, -1);
|
|
return;
|
|
}
|
|
}
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
//=============================================================================
|
|
// Function: OnAllpages()
|
|
//-----------------------------------------------------------------------------
|
|
void CPageRangeDlg::OnAllpages()
|
|
{
|
|
CWnd* pWnd = GetDlgItem (IDC_FROMPAGE);
|
|
pWnd->SetWindowText (_T("1"));
|
|
pWnd->EnableWindow (FALSE);
|
|
|
|
pWnd = GetDlgItem (IDC_TOPAGE);
|
|
char szTmp[10];
|
|
_ltoa (m_lMaxPages, szTmp, 10);
|
|
pWnd->SetWindowText (szTmp);
|
|
pWnd->EnableWindow (FALSE);
|
|
(GetDlgItem (IDC_TO_STATIC))->EnableWindow (FALSE);
|
|
(GetDlgItem (IDC_FROM_STATIC))->EnableWindow (FALSE);
|
|
|
|
m_FromPage = 1; m_ToPage = m_lMaxPages;
|
|
|
|
(GetDlgItem (IDOK))->EnableWindow (TRUE);
|
|
}
|
|
|
|
//=============================================================================
|
|
// Function: OnRange()
|
|
//-----------------------------------------------------------------------------
|
|
void CPageRangeDlg::OnRange()
|
|
{
|
|
CWnd* pWnd = GetDlgItem (IDC_FROMPAGE);
|
|
pWnd->EnableWindow (TRUE);
|
|
|
|
pWnd = GetDlgItem (IDC_TOPAGE);
|
|
pWnd->EnableWindow (TRUE);
|
|
(GetDlgItem (IDC_TO_STATIC))->EnableWindow (TRUE);
|
|
(GetDlgItem (IDC_FROM_STATIC))->EnableWindow (TRUE);
|
|
}
|
|
|
|
//=============================================================================
|
|
// Function: SetDialogTitle (CString& szDlgTitle)
|
|
//-----------------------------------------------------------------------------
|
|
void CPageRangeDlg::SetDialogTitle (CString& szDlgTitle)
|
|
{
|
|
m_szTitle = szDlgTitle;
|
|
}
|
|
|
|
//=============================================================================
|
|
// Function: SetInfoText (CString& szInfoTxt)
|
|
//-----------------------------------------------------------------------------
|
|
void CPageRangeDlg::SetInfoText (CString& szInfoTxt)
|
|
{
|
|
m_szInfoText = szInfoTxt;
|
|
}
|
|
|
|
//=============================================================================
|
|
// Function: OnInitDialog()
|
|
//-----------------------------------------------------------------------------
|
|
BOOL CPageRangeDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
m_bInInit = TRUE;
|
|
SetWindowText (m_szTitle);
|
|
CWnd* pWnd = GetDlgItem (IDC_INSERTORAPPENDPAGES_INFO);
|
|
pWnd->SetWindowText (m_szInfoText);
|
|
|
|
m_NumOnly1.SubclassDlgItem (IDC_FROMPAGE, this);
|
|
m_NumOnly2.SubclassDlgItem (IDC_TOPAGE, this);
|
|
|
|
OnAllpages ();
|
|
|
|
CheckRadioButton (IDC_ALLPAGES, IDC_RANGE, IDC_ALLPAGES);
|
|
|
|
m_bInInit = FALSE;
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
//=============================================================================
|
|
// Function: OnContextMenu ()
|
|
//-----------------------------------------------------------------------------
|
|
afx_msg LRESULT CPageRangeDlg::OnContextMenu (WPARAM wParam, LPARAM lParam)
|
|
{
|
|
if (::GetDlgCtrlID ((HWND)wParam) == AFX_IDC_TAB_CONTROL)
|
|
return 0L;
|
|
|
|
return ::WinHelp ((HWND)wParam, "WANGIMG.HLP", HELP_CONTEXTMENU,
|
|
(DWORD)(LPVOID)PageRangeDlgHelpIDs);
|
|
}
|
|
|
|
//=============================================================================
|
|
// Function: OnHelp (WPARAM wParam, LPARAM lParam)
|
|
//-----------------------------------------------------------------------------
|
|
afx_msg LRESULT CPageRangeDlg::OnHelp (WPARAM wParam, LPARAM lParam)
|
|
{
|
|
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, "WANGIMG.HLP", HELP_WM_HELP,
|
|
(DWORD)(LPVOID)PageRangeDlgHelpIDs);
|
|
}
|
|
return 1L;
|
|
}
|
|
|
|
//=============================================================================
|
|
// Function: OnCommandHelp(WPARAM, LPARAM)
|
|
//-----------------------------------------------------------------------------
|
|
afx_msg LRESULT CPageRangeDlg::OnCommandHelp(WPARAM, LPARAM)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|