home *** CD-ROM | disk | FTP | other *** search
/ PC PowerPlay 58 / pcpp58a.iso / extras / quake 3 source / Q3A_ToolSource.exe / Main / FindTextureDlg.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2001-01-02  |  3.4 KB  |  155 lines

  1. // FindTextureDlg.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "Radiant.h"
  6. #include "FindTextureDlg.h"
  7.  
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13.  
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CFindTextureDlg dialog
  16.  
  17. CFindTextureDlg g_TexFindDlg;
  18. CFindTextureDlg& g_dlgFind = g_TexFindDlg;
  19. static bool g_bFindActive = true;
  20.  
  21. void CFindTextureDlg::updateTextures(const char *p)
  22. {
  23.   if (isOpen())
  24.   {
  25.     if (g_bFindActive)
  26.     {
  27.       setFindStr(p);
  28.     }
  29.     else
  30.     {
  31.       setReplaceStr(p);
  32.     }
  33.   }
  34. }
  35.  
  36. CFindTextureDlg::CFindTextureDlg(CWnd* pParent /*=NULL*/)
  37.     : CDialog(CFindTextureDlg::IDD, pParent)
  38. {
  39.     //{{AFX_DATA_INIT(CFindTextureDlg)
  40.     m_bSelectedOnly = FALSE;
  41.     m_strFind = _T("");
  42.     m_strReplace = _T("");
  43.     m_bForce = FALSE;
  44.     m_bLive = TRUE;
  45.     //}}AFX_DATA_INIT
  46. }
  47.  
  48.  
  49. void CFindTextureDlg::DoDataExchange(CDataExchange* pDX)
  50. {
  51.     CDialog::DoDataExchange(pDX);
  52.     //{{AFX_DATA_MAP(CFindTextureDlg)
  53.     DDX_Check(pDX, IDC_CHECK_SELECTED, m_bSelectedOnly);
  54.     DDX_Text(pDX, IDC_EDIT_FIND, m_strFind);
  55.     DDX_Text(pDX, IDC_EDIT_REPLACE, m_strReplace);
  56.     DDX_Check(pDX, IDC_CHECK_FORCE, m_bForce);
  57.     DDX_Check(pDX, IDC_CHECK_LIVE, m_bLive);
  58.     //}}AFX_DATA_MAP
  59. }
  60.  
  61.  
  62. BEGIN_MESSAGE_MAP(CFindTextureDlg, CDialog)
  63.     //{{AFX_MSG_MAP(CFindTextureDlg)
  64.     ON_BN_CLICKED(ID_BTN_APPLY, OnBtnApply)
  65.     ON_EN_SETFOCUS(IDC_EDIT_FIND, OnSetfocusEditFind)
  66.     ON_EN_SETFOCUS(IDC_EDIT_REPLACE, OnSetfocusEditReplace)
  67.     //}}AFX_MSG_MAP
  68. END_MESSAGE_MAP()
  69.  
  70. void CFindTextureDlg::OnBtnApply() 
  71. {
  72.   UpdateData(TRUE);
  73.   CRect rct;
  74.   GetWindowRect(rct);
  75.   SaveRegistryInfo("Radiant::TextureFindWindow", &rct, sizeof(rct));
  76.   FindReplaceTextures(m_strFind, m_strReplace, m_bSelectedOnly, m_bForce);
  77. }
  78.  
  79. void CFindTextureDlg::OnOK() 
  80. {
  81.   UpdateData(TRUE);
  82.   CRect rct;
  83.   GetWindowRect(rct);
  84.   SaveRegistryInfo("Radiant::TextureFindWindow", &rct, sizeof(rct));
  85.   FindReplaceTextures(m_strFind, m_strReplace, m_bSelectedOnly, m_bForce);
  86.     CDialog::OnOK();
  87. }
  88.  
  89. void CFindTextureDlg::show()
  90. {
  91.   if (g_dlgFind.GetSafeHwnd() == NULL || IsWindow(g_dlgFind.GetSafeHwnd()) == FALSE)
  92.   {
  93.     g_dlgFind.Create(IDD_DIALOG_FINDREPLACE);
  94.     g_dlgFind.ShowWindow(SW_SHOW);
  95.   }
  96.   else
  97.   {
  98.     g_dlgFind.ShowWindow(SW_SHOW);
  99.   }
  100.   CRect rct;
  101.   LONG lSize = sizeof(rct);
  102.   if (LoadRegistryInfo("Radiant::TextureFindWindow", &rct, &lSize))
  103.     g_dlgFind.SetWindowPos(NULL, rct.left, rct.top, 0,0, SWP_NOSIZE | SWP_SHOWWINDOW);
  104. }        
  105.  
  106.  
  107. bool CFindTextureDlg::isOpen()
  108. {
  109.   return (g_dlgFind.GetSafeHwnd() == NULL || ::IsWindowVisible(g_dlgFind.GetSafeHwnd()) == FALSE) ? false : true;
  110. }
  111.  
  112. void CFindTextureDlg::setFindStr(const char * p)
  113. {
  114.   g_dlgFind.UpdateData(TRUE);
  115.   if (g_dlgFind.m_bLive)
  116.   {
  117.     g_dlgFind.m_strFind = p;
  118.     g_dlgFind.UpdateData(FALSE);
  119.   }
  120. }
  121.  
  122. void CFindTextureDlg::setReplaceStr(const char * p)
  123. {
  124.   g_dlgFind.UpdateData(TRUE);
  125.   if (g_dlgFind.m_bLive)
  126.   {
  127.     g_dlgFind.m_strReplace = p;
  128.     g_dlgFind.UpdateData(FALSE);
  129.   }
  130. }
  131.  
  132.  
  133. void CFindTextureDlg::OnCancel() 
  134. {
  135.   CRect rct;
  136.   GetWindowRect(rct);
  137.   SaveRegistryInfo("Radiant::TextureFindWindow", &rct, sizeof(rct));
  138.     CDialog::OnCancel();
  139. }
  140.  
  141. BOOL CFindTextureDlg::DestroyWindow() 
  142. {
  143.     return CDialog::DestroyWindow();
  144. }
  145.  
  146. void CFindTextureDlg::OnSetfocusEditFind() 
  147. {
  148.   g_bFindActive = true;
  149. }
  150.  
  151. void CFindTextureDlg::OnSetfocusEditReplace() 
  152. {
  153.   g_bFindActive = false;
  154. }
  155.