Пример #1
0
void FolderPane::onClick(FolderCtrl &aFolderCtrl)
{
    if (XPR_IS_TRUE(gOpt->mMain.mSingleFolderPaneMode))
    {
        CPoint sPoint(0,0);
        GetCursorPos(&sPoint);
        aFolderCtrl.ScreenToClient(&sPoint);

        xpr_uint_t sFlags = 0;
        HTREEITEM sTreeItem = aFolderCtrl.HitTest(sPoint, &sFlags);

        HTREEITEM sSelTreeItem = aFolderCtrl.GetSelectedItem();
        if (sTreeItem == sSelTreeItem && XPR_ANY_BITS(sFlags, TVHT_ONITEM))
        {
            mFolderCtrl->explore(sTreeItem);
        }
    }
}
Пример #2
0
xpr_bool_t ProgramAss::getItemFromExt(const xpr_tchar_t *aExt, xpr_uint_t aType, ProgramAssDeque &aProgramAssDeque)
{
    FileFilterMgr &sFileFilterMgr = FileFilterMgr::instance();

    const xpr_tchar_t *sExts;
    FilterItem *sFilterItem;
    ProgramAssItem *sProgramAssItem;
    ProgramAssDeque::iterator sIterator;

    sIterator = mProgramAssDeque.begin();
    for (; sIterator != mProgramAssDeque.end(); ++sIterator)
    {
        sProgramAssItem = *sIterator;
        if (XPR_IS_NULL(sProgramAssItem))
            continue;

        if (!XPR_ANY_BITS(sProgramAssItem->mType, aType))
            continue;

        sExts = sProgramAssItem->mExts.c_str();
        if (sProgramAssItem->mMethod == ProgramAssMethodFilter)
        {
            sFilterItem = sFileFilterMgr.getFilterFromName(sProgramAssItem->mFilterName);
            if (XPR_IS_NOT_NULL(sFilterItem))
                sExts = sFilterItem->mExts.c_str();
        }

        if ((_tcsicmp(sExts, XPR_STRING_LITERAL("*.*")) == 0) ||
            (XPR_IS_NOT_NULL(aExt) && IsEqualFilter(sExts, aExt) == XPR_TRUE))
        {
            aProgramAssDeque.push_back(sProgramAssItem);
        }
    }

    return (aProgramAssDeque.empty() == false) ? XPR_TRUE : XPR_FALSE;
}
Пример #3
0
xpr_size_t ProgramAss::indexFromExt(const xpr_tchar_t *aExt, xpr_uint_t aType)
{
    FileFilterMgr &sFileFilterMgr = FileFilterMgr::instance();

    const xpr_tchar_t *sExts;
    FilterItem *sFilterItem;
    ProgramAssItem *sProgramAssItem;
    ProgramAssDeque::iterator sIterator;

    if (XPR_IS_NOT_NULL(aExt))
    {
        sIterator = mProgramAssDeque.begin();
        for (; sIterator != mProgramAssDeque.end(); ++sIterator)
        {
            sProgramAssItem = *sIterator;
            if (XPR_IS_NULL(sProgramAssItem))
                continue;

            if (!XPR_ANY_BITS(sProgramAssItem->mType, aType))
                continue;

            sExts = sProgramAssItem->mExts.c_str();
            if (sProgramAssItem->mMethod == ProgramAssMethodFilter)
            {
                sFilterItem = sFileFilterMgr.getFilterFromName(sProgramAssItem->mFilterName);
                if (XPR_IS_NOT_NULL(sFilterItem))
                    sExts = sFilterItem->mExts.c_str();
            }

            if (_tcsicmp(sExts, XPR_STRING_LITERAL("*.*")) == 0)
                continue;

            if (IsEqualFilter(sExts, aExt) == XPR_TRUE)
                return std::distance(mProgramAssDeque.begin(), sIterator);
        }
    }

    sIterator = mProgramAssDeque.begin();
    for (; sIterator != mProgramAssDeque.end(); ++sIterator)
    {
        sProgramAssItem = *sIterator;
        if (XPR_IS_NULL(sProgramAssItem))
            continue;

        if (!XPR_ANY_BITS(sProgramAssItem->mType, aType))
            continue;

        sExts = sProgramAssItem->mExts.c_str();
        if (sProgramAssItem->mMethod == ProgramAssMethodFilter)
        {
            sFilterItem = sFileFilterMgr.getFilterFromName(sProgramAssItem->mFilterName);
            if (XPR_IS_NOT_NULL(sFilterItem))
                sExts = sFilterItem->mExts.c_str();
        }

        if (_tcsicmp(sExts, XPR_STRING_LITERAL("*.*")) != 0)
            continue;

        if (IsEqualFilter(sExts, aExt) == XPR_TRUE)
            return std::distance(mProgramAssDeque.begin(), sIterator);
    }

    return -1;
}