Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

233 lines
5.6 KiB

/////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1996 Microsoft Corporation
//
// Module Name:
// ModRes.cpp
//
// Abstract:
// Implementation of the CModifyResourcesDlg dialog.
//
// Author:
// David Potter (davidp) November 26, 1996
//
// Revision History:
//
// Notes:
//
/////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ModRes.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CModifyResourcesDlg
/////////////////////////////////////////////////////////////////////////////
IMPLEMENT_DYNCREATE(CModifyResourcesDlg, CListCtrlPairDlg)
/////////////////////////////////////////////////////////////////////////////
// Message Maps
BEGIN_MESSAGE_MAP(CModifyResourcesDlg, CListCtrlPairDlg)
//{{AFX_MSG_MAP(CModifyResourcesDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//++
//
// CModifyResourcesDlg::CModifyResourcesDlg
//
// Routine Description:
// Default constructor.
//
// Arguments:
// None.
//
// Return Value:
// None.
//
//--
/////////////////////////////////////////////////////////////////////////////
CModifyResourcesDlg::CModifyResourcesDlg(void)
{
} //*** CModifyResourcesDlg::CModifyResourcesDlg()
/////////////////////////////////////////////////////////////////////////////
//++
//
// CModifyResourcesDlg::CModifyResourcesDlg
//
// Routine Description:
// Constructor.
//
// Arguments:
// idd [IN] Dialog ID.
// pdwHelpMap [IN] Control-to-Help ID mapping array.
// rlpciRight [IN OUT] List for the right list control.
// rlpciLeft [IN] List for the left list control.
// dwStyle [IN] Style:
// LCPS_SHOW_IMAGES Show images to left of items.
// LCPS_ALLOW_EMPTY Allow right list to be empty.
// LCPS_ORDERED Ordered right list.
// pParent [IN OUT] Parent window.
//
// Return Value:
// None.
//
//--
/////////////////////////////////////////////////////////////////////////////
CModifyResourcesDlg::CModifyResourcesDlg(
IN UINT idd,
IN const DWORD * pdwHelpMap,
IN OUT CResourceList & rlpciRight,
IN const CResourceList & rlpciLeft,
IN DWORD dwStyle,
IN OUT CWnd * pParent //=NULL
) : CListCtrlPairDlg(
idd,
pdwHelpMap,
&rlpciRight,
&rlpciLeft,
dwStyle | LCPS_PROPERTIES_BUTTON | (dwStyle & LCPS_ORDERED ? LCPS_CAN_BE_ORDERED : 0),
GetColumn,
BDisplayProperties,
pParent
)
{
//{{AFX_DATA_INIT(CModifyResourcesDlg)
//}}AFX_DATA_INIT
} //*** CModifyResourcesDlg::CModifyResourcesDlg()
/////////////////////////////////////////////////////////////////////////////
//++
//
// CModifyResourcesDlg::OnInitDialog
//
// Routine Description:
// Handler for the WM_INITDIALOG message.
//
// Arguments:
// None.
//
// Return Value:
// TRUE Focus needs to be set.
// FALSE Focus already set.
//
//--
/////////////////////////////////////////////////////////////////////////////
BOOL CModifyResourcesDlg::OnInitDialog(void)
{
// Add columns.
try
{
NAddColumn(IDS_COLTEXT_NAME, COLI_WIDTH_NAME);
NAddColumn(IDS_COLTEXT_RESTYPE, COLI_WIDTH_RESTYPE);
} // try
catch (CException * pe)
{
pe->ReportError();
pe->Delete();
} // catch: CException
// Call the base class method.
CListCtrlPairDlg::OnInitDialog();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
} //*** CModifyResourcesDlg::OnInitDialog()
/////////////////////////////////////////////////////////////////////////////
//++
//
// CModifyResourcesDlg::GetColumn [static]
//
// Routine Description:
// Returns a column for an item.
//
// Arguments:
// pobj [IN OUT] Object for which the column is to be displayed.
// iItem [IN] Index of the item in the list.
// icol [IN] Column number whose text is to be retrieved.
// pdlg [IN OUT] Dialog to which object belongs.
// rstr [OUT] String in which to return column text.
// piimg [OUT] Image index for the object.
//
// Return Value:
// None.
//
//--
/////////////////////////////////////////////////////////////////////////////
void CALLBACK CModifyResourcesDlg::GetColumn(
IN OUT CObject * pobj,
IN int iItem,
IN int icol,
IN OUT CDialog * pdlg,
OUT CString & rstr,
OUT int * piimg
)
{
CResource * pciRes = (CResource *) pobj;
int colid;
ASSERT_VALID(pciRes);
ASSERT((0 <= icol) && (icol <= 1));
switch (icol)
{
// Sorting by resource name.
case 0:
colid = IDS_COLTEXT_RESOURCE;
break;
// Sorting by resource type.
case 1:
colid = IDS_COLTEXT_RESTYPE;
break;
default:
colid = IDS_COLTEXT_RESOURCE;
break;
} // switch: icol
pciRes->BGetColumnData(colid, rstr);
if (piimg != NULL)
*piimg = pciRes->IimgObjectType();
} //*** CModifyResourcesDlg::GetColumn()
/////////////////////////////////////////////////////////////////////////////
//++
//
// CModifyResourcesDlg::BDisplayProperties [static]
//
// Routine Description:
// Display the properties of the specified object.
//
// Arguments:
// pobj [IN OUT] Cluster item whose properties are to be displayed.
//
// Return Value:
// TRUE Properties where accepted.
// FALSE Properties where cancelled.
//
//--
/////////////////////////////////////////////////////////////////////////////
BOOL CALLBACK CModifyResourcesDlg::BDisplayProperties(IN OUT CObject * pobj)
{
CClusterItem * pci = (CClusterItem *) pobj;
ASSERT_KINDOF(CClusterItem, pobj);
return pci->BDisplayProperties();
} //*** CModifyResourcesDlg::BDisplayProperties();