void CPropMapCtrl::OnEditValue() 
{
	int iItem = m_listCtrl.GetNextItem(-1, LVNI_SELECTED);
	
	if (!(iItem >= 0))
		return;

	CPropListData *cpld = (CPropListData *) m_listCtrl.GetItemData(iItem);

	if (!cpld)
		return;

	if (!m_bCanPutOnMap)
		return;

	if (Editable(cpld->m_vtType))
	{
		if (cpld->m_vtType != VT_BOOL)
			m_listCtrl.EditValue(iItem, cpld->m_strValue);
		else
			m_listCtrl.EditValue(iItem, (cpld->m_strValue.CompareNoCase("true") == 0));
	}
	else
		FireEditValue(m_pPropMap, cpld->m_strName);
}
//
// LeftClick
// iItem - item that was clicked on
// iColumn - column the double click was in
//
// called when a user double clicks in the list control
void CPropMapCtrl::LeftClick(int iItem, int iColumn)
{
	CPropListData *cpld = NULL;
	UINT state;

	if (iItem < 0)
		return;

	cpld = (CPropListData *) m_listCtrl.GetItemData(iItem);
	if (!cpld)
		return;

	if (!m_bCanPutOnMap)
		return;

	// check to see if the item was already selected
	state = m_listCtrl.GetItemState(iItem, LVIS_SELECTED);
	if (state == LVIS_SELECTED)
	{
		switch (iColumn)
		{
			case 0:
				if (!m_bCanAddToMap)
					return;
				
				m_listCtrl.EditName(iItem, cpld->m_strName, 0);
				break;
			case 1:
				// do nothing
				break;
			case 2:
				if (Editable(cpld->m_vtType))
				{
					if (cpld->m_vtType != VT_BOOL)
						m_listCtrl.EditValue(iItem, cpld->m_strValue);
					else
						m_listCtrl.EditValue(iItem, (cpld->m_strValue.CompareNoCase("true") == 0));
				}
				break;
			default:
				break;
		}
	}
}
//
// DoubleClick
// iItem - item that was clicked on
// iColumn - column the double click was in
//
// called when a user double clicks in the list control
void CPropMapCtrl::DoubleClick(int iItem, int iColumn)
{
	if (iItem < 0)
		return;

	CPropListData *cpld = NULL;
	cpld = (CPropListData *) m_listCtrl.GetItemData(iItem);
	if (!cpld)
		return;

	if (!m_bCanPutOnMap)
		return;

	if (Editable(cpld->m_vtType))
	{
		if (cpld->m_vtType != VT_BOOL)
			m_listCtrl.EditValue(iItem, cpld->m_strValue);
		else
			m_listCtrl.EditValue(iItem, (cpld->m_strValue.CompareNoCase("true") == 0));
	}
	else
		FireEditValue(m_pPropMap, cpld->m_strName);
}
Example #4
0
GridCtrl::ItemRect& GridCtrl::ItemRect::NoEditable()
{
	return Editable(false);
}
Example #5
0
GridCtrl::Item& GridCtrl::Item::NoEditable()
{
	return Editable(false);
}