IModule * CRepositoryView::GetFirstSelectedModule() { for(HTREEITEM pos = m_Tree.GetFirstSelectedItem(); pos != (HTREEITEM)0; pos = m_Tree.GetNextSelectedItem(pos)) { WTL::CTreeItem item(pos, &m_Tree); CComQIPtr<CModuleNode> node = reinterpret_cast<CTreeNode *>(item.GetData()); if (node) return node->GetModule(); } return NULL; }
BOOL CRepositoryView::PreTranslateMessage(MSG* pMsg) { if (pMsg->message == WM_KEYDOWN) { UINT ctrl = 0; switch(pMsg->wParam) { case VK_DELETE: DoDeleteSelectedAttributes(); break; case VK_RETURN: { TVITEM item; item.mask = TVIF_HANDLE; item.hItem = m_Tree.GetSelectedItem(); if (m_Tree.GetItem(&item)) { CComPtr<CTreeNode> tn = (CTreeNode *)item.lParam; tn->OnDblclk(m_Tree.GetSelectedItem()); } } break; case _T('C'): case _T('c'): { ctrl = ::GetKeyState(VK_CONTROL); UINT alt = ::GetKeyState(VK_MENU); if (ctrl != 0 && alt != 0) { CRepositorySelections s; GetSelected(s); if (!s.attrs.empty()) DoCopy(s.attrs, _T("\r\n")); return 0; } } break; case VK_F5: RefreshRepository(); break; case _T('N'): case _T('n'): ctrl = ::GetKeyState(VK_CONTROL); if (ctrl != 0) { TVITEM item; item.mask = TVIF_HANDLE; item.hItem = m_Tree.GetSelectedItem(); if (m_Tree.GetItem(&item)) { CComQIPtr<CModuleNode> modNode = (CTreeNode *)item.lParam; if (modNode) { m_Owner->DoInsertAttribute(modNode->GetModule()); } } } break; default: break; } } return IsDialogMessage(pMsg); }