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); }
GridCtrl::ItemRect& GridCtrl::ItemRect::NoEditable() { return Editable(false); }
GridCtrl::Item& GridCtrl::Item::NoEditable() { return Editable(false); }