/************************************************************************
*
* Resource ID Organiser Core Library
*
* (c) Copyright 2000-2004 by Anna-Jayne Metcalfe (resorg@annasplace.me.uk)
* All rights reserved.
*
************************************************************************
*
* Filename : ResourceSymbolFileGeneralPage.cpp
*
* Description : CResourceSymbolFileGeneralPage - "General" page for
* resource symbol file properties
*
* Compiler : Microsoft Visual C++ 6.0, Service Pack 3 or later
* Microsoft Visual C++ .NET 2003
*
* Target
* Environment : Windows 98/NT/2000/XP
*
* NOTE:
*
* This software is provided "as is" free for personal use. All
* title and copyrights in and to the software, including but not
* limited to any images, text, etc. incorporated into it, are
* owned by Anna-Jayne Metcalfe, except where acknowledged otherwise.
*
* Your may freely to use this code in your own products, PROVIDED
* this notice is not removed or modified.
*
*
* Visit http://www.annasplace.me.uk/resorg for latest updates
*
************************************************************************
*
* MODIFICATION HISTORY:
*
* This is a controlled document. See project configuration
* control tool for latest version and full version history.
*
* $Archive: /Projects/AddIns/ResOrg/ResOrgCore/ResourceSymbolFileGeneralPage.cpp $
* $Revision: 11 $
* $Date: 29/08/04 21:26 $
* $Author: Anna $
*
* $History: ResourceSymbolFileGeneralPage.cpp $
*
* ***************** Version 11 *****************
* User: Anna Date: 29/08/04 Time: 21:26
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* CResourceSymbolFileGeneralPage::OnClickedShellFileProperties() now
* works. :)
*
* ***************** Version 10 *****************
* User: Anna Date: 21/08/04 Time: 19:35
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Added "Check for out of range symbols" control
*
* ***************** Version 9 *****************
* User: Anna Date: 1/07/03 Time: 21:02
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Fixed selection bugs with multi-file symbols displays
*
* ***************** Version 8 *****************
* User: Anna Date: 26/06/03 Time: 20:20
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Added resizing support
*
* ***************** Version 7 *****************
* User: Anna Date: 19/01/03 Time: 17:22
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Modifications for compatibility with multi-file symbol editing
*
* ***************** Version 6 *****************
* User: Anna Date: 25/11/02 Time: 15:20
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Changed website address in banner
*
* ***************** Version 5 *****************
* User: Anna Date: 22/10/02 Time: 13:24
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Changed name/mail address (at last!)
*
* ***************** Version 4 *****************
* User: Andy Date: 1/08/02 Time: 16:27
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Knock on changes from CResourceSymbolManager
*
* ***************** Version 3 *****************
* User: Andy Date: 7/06/02 Time: 17:04
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Renamed the ResOrgUtils module to ResOrgCore. Updated file banners
* accordingly
*
* ***************** Version 2 *****************
* User: Andy Date: 27/05/02 Time: 14:47
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* Knock on changes from CResourceSymbolBuffer (now
* CResourceSymbolManager)
*
* ***************** Version 1 *****************
* User: Andy Date: 10/03/01 Time: 12:51p
* Created in $/Projects/AddIns/ResOrg/ResOrgUtils
*
* $Nokeywords: $
*
************************************************************************/
#include "StdAfx.h"
#include "ResOrgCore_Priv.h"
#include "ResourceSymbolManager.h"
#include "ResourceSymbolFileGeneralPage.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CResourceSymbolFileGeneralPage property page
IMPLEMENT_DYNAMIC(CResourceSymbolFileGeneralPage, CResourceSymbolFileGeneralPage_BASE)
CResourceSymbolFileGeneralPage::CResourceSymbolFileGeneralPage(void)
: CResourceSymbolFileGeneralPage_BASE(CResourceSymbolFileGeneralPage::IDD)
{
m_pSymbols = NULL;
m_sFileName = _T("");
m_sResourceFileName = _T("");
m_sFileFolder = _T("");
m_b3DControls = false;
m_bCheckForOutOfRangeSymbols = false;
}
CResourceSymbolFileGeneralPage::~CResourceSymbolFileGeneralPage(void)
{
m_pSymbols = NULL;
}
void CResourceSymbolFileGeneralPage::DoDataExchange(CDataExchange* pDX)
{
CResourceSymbolFileGeneralPage_BASE::DoDataExchange(pDX);
DDX_Text(pDX, IDC_SYM_FILE_NAME, m_sFileName);
DDX_Text(pDX, IDC_SYM_RESOURCE_FILE, m_sResourceFileName);
DDX_Text(pDX, IDC_SYM_FILE_FOLDER, m_sFileFolder);
DDX_Check(pDX, IDC_SYM_FILE_3D_CONTROLS, m_b3DControls);
DDX_Check(pDX, IDC_SYM_CHECK_SYMBOL_VALUES, m_bCheckForOutOfRangeSymbols);
}
BEGIN_MESSAGE_MAP(CResourceSymbolFileGeneralPage, CResourceSymbolFileGeneralPage_BASE)
ON_BN_CLICKED( IDC_SYM_FILE_PROPERTIES, OnClickedShellFileProperties)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CResourceSymbolFileNextValuesPage virtual overrides
BOOL CResourceSymbolFileGeneralPage::OnInitDialog(void)
{
BOOL bResult = CResourceSymbolFileGeneralPage_BASE::OnInitDialog();
m_Resizer.Add( IDC_SYM_FILE_NAME, 0, 0, 100, 0);
m_Resizer.Add( IDC_SYM_DIVIDER_1, 0, 20, 100, 0);
m_Resizer.Add( IDC_SYM_RESOURCE_FILE_CAPTION, 0, 40, 0, 0);
m_Resizer.Add( IDC_SYM_RESOURCE_FILE, 0, 40, 100, 0);
m_Resizer.Add( IDC_SYM_FILE_FOLDER_CAPTION, 0, 60, 0, 0);
m_Resizer.Add( IDC_SYM_FILE_FOLDER, 0, 60, 100, 0);
m_Resizer.Add( IDC_SYM_DIVIDER_2, 0, 80, 100, 0);
m_Resizer.Add( IDC_SYM_FILE_3D_CONTROLS, 0, 90, 0, 0);
m_Resizer.Add( IDC_SYM_CHECK_SYMBOL_VALUES, 0, 100, 0, 0);
m_Resizer.Add( IDC_SYM_FILE_PROPERTIES, 100, 100, 0, 0);
return bResult;
}
bool CResourceSymbolFileGeneralPage::SetSymbolManager(CResourceSymbolManager* pSymbols)
{
BOOL bResult = CResourceSymbolFileGeneralPage_BASE::SetSymbolManager(pSymbols);
if (NULL != m_pSymbols)
{
CNGSplitPath splitFileNamePath(m_pSymbols->GetPathName());
CNGSplitPath splitResourceFilePath(m_pSymbols->GetResourceFileName());
m_sFileName = splitFileNamePath.GetFileName() + splitFileNamePath.GetExtension();
m_sResourceFileName = splitResourceFilePath.GetFileName() + splitResourceFilePath.GetExtension();
m_sFileFolder = splitFileNamePath.GetDrive() + splitFileNamePath.GetDirectory();
m_b3DControls = m_pSymbols->Get3dControlsValue();
m_bCheckForOutOfRangeSymbols = m_pSymbols->CheckForOutOfRangeSymbols();
}
else
{
m_sFileName = _T("");
m_sResourceFileName = _T("");
m_sFileFolder = _T("");
m_b3DControls = false;
}
if (::IsWindow(GetSafeHwnd() ) )
{
UpdateData(false);
}
return bResult;
}
void CResourceSymbolFileGeneralPage::OnOK(void)
{
if (NULL != m_pSymbols)
{
m_pSymbols->Set3dControlsValue(m_b3DControls);
m_pSymbols->CheckForOutOfRangeSymbols(m_bCheckForOutOfRangeSymbols);
}
}
/////////////////////////////////////////////////////////////////////////////
// CResourceSymbolFileGeneralPage operations
/////////////////////////////////////////////////////////////////////////////
// CResourceSymbolFileGeneralPage message handlers
BOOL CResourceSymbolFileGeneralPage::OnSetActive(void)
{
return CResourceSymbolFileGeneralPage_BASE::OnSetActive();
}
void CResourceSymbolFileGeneralPage::OnClickedShellFileProperties(void)
{
SHELLEXECUTEINFO info;
::ZeroMemory(&info, sizeof(info) );
info.cbSize = sizeof(info);
info.lpFile = m_pSymbols->GetPathName();
info.lpVerb = _T("properties");
info.fMask = SEE_MASK_INVOKEIDLIST;
::ShellExecuteEx(&info);
}