CTreeItem CNBTreeListView::SetDevice(CTreeItem tiParent, CNBDevice *pDevice) { CTreeItem tiDevice; if(!pDevice) { // set empty device CString strText; strText.LoadString(IDS_UNIDEV_TYPE_DISK_EMPTY); tiDevice = GetTreeControl().InsertItem( strText, 0, // IDI_FAIL 0, // IDI_FAIL tiParent, TVI_LAST); tiDevice.SetData((DWORD_PTR)NULL); return tiDevice; } // CString strName = pDevice->GetName() + _T("\0") + pDevice->GetIDString(m_chHidden); tiDevice = GetTreeControl().InsertItem( pDevice->GetName(), pDevice->GetIconIndex((UINT *) ImageListIcons, RTL_NUMBER_OF(ImageListIcons)), pDevice->GetSelectIconIndex((UINT *)ImageListIcons, RTL_NUMBER_OF(ImageListIcons)), tiParent, TVI_LAST); tiDevice.SetData((DWORD_PTR)pDevice); // ID int col = 1; // SetSubItemText(tiDevice, col, pDevice->GetIDString(m_chHidden)); // Capacity // col++; SetSubItemText(tiDevice, col, pDevice->GetCapacityString()); // Status col++; SetSubItemText(tiDevice, col, pDevice->GetStatusString()); // Type col++; SetSubItemText(tiDevice, col, pDevice->GetTypeString()); // Fault Tolerance col++; SetSubItemText(tiDevice, col, pDevice->GetFaultToleranceString()); return tiDevice; }
CTreeItem CNBTreeListView::SetDevice(CTreeItem tiParent, CNBDevice *pDevice) { CTreeItem tiDevice; if(!pDevice) { // set empty device WTL::CString strText; strText.LoadString(IDS_UNIDEV_TYPE_DISK_EMPTY); tiDevice = GetTreeControl().InsertItem( strText, 0, // IDI_FAIL 0, // IDI_FAIL tiParent, TVI_LAST); tiDevice.SetData((DWORD_PTR)NULL); return tiDevice; } tiDevice = GetTreeControl().InsertItem( pDevice->GetName(), pDevice->GetIconIndex((UINT *)anIconIDs, sizeof(anIconIDs)/sizeof(anIconIDs[0])), pDevice->GetSelectIconIndex((UINT *)anIconIDs, sizeof(anIconIDs)/sizeof(anIconIDs[0])), tiParent, TVI_LAST); tiDevice.SetData((DWORD_PTR)pDevice); // ID int col = 1; SetSubItemText(tiDevice, col, pDevice->GetIDString()); // Capacity col++; SetSubItemText(tiDevice, col, pDevice->GetCapacityString()); // Status col++; SetSubItemText(tiDevice, col, pDevice->GetStatusString()); // Type col++; SetSubItemText(tiDevice, col, pDevice->GetTypeString()); // Fault Tolerance col++; SetSubItemText(tiDevice, col, pDevice->GetFaultToleranceString()); return tiDevice; }
void CNBTreeListView::SetDevices(NBLogicalDevicePtrList *pListLogicalDevice) { ATLASSERT(pListLogicalDevice); if(!pListLogicalDevice) return; CTreeItem tiLogicalDevice, tiUnitDevice; for(NBLogicalDevicePtrList::iterator itLogicalDevice = pListLogicalDevice->begin(); itLogicalDevice != pListLogicalDevice->end(); itLogicalDevice++) { // register logical device tiLogicalDevice = SetDevice(TVI_ROOT, *itLogicalDevice); if((*itLogicalDevice)->IsGroup()) { // add children for(UINT32 i = 0; i < (*itLogicalDevice)->DevicesTotal(); i++) { tiUnitDevice = SetDevice(tiLogicalDevice, (*(*itLogicalDevice))[i]); } GetTreeControl().Expand(tiLogicalDevice, TVE_EXPAND); } } }
CNBDevice *CNBTreeListView::GetSelectedDevice() { CTreeItem itemSelected = GetTreeControl().GetSelectedItem(); if ( !itemSelected.IsNull() ) { return (CNBDevice *)itemSelected.GetData(); } return NULL; }
BOOL CNBTreeListView::Initialize() { // Initialize Column HDITEM col = { 0 }; col.mask = HDI_FORMAT | HDI_TEXT | HDI_WIDTH; col.fmt = HDF_LEFT; // SetExtendedListViewStyle ( LVS_EX_FULLROWSELECT); int i = 0; CString strHeader; for ( i=0; i < RTL_NUMBER_OF(column_info); i++ ) { strHeader.LoadString( column_info[i].nColHeaderID ); col.cxy = column_info[i].nWidth; col.pszText = strHeader.LockBuffer(); GetHeaderControl().InsertItem(i, &col); CHeaderCtrl wndHeader = GetHeaderControl(); } // Image List CImageList imageList; imageList.Create(32, 32, ILC_COLOR8 | ILC_MASK, RTL_NUMBER_OF(ImageListIcons), 1); for (size_t i = 0; i < RTL_NUMBER_OF(ImageListIcons); ++i) { HICON hIcon = ::LoadIcon(_Module.GetResourceInstance(), MAKEINTRESOURCE(ImageListIcons[i]) ); // Uncomment this if you want 32x32 icon. // HICON hIcon = (HICON)::LoadImage(_Module.GetResourceInstance(), MAKEINTRESOURCE(ImageListIcons[i]), IMAGE_ICON, 32, 32, LR_DEFAULTCOLOR); imageList.AddIcon( hIcon ); } GetTreeControl().SetImageList( imageList, LVSIL_NORMAL); return TRUE; }