This is the final fix for tdf#41542 - enabling the UI to adjust the
padding without requiring an enabled border line.
Because almost every document edited by LO5.3 will gain the setting
ALLOW_PADDING_WITHOUT_BORDERS = false, it cannot be kept as a
preventative compatibility setting. Otherwise any document edited
in 5.3 would act differently from any other document - not being
allowed to modify borderless padding for frames, even in 5.4+.
That would be a very confusing corner-case that is best avoided,
so removing all compatibility code (which currently has no use).
So, if an AllowPaddingWithoutBorders=false compatibility
situation is ever required in the future, do not
resurrect the name ALLOW_PADDING_WITHOUT_BORDRES. Additionally, code
will also be needed to send the compatibility setting for
each type of border (page, paragraph, character, header, frames, image).
See commit f013d4a1f4
as an example
of how to implement that for frames.
This commit means there is a lot of dead code now (m_bBorderDist and
mbAllowPaddingWithoutBorders are always true). LO5.7 seems like a good
target to clean that up - to allow time to easily fix any regressions.
Change-Id: I2d2091fa34f8b178a59347b35a81c944c9b24ed7
Reviewed-on: https://gerrit.libreoffice.org/31105
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Justin Luth <justin_luth@sil.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
237 lines
7.1 KiB
C++
237 lines
7.1 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 <tools/solar.h>
|
|
#include <rtl/ref.hxx>
|
|
#include <chcmprse.hxx>
|
|
#include <fldupde.hxx>
|
|
|
|
class SvxForbiddenCharactersTable;
|
|
namespace com { namespace sun { namespace star { namespace i18n { struct ForbiddenCharacters; } } } }
|
|
|
|
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,
|
|
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,
|
|
OUTLINE_LEVEL_YIELDS_OUTLINE_RULE,
|
|
|
|
DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE,
|
|
TABLE_ROW_KEEP,
|
|
IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION,
|
|
CLIP_AS_CHARACTER_ANCHORED_WRITER_FLY_FRAME,
|
|
|
|
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,
|
|
// 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_SYSTEM_FONTS,
|
|
APPLY_PARAGRAPH_MARK_FORMAT_TO_NUMBERING,
|
|
};
|
|
|
|
/** 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]*/ sal_uInt16 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]*/ sal_uInt16 nLang,
|
|
/*[in]*/ const css::i18n::ForbiddenCharacters& rForbiddenCharacters ) = 0;
|
|
|
|
/** Get the forbidden character table and creates one if necessary.
|
|
|
|
@returns
|
|
the forbidden characters table.
|
|
*/
|
|
virtual rtl::Reference<SvxForbiddenCharactersTable>& getForbiddenCharacterTable() = 0;
|
|
|
|
/** Get the forbidden character table.
|
|
|
|
@returns
|
|
the forbidden characters table.
|
|
*/
|
|
virtual const rtl::Reference<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 SwCharCompressType getCharacterCompressionType() const = 0;
|
|
|
|
/** Set the character compression type for Asian characters.
|
|
|
|
@param nMode
|
|
[in] the new character compression type.
|
|
*/
|
|
virtual void setCharacterCompressionType( /*[in]*/SwCharCompressType nType ) = 0;
|
|
|
|
/** Get the n32DummyCompatabilityOptions1
|
|
*/
|
|
virtual sal_uInt32 Getn32DummyCompatibilityOptions1() const = 0;
|
|
|
|
/** Set the n32DummyCompatabilityOptions1
|
|
*/
|
|
virtual void Setn32DummyCompatibilityOptions1( const sal_uInt32 CompatibilityOptions1 ) = 0;
|
|
|
|
/** Get the n32DummyCompatabilityOptions2
|
|
*/
|
|
virtual sal_uInt32 Getn32DummyCompatibilityOptions2() const = 0;
|
|
|
|
/** Set the n32DummyCompatabilityOptions2
|
|
*/
|
|
virtual void Setn32DummyCompatibilityOptions2( const sal_uInt32 CompatibilityOptions2 ) = 0;
|
|
|
|
protected:
|
|
virtual ~IDocumentSettingAccess() {};
|
|
};
|
|
|
|
#endif // INCLUDED_SW_INC_IDOCUMENTSETTINGACCESS_HXX
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|