Example #1
0
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;
}
Example #2
0
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);
}