|
|
#include "stdafx.h"
#include "global.h"
#include "pbrush.h"
#include "pbrusdoc.h"
#include "pbrusfrm.h"
#include "pbrusvw.h"
#include "docking.h"
#include "minifwnd.h"
#include "bmobject.h"
#include "colorsrc.h"
#include "imgsuprt.h"
#include "imgwnd.h"
#include "cmpmsg.h"
#include "imgdlgs.h"
#include "ferr.h"
#include <colordlg.h>
#include <direct.h>
#ifdef _DEBUG
#undef THIS_FILE
static CHAR BASED_CODE THIS_FILE[] = __FILE__; #endif
#include "memtrace.h"
CSize NEAR g_defaultTileGridSize(16, 15); BOOL NEAR g_bDefaultTileGrid = FALSE;
BEGIN_MESSAGE_MAP(C3dDialog, CDialog) ON_COMMAND(IDOK, OnRobustOK) ON_WM_CTLCOLOR() END_MESSAGE_MAP()
C3dDialog::C3dDialog(LPCTSTR lpszTemplateName, CWnd* pParentWnd) : CDialog(lpszTemplateName, pParentWnd) { }
C3dDialog::C3dDialog(UINT nTemplateID, CWnd* pParentWnd) : CDialog(nTemplateID, pParentWnd) { }
BOOL C3dDialog::OnInitDialog() { // automatically center the dialog relative to it's parent
CenterWindow(CmpCenterParent());
return CDialog::OnInitDialog(); }
void C3dDialog::OnRobustOK() { OnOK(); // ok to call "real" OnOK
}
HBRUSH C3dDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbrush = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
return hbrush; }
BEGIN_MESSAGE_MAP(CImgGridDlg, C3dDialog) ON_BN_CLICKED(IDC_PIXELGRID, OnClickPixelGrid) ON_BN_CLICKED(IDC_TILEGRID, OnClickTileGrid) END_MESSAGE_MAP()
CImgGridDlg::CImgGridDlg() : C3dDialog(IDD_IMGGRIDOPT) { m_bPixelGrid = theApp.m_bShowGrid; m_bTileGrid = g_bDefaultTileGrid; m_nWidth = g_defaultTileGridSize.cx; m_nHeight = g_defaultTileGridSize.cy; }
BOOL CImgGridDlg::OnInitDialog() { C3dDialog::OnInitDialog();
CheckDlgButton(IDC_PIXELGRID, m_bPixelGrid); CheckDlgButton(IDC_TILEGRID, m_bTileGrid); SetDlgItemInt(IDC_WIDTH, m_nWidth, FALSE); SetDlgItemInt(IDC_HEIGHT, m_nHeight, FALSE);
GetDlgItem(IDC_TILEGRID)->EnableWindow(m_bPixelGrid); GetDlgItem(IDC_WIDTH)->EnableWindow(m_bPixelGrid && m_bTileGrid); GetDlgItem(IDC_HEIGHT)->EnableWindow(m_bPixelGrid && m_bTileGrid);
return TRUE; }
void CImgGridDlg::OnClickPixelGrid() { m_bPixelGrid = !m_bPixelGrid; CheckDlgButton(IDC_PIXELGRID, m_bPixelGrid);
GetDlgItem(IDC_TILEGRID)->EnableWindow(m_bPixelGrid); GetDlgItem(IDC_WIDTH)->EnableWindow(m_bPixelGrid); GetDlgItem(IDC_HEIGHT)->EnableWindow(m_bPixelGrid); }
void CImgGridDlg::OnClickTileGrid() { m_bTileGrid = !m_bTileGrid; CheckDlgButton(IDC_TILEGRID, m_bTileGrid);
GetDlgItem(IDC_WIDTH)->EnableWindow(m_bTileGrid); GetDlgItem(IDC_HEIGHT)->EnableWindow(m_bTileGrid); }
void CImgGridDlg::OnOK() { m_bPixelGrid = IsDlgButtonChecked(IDC_PIXELGRID); m_bTileGrid = IsDlgButtonChecked(IDC_TILEGRID);
if (m_bTileGrid) { BOOL bTranslated;
if (GetDlgItem(IDC_WIDTH)->GetWindowTextLength() == 0) { m_nWidth = 1; } else { m_nWidth = GetDlgItemInt(IDC_WIDTH, &bTranslated, FALSE); if (!bTranslated || m_nWidth < GRIDMIN || m_nWidth > GRIDMAX) { CmpMessageBoxPrintf(IDS_ERROR_GRIDRANGE, AFX_IDS_APP_TITLE, MB_OK | MB_ICONEXCLAMATION, GRIDMIN, GRIDMAX); // LOCALIZATION
GetDlgItem(IDC_WIDTH)->SetFocus(); return; } }
if (GetDlgItem(IDC_HEIGHT)->GetWindowTextLength() == 0) { m_nHeight = 1; } else { m_nHeight = GetDlgItemInt(IDC_HEIGHT, &bTranslated, FALSE); if (!bTranslated || m_nHeight < GRIDMIN || m_nHeight > GRIDMAX) { CmpMessageBoxPrintf(IDS_ERROR_GRIDRANGE, AFX_IDS_APP_TITLE, MB_OK | MB_ICONEXCLAMATION, GRIDMIN, GRIDMAX); // LOCALIZATION
GetDlgItem(IDC_HEIGHT)->SetFocus(); return; } }
g_defaultTileGridSize.cx = m_nWidth; g_defaultTileGridSize.cy = m_nHeight; }
g_bDefaultTileGrid = m_bTileGrid;
C3dDialog::OnOK(); }
/***************************************************************************/ // CColorTable dialog
CColorTable::CColorTable( CWnd* pParent /*=NULL*/ ) : CDialog( CColorTable::IDD, pParent ) { m_bLeft = TRUE; m_iColor = 0; }
/***************************************************************************/
void CColorTable::DoDataExchange( CDataExchange* pDX ) { CDialog::DoDataExchange( pDX ); }
/***************************************************************************/
BEGIN_MESSAGE_MAP(CColorTable, CDialog) //{{AFX_MSG_MAP(CColorTable)
ON_WM_DRAWITEM() ON_WM_MEASUREITEM() ON_LBN_DBLCLK(IDC_COLORLIST, OnDblclkColorlist) //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/***************************************************************************/ // CColorTable message handlers
void CColorTable::OnDrawItem( int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct ) { if ((int) lpDrawItemStruct->itemID >= 0) { CDC dcCombo; CBrush brColor; CPalette* pPalOld = NULL; CRect rect = lpDrawItemStruct->rcItem;
dcCombo.Attach( lpDrawItemStruct->hDC );
if (theApp.m_pPalette) { pPalOld = dcCombo.SelectPalette( theApp.m_pPalette, FALSE ); dcCombo.RealizePalette(); }
brColor.CreateSolidBrush( (COLORREF)lpDrawItemStruct->itemData );
if ((lpDrawItemStruct->itemState & ODS_SELECTED) == ODS_SELECTED) { dcCombo.FillRect( &(lpDrawItemStruct->rcItem), &brColor ); rect.InflateRect( -theApp.m_cxFrame, -theApp.m_cyFrame ); }
dcCombo.FillRect( &(lpDrawItemStruct->rcItem), &brColor );
brColor.DeleteObject();
if ((lpDrawItemStruct->itemState & ODS_FOCUS) == ODS_FOCUS) dcCombo.DrawFocusRect( &(lpDrawItemStruct->rcItem) );
if (pPalOld != NULL) dcCombo.SelectPalette( pPalOld, FALSE ); }
CDialog::OnDrawItem( nIDCtl, lpDrawItemStruct ); }
/***************************************************************************/
BOOL CColorTable::OnInitDialog() { CDialog::OnInitDialog();
int iColorCnt = g_pColors->GetColorCount(); CListBox* pList = (CListBox*)GetDlgItem( IDC_COLORLIST );
for (int iLoop = 0; iLoop < iColorCnt; iLoop++) { pList->AddString( TEXT("") ); pList->SetItemData( iLoop, g_pColors->GetColor( iLoop ) ); }
return TRUE; // return TRUE unless you set the focus to a control
}
/***************************************************************************/
void CColorTable::OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct) { lpMeasureItemStruct->itemHeight = theApp.m_cyCaption;
CDialog::OnMeasureItem(nIDCtl, lpMeasureItemStruct); }
/***************************************************************************/
void CColorTable::OnDblclkColorlist() {
}
/***************************************************************************/
void CColorTable::OnOK() { // m_iColor = ;
CDialog::OnOK(); }
/***************************************************************************/
|