LCOV - code coverage report
Current view: top level - svx/source/sdr/contact - viewobjectcontactofsdrpage.cxx (source / functions) Hit Total Coverage
Test: commit 10e77ab3ff6f4314137acd6e2702a6e5c1ce1fae Lines: 227 270 84.1 %
Date: 2014-11-03 Functions: 51 52 98.1 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : 
      21             : #include <sdr/contact/viewobjectcontactofsdrpage.hxx>
      22             : #include <svx/sdr/contact/displayinfo.hxx>
      23             : #include <sdr/contact/viewcontactofsdrpage.hxx>
      24             : #include <svx/svdview.hxx>
      25             : #include <svx/svdpage.hxx>
      26             : #include <svx/sdr/contact/objectcontact.hxx>
      27             : #include <drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx>
      28             : #include <basegfx/polygon/b2dpolygontools.hxx>
      29             : #include <drawinglayer/primitive2d/polypolygonprimitive2d.hxx>
      30             : #include <drawinglayer/primitive2d/gridprimitive2d.hxx>
      31             : #include <drawinglayer/primitive2d/helplineprimitive2d.hxx>
      32             : #include <basegfx/polygon/b2dpolygon.hxx>
      33             : #include <sdr/primitive2d/sdrprimitivetools.hxx>
      34             : 
      35             : using namespace com::sun::star;
      36             : 
      37             : namespace sdr { namespace contact {
      38             : 
      39        2806 : const SdrPage& ViewObjectContactOfPageSubObject::getPage() const
      40             : {
      41        2806 :     return static_cast< ViewContactOfPageSubObject& >(GetViewContact()).getPage();
      42             : }
      43             : 
      44       38231 : ViewObjectContactOfPageSubObject::ViewObjectContactOfPageSubObject(ObjectContact& rObjectContact, ViewContact& rViewContact)
      45       38231 : :   ViewObjectContact(rObjectContact, rViewContact)
      46             : {
      47       38231 : }
      48             : 
      49       37978 : ViewObjectContactOfPageSubObject::~ViewObjectContactOfPageSubObject()
      50             : {
      51       37978 : }
      52             : 
      53      457538 : bool ViewObjectContactOfPageSubObject::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
      54             : {
      55      457538 :     if(rDisplayInfo.GetSubContentActive())
      56             :     {
      57        7760 :         return false;
      58             :     }
      59             : 
      60      449778 :     if(rDisplayInfo.GetControlLayerProcessingActive())
      61             :     {
      62      153024 :         return false;
      63             :     }
      64             : 
      65      296754 :     if(!rDisplayInfo.GetPageProcessingActive())
      66             :     {
      67      287340 :         return false;
      68             :     }
      69             : 
      70        9414 :     if(GetObjectContact().isOutputToPrinter())
      71             :     {
      72           0 :         return false;
      73             :     }
      74             : 
      75        9414 :     if(!GetObjectContact().TryToGetSdrPageView())
      76             :     {
      77           0 :         return false;
      78             :     }
      79             : 
      80        9414 :     return true;
      81             : }
      82             : 
      83        3431 : bool ViewObjectContactOfPageSubObject::isPrimitiveGhosted(const DisplayInfo& /*rDisplayInfo*/) const
      84             : {
      85             :     // suppress ghosted for page parts
      86        3431 :     return false;
      87             : }
      88             : 
      89        3513 : ViewObjectContactOfPageBackground::ViewObjectContactOfPageBackground(ObjectContact& rObjectContact, ViewContact& rViewContact)
      90        3513 : :   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
      91             : {
      92        3513 : }
      93             : 
      94        6980 : ViewObjectContactOfPageBackground::~ViewObjectContactOfPageBackground()
      95             : {
      96        6980 : }
      97             : 
      98       45909 : bool ViewObjectContactOfPageBackground::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
      99             : {
     100       45909 :     if(!ViewObjectContactOfPageSubObject::isPrimitiveVisible(rDisplayInfo))
     101             :     {
     102       44890 :         return false;
     103             :     }
     104             : 
     105             :     // no page background for preview renderers
     106        1019 :     if(GetObjectContact().IsPreviewRenderer())
     107             :     {
     108         181 :         return false;
     109             :     }
     110             : 
     111         838 :     return true;
     112             : }
     113             : 
     114        1440 : drawinglayer::primitive2d::Primitive2DSequence ViewObjectContactOfPageBackground::createPrimitive2DSequence(const DisplayInfo& /*rDisplayInfo*/) const
     115             : {
     116             :     // Initialize background. Dependent of IsPageVisible, use ApplicationBackgroundColor or ApplicationDocumentColor. Most
     117             :     // old renderers for export (html, pdf, gallery, ...) set the page to not visible (SetPageVisible(false)). They expect the
     118             :     // given OutputDevice to be initialized with the ApplicationDocumentColor then.
     119        1440 :     const SdrPageView* pPageView = GetObjectContact().TryToGetSdrPageView();
     120        1440 :     drawinglayer::primitive2d::Primitive2DSequence xRetval;
     121             : 
     122        1440 :     if(pPageView)
     123             :     {
     124        1440 :         const SdrView& rView = pPageView->GetView();
     125        1440 :         Color aInitColor;
     126             : 
     127        1440 :         if(rView.IsPageVisible())
     128             :         {
     129         801 :             aInitColor = pPageView->GetApplicationBackgroundColor();
     130             :         }
     131             :         else
     132             :         {
     133         639 :             aInitColor = pPageView->GetApplicationDocumentColor();
     134             : 
     135         639 :             if(Color(COL_AUTO) == aInitColor)
     136             :             {
     137         639 :                 const svtools::ColorConfig aColorConfig;
     138         639 :                 aInitColor = aColorConfig.GetColorValue(svtools::DOCCOLOR).nColor;
     139             :             }
     140             :         }
     141             : 
     142             :         // init background with InitColor
     143        1440 :         xRetval.realloc(1);
     144        1440 :         const basegfx::BColor aRGBColor(aInitColor.getBColor());
     145        1440 :         xRetval[0] = drawinglayer::primitive2d::Primitive2DReference(new drawinglayer::primitive2d::BackgroundColorPrimitive2D(aRGBColor));
     146             :     }
     147             : 
     148        1440 :     return xRetval;
     149             : }
     150             : 
     151        3101 : ViewObjectContactOfMasterPage::ViewObjectContactOfMasterPage(ObjectContact& rObjectContact, ViewContact& rViewContact)
     152        3101 : :   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
     153             : {
     154        3101 : }
     155             : 
     156        6156 : ViewObjectContactOfMasterPage::~ViewObjectContactOfMasterPage()
     157             : {
     158        6156 : }
     159             : 
     160       44357 : bool ViewObjectContactOfMasterPage::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
     161             : {
     162       44357 :     if(!ViewObjectContactOfPageSubObject::isPrimitiveVisible(rDisplayInfo))
     163             :     {
     164       44114 :         return false;
     165             :     }
     166             : 
     167             :     // this object is only used for MasterPages. When not the MasterPage is
     168             :     // displayed as a page, but another page is using it as sub-object, the
     169             :     // geometry needs to be hidden
     170         243 :     if(rDisplayInfo.GetSubContentActive())
     171             :     {
     172           0 :         return false;
     173             :     }
     174             : 
     175         243 :     return true;
     176             : }
     177             : 
     178        3513 : ViewObjectContactOfPageFill::ViewObjectContactOfPageFill(ObjectContact& rObjectContact, ViewContact& rViewContact)
     179        3513 : :   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
     180             : {
     181        3513 : }
     182             : 
     183        6980 : ViewObjectContactOfPageFill::~ViewObjectContactOfPageFill()
     184             : {
     185        6980 : }
     186             : 
     187       45909 : bool ViewObjectContactOfPageFill::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
     188             : {
     189       45909 :     if(!ViewObjectContactOfPageSubObject::isPrimitiveVisible(rDisplayInfo))
     190             :     {
     191       44890 :         return false;
     192             :     }
     193             : 
     194        1019 :     SdrPageView* pSdrPageView = GetObjectContact().TryToGetSdrPageView();
     195             : 
     196        1019 :     if(!pSdrPageView)
     197             :     {
     198           0 :         return false;
     199             :     }
     200             : 
     201        1019 :     if(!pSdrPageView->GetView().IsPageVisible())
     202             :     {
     203         542 :         return false;
     204             :     }
     205             : 
     206         477 :     return true;
     207             : }
     208             : 
     209        1079 : drawinglayer::primitive2d::Primitive2DSequence ViewObjectContactOfPageFill::createPrimitive2DSequence(const DisplayInfo& /*rDisplayInfo*/) const
     210             : {
     211        1079 :     const SdrPageView* pPageView = GetObjectContact().TryToGetSdrPageView();
     212        1079 :     drawinglayer::primitive2d::Primitive2DSequence xRetval;
     213             : 
     214        1079 :     if(pPageView)
     215             :     {
     216        1079 :         const SdrPage& rPage = getPage();
     217             : 
     218        1079 :         const basegfx::B2DRange aPageFillRange(0.0, 0.0, (double)rPage.GetWdt(), (double)rPage.GetHgt());
     219        1079 :         const basegfx::B2DPolygon aPageFillPolygon(basegfx::tools::createPolygonFromRect(aPageFillRange));
     220        1079 :         Color aPageFillColor;
     221             : 
     222        1079 :         if(pPageView->GetApplicationDocumentColor() != COL_AUTO)
     223             :         {
     224           0 :             aPageFillColor = pPageView->GetApplicationDocumentColor();
     225             :         }
     226             :         else
     227             :         {
     228        1079 :             const svtools::ColorConfig aColorConfig;
     229        1079 :             aPageFillColor = aColorConfig.GetColorValue(svtools::DOCCOLOR).nColor;
     230             :         }
     231             : 
     232             :         // create and add primitive
     233        1079 :         xRetval.realloc(1);
     234        2158 :         const basegfx::BColor aRGBColor(aPageFillColor.getBColor());
     235        2158 :         xRetval[0] = drawinglayer::primitive2d::Primitive2DReference(new drawinglayer::primitive2d::PolyPolygonColorPrimitive2D(basegfx::B2DPolyPolygon(aPageFillPolygon), aRGBColor));
     236             :     }
     237             : 
     238        1079 :     return xRetval;
     239             : }
     240             : 
     241        3513 : ViewObjectContactOfPageShadow::ViewObjectContactOfPageShadow(ObjectContact& rObjectContact, ViewContact& rViewContact)
     242        3513 : :   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
     243             : {
     244        3513 : }
     245             : 
     246        6980 : ViewObjectContactOfPageShadow::~ViewObjectContactOfPageShadow()
     247             : {
     248        6980 : }
     249             : 
     250       45909 : bool ViewObjectContactOfPageShadow::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
     251             : {
     252       45909 :     if(!ViewObjectContactOfPageSubObject::isPrimitiveVisible(rDisplayInfo))
     253             :     {
     254       44890 :         return false;
     255             :     }
     256             : 
     257        1019 :     SdrPageView* pSdrPageView = GetObjectContact().TryToGetSdrPageView();
     258             : 
     259        1019 :     if(!pSdrPageView)
     260             :     {
     261           0 :         return false;
     262             :     }
     263             : 
     264        1019 :     if(!pSdrPageView->GetView().IsPageVisible())
     265             :     {
     266         542 :         return false;
     267             :     }
     268             : 
     269             :     // no page shadow for preview renderers
     270         477 :     if(GetObjectContact().IsPreviewRenderer())
     271             :     {
     272           0 :         return false;
     273             :     }
     274             : 
     275             :     // no page shadow for high contrast mode
     276         477 :     if(GetObjectContact().isDrawModeHighContrast())
     277             :     {
     278           0 :         return false;
     279             :     }
     280             : 
     281         477 :     return true;
     282             : }
     283             : 
     284        3513 : ViewObjectContactOfOuterPageBorder::ViewObjectContactOfOuterPageBorder(ObjectContact& rObjectContact, ViewContact& rViewContact)
     285        3513 : :   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
     286             : {
     287        3513 : }
     288             : 
     289        6980 : ViewObjectContactOfOuterPageBorder::~ViewObjectContactOfOuterPageBorder()
     290             : {
     291        6980 : }
     292             : 
     293       45909 : bool ViewObjectContactOfOuterPageBorder::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
     294             : {
     295       45909 :     if(!ViewObjectContactOfPageSubObject::isPrimitiveVisible(rDisplayInfo))
     296             :     {
     297       44890 :         return false;
     298             :     }
     299             : 
     300        1019 :     SdrPageView* pSdrPageView = GetObjectContact().TryToGetSdrPageView();
     301             : 
     302        1019 :     if(!pSdrPageView)
     303             :     {
     304           0 :         return false;
     305             :     }
     306             : 
     307        1019 :     const SdrView& rView = pSdrPageView->GetView();
     308             : 
     309        1019 :     if(!rView.IsPageVisible() && rView.IsPageBorderVisible())
     310             :     {
     311         303 :         return false;
     312             :     }
     313             : 
     314         716 :     return true;
     315             : }
     316             : 
     317        3513 : ViewObjectContactOfInnerPageBorder::ViewObjectContactOfInnerPageBorder(ObjectContact& rObjectContact, ViewContact& rViewContact)
     318        3513 : :   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
     319             : {
     320        3513 : }
     321             : 
     322        6980 : ViewObjectContactOfInnerPageBorder::~ViewObjectContactOfInnerPageBorder()
     323             : {
     324        6980 : }
     325             : 
     326       45909 : bool ViewObjectContactOfInnerPageBorder::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
     327             : {
     328       45909 :     if(!ViewObjectContactOfPageSubObject::isPrimitiveVisible(rDisplayInfo))
     329             :     {
     330       44890 :         return false;
     331             :     }
     332             : 
     333        1019 :     SdrPageView* pSdrPageView = GetObjectContact().TryToGetSdrPageView();
     334             : 
     335        1019 :     if(!pSdrPageView)
     336             :     {
     337           0 :         return false;
     338             :     }
     339             : 
     340        1019 :     if(!pSdrPageView->GetView().IsBordVisible())
     341             :     {
     342         542 :         return false;
     343             :     }
     344             : 
     345         477 :     const SdrPage& rPage = getPage();
     346             : 
     347         477 :     if(!rPage.GetLftBorder() && !rPage.GetUppBorder() && !rPage.GetRgtBorder() && !rPage.GetLwrBorder())
     348             :     {
     349          45 :         return false;
     350             :     }
     351             : 
     352             :     // no inner page border for preview renderers
     353         432 :     if(GetObjectContact().IsPreviewRenderer())
     354             :     {
     355           0 :         return false;
     356             :     }
     357             : 
     358         432 :     return true;
     359             : }
     360             : 
     361        3513 : ViewObjectContactOfPageHierarchy::ViewObjectContactOfPageHierarchy(ObjectContact& rObjectContact, ViewContact& rViewContact)
     362        3513 : :   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
     363             : {
     364        3513 : }
     365             : 
     366        6980 : ViewObjectContactOfPageHierarchy::~ViewObjectContactOfPageHierarchy()
     367             : {
     368        6980 : }
     369             : 
     370       45909 : drawinglayer::primitive2d::Primitive2DSequence ViewObjectContactOfPageHierarchy::getPrimitive2DSequenceHierarchy(DisplayInfo& rDisplayInfo) const
     371             : {
     372       45909 :     drawinglayer::primitive2d::Primitive2DSequence xRetval;
     373             : 
     374             :     // process local sub-hierarchy
     375       45909 :     const sal_uInt32 nSubHierarchyCount(GetViewContact().GetObjectCount());
     376             : 
     377       45909 :     if(nSubHierarchyCount)
     378             :     {
     379       12937 :         xRetval = getPrimitive2DSequenceSubHierarchy(rDisplayInfo);
     380             : 
     381       12937 :         if(xRetval.hasElements())
     382             :         {
     383             :             // get ranges
     384        3848 :             const drawinglayer::geometry::ViewInformation2D& rViewInformation2D(GetObjectContact().getViewInformation2D());
     385        3848 :             const basegfx::B2DRange aObjectRange(drawinglayer::primitive2d::getB2DRangeFromPrimitive2DSequence(xRetval, rViewInformation2D));
     386        3848 :             const basegfx::B2DRange aViewRange(rViewInformation2D.getViewport());
     387             : 
     388             :             // check geometrical visibility
     389        3848 :             if(!aViewRange.isEmpty() && !aViewRange.overlaps(aObjectRange))
     390             :             {
     391             :                 // not visible, release
     392           0 :                 xRetval.realloc(0);
     393             :             }
     394             :         }
     395             :     }
     396             : 
     397       45909 :     return xRetval;
     398             : }
     399             : 
     400        7026 : ViewObjectContactOfPageGrid::ViewObjectContactOfPageGrid(ObjectContact& rObjectContact, ViewContact& rViewContact)
     401        7026 : :   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
     402             : {
     403        7026 : }
     404             : 
     405       13960 : ViewObjectContactOfPageGrid::~ViewObjectContactOfPageGrid()
     406             : {
     407       13960 : }
     408             : 
     409       91818 : bool ViewObjectContactOfPageGrid::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
     410             : {
     411       91818 :     if(!ViewObjectContactOfPageSubObject::isPrimitiveVisible(rDisplayInfo))
     412             :     {
     413       89780 :         return false;
     414             :     }
     415             : 
     416        2038 :     SdrPageView* pSdrPageView = GetObjectContact().TryToGetSdrPageView();
     417             : 
     418        2038 :     if(!pSdrPageView)
     419             :     {
     420           0 :         return false;
     421             :     }
     422             : 
     423        2038 :     const SdrView& rView = pSdrPageView->GetView();
     424             : 
     425        2038 :     if(!rView.IsGridVisible())
     426             :     {
     427        2038 :         return false;
     428             :     }
     429             : 
     430             :     // no page grid for preview renderers
     431           0 :     if(GetObjectContact().IsPreviewRenderer())
     432             :     {
     433           0 :         return false;
     434             :     }
     435             : 
     436           0 :     if(static_cast< ViewContactOfGrid& >(GetViewContact()).getFront() != (bool)rView.IsGridFront())
     437             :     {
     438           0 :         return false;
     439             :     }
     440             : 
     441           0 :     return true;
     442             : }
     443             : 
     444        1250 : drawinglayer::primitive2d::Primitive2DSequence ViewObjectContactOfPageGrid::createPrimitive2DSequence(const DisplayInfo& /*rDisplayInfo*/) const
     445             : {
     446        1250 :     const SdrPageView* pPageView = GetObjectContact().TryToGetSdrPageView();
     447        1250 :     drawinglayer::primitive2d::Primitive2DSequence xRetval;
     448             : 
     449        1250 :     if(pPageView)
     450             :     {
     451        1250 :         const SdrView& rView = pPageView->GetView();
     452        1250 :         const SdrPage& rPage = getPage();
     453        1250 :         const Color aGridColor(rView.GetGridColor());
     454        1250 :         const basegfx::BColor aRGBGridColor(aGridColor.getBColor());
     455             : 
     456        2500 :         basegfx::B2DHomMatrix aGridMatrix;
     457        1250 :         aGridMatrix.set(0, 0, (double)(rPage.GetWdt() - (rPage.GetRgtBorder() + rPage.GetLftBorder())));
     458        1250 :         aGridMatrix.set(1, 1, (double)(rPage.GetHgt() - (rPage.GetLwrBorder() + rPage.GetUppBorder())));
     459        1250 :         aGridMatrix.set(0, 2, (double)rPage.GetLftBorder());
     460        1250 :         aGridMatrix.set(1, 2, (double)rPage.GetUppBorder());
     461             : 
     462        1250 :         const Size aRaw(rView.GetGridCoarse());
     463        1250 :         const Size aFine(rView.GetGridFine());
     464        1250 :         const double fWidthX(aRaw.getWidth());
     465        1250 :         const double fWidthY(aRaw.getHeight());
     466        1250 :         const sal_uInt32 nSubdivisionsX(aFine.getWidth() ? aRaw.getWidth() / aFine.getWidth() : 0L);
     467        1250 :         const sal_uInt32 nSubdivisionsY(aFine.getHeight() ? aRaw.getHeight() / aFine.getHeight() : 0L);
     468             : 
     469        1250 :         xRetval.realloc(1);
     470        2500 :         xRetval[0] = drawinglayer::primitive2d::Primitive2DReference(new drawinglayer::primitive2d::GridPrimitive2D(
     471             :             aGridMatrix, fWidthX, fWidthY, 10.0, 3.0, nSubdivisionsX, nSubdivisionsY, aRGBGridColor,
     472        5000 :             drawinglayer::primitive2d::createDefaultCross_3x3(aRGBGridColor)));
     473             :     }
     474             : 
     475        1250 :     return xRetval;
     476             : }
     477             : 
     478        7026 : ViewObjectContactOfPageHelplines::ViewObjectContactOfPageHelplines(ObjectContact& rObjectContact, ViewContact& rViewContact)
     479        7026 : :   ViewObjectContactOfPageSubObject(rObjectContact, rViewContact)
     480             : {
     481        7026 : }
     482             : 
     483       13960 : ViewObjectContactOfPageHelplines::~ViewObjectContactOfPageHelplines()
     484             : {
     485       13960 : }
     486             : 
     487       91818 : bool ViewObjectContactOfPageHelplines::isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const
     488             : {
     489       91818 :     if(!ViewObjectContactOfPageSubObject::isPrimitiveVisible(rDisplayInfo))
     490             :     {
     491       89780 :         return false;
     492             :     }
     493             : 
     494        2038 :     SdrPageView* pSdrPageView = GetObjectContact().TryToGetSdrPageView();
     495             : 
     496        2038 :     if(!pSdrPageView)
     497             :     {
     498           0 :         return false;
     499             :     }
     500             : 
     501        2038 :     const SdrView& rView = pSdrPageView->GetView();
     502             : 
     503        2038 :     if(!rView.IsHlplVisible())
     504             :     {
     505        2038 :         return false;
     506             :     }
     507             : 
     508             :     // no helplines for preview renderers
     509           0 :     if(GetObjectContact().IsPreviewRenderer())
     510             :     {
     511           0 :         return false;
     512             :     }
     513             : 
     514           0 :     if(static_cast< ViewContactOfHelplines& >(GetViewContact()).getFront() != (bool)rView.IsHlplFront())
     515             :     {
     516           0 :         return false;
     517             :     }
     518             : 
     519           0 :     return true;
     520             : }
     521             : 
     522        1812 : drawinglayer::primitive2d::Primitive2DSequence ViewObjectContactOfPageHelplines::createPrimitive2DSequence(const DisplayInfo& /*rDisplayInfo*/) const
     523             : {
     524        1812 :     drawinglayer::primitive2d::Primitive2DSequence xRetval;
     525        1812 :     const SdrPageView* pPageView = GetObjectContact().TryToGetSdrPageView();
     526             : 
     527        1812 :     if(pPageView)
     528             :     {
     529        1812 :         const SdrHelpLineList& rHelpLineList = pPageView->GetHelpLines();
     530        1812 :         const sal_uInt32 nCount(rHelpLineList.GetCount());
     531             : 
     532        1812 :         if(nCount)
     533             :         {
     534           0 :             const basegfx::BColor aRGBColorA(1.0, 1.0, 1.0);
     535           0 :             const basegfx::BColor aRGBColorB(0.0, 0.0, 0.0);
     536           0 :             xRetval.realloc(nCount);
     537             : 
     538           0 :             for(sal_uInt32 a(0L); a < nCount; a++)
     539             :             {
     540           0 :                 const SdrHelpLine& rHelpLine = rHelpLineList[(sal_uInt16)a];
     541           0 :                 const basegfx::B2DPoint aPosition((double)rHelpLine.GetPos().X(), (double)rHelpLine.GetPos().Y());
     542           0 :                 const double fDiscreteDashLength(4.0);
     543             : 
     544           0 :                 switch(rHelpLine.GetKind())
     545             :                 {
     546             :                     default : // SDRHELPLINE_POINT
     547             :                     {
     548           0 :                         xRetval[a] = drawinglayer::primitive2d::Primitive2DReference(new drawinglayer::primitive2d::HelplinePrimitive2D(
     549             :                             aPosition, basegfx::B2DVector(1.0, 0.0), drawinglayer::primitive2d::HELPLINESTYLE2D_POINT,
     550           0 :                             aRGBColorA, aRGBColorB, fDiscreteDashLength));
     551           0 :                         break;
     552             :                     }
     553             :                     case SDRHELPLINE_VERTICAL :
     554             :                     {
     555           0 :                         xRetval[a] = drawinglayer::primitive2d::Primitive2DReference(new drawinglayer::primitive2d::HelplinePrimitive2D(
     556             :                             aPosition, basegfx::B2DVector(0.0, 1.0), drawinglayer::primitive2d::HELPLINESTYLE2D_LINE,
     557           0 :                             aRGBColorA, aRGBColorB, fDiscreteDashLength));
     558           0 :                         break;
     559             :                     }
     560             :                     case SDRHELPLINE_HORIZONTAL :
     561             :                     {
     562           0 :                         xRetval[a] = drawinglayer::primitive2d::Primitive2DReference(new drawinglayer::primitive2d::HelplinePrimitive2D(
     563             :                             aPosition, basegfx::B2DVector(1.0, 0.0), drawinglayer::primitive2d::HELPLINESTYLE2D_LINE,
     564           0 :                             aRGBColorA, aRGBColorB, fDiscreteDashLength));
     565           0 :                         break;
     566             :                     }
     567             :                 }
     568           0 :             }
     569             :         }
     570             :     }
     571             : 
     572        1812 :     return xRetval;
     573             : }
     574             : 
     575        3513 : ViewObjectContactOfSdrPage::ViewObjectContactOfSdrPage(ObjectContact& rObjectContact, ViewContact& rViewContact)
     576        3513 : :   ViewObjectContact(rObjectContact, rViewContact)
     577             : {
     578        3513 : }
     579             : 
     580        6980 : ViewObjectContactOfSdrPage::~ViewObjectContactOfSdrPage()
     581             : {
     582        6980 : }
     583             : 
     584       45909 : drawinglayer::primitive2d::Primitive2DSequence ViewObjectContactOfSdrPage::getPrimitive2DSequenceHierarchy(DisplayInfo& rDisplayInfo) const
     585             : {
     586       45909 :     drawinglayer::primitive2d::Primitive2DSequence xRetval;
     587             : 
     588             :     // process local sub-hierarchy
     589       45909 :     const sal_uInt32 nSubHierarchyCount(GetViewContact().GetObjectCount());
     590             : 
     591       45909 :     if(nSubHierarchyCount)
     592             :     {
     593             :         const bool bDoGhostedDisplaying(
     594       45909 :             GetObjectContact().DoVisualizeEnteredGroup()
     595       45909 :             && !GetObjectContact().isOutputToPrinter()
     596       91818 :             && GetObjectContact().getActiveViewContact() == &GetViewContact());
     597             : 
     598       45909 :         if(bDoGhostedDisplaying)
     599             :         {
     600       45133 :             rDisplayInfo.ClearGhostedDrawMode();
     601             :         }
     602             : 
     603             :         // create object hierarchy
     604       45909 :         xRetval = getPrimitive2DSequenceSubHierarchy(rDisplayInfo);
     605             : 
     606       45909 :         if(xRetval.hasElements())
     607             :         {
     608             :             // get ranges
     609        4182 :             const drawinglayer::geometry::ViewInformation2D& rViewInformation2D(GetObjectContact().getViewInformation2D());
     610        4182 :             const basegfx::B2DRange aObjectRange(drawinglayer::primitive2d::getB2DRangeFromPrimitive2DSequence(xRetval, rViewInformation2D));
     611        4182 :             const basegfx::B2DRange aViewRange(rViewInformation2D.getViewport());
     612             : 
     613             :             // check geometrical visibility
     614        4182 :             if(!aViewRange.isEmpty() && !aViewRange.overlaps(aObjectRange))
     615             :             {
     616             :                 // not visible, release
     617           0 :                 xRetval.realloc(0);
     618             :             }
     619             :         }
     620             : 
     621       45909 :         if(bDoGhostedDisplaying)
     622             :         {
     623       45133 :             rDisplayInfo.SetGhostedDrawMode();
     624             :         }
     625             :     }
     626             : 
     627       45909 :     return xRetval;
     628             : }
     629             : 
     630         651 : }}
     631             : 
     632             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10