bool CTabStack::SetTabDrawRect(int anIndex, const RECT& rcTab) { bool lbExist = false; MSectionLockSimple SC; SC.Lock(mpc_Section); int iReal = GetVisualToRealIndex(anIndex); if (iReal >= 0 && iReal < mn_Used) { CTabID* pTab = mpp_Stack[iReal]; if (pTab) { if (memcmp(&pTab->DrawInfo.rcTab, &rcTab, sizeof(rcTab)) != 0) { pTab->ReleaseDrawRegion(); pTab->DrawInfo.rcTab = rcTab; } lbExist = true; } else { _ASSERTE(pTab!=NULL); } } else { _ASSERTE(iReal >= 0 && iReal < mn_Used); } SC.Unlock(); return lbExist; }
bool CTabStack::GetTabDrawRect(int anIndex, RECT* rcTab) { bool lbExist = false; MSectionLockSimple SC; SC.Lock(mpc_Section); int iReal = GetVisualToRealIndex(anIndex); if (iReal >= 0 && iReal < mn_Used) { CTabID* pTab = mpp_Stack[iReal]; if (pTab) { if (rcTab) *rcTab = pTab->DrawInfo.rcTab; lbExist = true; } else { _ASSERTE(pTab!=NULL); } } else { _ASSERTE(iReal >= 0 && iReal < mn_Used); } SC.Unlock(); return lbExist; }
bool CTabStack::GetTabByIndex(int anIndex, /*OUT*/ CTab& rTab) { MSectionLockSimple SC; SC.Lock(mpc_Section); int iReal = GetVisualToRealIndex(anIndex); if (iReal >= 0 && iReal < mn_Used) { rTab.Init(mpp_Stack[iReal]); } else { rTab.Init(NULL); } SC.Unlock(); return (rTab.Tab() != NULL); }
bool CTabStack::GetTabInfoByIndex(int anIndex, /*OUT*/ TabInfo& rInfo) { bool lbFound = false; MSectionLockSimple SC; SC.Lock(mpc_Section); int iReal = GetVisualToRealIndex(anIndex); if (iReal >= 0 && iReal < mn_Used) { if (mpp_Stack[iReal]) { rInfo = mpp_Stack[iReal]->Info; lbFound = true; } } SC.Unlock(); return lbFound; }