/* -*- 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_EDITENG_OVERFLOWINGTXT_HXX #define INCLUDED_EDITENG_OVERFLOWINGTXT_HXX #include #include #include #include #include namespace com::sun::star { namespace datatransfer { class XTransferable; } } namespace rtl { class OUString; }; using ::rtl::OUString; class OutlinerParaObject; class Outliner; /* * A collection of static methods for attaching text. * Strongly coupled with some of the classes in this file. */ class TextChainingUtils { public: static css::uno::Reference< css::datatransfer::XTransferable> CreateTransferableFromText(Outliner const *); static std::unique_ptr JuxtaposeParaObject( css::uno::Reference< css::datatransfer::XTransferable > const & xOverflowingContent, Outliner *, OutlinerParaObject const *); static std::unique_ptr DeeplyMergeParaObject( css::uno::Reference< css::datatransfer::XTransferable > const & xOverflowingContent, Outliner *, OutlinerParaObject const *); }; /* * The classes OverflowingText and NonOverflowingText handle the * actual preparation of the OutlinerParaObjects to be used in destination * and source box respectively. */ class OverflowingText { public: OverflowingText(css::uno::Reference< css::datatransfer::XTransferable > const & xOverflowingContent); std::unique_ptr JuxtaposeParaObject(Outliner *, OutlinerParaObject const *); std::unique_ptr DeeplyMergeParaObject(Outliner *, OutlinerParaObject const *); private: css::uno::Reference< css::datatransfer::XTransferable > mxOverflowingContent; }; class NonOverflowingText { public: NonOverflowingText(const ESelection &aSel, bool bLastParaInterrupted); std::unique_ptr RemoveOverflowingText(Outliner *) const; ESelection GetOverflowPointSel() const; bool IsLastParaInterrupted() const; private: const ESelection maContentSel; const bool mbLastParaInterrupted; }; /* * classes OFlowChainedText and UFlowChainedText: * contain and handle the state of a broken up text _after_ a flow event * (respectively after Overflow and Underflow). * */ class UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) OFlowChainedText { public: OFlowChainedText(Outliner const *, bool ); ~OFlowChainedText(); std::unique_ptr InsertOverflowingText(Outliner *, OutlinerParaObject const *); std::unique_ptr RemoveOverflowingText(Outliner *); ESelection GetOverflowPointSel() const; bool IsLastParaInterrupted() const; private: std::unique_ptr mpNonOverflowingTxt; std::unique_ptr mpOverflowingTxt; bool mbIsDeepMerge; }; // UFlowChainedText is a simpler class than OFlowChainedText: it almost only joins para-objects class UNLESS_MERGELIBS(EDITENG_DLLPUBLIC) UFlowChainedText { public: UFlowChainedText(Outliner const *, bool); std::unique_ptr CreateMergedUnderflowParaObject(Outliner *, OutlinerParaObject const *); private: css::uno::Reference< css::datatransfer::XTransferable > mxUnderflowingTxt; bool mbIsDeepMerge; }; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ > LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
2020-04-09pyuno,*: kill Python 2 support with fireMichael Stahl
2019-12-05tdf#97361: Removed getByTindex in Pyuno pytestsMayank Suman
2019-03-18tdf#124011 Add __ne__ method to UNO typesShubham Goyal
2018-09-07DeInitVCL in PythonTestStephan Bergmann
2018-04-05Fix Python file URL construction on WindowsStephan Bergmann
2018-04-03Create temp copies of test docs in Python/UITestsStephan Bergmann
2017-10-04Fix PythonTest_pyuno_pytests_insertremovecells on WindowsStephan Bergmann
2017-09-26Call pyuno.private_initTestEnvironment() only onceStephan Bergmann
2016-12-12tdf#97361: Changed naming convention to Python type, object factories impleme...n5xgdh
2016-02-23Running pep8 on pyuno unit test filesKenneth Koski
2016-01-10Fix typosAndrea Gelmini
2015-06-26Make PyUNO provide more Pythonic behaviourMatthew J. Francis
2014-06-04Demystify magic poniesStephan Bergmann
2014-04-24as suspectedCaolán McNamara
2014-04-24test for _sslCaolán McNamara
2014-04-18this test apparently does not need pyunoDavid Tardon
2014-04-18add an import ssl testCaolán McNamara
2014-02-20Test for fdo#74824.Kevin Hunter