office-gobmx/sw/inc/IDocumentSettingAccess.hxx
Philipp Hofer 695280feb9 tdf#123936 Formatting files in module sw with clang-format
Change-Id: I6243bc95129bf81a124d006ce0fc1aa1b5f618bb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105718
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Tested-by: Jenkins
2020-11-19 01:33:36 +01:00

259 lines
7.7 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_SW_INC_IDOCUMENTSETTINGACCESS_HXX
#define INCLUDED_SW_INC_IDOCUMENTSETTINGACCESS_HXX
#include <sal/types.h>
#include "fldupde.hxx"
#include <i18nlangtag/lang.h>
#include <memory>
class SvxForbiddenCharactersTable;
namespace com::sun::star::i18n
{
struct ForbiddenCharacters;
}
enum class CharCompressType;
enum class DocumentSettingId
{
// COMPATIBILITY FLAGS START
PARA_SPACE_MAX,
PARA_SPACE_MAX_AT_PAGES,
TAB_COMPAT,
ADD_FLY_OFFSETS,
ADD_VERTICAL_FLY_OFFSETS,
OLD_NUMBERING,
ADD_EXT_LEADING,
USE_VIRTUAL_DEVICE,
USE_HIRES_VIRTUAL_DEVICE,
OLD_LINE_SPACING,
ADD_PARA_SPACING_TO_TABLE_CELLS,
ADD_PARA_LINE_SPACING_TO_TABLE_CELLS,
USE_FORMER_OBJECT_POS,
USE_FORMER_TEXT_WRAPPING,
CONSIDER_WRAP_ON_OBJECT_POSITION,
IGNORE_FIRST_LINE_INDENT_IN_NUMBERING,
DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK,
TREAT_SINGLE_COLUMN_BREAK_AS_PAGE_BREAK,
DO_NOT_RESET_PARA_ATTRS_FOR_NUM_FONT,
DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE,
TABLE_ROW_KEEP,
IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION,
CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAME,
// tdf#104349 tdf#104668
MS_WORD_COMP_TRAILING_BLANKS,
// tdf#128197 MS Word in some modes can have line height based on shape height, not on font
MS_WORD_COMP_MIN_LINE_HEIGHT_BY_FLY,
UNIX_FORCE_ZERO_EXT_LEADING,
TABS_RELATIVE_TO_INDENT,
PROTECT_FORM,
// #i89181#
TAB_AT_LEFT_INDENT_FOR_PARA_IN_LIST,
INVERT_BORDER_SPACING,
COLLAPSE_EMPTY_CELL_PARA,
SMALL_CAPS_PERCENTAGE_66,
TAB_OVERFLOW,
UNBREAKABLE_NUMBERINGS,
CLIPPED_PICTURES,
BACKGROUND_PARA_OVER_DRAWINGS,
TAB_OVER_MARGIN,
// MS Word still wraps text around objects with less space than LO would.
SURROUND_TEXT_WRAP_SMALL,
PROP_LINE_SPACING_SHRINKS_FIRST_LINE,
SUBTRACT_FLYS,
// tdf#112443 disable off-page content positioning
DISABLE_OFF_PAGE_POSITIONING,
EMPTY_DB_FIELD_HIDES_PARA,
// COMPATIBILITY FLAGS END
BROWSE_MODE,
HTML_MODE,
GLOBAL_DOCUMENT,
GLOBAL_DOCUMENT_SAVE_LINKS,
LABEL_DOCUMENT,
PURGE_OLE,
KERN_ASIAN_PUNCTUATION,
MATH_BASELINE_ALIGNMENT,
STYLES_NODEFAULT,
FLOATTABLE_NOMARGINS,
EMBED_FONTS,
EMBED_USED_FONTS,
EMBED_LATIN_SCRIPT_FONTS,
EMBED_ASIAN_SCRIPT_FONTS,
EMBED_COMPLEX_SCRIPT_FONTS,
EMBED_SYSTEM_FONTS,
APPLY_PARAGRAPH_MARK_FORMAT_TO_NUMBERING,
CONTINUOUS_ENDNOTES,
PROTECT_BOOKMARKS,
PROTECT_FIELDS,
HEADER_SPACING_BELOW_LAST_PARA,
FRAME_AUTOWIDTH_WITH_MORE_PARA,
};
/** Provides access to settings of a document
*/
class IDocumentSettingAccess
{
public:
/** Return the specified document setting.
@param id
[in] the identifier of the document setting to be returned.
See above for a list of valid document setting identifiers.
@returns
the value of the requested document setting.
*/
virtual bool get(/*[in]*/ DocumentSettingId id) const = 0;
/** Set the specified document setting.
@param id
[in] the identifier of the document setting to be set.
See above for a list of valid document setting identifiers.
@param value
[in] the new value of the specified document setting.
*/
virtual void set(/*[in]*/ DocumentSettingId id, /*[in]*/ bool value) = 0;
/** Return the forbidden characters.
@param nLang
[in] the language for which the forbidden character list is returned.
@param bLocaleData
[in] if set and there is no user defined forbidden character list for
language lang, the default list for language lang will be returned.
@returns
a list of forbidden characters.
*/
virtual const css::i18n::ForbiddenCharacters*
getForbiddenCharacters(/*[in]*/ LanguageType nLang, /*[in]*/ bool bLocaleData) const = 0;
/** Set the forbidden characters.
@param nLang
[in] the language for which the forbidden character list should be set.
@param rForbiddenCharacters
[in] the new list of forbidden characters for language lang.
*/
virtual void
setForbiddenCharacters(/*[in]*/ LanguageType nLang,
/*[in]*/ const css::i18n::ForbiddenCharacters& rForbiddenCharacters)
= 0;
/** Get the forbidden character table and creates one if necessary.
@returns
the forbidden characters table.
*/
virtual std::shared_ptr<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() = 0;
/** Get the forbidden character table.
@returns
the forbidden characters table.
*/
virtual const std::shared_ptr<SvxForbiddenCharactersTable>&
getForbiddenCharacterTable() const = 0;
/** Get the current link update mode.
@param bGlobalSettings
[in] if set, the link update mode is obtained from the module,
if it is set to GLOBALSETTING
@returns
the current link update mode.
*/
virtual sal_uInt16 getLinkUpdateMode(/*[in]*/ bool bGlobalSettings) const = 0;
/** Set the current link update mode.
@param nMode
[in] the new link update mode.
*/
virtual void setLinkUpdateMode(/*[in]*/ sal_uInt16 nMode) = 0;
/** Get the current field update mode.
@param bGlobalSettings
[in] if set, the field update mode is obtained from the module,
if it is set to GLOBALSETTING
@returns
the current field update mode.
*/
virtual SwFieldUpdateFlags getFieldUpdateFlags(/*[in]*/ bool bGlobalSettings) const = 0;
/** Set the current field update mode.
@param nMode
[in] the new field update mode.
*/
virtual void setFieldUpdateFlags(/*[in]*/ SwFieldUpdateFlags nMode) = 0;
/** Get the character compression type for Asian characters.
@returns
the current character compression mode.
*/
virtual CharCompressType getCharacterCompressionType() const = 0;
/** Set the character compression type for Asian characters.
@param nMode
[in] the new character compression type.
*/
virtual void setCharacterCompressionType(/*[in]*/ CharCompressType nType) = 0;
/** Get the n32DummyCompatibilityOptions1
*/
virtual sal_uInt32 Getn32DummyCompatibilityOptions1() const = 0;
/** Set the n32DummyCompatibilityOptions1
*/
virtual void Setn32DummyCompatibilityOptions1(const sal_uInt32 CompatibilityOptions1) = 0;
/** Get the n32DummyCompatibilityOptions2
*/
virtual sal_uInt32 Getn32DummyCompatibilityOptions2() const = 0;
/** Set the n32DummyCompatibilityOptions2
*/
virtual void Setn32DummyCompatibilityOptions2(const sal_uInt32 CompatibilityOptions2) = 0;
protected:
virtual ~IDocumentSettingAccess(){};
};
#endif // INCLUDED_SW_INC_IDOCUMENTSETTINGACCESS_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */