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); } } }
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; }
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; }