f06b48a5dd
This is the first basic functionality to get the active EditView with EditEngine work in the Overlay which all Apps support. Reason is that the current EditEngine 'plugs' into the Window and uses Invalidate() calls to repaint deeply everything under a text change. While this is acceptable for simple cases it can get very slow when there are excessive, expensive to paint objects in the background, e.g. MasterPages in Draw/Impress with gradients and other stuff. This was avoided in older versions (LO51) by 'guessing' a good BackgrundColor by the EditEngine, not invalidating but painting actively using that guess (with better or worse results) which someone removed. For the future it is anyways the better way to get the EditEngine functionality to Overlay and using Primitives, this will be a first step. This may enable Text Editing without repainting the Background (fast), using a non-XOR selection paint and more. It will need thorough testing and further experimenting due to EditEngine being used in many places (DrawObjects, Calc Cells, Formular Fields, Controls, ...) Change-Id: Ib9eb0f3999fd61a82ddf7a60ab1ea6ccda3a60da
54 lines
1.9 KiB
C++
54 lines
1.9 KiB
C++
/* -*- 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 .
|
|
*/
|
|
|
|
#ifndef INCLUDED_SVX_SVDOUTL_HXX
|
|
#define INCLUDED_SVX_SVDOUTL_HXX
|
|
|
|
#include <editeng/outliner.hxx>
|
|
#include <svx/svxdllapi.h>
|
|
#include <svx/svdobj.hxx>
|
|
|
|
class SdrTextObj;
|
|
class SdrPage;
|
|
|
|
class SVX_DLLPUBLIC SdrOutliner : public Outliner
|
|
{
|
|
protected:
|
|
SdrObjectWeakRef mpTextObj;
|
|
const SdrPage* mpVisualizedPage;
|
|
|
|
public:
|
|
SdrOutliner( SfxItemPool* pItemPool, OutlinerMode nMode );
|
|
virtual ~SdrOutliner() override ;
|
|
|
|
void SetTextObj( const SdrTextObj* pObj );
|
|
void SetTextObjNoInit( const SdrTextObj* pObj );
|
|
const SdrTextObj* GetTextObj() const;
|
|
|
|
void setVisualizedPage(const SdrPage* pPage) { if(pPage != mpVisualizedPage) mpVisualizedPage = pPage; }
|
|
const SdrPage* getVisualizedPage() const { return mpVisualizedPage; }
|
|
|
|
virtual OUString CalcFieldValue(const SvxFieldItem& rField, sal_Int32 nPara, sal_Int32 nPos, Color*& rpTxtColor, Color*& rpFldColor) override;
|
|
|
|
bool hasEditViewCallbacks() const;
|
|
};
|
|
|
|
#endif // INCLUDED_SVX_SVDOUTL_HXX
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|