|
|
//========= Copyright � 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $Workfile: $
// $Date: $
//
//-----------------------------------------------------------------------------
// $Log: $
//
// $NoKeywords: $
//=============================================================================//
#include "stdafx.h"
#include "hammer.h"
#include "ReplaceTexDlg.h"
#include "MainFrm.h"
#include "GlobalFunctions.h"
#include "TextureBrowser.h"
#include "TextureSystem.h"
#include "mapdoc.h"
// memdbgon must be the last include file in a .cpp file!!!
#include <tier0/memdbgon.h>
CReplaceTexDlg::CReplaceTexDlg(int nSelected, CWnd* pParent /*=NULL*/) : CDialog(CReplaceTexDlg::IDD, pParent) { //{{AFX_DATA_INIT(CReplaceTexDlg)
m_iSearchAll = nSelected ? FALSE : TRUE; m_strFind = _T(""); m_strReplace = _T(""); m_iAction = 0; m_bMarkOnly = FALSE; m_bHidden = FALSE; m_bRescaleTextureCoordinates = false; //}}AFX_DATA_INIT
m_nSelected = nSelected; }
void CReplaceTexDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CReplaceTexDlg)
DDX_Control(pDX, IDC_FIND, m_cFind); DDX_Control(pDX, IDC_REPLACE, m_cReplace); DDX_Control(pDX, IDC_REPLACEPIC, m_cReplacePic); DDX_Control(pDX, IDC_FINDPIC, m_cFindPic); DDX_Radio(pDX, IDC_INMARKED, m_iSearchAll); DDX_Text(pDX, IDC_FIND, m_strFind); DDX_Text(pDX, IDC_REPLACE, m_strReplace); DDX_Radio(pDX, IDC_ACTION, m_iAction); DDX_Check(pDX, IDC_MARKONLY, m_bMarkOnly); DDX_Check(pDX, IDC_HIDDEN, m_bHidden); DDX_Check(pDX, IDC_RESCALETEXTURECOORDINATES, m_bRescaleTextureCoordinates); //}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CReplaceTexDlg, CDialog) //{{AFX_MSG_MAP(CReplaceTexDlg)
ON_BN_CLICKED(IDC_BROWSEREPLACE, OnBrowsereplace) ON_BN_CLICKED(IDC_BROWSEFIND, OnBrowsefind) ON_EN_UPDATE(IDC_FIND, OnUpdateFind) ON_EN_UPDATE(IDC_REPLACE, OnUpdateReplace) //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CReplaceTexDlg message handlers
void CReplaceTexDlg::BrowseTex(int iEdit) { CString strTex; CWnd *pWnd = GetDlgItem(iEdit);
pWnd->GetWindowText(strTex);
CTextureBrowser *pBrowser = new CTextureBrowser(GetMainWnd()); pBrowser->SetUsed(iEdit == IDC_FIND); pBrowser->SetInitialTexture(strTex);
if (pBrowser->DoModal() == IDOK) { IEditorTexture *pTex = g_Textures.FindActiveTexture(pBrowser->m_cTextureWindow.szCurTexture); char szName[MAX_PATH]; if (pTex != NULL) { pTex->GetShortName(szName); } else { szName[0] = '\0'; } pWnd->SetWindowText(szName); }
delete pBrowser; }
void CReplaceTexDlg::OnBrowsereplace() { BrowseTex(IDC_REPLACE); }
void CReplaceTexDlg::OnBrowsefind() { BrowseTex(IDC_FIND); }
//
// find/replace text string updates:
//
void CReplaceTexDlg::OnUpdateFind() { // get texture window and set texture in there
CString strTex; m_cFind.GetWindowText(strTex); IEditorTexture *pTex = g_Textures.FindActiveTexture(strTex); m_cFindPic.SetTexture(pTex); }
void CReplaceTexDlg::OnUpdateReplace() { // get texture window and set texture in there
CString strTex; m_cReplace.GetWindowText(strTex); IEditorTexture *pTex = g_Textures.FindActiveTexture(strTex); m_cReplacePic.SetTexture(pTex); }
BOOL CReplaceTexDlg::OnInitDialog() { CDialog::OnInitDialog();
if(!m_nSelected) { CWnd *pWnd = GetDlgItem(IDC_INMARKED); pWnd->EnableWindow(FALSE); }
OnUpdateFind();
return TRUE; }
void CReplaceTexDlg::DoReplaceTextures() { CMapDoc *pDoc = CMapDoc::GetActiveMapDoc(); if ( pDoc ) { pDoc->ReplaceTextures( m_strFind, m_strReplace, m_iSearchAll, m_iAction | ( m_bMarkOnly ? 0x100 : 0 ), m_bHidden, (m_bRescaleTextureCoordinates != 0) ); } }
|