| /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
| /* |
| * This file is part of the Collabora Office 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 . |
| */ |
| |
| #pragma once |
| |
| #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, |
| // tdf#159382: MS Word compatible handling of space between footnote number and text |
| NO_GAP_AFTER_NOTE_NUMBER, |
| |
| DO_NOT_CAPTURE_DRAW_OBJS_ON_PAGE, |
| TABLE_ROW_KEEP, |
| IGNORE_TABS_AND_BLANKS_FOR_LINE_CALCULATION, |
| IGNORE_HIDDEN_CHARS_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, |
| TAB_OVER_SPACING, |
| // 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, |
| // tdf#129448: Auto first-line indent should not be effected by line space |
| AUTO_FIRST_LINE_INDENT_DISREGARD_LINE_SPACE, |
| HYPHENATE_URLS, ///< tdf#152952 |
| DO_NOT_BREAK_WRAPPED_TABLES, |
| ALLOW_TEXT_AFTER_FLOATING_TABLE_BREAK, |
| // tdf#119908 new paragraph justification |
| JUSTIFY_LINES_WITH_SHRINKING, |
| APPLY_TEXT_ATTR_TO_EMPTY_LINE_AT_END_OF_PARAGRAPH, |
| APPLY_PARAGRAPH_MARK_FORMAT_TO_EMPTY_LINE_AT_END_OF_PARAGRAPH, |
| HIDDEN_PARAGRAPH_MARK_PER_LINE_PROPERTIES, |
| DO_NOT_MIRROR_RTL_DRAW_OBJS, |
| // 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, |
| 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, |
| GUTTER_AT_TOP, |
| // footnoteContainer default position is the page end instead of the column end |
| // only if "evenly distributed" is set, and "collected at the end" is not set |
| FOOTNOTE_IN_COLUMN_TO_PAGEEND, |
| // Should we display follow by symbol for numbered paragraph if numbering exists, but "None"? |
| NO_NUMBERING_SHOW_FOLLOWBY, |
| // drop cap punctuation: smaller dashes, bullet, asterisks, quotation marks etc. |
| // by extending the rounding box of the glyph to the baseline |
| DROP_CAP_PUNCTUATION, |
| // render NBSP as standard-space-width (prettier when justified) |
| USE_VARIABLE_WIDTH_NBSP, |
| // overlap background shapes if anchored in body |
| PAINT_HELL_OVER_HEADER_FOOTER, |
| // tdf#155229 calculate minimum row height including horizontal border width |
| MIN_ROW_HEIGHT_INCL_BORDER, |
| MS_WORD_COMP_GRID_METRICS, |
| // tdf#161233 pictures with wrap polygon should not be clipped |
| NO_CLIPPING_WITH_WRAP_POLYGON, |
| MS_WORD_UL_TRAIL_SPACE, |
| // tdf#88908 optionally adjust normal spaces in CJK context to halfwidth |
| BALANCE_SPACES_AND_IDEOGRAPHIC_SPACES, |
| // tdf#37153 Word-compatibility: force top-alignment for cells containing a floating shape |
| FORCE_TOP_ALIGNMENT_IN_CELL_WITH_FLOATING_ANCHOR, |
| // tdf#167583 optionally apply text grid line height to table contents |
| ADJUST_TABLE_LINE_HEIGHTS_TO_GRID_HEIGHT, |
| }; |
| |
| /** 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; |
| |
| virtual sal_Int32 getImagePreferredDPI() = 0; |
| virtual void setImagePreferredDPI(sal_Int32 nValue) = 0; |
| |
| protected: |
| virtual ~IDocumentSettingAccess(){}; |
| }; |
| |
| /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |