forked from amazingfate/loongoffice
Before commit 653b53287ca09a9ffe3f5ce0242919e719c1086c, editengine objects had a pair IsVertical/SetVertical, which queried and set a boolean flag (and SetVertical also had a second argument to set another flag). The mentioned commit had introduced an inconsistency, changing SetVertical to only set a single flag, but at the same time making IsVertical to return a synthesized result from two values: vertical and rotation. Additionally, GetDirectVertical was introduced to complement SetVertical. In many places, the use of synthetic IsVertical looks suspicious, especially where it is used in combinations with SetVertical. But here I don't change existing logic, and only rename the methods, so that in case someone sees an actual problem, it would be easier to spot the method mismatch. The end result is that now we have a proper getter/setter pair GetVertical/SetVertical, and also IsEffectivelyVertical, named to reflect that it calculates its return value. Change-Id: I38e2b7c5bd7af0787dd7a1c48e1385138dac80b1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119315 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
139 lines
4.6 KiB
C++
139 lines
4.6 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_EDITENG_EDITOBJ_HXX
|
|
#define INCLUDED_EDITENG_EDITOBJ_HXX
|
|
|
|
#include <svl/style.hxx>
|
|
#include <editeng/editengdllapi.h>
|
|
#include <editeng/macros.hxx>
|
|
#include <svl/languageoptions.hxx>
|
|
|
|
#include <com/sun/star/text/textfield/Type.hpp>
|
|
|
|
#include <vector>
|
|
#include <memory>
|
|
|
|
class SfxItemPool;
|
|
class SfxItemSet;
|
|
class SvxFieldItem;
|
|
class SvxFieldData;
|
|
enum class OutlinerMode;
|
|
struct EECharAttrib;
|
|
typedef struct _xmlTextWriter* xmlTextWriterPtr;
|
|
|
|
namespace editeng {
|
|
|
|
class FieldUpdater;
|
|
struct Section;
|
|
|
|
}
|
|
|
|
namespace svl {
|
|
|
|
class SharedString;
|
|
class SharedStringPool;
|
|
|
|
}
|
|
|
|
enum class TextRotation { NONE, TOPTOBOTTOM, BOTTOMTOTOP };
|
|
|
|
class EDITENG_DLLPUBLIC EditTextObject
|
|
{
|
|
public:
|
|
virtual ~EditTextObject();
|
|
|
|
/**
|
|
* Set paragraph strings to the shared string pool.
|
|
*
|
|
* @param rPool shared string pool.
|
|
*/
|
|
virtual void NormalizeString( svl::SharedStringPool& rPool ) = 0;
|
|
|
|
virtual std::vector<svl::SharedString> GetSharedStrings() const = 0;
|
|
|
|
virtual const SfxItemPool* GetPool() const = 0;
|
|
virtual OutlinerMode GetUserType() const = 0; // For OutlinerMode, it can however not save in compatible format
|
|
virtual void SetUserType( OutlinerMode n ) = 0;
|
|
|
|
virtual bool IsEffectivelyVertical() const = 0;
|
|
virtual bool GetVertical() const = 0;
|
|
virtual bool IsTopToBottom() const = 0;
|
|
virtual void SetVertical( bool bVertical ) = 0;
|
|
virtual void SetRotation( TextRotation nRotation ) = 0;
|
|
virtual TextRotation GetRotation() const = 0;
|
|
|
|
virtual SvtScriptType GetScriptType() const = 0;
|
|
|
|
virtual std::unique_ptr<EditTextObject> Clone() const = 0;
|
|
|
|
virtual sal_Int32 GetParagraphCount() const = 0;
|
|
|
|
virtual OUString GetText(sal_Int32 nPara) const = 0;
|
|
|
|
virtual void ClearPortionInfo() = 0;
|
|
|
|
virtual bool HasOnlineSpellErrors() const = 0;
|
|
|
|
virtual void GetCharAttribs( sal_Int32 nPara, std::vector<EECharAttrib>& rLst ) const = 0;
|
|
|
|
virtual bool RemoveCharAttribs( sal_uInt16 nWhich ) = 0;
|
|
|
|
/**
|
|
* Get all text sections in this content. Sections are non-overlapping
|
|
* segments of text split either by paragraph boundaries or format
|
|
* boundaries. Each section object contains all applied formats and/or a
|
|
* field item.
|
|
*/
|
|
virtual void GetAllSections( std::vector<editeng::Section>& rAttrs ) const = 0;
|
|
|
|
virtual bool IsFieldObject() const = 0;
|
|
virtual const SvxFieldItem* GetField() const = 0;
|
|
virtual const SvxFieldData* GetFieldData(sal_Int32 nPara, size_t nPos, sal_Int32 nType) const = 0;
|
|
virtual bool HasField( sal_Int32 nType = css::text::textfield::Type::UNSPECIFIED ) const = 0;
|
|
|
|
virtual const SfxItemSet& GetParaAttribs(sal_Int32 nPara) const = 0;
|
|
|
|
virtual void GetStyleSheet(sal_Int32 nPara, OUString& rName, SfxStyleFamily& eFamily) const = 0;
|
|
virtual void SetStyleSheet(sal_Int32 nPara, const OUString& rName, const SfxStyleFamily& eFamily) = 0;
|
|
virtual bool ChangeStyleSheets(
|
|
std::u16string_view rOldName, SfxStyleFamily eOldFamily, const OUString& rNewName, SfxStyleFamily eNewFamily) = 0;
|
|
virtual void ChangeStyleSheetName(SfxStyleFamily eFamily, std::u16string_view rOldName, const OUString& rNewName) = 0;
|
|
|
|
virtual editeng::FieldUpdater GetFieldUpdater() = 0;
|
|
|
|
virtual bool operator==( const EditTextObject& rCompare ) const = 0;
|
|
|
|
/** Compare, ignoring SfxItemPool pointer.
|
|
*/
|
|
bool Equals( const EditTextObject& rCompare ) const;
|
|
|
|
// #i102062#
|
|
virtual bool isWrongListEqual(const EditTextObject& rCompare) const = 0;
|
|
|
|
#if DEBUG_EDIT_ENGINE
|
|
virtual void Dump() const = 0;
|
|
#endif
|
|
virtual void dumpAsXml(xmlTextWriterPtr pWriter) const = 0;
|
|
};
|
|
|
|
#endif // INCLUDED_EDITENG_EDITOBJ_HXX
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|