void CModuleNode::ItemExpanding() { IModuleVector modules; IAttributeVector attributes; m_owner->OnLoading(); m_module->GetModules(modules); if (m_nextExpandShouldBeFast) { m_module->GetAttributes(attributes, true); m_nextExpandShouldBeFast = false; } else m_module->GetAttributes(attributes); m_owner->OnLoaded(m_module, attributes); WTL::CLockWindowUpdate lock(*GetTreeView()); for (IModuleVector::iterator itr = modules.begin(); itr != modules.end(); ++itr) { CModuleNode * newNode = new CModuleNode(m_owner, itr->get()); newNode->InsertBelow(*GetTreeView(), *this); newNode->operator ()(newNode->GetModule()); } for (IAttributeVector::iterator itr = attributes.begin(); itr != attributes.end(); ++itr) { CAttributeNode * newNode = new CAttributeNode(m_owner, itr->get()); newNode->InsertBelow(*GetTreeView(), *this); newNode->operator ()(newNode->GetAttribute(), false, NULL, false); } }
BOOL CRepositoryNode::Expand(UINT nCode) { if (!m_bVirtualNode) return CRepositoryBaseNode::Expand(nCode); if ((nCode & TVE_COLLAPSE) == TVE_COLLAPSE) GetTreeView()->DeleteAllItems(); else if (GetTreeView()->GetCount() == 0) ItemExpanding(); return true; }
void InitTree(LPFOLDERDATA lpFolderData, LPFILTER_ITEM lpFilterList) { g_lpFolderData = lpFolderData; g_lpFilterList = lpFilterList; InitFolders(); /* this will subclass the treeview (where WM_DRAWITEM gets sent for the header control) */ g_lpTreeWndProc = (WNDPROC)(LONG)(int)GetWindowLong(GetTreeView(), GWL_WNDPROC); SetWindowLong(GetTreeView(), GWL_WNDPROC, (LONG)TreeWndProc); }
static BOOL ListViewOnErase(HWND hWnd, HDC hDC) { RECT rcClient; HRGN rgnBitmap; HPALETTE hPAL; int i = 0, j = 0; HDC htempDC; POINT ptOrigin; POINT pt = {0,0}; HBITMAP hOldBitmap; MYBITMAPINFO *pbmDesc = GetBackgroundInfo(); HBITMAP hBackground = GetBackgroundBitmap(); HPALETTE hPALbg = GetBackgroundPalette(); // this does not draw the background properly in report view GetClientRect(hWnd, &rcClient); htempDC = CreateCompatibleDC(hDC); hOldBitmap = (HBITMAP)SelectObject(htempDC, hBackground); rgnBitmap = CreateRectRgnIndirect(&rcClient); SelectClipRgn(hDC, rgnBitmap); DeleteBitmap(rgnBitmap); hPAL = (!hPALbg) ? CreateHalftonePalette(hDC) : hPALbg; if (GetDeviceCaps(htempDC, RASTERCAPS) & RC_PALETTE && hPAL != NULL) { SelectPalette(htempDC, hPAL, FALSE); RealizePalette(htempDC); } // Get x and y offset MapWindowPoints(hWnd, GetTreeView(), &pt, 1); GetDCOrgEx(hDC, &ptOrigin); ptOrigin.x -= pt.x; ptOrigin.y -= pt.y; ptOrigin.x = -GetScrollPos(hWnd, SB_HORZ); ptOrigin.y = -GetScrollPos(hWnd, SB_VERT); if (pbmDesc->bmWidth && pbmDesc->bmHeight) { for (i = ptOrigin.x; i < rcClient.right; i += pbmDesc->bmWidth) for (j = ptOrigin.y; j < rcClient.bottom; j += pbmDesc->bmHeight) BitBlt(hDC, i, j, pbmDesc->bmWidth, pbmDesc->bmHeight, htempDC, 0, 0, SRCCOPY); } SelectObject(htempDC, hOldBitmap); DeleteDC(htempDC); if (!pbmDesc->bmColors) { DeletePalette(hPAL); hPAL = 0; } return TRUE; }
void CRepositoryNode::LoadModules(IModuleVector & modules, CLoadingNode * loading) { clib::recursive_mutex::scoped_lock lock(m_mutex); if (m_loading == loading) { m_loading->Delete(); m_loading = NULL; WTL::CLockWindowUpdate lock(*GetTreeView()); for (IModuleVector::iterator itr = modules.begin(); itr != modules.end(); ++itr) { CModuleNode * newNode = new CModuleNode(m_owner, itr->get()); newNode->InsertBelow(*GetTreeView(), m_bVirtualNode ? TVI_ROOT : *this); newNode->operator ()(itr->get()); } } }
void CRepositoryFilterNode::ItemExpanding() { CComPtr<IRepository> rep = m_owner->GetRepository(); IModuleVector modules; rep->GetAllModules(modules, false, true, true); for(IAttributeVector::iterator itr = m_results->begin(); itr != m_results->end(); ++itr) { std::_tstring module = itr->get()->GetModuleQualifiedLabel(); if (m_modules.find(module) == m_modules.end()) { IModule * found = Find(&modules, module); ATLASSERT(found); m_modules[module] = new CModuleFilterNode(m_owner, found); ATLASSERT(m_modules[module].get()); } m_modules[module]->AddAttribute(itr->get()); } for(IModuleVector::iterator itr = modules.begin(); itr != modules.end(); ++itr) { if (m_modules.find(itr->get()->GetQualifiedLabel()) != m_modules.end()) { m_modules[itr->get()->GetQualifiedLabel()]->InsertBelow(*GetTreeView(), *this); m_modules[itr->get()->GetQualifiedLabel()]->Expand(); } } }
// create iconlist and Treeview control static BOOL CreateTreeIcons() { HICON hIcon; INT i; HINSTANCE hInst = GetModuleHandle(0); int numIcons = ICON_MAX + numExtraIcons; hTreeSmall = ImageList_Create (16, 16, ILC_COLORDDB | ILC_MASK, numIcons, numIcons); //dprintf("Trying to load %i normal icons",ICON_MAX); for (i = 0; i < ICON_MAX; i++) { hIcon = LoadIconFromFile(treeIconNames[i].lpName); if (!hIcon) hIcon = LoadIcon(hInst, MAKEINTRESOURCE(treeIconNames[i].nResourceID)); if (ImageList_AddIcon (hTreeSmall, hIcon) == -1) { ErrorMsg("Error creating icon on regular folder, %i %i",i,hIcon != NULL); return FALSE; } } //dprintf("Trying to load %i extra custom-folder icons",numExtraIcons); for (i = 0; i < numExtraIcons; i++) { if ((hIcon = LoadIconFromFile(ExtraFolderIcons[i])) == 0) hIcon = LoadIcon (hInst, MAKEINTRESOURCE(IDI_FOLDER)); if (ImageList_AddIcon(hTreeSmall, hIcon) == -1) { ErrorMsg("Error creating icon on extra folder, %i %i",i,hIcon != NULL); return FALSE; } } // Be sure that all the small icons were added. if (ImageList_GetImageCount(hTreeSmall) < numIcons) { ErrorMsg("Error with icon list--too few images. %i %i", ImageList_GetImageCount(hTreeSmall),numIcons); return FALSE; } // Be sure that all the small icons were added. if (ImageList_GetImageCount (hTreeSmall) < ICON_MAX) { ErrorMsg("Error with icon list--too few images. %i < %i", ImageList_GetImageCount(hTreeSmall),ICON_MAX); return FALSE; } // Associate the image lists with the list view control. TreeView_SetImageList(GetTreeView(), hTreeSmall, TVSIL_NORMAL); return TRUE; }
void CRepositoryNode::ItemExpanding() { clib::recursive_mutex::scoped_lock lock(m_mutex); if (!m_loading) m_loading = new CLoadingNode(); m_loading->InsertBelow(*GetTreeView(), m_bVirtualNode ? TVI_ROOT : *this); clib::thread run(__FUNCTION__, boost::bind(&GetModules, this, m_loading)); }
void CAttributeNode::operator()(ATTRSTATE state) { if (GetTreeView()) { SetState(-1, TVIS_STATEIMAGEMASK); SetState(INDEXTOSTATEIMAGEMASK(GetStateIcon(state)), TVIS_STATEIMAGEMASK); } }
void CModuleNode::operator()(IModule * /*module*/) { if (GetTreeView()) { SetState(-1, TVIS_STATEIMAGEMASK); SetState(INDEXTOSTATEIMAGEMASK(GetStateIcon(GetState())), TVIS_STATEIMAGEMASK); } }
void CModuleFilterNode::ItemExpanding() { for(IAttributeVector::iterator itr = m_attrs.begin(); itr != m_attrs.end(); ++itr) { CAttributeNode * newNode = new CAttributeNode(m_owner, itr->get()); newNode->InsertBelow(*GetTreeView(), *this); newNode->operator ()(newNode->GetAttribute(), false, NULL, false); } }
void CAttributeNode::operator()(IAttribute * /*attr*/, bool eclChanged, IAttribute * newAttrAsOldOneMoved, bool deleted) { if (GetTreeView()) { if (newAttrAsOldOneMoved || deleted) Delete(); else { GenerateDispText(); SetState(-1, TVIS_STATEIMAGEMASK); SetState(INDEXTOSTATEIMAGEMASK(GetStateIcon(GetState())), TVIS_STATEIMAGEMASK); } } }
void SelectTreeViewFolder(int folder_id) { HWND hTreeView = GetTreeView(); HTREEITEM hti; TVITEM tvi; hti = TreeView_GetRoot(hTreeView); while (hti != NULL) { HTREEITEM hti_next; tvi.hItem = hti; tvi.mask = TVIF_PARAM; TreeView_GetItem(hTreeView,&tvi); if (((LPTREEFOLDER)tvi.lParam)->m_nFolderId == folder_id) { TreeView_SelectItem(hTreeView,tvi.hItem); SetCurrentFolder((LPTREEFOLDER)tvi.lParam); return; } hti_next = TreeView_GetChild(hTreeView,hti); if (hti_next == NULL) { hti_next = TreeView_GetNextSibling(hTreeView,hti); if (hti_next == NULL) { hti_next = TreeView_GetParent(hTreeView,hti); if (hti_next != NULL) hti_next = TreeView_GetNextSibling(hTreeView,hti_next); } } hti = hti_next; } // could not find folder to select // make sure we select something tvi.hItem = TreeView_GetRoot(hTreeView); tvi.mask = TVIF_PARAM; TreeView_GetItem(hTreeView,&tvi); TreeView_SelectItem(hTreeView,tvi.hItem); SetCurrentFolder((LPTREEFOLDER)tvi.lParam); }
void CAttributeHistoryNode::operator()(IAttribute * /*attr*/, bool eclChanged, IAttribute * newAttrAsOldOneMoved, bool deleted) { if (GetTreeView()) { GenerateDispText(); bool isCurrentVersion = (m_attributeHistory->GetVersion() == m_attributeHistory->GetAttribute()->GetVersion()); SetState(-1, TVIS_STATEIMAGEMASK); SetState(INDEXTOSTATEIMAGEMASK(GetStateIcon(isCurrentVersion ? m_attributeHistory->GetAttribute()->GetState() : ATTRSTATE_NONE)), TVIS_STATEIMAGEMASK); } //TODO handle renamed and deleted. ATLASSERT(!newAttrAsOldOneMoved && !deleted); //CString modfiedDate(m_attributeHistory->GetModifiedDate()); //if( modfiedDate.IsEmpty() ) //{ // SetState(INDEXTOSTATEIMAGEMASK(ATTRSTATE_NONE), TVIS_STATEIMAGEMASK); //} //GenerateDispText(); }
void CMainFrame::OnUpdateMdsImportMdsFile(CCmdUI* pCmdUI) { CMdsEditTreeView *pTreeView = GetTreeView(); HTREEITEM hTreeItemSelected = 0; if ( pTreeView ) { hTreeItemSelected = pTreeView->GetTreeCtrl().GetSelectedItem(); pCmdUI->Enable( hTreeItemSelected && pTreeView->IsMdsRoot(hTreeItemSelected)); return; } pCmdUI->Enable( FALSE ); }
void CMainFrame::OnInitialUpdate() { // Add the right window pane int Width = (int) (GetWindowRect().Width() * 0.3); DWORD dwDockStyle = DS_DOCKED_LEFT | DS_NO_UNDOCK | DS_NO_CAPTION; m_pLeftPane = static_cast<CLeftPane*>(m_RightPane.AddDockedChild(new CLeftPane, dwDockStyle, Width)); // All windows are now created, so populate the treeview GetTreeView().GetRootItems(); // Uncheck the hidden menu item GetFrameMenu().CheckMenuItem(IDM_SHOW_HIDDEN, MF_UNCHECKED); // Place Radio button in view menu CMenu ViewMenu = GetFrameMenu().GetSubMenu(1); ViewMenu.CheckMenuRadioItem(IDM_VIEW_SMALLICON, IDM_VIEW_REPORT, IDM_VIEW_REPORT, 0); // Uncomment the following to use a hash bar and disable of auto resizing // m_RightPane.SetDragAutoResize(FALSE); }
bool CMusicListGroupUI::AdjustIndexs(int nStartPos) { TCHAR szBuf[MAX_PATH] = {0}; CMusicListItemUI *pListElement = NULL; CLabelUI* id = NULL; int nSum = GetTreeNodes().GetSize(); for (int i = 0; i < nSum; i++ ) { pListElement = static_cast<CMusicListItemUI*>(GetTreeNodes().GetAt(i)); if (pListElement == NULL) return false; id = static_cast<CLabelUI*>(GetTreeView()->GetManager()->FindSubControlByName(pListElement, kMusicIndexControlName)); if (id != NULL) { int index = 0; _stprintf_s(szBuf, MAX_PATH - 1, _T("%2.2d"), i + 1); id->SetText(szBuf); } else return false; } return true; }
void CMainFrame::OnViewRefresh() { CMdsEditTreeView *pTreeView = GetTreeView(); /*BOOL bStatus = */pTreeView->Refresh(); }
void CMainFrame::OnMdsImportMdsFile() { CMdsEditTreeView * pTreeView = GetTreeView(); pTreeView->ImportMdsFile(); }
// adds these folders to the treeview void ResetTreeViewFolders(void) { HWND hTreeView = GetTreeView(); int i; TVITEM tvi; TVINSERTSTRUCT tvs; HTREEITEM shti; // for current child branches // currently "cached" parent HTREEITEM hti_parent = NULL; int index_parent = -1; TreeView_DeleteAllItems(hTreeView); //dprintf("Adding folders to tree ui indices %i to %i",start_index,end_index); tvs.hInsertAfter = TVI_SORT; for (i=0;i<numFolders;i++) { LPTREEFOLDER lpFolder = treeFolders[i]; if (lpFolder->m_nParent == -1) { if (lpFolder->m_nFolderId < MAX_FOLDERS) { // it's a built in folder, let's see if we should show it if (GetShowFolder(lpFolder->m_nFolderId) == FALSE) { continue; } } tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE; tvs.hParent = TVI_ROOT; tvi.pszText = lpFolder->m_lpTitle; tvi.lParam = (LPARAM)lpFolder; tvi.iImage = GetTreeViewIconIndex(lpFolder->m_nIconId); tvi.iSelectedImage = 0; #if defined(__GNUC__) /* bug in commctrl.h */ tvs.item = tvi; #else tvs.DUMMYUNIONNAME.item = tvi; #endif // Add root branch hti_parent = TreeView_InsertItem(hTreeView, &tvs); continue; } // not a top level branch, so look for parent if (treeFolders[i]->m_nParent != index_parent) { hti_parent = TreeView_GetRoot(hTreeView); while (1) { if (hti_parent == NULL) { // couldn't find parent folder, so it's a built-in but // not shown folder break; } tvi.hItem = hti_parent; tvi.mask = TVIF_PARAM; TreeView_GetItem(hTreeView,&tvi); if (((LPTREEFOLDER)tvi.lParam) == treeFolders[treeFolders[i]->m_nParent]) break; hti_parent = TreeView_GetNextSibling(hTreeView,hti_parent); } // if parent is not shown, then don't show the child either obviously! if (hti_parent == NULL) continue; index_parent = treeFolders[i]->m_nParent; } tvi.mask = TVIF_TEXT | TVIF_PARAM | TVIF_IMAGE | TVIF_SELECTEDIMAGE; tvs.hParent = hti_parent; tvi.iImage = GetTreeViewIconIndex(treeFolders[i]->m_nIconId); tvi.iSelectedImage = 0; tvi.pszText = treeFolders[i]->m_lpTitle; tvi.lParam = (LPARAM)treeFolders[i]; #if defined(__GNUC__) /* bug in commctrl.h */ tvs.item = tvi; #else tvs.DUMMYUNIONNAME.item = tvi; #endif // Add it to this tree branch shti = TreeView_InsertItem(hTreeView, &tvs); } }
void CMainFrame::OnEditFind() { GetTreeView()->FindFirst(); }