/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
class OutputDevice; class SwViewShell; class SwFlyFrame; class SwViewOption; class SwFrame; class SwLayAction; class SwLayIdle; class SwDrawView; class SdrPageView; class SwPageFrame; class SwAccessibleMap; class SdrObject; class Fraction; class SwPrintData; class SwPagePreviewLayout; struct PreviewPage; class SwTextFrame; // --> OD #i76669# //namespace sdr::contact { class ViewObjectContactRedirector; } // <-- class SwViewObjectContactRedirector final : public sdr::contact::ViewObjectContactRedirector
{ private: const SwViewShell& mrViewShell;
friendclass SwLayAction; // Lay- and IdleAction register and deregister friendclass SwLayIdle;
// for paint of page preview friendclass SwPagePreviewLayout;
SwViewShell& m_rShell; // If someone passes an Imp, but needs a SwViewShell, we // keep a backlink here
std::unique_ptr<SwDrawView> m_pDrawView; // Our DrawView
SdrPageView *m_pSdrPageView; // Exactly one Page for our DrawView
SwPageFrame *m_pFirstVisiblePage; // Always points to the first visible Page
std::optional<SwRegionRects> m_oPaintRegion; // Collector of Paintrects from the LayAction
std::vector<SwRect> m_pendingLOKInvalidations;
SwLayAction *m_pLayAction; // Is set if an Action object exists // Is registered by the SwLayAction ctor and deregistered by the dtor
SwLayIdle *m_pIdleAct; // The same as SwLayAction for SwLayIdle
/// note: the map is *uniquely* owned here - the shared_ptr is only /// used so that SwAccessibleContext can check via weak_ptr that it's alive
std::shared_ptr<SwAccessibleMap> m_pAccessibleMap;
bool m_bFirstPageInvalid : 1; // Pointer to the first Page invalid? bool m_bResetHdlHiddenPaint : 1; // Ditto bool m_bSmoothUpdate : 1; // For SmoothScroll bool m_bStopSmooth : 1;
sal_uInt16 m_nRestoreActions ; // Count for the Action that need to be restored (UNO)
SwRect m_aSmoothRect;
void SetFirstVisPage(OutputDevice const * pRenderContext); // Recalculate the first visible Page
void StartAction(); // Show handle and hide void EndAction(); // Called by SwViewShell::ImplXXXAction void LockPaint(); // Ditto; called by SwViewShell::ImplLockPaint void UnlockPaint();
private:
SwAccessibleMap *CreateAccessibleMap();
/** invalidate CONTENT_FLOWS_FROM/_TO relation for paragraphs
#i27138# implementation for wrapper method <SwViewShell::InvalidateAccessibleParaFlowRelation(..)>
@param _pFromTextFrame input parameter - paragraph frame, for which the relation CONTENT_FLOWS_FROM has to be invalidated. If NULL, no CONTENT_FLOWS_FROM relation has to be invalidated
@param _pToTextFrame input parameter - paragraph frame, for which the relation CONTENT_FLOWS_TO has to be invalidated. If NULL, no CONTENT_FLOWS_TO relation has to be invalidated
*/ void InvalidateAccessibleParaFlowRelation_( const SwTextFrame* _pFromTextFrame, const SwTextFrame* _pToTextFrame );
/** invalidate text selection for paragraphs
#i27301# implementation for wrapper method <SwViewShell::InvalidateAccessibleParaTextSelection(..)>
*/ void InvalidateAccessibleParaTextSelection_();
/** invalidate attributes for paragraphs and paragraph's characters
/** * @param _pPageBackgrdColor for setting this color as the background color * at the outliner of the draw view for painting layers "hell" and "heaven" * * @param _bIsPageRightToLeft for the horizontal text direction of the page * in order to set the default horizontal text direction at the outliner of * the draw view for painting layers "hell" and "heaven"
*/ void PaintLayer( const SdrLayerID _nLayerID,
SwPageFrame const& rPageFrame, const SwRect& _rRect, const Color* _pPageBackgrdColor, constbool _bIsPageRightToLeft,
sdr::contact::ViewObjectContactRedirector* pRedirector );
/** * Is passed to the DrawEngine as a Link and decides what is painted * or not and in what way
*/
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.