Kaydet (Commit) 17cd043f authored tarafından Rüdiger Timm's avatar Rüdiger Timm

INTEGRATION: CWS draw9 (1.35.10); FILE MERGED

2003/04/17 13:54:32 aw 1.35.10.4: #108973#
2003/04/11 17:36:12 thb 1.35.10.3: #108867# skip background only on second or higher recursion levels
2003/04/11 16:16:14 thb 1.35.10.2: #108867# Properly handle background colors of page and master page
2003/04/09 13:40:32 aw 1.35.10.1: #i13033#
New mechanism to re-create the connections of cloned connectors
üst 67252417
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
* *
* $RCSfile: svdpage.cxx,v $ * $RCSfile: svdpage.cxx,v $
* *
* $Revision: 1.35 $ * $Revision: 1.36 $
* *
* last change: $Author: hr $ $Date: 2003-03-27 15:04:36 $ * last change: $Author: rt $ $Date: 2003-04-24 14:49:49 $
* *
* The Contents of this file are made available subject to the terms of * The Contents of this file are made available subject to the terms of
* either of the following licenses * either of the following licenses
...@@ -751,7 +751,28 @@ FASTBOOL SdrObjList::Paint(ExtOutputDevice& rXOut, const SdrPaintInfoRec& rInfoR ...@@ -751,7 +751,28 @@ FASTBOOL SdrObjList::Paint(ExtOutputDevice& rXOut, const SdrPaintInfoRec& rInfoR
// Gruppenobjekte beruecksichtigen sichtbare Layer selbst (Ansonsten nur Painten, wenn Layer sichtbar) // Gruppenobjekte beruecksichtigen sichtbare Layer selbst (Ansonsten nur Painten, wenn Layer sichtbar)
if( pSubList!=NULL || ((!bPrinter || pObj->IsPrintable()) && aPaintLayer.IsSet(pObj->GetLayer())) ) if( pSubList!=NULL || ((!bPrinter || pObj->IsPrintable()) && aPaintLayer.IsSet(pObj->GetLayer())) )
{ {
if( !bNormal && !pObj->IsMasterCachable() ) // #108937#
// IsMasterCachable() does not visit groups automatically. Since
// this mechanism should be changed to set information at the page
// (counter?) later, i will fix that with a SdrObjListIter here.
sal_Bool bHierarchyIsMasterPageCachable(pObj->IsMasterCachable());
if(bHierarchyIsMasterPageCachable && pObj->IsGroupObject())
{
SdrObjListIter aIter(*pObj, IM_DEEPNOGROUPS);
while(bHierarchyIsMasterPageCachable && aIter.IsMore())
{
SdrObject* pNestedObj = aIter.Next();
if(!pNestedObj->IsMasterCachable())
{
bHierarchyIsMasterPageCachable = sal_False;
}
}
}
if( !bNormal && !bHierarchyIsMasterPageCachable)
{ {
if( bCachePrepare || bBGCachePrepare ) if( bCachePrepare || bBGCachePrepare )
bBrk = TRUE, bPaintFlag = FALSE; bBrk = TRUE, bPaintFlag = FALSE;
...@@ -1048,9 +1069,11 @@ FASTBOOL SdrObjList::GetFillColor(const Point& rPnt, const SetOfByte& rVisLayers ...@@ -1048,9 +1069,11 @@ FASTBOOL SdrObjList::GetFillColor(const Point& rPnt, const SetOfByte& rVisLayers
bRet=pOL->GetFillColor(rPnt,rVisLayers,bLayerSorted,rCol); bRet=pOL->GetFillColor(rPnt,rVisLayers,bLayerSorted,rCol);
} else { } else {
SdrTextObj* pTextObj=PTR_CAST(SdrTextObj,pObj); SdrTextObj* pTextObj=PTR_CAST(SdrTextObj,pObj);
// #108867# Exclude zero master page object (i.e. background
// shape) from color query
if (pTextObj!=NULL && if (pTextObj!=NULL &&
pObj->IsClosedObj() && rVisLayers.IsSet(pObj->GetLayer()) && pObj->IsClosedObj() && rVisLayers.IsSet(pObj->GetLayer()) &&
(!bMaster || !pObj->IsNotVisibleAsMaster()) && (!bMaster || (!pObj->IsNotVisibleAsMaster() && no!=0)) &&
pObj->GetBoundRect().IsInside(rPnt) && pObj->GetBoundRect().IsInside(rPnt) &&
!pTextObj->IsHideContour() && pObj->IsHit(rPnt,0,NULL)) !pTextObj->IsHideContour() && pObj->IsHit(rPnt,0,NULL))
{ // Nachfolgend extra Funktion um Stack zu sparen, { // Nachfolgend extra Funktion um Stack zu sparen,
...@@ -1765,8 +1788,8 @@ void SdrPage::ImpMasterPageMoved(USHORT nMasterPageNum, USHORT nNewMasterPageNum ...@@ -1765,8 +1788,8 @@ void SdrPage::ImpMasterPageMoved(USHORT nMasterPageNum, USHORT nNewMasterPageNum
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
FASTBOOL SdrPage::GetFillColor(const Point& rPnt, const SetOfByte& rVisLayers, FASTBOOL SdrPage::ImplGetFillColor(const Point& rPnt, const SetOfByte& rVisLayers,
FASTBOOL bLayerSorted, Color& rCol) const FASTBOOL bLayerSorted, Color& rCol, FASTBOOL bSkipBackgroundShape) const
{ {
if (pModel==NULL) return FALSE; if (pModel==NULL) return FALSE;
FASTBOOL bRet=SdrObjList::GetFillColor(rPnt,rVisLayers,bLayerSorted,rCol); FASTBOOL bRet=SdrObjList::GetFillColor(rPnt,rVisLayers,bLayerSorted,rCol);
...@@ -1779,16 +1802,41 @@ FASTBOOL SdrPage::GetFillColor(const Point& rPnt, const SetOfByte& rVisLayers, ...@@ -1779,16 +1802,41 @@ FASTBOOL SdrPage::GetFillColor(const Point& rPnt, const SetOfByte& rVisLayers,
SetOfByte aSet(rVisLayers); SetOfByte aSet(rVisLayers);
aSet&=rMaster.GetVisibleLayers(); aSet&=rMaster.GetVisibleLayers();
SdrPage* pMaster=pModel->GetMasterPage(rMaster.GetPageNum()); SdrPage* pMaster=pModel->GetMasterPage(rMaster.GetPageNum());
if (pMaster!=NULL) { if (pMaster!=NULL)
bRet=pMaster->GetFillColor(rPnt,aSet,bLayerSorted,rCol); {
// #108867# Don't fall back to background shape on
// master pages. This is later handled by
// GetBackgroundColor, and is necessary to cater for
// the silly ordering: 1. shapes, 2. master page
// shapes, 3. page background, 4. master page
// background.
bRet=pMaster->ImplGetFillColor(rPnt,aSet,bLayerSorted,rCol,TRUE);
} }
} }
} }
// #108867# Only now determine background color from background shapes
if( !bRet && !bSkipBackgroundShape )
{
rCol = GetBackgroundColor();
return TRUE;
}
return bRet; return bRet;
} }
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
FASTBOOL SdrPage::GetFillColor(const Point& rPnt, const SetOfByte& rVisLayers,
FASTBOOL bLayerSorted, Color& rCol) const
{
// #108867# Wrapper for ImplGetFillColor. Used to properly set the
// bSkipBackgroundShape parameter. Never skip background shape on
// first level of recursion
return ImplGetFillColor(rPnt,rVisLayers,bLayerSorted,rCol,FALSE);
}
////////////////////////////////////////////////////////////////////////////////////////////////////
const SdrPageGridFrameList* SdrPage::GetGridFrameList(const SdrPageView* pPV, const Rectangle* pRect) const const SdrPageGridFrameList* SdrPage::GetGridFrameList(const SdrPageView* pPV, const Rectangle* pRect) const
{ {
return NULL; return NULL;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment