LCOV - code coverage report
Current view: top level - include/svx - svdpntv.hxx (source / functions) Hit Total Coverage
Test: commit c8344322a7af75b84dd3ca8f78b05543a976dfd5 Lines: 55 61 90.2 %
Date: 2015-06-13 12:38:46 Functions: 55 63 87.3 %
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             : #ifndef INCLUDED_SVX_SVDPNTV_HXX
      21             : #define INCLUDED_SVX_SVDPNTV_HXX
      22             : 
      23             : #include <svl/SfxBroadcaster.hxx>
      24             : #include <svl/lstner.hxx>
      25             : #include <svl/smplhint.hxx>
      26             : #include <svl/undo.hxx>
      27             : #include <svx/svddrag.hxx>
      28             : #include <svx/svdlayer.hxx>
      29             : #include <vcl/window.hxx>
      30             : #include <svtools/colorcfg.hxx>
      31             : #include <com/sun/star/awt/XControlContainer.hpp>
      32             : #include <svl/itemset.hxx>
      33             : #include <vcl/timer.hxx>
      34             : #include <svx/svxdllapi.h>
      35             : #include <svtools/optionsdrawinglayer.hxx>
      36             : #include <unotools/options.hxx>
      37             : #include <vcl/idle.hxx>
      38             : 
      39             : 
      40             : //   Pre-Defines
      41             : 
      42             : 
      43             : class SdrPageWindow;
      44             : 
      45             : namespace com { namespace sun { namespace star { namespace awt {
      46             :     class XControlContainer;
      47             : }}}}
      48             : 
      49             : class SdrPage;
      50             : class SdrView;
      51             : class SfxItemSet;
      52             : class SfxStyleSheet;
      53             : class SdrOle2Obj;
      54             : class SdrModel;
      55             : class SdrObject;
      56             : enum class GraphicManagerDrawFlags;
      57             : 
      58             : #ifdef DBG_UTIL
      59             : class SdrItemBrowser;
      60             : #endif
      61             : 
      62             : namespace sdr { namespace contact {
      63             :     class ViewObjectContactRedirector;
      64             : }}
      65             : 
      66             : 
      67             : //   Defines for AnimationMode
      68             : 
      69             : 
      70             : enum SdrAnimationMode
      71             : {
      72             :     SDR_ANIMATION_ANIMATE,
      73             :     SDR_ANIMATION_DONT_ANIMATE,
      74             :     SDR_ANIMATION_DISABLE
      75             : };
      76             : 
      77             : 
      78             : //   Typedef's und defines
      79             : 
      80             : 
      81             : typedef unsigned char SDR_TRISTATE;
      82             : #define FUZZY                   (2)
      83             : #define SDR_ANYFORMAT           (0xFFFFFFFF)
      84             : #define SDR_ANYITEM             (0xFFFF)
      85             : #define SDRVIEWWIN_NOTFOUND     (0xFFFF)
      86             : 
      87             : 
      88             : 
      89             : class SdrPaintView;
      90             : 
      91             : namespace sdr
      92             : {
      93             :     namespace contact
      94             :     {
      95             :         class ViewObjectContactRedirector;
      96             :     } // end of namespace contact
      97             : } // end of namespace sdr
      98             : 
      99             : 
     100             : 
     101             : 
     102       15715 : class SVX_DLLPUBLIC SvxViewHint : public SfxHint
     103             : {
     104             : public:
     105             :     enum HintType { SVX_HINT_VIEWCHANGED };
     106             :     explicit SvxViewHint(HintType eType);
     107           0 :     HintType GetHintType() const { return meHintType;}
     108             : 
     109             : private:
     110             :     HintType meHintType;
     111             : };
     112             : 
     113             : // typedefs for a list of SdrPaintWindows
     114             : class SdrPaintWindow;
     115             : typedef ::std::vector< SdrPaintWindow* > SdrPaintWindowVector;
     116             : 
     117             : 
     118             : // helper to convert any GDIMetaFile to a good quality BitmapEx,
     119             : // using default parameters and graphic::XPrimitive2DRenderer
     120             : 
     121             : BitmapEx SVX_DLLPUBLIC convertMetafileToBitmapEx(
     122             :     const GDIMetaFile& rMtf,
     123             :     const basegfx::B2DRange& rTargetRange,
     124             :     const sal_uInt32 nMaximumQuadraticPixels = 500000);
     125             : 
     126             : 
     127             : 
     128             : class SVX_DLLPUBLIC SdrPaintView : public SfxListener, public SfxRepeatTarget, public SfxBroadcaster, public ::utl::ConfigurationListener
     129             : {
     130             :     friend class                SdrPageView;
     131             :     friend class                SdrGrafObj;
     132             : 
     133             :     SdrPageView*                mpPageView;
     134             : protected:
     135             :     SdrModel*                   pMod;
     136             : #ifdef DBG_UTIL
     137             :     VclPtr<SdrItemBrowser>      pItemBrowser;
     138             : #endif
     139             :     VclPtr<OutputDevice>        pActualOutDev; // Nur zum vergleichen
     140             :     VclPtr<OutputDevice>        pDragWin;
     141             :     SfxStyleSheet*              pDefaultStyleSheet;
     142             : 
     143             :     OUString                    aAktLayer;     // Aktueller Zeichenlayer
     144             :     OUString                    aMeasureLayer; // Aktueller Layer fuer Bemassung
     145             : 
     146             : //  Container                   aPagV;         // Liste von SdrPageViews
     147             : 
     148             :     // All windows this view is displayed on
     149             :     SdrPaintWindowVector        maPaintWindows;
     150             : 
     151             :     MapMode                     aActualMapMode;
     152             :     Size                        aGridBig; // muss dann mal raus
     153             :     Size                        aGridFin; // muss dann mal raus
     154             :     SdrDragStat                 aDragStat;
     155             :     Rectangle                   aMaxWorkArea;
     156             :     SfxItemSet                  aDefaultAttr;
     157             :     Idle                        aComeBackIdle;
     158             : 
     159             :     SdrAnimationMode            eAnimationMode;
     160             : 
     161             :     sal_uInt16                      nHitTolPix;
     162             :     sal_uInt16                      nMinMovPix;
     163             :     sal_uInt16                      nHitTolLog;
     164             :     sal_uInt16                      nMinMovLog;
     165             :     GraphicManagerDrawFlags         nGraphicManagerDrawMode;
     166             : 
     167             :     // hold an incarnation of Drawinglayer configuration options
     168             :     SvtOptionsDrawinglayer      maDrawinglayerOpt;
     169             : 
     170             :     bool                        bPageVisible : 1;
     171             :     bool                        bPageBorderVisible : 1;
     172             :     bool                        bBordVisible : 1;
     173             :     bool                        bGridVisible : 1;
     174             :     bool                        bGridFront : 1;
     175             :     bool                        bHlplVisible : 1;
     176             :     bool                        bHlplFront : 1;
     177             :     bool                        bGlueVisible : 1;    // Persistent. Klebepunkte anzeigen
     178             :     bool                        bGlueVisible2 : 1;   // Klebepunkte auch bei GluePointEdit anzeigen
     179             :     bool                        bGlueVisible3 : 1;   // Klebepunkte auch bei EdgeTool anzeigen
     180             :     bool                        bGlueVisible4 : 1;   // Klebepunkte anzeigen, wenn 1 Edge markiert
     181             :     bool                        bRestoreColors : 1;   // Pens und Brushes werden zurueckgesetzt.
     182             :     bool                        bSomeObjChgdFlag : 1;
     183             :     bool                        bSwapAsynchron : 1;
     184             :     bool                        bPrintPreview : 1;
     185             : 
     186             :     // bool fuer die Verwaltung des anzuzeigenden Status
     187             :     // Gruppe Betreten/Verlassen. Default ist sal_True, wird aber
     188             :     // beispielsweise beim Chart auf sal_False gesetzt, da dort
     189             :     // die Ghosted-Effekte zur Darstellug unerwuenscht sind.
     190             :     bool                        bVisualizeEnteredGroup : 1;
     191             :     bool                        bAnimationPause : 1;
     192             : 
     193             :     // #114898#
     194             :     // Flag which decides if buffered output for this view is allowed. When
     195             :     // set, PreRendering for PageView rendering will be used. Default is sal_False
     196             :     bool                        mbBufferedOutputAllowed : 1;
     197             : 
     198             :     // #114898#
     199             :     // Flag which decides if buffered overlay for this view is allowed. When
     200             :     // set, the output will be buffered in an overlay vdev. When not, overlay is
     201             :     // directly painted to OutDev. Default is sal_False.
     202             :     bool                        mbBufferedOverlayAllowed : 1;
     203             : 
     204             :     // allow page painting at all?
     205             :     bool                        mbPagePaintingAllowed : 1;
     206             : 
     207             :     // is this a preview renderer?
     208             :     bool                        mbPreviewRenderer : 1;
     209             : 
     210             :     // flags for calc and sw for suppressing OLE, CHART or DRAW objects
     211             :     bool                        mbHideOle : 1;
     212             :     bool                        mbHideChart : 1;
     213             :     bool                        mbHideDraw : 1;             // hide draw objects other than form controls
     214             :     bool                        mbHideFormControl : 1;      // hide form controls only
     215             : 
     216             : public:
     217             :     // #114898#
     218             :     // interface for PagePaintingAllowed flag
     219             :     bool IsBufferedOutputAllowed() const;
     220             :     void SetBufferedOutputAllowed(bool bNew);
     221             : 
     222             :     // interface for BufferedOverlayAllowed flag
     223             :     bool IsBufferedOverlayAllowed() const;
     224             :     void SetBufferedOverlayAllowed(bool bNew);
     225             : 
     226             :     // allow page painting at all?
     227        1902 :     bool IsPagePaintingAllowed() const { return mbPagePaintingAllowed;}
     228             :     void SetPagePaintingAllowed(bool bNew);
     229             : 
     230             : protected:
     231             :     svtools::ColorConfig            maColorConfig;
     232             :     Color                           maGridColor;
     233             : 
     234             :     // interface to SdrPaintWindow
     235             : protected:
     236             :     void AppendPaintWindow(SdrPaintWindow& rNew);
     237             :     SdrPaintWindow* RemovePaintWindow(SdrPaintWindow& rOld);
     238             :     void ConfigurationChanged( ::utl::ConfigurationBroadcaster*, sal_uInt32 ) SAL_OVERRIDE;
     239             : 
     240             : public:
     241      162050 :     sal_uInt32 PaintWindowCount() const { return maPaintWindows.size(); }
     242             :     SdrPaintWindow* FindPaintWindow(const OutputDevice& rOut) const;
     243             :     SdrPaintWindow* GetPaintWindow(sal_uInt32 nIndex) const;
     244             :     // replacement for GetWin(0), may return 0L (!)
     245             :     OutputDevice* GetFirstOutputDevice() const;
     246             : 
     247             : private:
     248             :     SVX_DLLPRIVATE void ImpClearVars();
     249             :     DECL_LINK_TYPED(ImpComeBackHdl, Idle*, void);
     250             : 
     251             : protected:
     252             :     sal_uInt16 ImpGetMinMovLogic(short nMinMov, const OutputDevice* pOut) const;
     253             :     sal_uInt16 ImpGetHitTolLogic(short nHitTol, const OutputDevice* pOut) const;
     254             : 
     255             :     // Wenn man den IdleStatus des Systems nicht abwarten will (auf const geschummelt):
     256             :     void FlushComeBackTimer() const;
     257             :     void TheresNewMapMode();
     258           0 :     void ImpSetGlueVisible2(bool bOn) { if (bGlueVisible2!=bOn) { bGlueVisible2=bOn; if (!bGlueVisible && !bGlueVisible3 && !bGlueVisible4) GlueInvalidate(); } }
     259         264 :     void ImpSetGlueVisible3(bool bOn) { if (bGlueVisible3!=bOn) { bGlueVisible3=bOn; if (!bGlueVisible && !bGlueVisible2 && !bGlueVisible4) GlueInvalidate(); } }
     260        4661 :     void ImpSetGlueVisible4(bool bOn) { if (bGlueVisible4!=bOn) { bGlueVisible4=bOn; if (!bGlueVisible && !bGlueVisible2 && !bGlueVisible3) GlueInvalidate(); } }
     261             :     bool ImpIsGlueVisible2() const { return bGlueVisible2; }
     262             :     bool ImpIsGlueVisible3() const { return bGlueVisible3; }
     263             :     bool ImpIsGlueVisible4() const { return bGlueVisible4; }
     264             : 
     265             : public:
     266       42433 :     bool ImpIsGlueVisible() { return bGlueVisible || bGlueVisible2 || bGlueVisible3 || bGlueVisible4; }
     267             : protected:
     268             : 
     269             :     virtual void Notify(SfxBroadcaster& rBC, const SfxHint& rHint) SAL_OVERRIDE;
     270             :     void GlueInvalidate() const;
     271             : 
     272             :     void ShowEncirclement(OutputDevice* pOut);
     273             :     void HideEncirclement(OutputDevice* pOut);
     274             :     void DrawEncirclement(OutputDevice* pOut) const;
     275             : 
     276             :     // ModelHasChanged wird gerufen, sobald nach beliebig vielen HINT_OBJCHG
     277             :     // das System wieder idle ist (StarView-Timer). Wer diese Methode ueberlaed,
     278             :     // muss unbedingt ModelHasChanged() der Basisklasse rufen.
     279             :     virtual void ModelHasChanged();
     280             : 
     281             : protected:
     282             :     // #i71538# make constructors of SdrView sub-components protected to avoid incomplete incarnations which may get casted to SdrView
     283             :     SdrPaintView(SdrModel* pModel1, OutputDevice* pOut = 0L);
     284             :     virtual ~SdrPaintView();
     285             : 
     286             : public:
     287             :     TYPEINFO_OVERRIDE();
     288             : 
     289             :     virtual void ClearPageView();
     290      313086 :     SdrModel* GetModel() const { return pMod; }
     291             : 
     292             :     virtual bool IsAction() const;
     293             :     virtual void MovAction(const Point& rPnt);
     294             :     virtual void EndAction();
     295             :     virtual void BckAction();
     296             :     virtual void BrkAction(); // Alle Actions z.B. Draggen abbrechen.
     297             :     virtual void TakeActionRect(Rectangle& rRect) const;
     298             : 
     299             :     // info about TextEdit. Default is sal_False.
     300             :     virtual bool IsTextEdit() const;
     301             : 
     302             :     // info about TextEditPageView. Default is 0L.
     303             :     virtual SdrPageView* GetTextEditPageView() const;
     304             : 
     305             :     // Muss dann bei jedem Fensterwechsel (wenn die SdrView in mehreren
     306             :     // Fenstern gleichzeitig dargestellt wird (->z.B. Splitter)) und bei
     307             :     // jedem MapMode(Scaling)-wechsel gerufen werden, damit ich aus meinen
     308             :     // Pixelwerten logische Werte berechnen kann.
     309             :     void SetActualWin(const OutputDevice* pWin);
     310         671 :     void SetMinMoveDistancePixel(sal_uInt16 nVal) { nMinMovPix=nVal; TheresNewMapMode(); }
     311             :     sal_uInt16 GetMinMoveDistancePixel() const { return (sal_uInt16)nMinMovPix; }
     312       10412 :     void SetHitTolerancePixel(sal_uInt16 nVal) { nHitTolPix=nVal; TheresNewMapMode(); }
     313        2216 :     sal_uInt16 GetHitTolerancePixel() const { return (sal_uInt16)nHitTolPix; }
     314             : 
     315             :     // data read access on logic HitTolerance and MinMoveTolerance
     316        2560 :     sal_uInt16 getHitTolLog() const { return nHitTolLog; }
     317             :     sal_uInt16 getMinMovLog() const { return nMinMovLog; }
     318             : 
     319             :     // Flag zur Visualisierung von Gruppen abfragen/testen
     320      139520 :     bool DoVisualizeEnteredGroup() const { return bVisualizeEnteredGroup; }
     321             :     void SetVisualizeEnteredGroup(bool bNew) { bVisualizeEnteredGroup = bNew; }
     322             : 
     323             :     // Am DragStatus laesst sich beispielsweise erfragen, welche
     324             :     // entfernung bereits gedraggd wurde, etc.
     325           2 :     const SdrDragStat& GetDragStat() const { return aDragStat; }
     326             : 
     327             :     // Anmelden/Abmelden einer PageView an der View.
     328             :     // Dieselbe // Seite kann nicht mehrfach angemeldet werden.
     329             :     // Methoden mit dem Suffix PgNum erwarten als numerischen Parameter
     330             :     // eine Seitennummer (0...). Methoden mit dem Suffix PvNum erwarten
     331             :     // degagen als numerischen Parameter die Nummer der PageView an der
     332             :     // SdrView (Iterieren ueber alle angemeldeten Pages).
     333             :     virtual SdrPageView* ShowSdrPage(SdrPage* pPage);
     334             :     virtual void HideSdrPage();
     335             : 
     336             :     // Iterieren ueber alle angemeldeten PageViews
     337      183911 :     SdrPageView* GetSdrPageView() const { return mpPageView; }
     338             : 
     339             :     // Eine SdrView kann auf mehreren Fenstern gleichzeitig abgebiltet sein:
     340             :     virtual void AddWindowToPaintView(OutputDevice* pNewWin);
     341             :     virtual void DeleteWindowFromPaintView(OutputDevice* pOldWin);
     342             : 
     343             :     void SetLayerVisible(const OUString& rName, bool bShow=true);
     344             :     bool IsLayerVisible(const OUString& rName) const;
     345             : 
     346             :     void SetLayerLocked(const OUString& rName, bool bLock=true);
     347             :     bool IsLayerLocked(const OUString& rName) const;
     348             : 
     349             :     void SetLayerPrintable(const OUString& rName, bool bPrn=true);
     350             :     bool IsLayerPrintable(const OUString& rName) const;
     351             : 
     352             :     // PrePaint call forwarded from app windows
     353             :     void PrePaint();
     354             : 
     355             : 
     356             :     // used internally for Draw/Impress/sch/chart2
     357             :     virtual void CompleteRedraw(OutputDevice* pOut, const vcl::Region& rReg, sdr::contact::ViewObjectContactRedirector* pRedirector = 0);
     358             : 
     359             :     // #i72889# used from CompleteRedraw() implementation internally, added to be able to do a complete redraw in single steps
     360             : 
     361             :     // BeginCompleteRedraw returns (or even creates) a SdrPaintWindow which shall then be used as
     362             :     // target for paints. Since paints may be buffered, use it's GetTargetOutputDevice() method which will
     363             :     // return the buffer in case of bufered.
     364             :     // DoCompleteRedraw draws the DrawingLayer hierarchy then.
     365             :     // EndCompleteRedraw does the necessary refreshes, evtl. paints text edit and overlay and evtl destroys the
     366             :     // SdrPaintWindow again. This means: the SdrPaintWindow is no longer safe after this closing call.
     367             :     virtual SdrPaintWindow* BeginCompleteRedraw(OutputDevice* pOut);
     368             :     void DoCompleteRedraw(SdrPaintWindow& rPaintWindow, const vcl::Region& rReg, sdr::contact::ViewObjectContactRedirector* pRedirector = 0);
     369             :     virtual void EndCompleteRedraw(SdrPaintWindow& rPaintWindow, bool bPaintFormLayer);
     370             : 
     371             : 
     372             :     // used for the other applications basctl/sc/sw which call DrawLayer at PageViews
     373             :     // #i74769# Interface change to use common BeginCompleteRedraw/EndCompleteRedraw
     374             :     // #i76114# bDisableIntersect disables intersecting rReg with the Window's paint region
     375             :     SdrPaintWindow* BeginDrawLayers(OutputDevice* pOut, const vcl::Region& rReg, bool bDisableIntersect = false);
     376             :     // used when the region passed to BeginDrawLayers needs to be changed
     377             :     void UpdateDrawLayersRegion(OutputDevice* pOut, const vcl::Region& rReg, bool bDisableIntersect = false);
     378             :     void EndDrawLayers(SdrPaintWindow& rPaintWindow, bool bPaintFormLayer);
     379             : 
     380             : protected:
     381             : 
     382             :     // used to paint the form layer after the PreRender device is flushed (painted) to the window.
     383             :     void ImpFormLayerDrawing( SdrPaintWindow& rPaintWindow );
     384             : 
     385             :     static vcl::Region OptimizeDrawLayersRegion(OutputDevice* pOut, const vcl::Region& rReg, bool bDisableIntersect);
     386             : 
     387             : public:
     388        7870 :     bool IsPageVisible() const { return bPageVisible; }             // Seite (weisse Flaeche) malen oder nicht
     389        1064 :     bool IsPageBorderVisible() const { return bPageBorderVisible; } // Seite (weisse Flaeche) malen oder nicht
     390        1902 :     bool IsBordVisible() const { return bBordVisible; }             // Seitenrandlinie malen oder nicht
     391       29011 :     bool IsGridVisible() const { return bGridVisible; }             // Rastergitter malen oder nicht
     392        1828 :     bool IsGridFront() const { return bGridFront  ; }               // Rastergitter ueber die Objekte druebermalen oder dahinter
     393        6488 :     bool IsHlplVisible() const { return bHlplVisible; }             // Hilfslinien der Seiten malen oder nicht
     394          12 :     bool IsHlplFront() const { return bHlplFront  ; }               // Hilfslinie ueber die Objekte druebermalen oder dahinter
     395             :     bool IsGlueVisible() const { return bGlueVisible; }             // Konnektoren der objekte sichtbar oder nicht
     396         846 :     Color GetGridColor() const { return maGridColor;}
     397        3390 :     void SetPageVisible(bool bOn = true) { bPageVisible=bOn; InvalidateAllWin(); }
     398         145 :     void SetPageBorderVisible(bool bOn = true) { bPageBorderVisible=bOn; InvalidateAllWin(); }
     399        3326 :     void SetBordVisible(bool bOn = true) { bBordVisible=bOn; InvalidateAllWin(); }
     400        8228 :     void SetGridVisible(bool bOn = true) { bGridVisible=bOn; InvalidateAllWin(); }
     401        1166 :     void SetGridFront(bool bOn = true) { bGridFront  =bOn; InvalidateAllWin(); }
     402        4461 :     void SetHlplVisible(bool bOn = true) { bHlplVisible=bOn; InvalidateAllWin(); }
     403         234 :     void SetHlplFront(bool bOn = true) { bHlplFront  =bOn; InvalidateAllWin(); }
     404        3320 :     void SetGlueVisible(bool bOn = true) { if (bGlueVisible!=bOn) { bGlueVisible=bOn; if (!bGlueVisible2 && !bGlueVisible3 && !bGlueVisible4) GlueInvalidate(); } }
     405             :     void SetGridColor( Color aColor );
     406             : 
     407        2639 :     bool IsPreviewRenderer() const { return mbPreviewRenderer; }
     408         145 :     void SetPreviewRenderer(bool bOn) { mbPreviewRenderer=bOn; }
     409             : 
     410             :     // access methods for calc and sw hide object modes
     411       64370 :     bool getHideOle() const { return mbHideOle; }
     412       64267 :     bool getHideChart() const { return mbHideChart; }
     413       64267 :     bool getHideDraw() const { return mbHideDraw; }
     414       64267 :     bool getHideFormControl() const { return mbHideFormControl; }
     415        5971 :     void setHideOle(bool bNew) { if(bNew != (bool)mbHideOle) mbHideOle = bNew; }
     416        5971 :     void setHideChart(bool bNew) { if(bNew != (bool)mbHideChart) mbHideChart = bNew; }
     417        5973 :     void setHideDraw(bool bNew) { if(bNew != (bool)mbHideDraw) mbHideDraw = bNew; }
     418        5971 :     void setHideFormControl(bool bNew) { if(bNew != (bool)mbHideFormControl) mbHideFormControl = bNew; }
     419             : 
     420        6463 :     void SetGridCoarse(const Size& rSiz) { aGridBig=rSiz; }
     421        6230 :     void SetGridFine(const Size& rSiz) { aGridFin=rSiz; if (aGridFin.Height()==0) aGridFin.Height()=aGridFin.Width(); if (bGridVisible) InvalidateAllWin(); } // #40479#
     422        3229 :     const Size& GetGridCoarse() const { return aGridBig; }
     423        3229 :     const Size& GetGridFine() const { return aGridFin; }
     424             : 
     425             :     void InvalidateAllWin();
     426             :     void InvalidateAllWin(const Rectangle& rRect, bool bPlus1Pix=false);
     427             : 
     428             :     /// If the View should not call Invalidate() on the windows, override
     429             :     /// the following 2 methods and do something else.
     430             :     virtual void InvalidateOneWin(vcl::Window& rWin);
     431             :     virtual void InvalidateOneWin(vcl::Window& rWin, const Rectangle& rRect);
     432             : 
     433        3824 :     void SetActiveLayer(const OUString& rName) { aAktLayer=rName; }
     434        7210 :     const OUString&  GetActiveLayer() const { return aAktLayer; }
     435             : 
     436             :     // Verlassen einer betretenen Objektgruppe aller sichtbaren Seiten.
     437             :     // (wie MsDos chdir ..)
     438             :     void LeaveOneGroup();
     439             : 
     440             :     // Verlassen aller betretenen Objektgruppen aller sichtbaren Seiten.
     441             :     // (wie MsDos chdir \)
     442             :     void LeaveAllGroup();
     443             : 
     444             :     // Feststellen, ob Leave sinnvoll ist.
     445             :     bool IsGroupEntered() const;
     446             : 
     447             :     // DefaultAttribute an der View: Neu erzeugte Objekte bekommen diese
     448             :     // Attribute direkt nach dem Erzeugen erstmal zugewiesen.
     449             :     void SetDefaultAttr(const SfxItemSet& rAttr, bool bReplaceAll);
     450           0 :     const SfxItemSet& GetDefaultAttr() const { return aDefaultAttr; }
     451             :     void SetDefaultStyleSheet(SfxStyleSheet* pStyleSheet, bool bDontRemoveHardAttr);
     452           0 :     SfxStyleSheet* GetDefaultStyleSheet() const { return pDefaultStyleSheet; }
     453             : 
     454             :     void SetNotPersistDefaultAttr(const SfxItemSet& rAttr, bool bReplaceAll);
     455             :     void MergeNotPersistDefaultAttr(SfxItemSet& rAttr, bool bOnlyHardAttr) const;
     456             : 
     457             :     // use this mode as mode to draw all internal GraphicManager objects with
     458             :     GraphicManagerDrawFlags GetGraphicManagerDrawMode() const { return nGraphicManagerDrawMode; }
     459             :     void SetGraphicManagerDrawMode( GraphicManagerDrawFlags nMode ) { nGraphicManagerDrawMode = nMode; }
     460             : 
     461             :     // SwapIn (z.B. von Grafiken) asynchron durchfuehren. Also nicht
     462             :     // beim Paint sofort nachladen, sondern dort das Nachladen anstossen.
     463             :     // Nach Abschluss des Nachladens wird das Objekt dann angezeigt.
     464             :     // Hat nur z.Zt. Wirkung, wenn SwapGraphics am Model eingeschaltet ist.
     465             :     // Default=FALSE. Flag ist nicht persistent.
     466           6 :     bool IsSwapAsynchron() const { return bSwapAsynchron; }
     467        3590 :     void SetSwapAsynchron(bool bJa=true) { bSwapAsynchron=bJa; }
     468             :     virtual bool KeyInput(const KeyEvent& rKEvt, vcl::Window* pWin);
     469             : 
     470           2 :     virtual bool MouseButtonDown(const MouseEvent& /*rMEvt*/, vcl::Window* /*pWin*/) { return false; }
     471           1 :     virtual bool MouseButtonUp(const MouseEvent& /*rMEvt*/, vcl::Window* /*pWin*/) { return false; }
     472           4 :     virtual bool MouseMove(const MouseEvent& /*rMEvt*/, vcl::Window* /*pWin*/) { return false; }
     473           0 :     virtual bool Command(const CommandEvent& /*rCEvt*/, vcl::Window* /*pWin*/) { return false; }
     474             : 
     475             :     /* new interface src537 */
     476             :     bool GetAttributes(SfxItemSet& rTargetSet, bool bOnlyHardAttr=false) const;
     477             : 
     478             :     bool SetAttributes(const SfxItemSet& rSet, bool bReplaceAll);
     479             :     SfxStyleSheet* GetStyleSheet() const; // SfxStyleSheet* GetStyleSheet(bool& rOk) const;
     480             :     bool SetStyleSheet(SfxStyleSheet* pStyleSheet, bool bDontRemoveHardAttr);
     481             : 
     482             :     virtual void MakeVisible(const Rectangle& rRect, vcl::Window& rWin);
     483             : 
     484             :     // Fuer PlugIn. Wird vom Paint des OLE-Obj gerufen.
     485             :     virtual void DoConnect(SdrOle2Obj* pOleObj);
     486             : 
     487             :     // Animation aktivieren/deaktivieren fuer ::Paint
     488             :     // wird z.Zt. ausgewertet von SdrGrafObj, wenn in dem eine Animation steckt
     489             :     // Das Unterbinden der automatischen Animation wird z.B. fuer die Dia-Show benoetigt
     490        2685 :     bool IsAnimationEnabled() const { return ( SDR_ANIMATION_ANIMATE == eAnimationMode ); }
     491             :     void SetAnimationEnabled( bool bEnable=true );
     492             : 
     493             :     // set/unset pause state for animations
     494             :     bool IsAnimationPause() const { return bAnimationPause; }
     495             :     void SetAnimationPause( bool bSet );
     496             : 
     497             :     // Verhalten beim Starten von Animation im Paint-Handler:
     498             :     // 1. Animation normal starten( SDR_ANIMATION_ANIMATE ) => DEFAULT
     499             :     // 2. Nur die Ersatzdarstellung der Animation zeichnen ( SDR_ANIMATION_DONT_ANIMATE )
     500             :     // 3. Nicht starten und nichts ersatzweise ausgeben ( SDR_ANIMATION_DISABLE )
     501             :     void SetAnimationMode( const SdrAnimationMode eMode );
     502             :     SdrAnimationMode GetAnimationMode() const { return eAnimationMode; }
     503             : 
     504             :     // bei bShow=sal_False wird der Browser destruiert
     505             : #ifdef DBG_UTIL
     506             :     void ShowItemBrowser(bool bShow=true);
     507             :     bool IsItemBrowserVisible() const { return pItemBrowser!=nullptr && GetItemBrowser()->IsVisible(); }
     508             :     vcl::Window* GetItemBrowser() const;
     509             : #endif
     510             : 
     511             :     // Muss von App beim Scrollen usw. gerufen werden, damit ein u.U.
     512             :     // aktives FormularControl mitverschoben werden kann
     513             :     void VisAreaChanged(const OutputDevice* pOut=NULL);
     514             :     void VisAreaChanged(const SdrPageWindow& rWindow);
     515             : 
     516        1323 :     bool IsPrintPreview() const { return bPrintPreview; }
     517        3122 :     void SetPrintPreview(bool bOn = true) { bPrintPreview=bOn; }
     518             : 
     519           0 :     const svtools::ColorConfig& getColorConfig() const { return maColorConfig;}
     520             : 
     521             :     void onChangeColorConfig();
     522             : 
     523             :     // #103834# Set background color for svx at SdrPageViews
     524             :     void SetApplicationBackgroundColor(Color aBackgroundColor);
     525             : 
     526             :     // #103911# Set document color for svx at SdrPageViews
     527             :     void SetApplicationDocumentColor(Color aDocumentColor);
     528             : 
     529             :     // #i38135#
     530             :     // Sets the timer for Object animations and restarts.
     531             :     void SetAnimationTimer(sal_uInt32 nTime);
     532             : 
     533             :     // access to Drawinglayer configuration options
     534       23157 :     const SvtOptionsDrawinglayer& getOptionsDrawinglayer() const { return maDrawinglayerOpt; }
     535             : };
     536             : 
     537             : #endif // INCLUDED_SVX_SVDPNTV_HXX
     538             : 
     539             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.11