6e8819f29b
Support XSL attribute "column" and CSS 4 attribute "spread", stored in loext:hyphenation-keep-type, to give better control over hyphenation-keep. E.g. spread: both parts of a hyphenated word shall lie within a single spread, i.e. when the next page is not visible at the same time (e.g. the next page is not a right page of a book). – css::style::ParaHyphenationKeep is a boolean property now, importing hyphenation-keep = "page" as true. – type of ParaHyphenationKeep, including the new non-ODF types is stored in the new ParagraphProperties::ParaHyphenationKeepType. – default value of ParaHyphenationKeepType is COLUMN for interoperability. – Add checkboxes to Text Flow -> Hyphenation Across in paragraph dialog: * Column (previously: Hyphenate across column and page) * Page * Spread – enabling/disabling them follows XSL/CSS 4/loext, i.e. possible combinations: * No Hyphenation across (hyphenation-keep = "page" and loext:hyphenation-keep-type = "column") * Hyphenation across [x] Column (hyphenation-keep = "page" and loext:hyphenation-keep-type = "page") * Hyphenation across [x] Column [x] Page (hyphenation-keep = "page" and loext:hyphenation-keep-type = "spread") * Hyphenation across [x] Column [x] Page [x] Spread (hyphenation-keep = "auto") – Add ODF import/export – Update DOCX import – Add ODF unit tests Note: recent implementation depends on widow settings: disabling widow handling allows hyphenation across columns and pages not only in table cells. Note: RTF import-only, but not used bPageEnd has been renamed to bKeep. Depending on the RTF test results, likely it will need to disable the layout change, e.g. GetKeepType()=ParagraphHyphenationKeepType::AUTO, if PageEnd uses obsolete hyphenation rule, i.e. shifting only the hyphenated word to the next page, not the full line. More information: – COLUMN (standard XSL value, defined in https://www.w3.org/TR/2001/REC-xsl-20011015/slice7.html#hyphenation-keep) – SPREAD and ALWAYS (CSS 4 values of hyphenate-limit-last, equivalent of hyphenation-keep, defined in https://www.w3.org/TR/css-text-4/#hyphenate-line-limits). Follow-up to commit9574a62add
"tdf#132599 cui offapi sw xmloff: implement hyphenate-keep" and commitc8ee0e8f58
"tdf160518 DOCX: import hyphenation-keep to fix layout". Change-Id: I3ac6d9e86d0ed1646f105de8607c0e8ebc534eaa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165954 Tested-by: László Németh <nemeth@numbertext.org> Reviewed-by: László Németh <nemeth@numbertext.org>
121 lines
6.5 KiB
C++
121 lines
6.5 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 .
|
|
*/
|
|
#pragma once
|
|
|
|
#include <rtl/ustring.hxx>
|
|
|
|
#ifdef __GNUC__
|
|
#pragma GCC diagnostic push
|
|
#pragma GCC diagnostic ignored "-Wunused-variable"
|
|
#endif
|
|
|
|
// UNO property names for general options
|
|
inline constexpr OUString UPN_IS_USE_DICTIONARY_LIST = u"IsUseDictionaryList"_ustr;
|
|
inline constexpr OUString UPN_IS_IGNORE_CONTROL_CHARACTERS = u"IsIgnoreControlCharacters"_ustr;
|
|
inline constexpr OUString UPN_ACTIVE_DICTIONARIES = u"ActiveDictionaries"_ustr;
|
|
|
|
// UNO property names for SpellChecker
|
|
inline constexpr OUString UPN_IS_SPELL_UPPER_CASE = u"IsSpellUpperCase"_ustr;
|
|
inline constexpr OUString UPN_IS_SPELL_WITH_DIGITS = u"IsSpellWithDigits"_ustr;
|
|
|
|
// UNO property names for Hyphenator
|
|
inline constexpr OUString UPN_HYPH_MIN_LEADING = u"HyphMinLeading"_ustr;
|
|
inline constexpr OUString UPN_HYPH_MIN_TRAILING = u"HyphMinTrailing"_ustr;
|
|
inline constexpr OUString UPN_HYPH_COMPOUND_MIN_LEADING = u"HyphCompoundMinLeading"_ustr;
|
|
inline constexpr OUString UPN_HYPH_MIN_WORD_LENGTH = u"HyphMinWordLength"_ustr;
|
|
inline constexpr OUString UPN_HYPH_NO_CAPS = u"HyphNoCaps"_ustr;
|
|
inline constexpr OUString UPN_HYPH_NO_LAST_WORD = u"HyphNoLastWord"_ustr;
|
|
inline constexpr OUString UPN_HYPH_ZONE = u"HyphZone"_ustr;
|
|
inline constexpr OUString UPN_HYPH_KEEP = u"HyphKeep"_ustr;
|
|
inline constexpr OUString UPN_HYPH_KEEP_TYPE = u"HyphKeepType"_ustr;
|
|
|
|
// UNO property names for Lingu
|
|
// (those not covered by the SpellChecker and Hyphenator
|
|
// properties and more likely to be used in other modules only)
|
|
inline constexpr OUString UPN_DEFAULT_LANGUAGE = u"DefaultLanguage"_ustr;
|
|
inline constexpr OUString UPN_DEFAULT_LOCALE = u"DefaultLocale"_ustr;
|
|
inline constexpr OUString UPN_DEFAULT_LOCALE_CJK = u"DefaultLocale_CJK"_ustr;
|
|
inline constexpr OUString UPN_DEFAULT_LOCALE_CTL = u"DefaultLocale_CTL"_ustr;
|
|
inline constexpr OUString UPN_IS_HYPH_AUTO = u"IsHyphAuto"_ustr;
|
|
inline constexpr OUString UPN_IS_HYPH_SPECIAL = u"IsHyphSpecial"_ustr;
|
|
inline constexpr OUString UPN_IS_SPELL_AUTO = u"IsSpellAuto"_ustr;
|
|
inline constexpr OUString UPN_IS_SPELL_CLOSED_COMPOUND = u"IsSpellClosedCompound"_ustr;
|
|
inline constexpr OUString UPN_IS_SPELL_HYPHENATED_COMPOUND = u"IsSpellHyphenatedCompound"_ustr;
|
|
inline constexpr OUString UPN_IS_SPELL_SPECIAL = u"IsSpellSpecial"_ustr;
|
|
inline constexpr OUString UPN_IS_WRAP_REVERSE = u"IsWrapReverse"_ustr;
|
|
inline constexpr OUString UPN_DATA_FILES_CHANGED_CHECK_VALUE = u"DataFilesChangedCheckValue"_ustr;
|
|
|
|
// UNO property names for text conversion options
|
|
inline constexpr OUString UPN_ACTIVE_CONVERSION_DICTIONARIES = u"ActiveConversionDictionaries"_ustr;
|
|
inline constexpr OUString UPN_IS_IGNORE_POST_POSITIONAL_WORD = u"IsIgnorePostPositionalWord"_ustr;
|
|
inline constexpr OUString UPN_IS_AUTO_CLOSE_DIALOG = u"IsAutoCloseDialog"_ustr;
|
|
inline constexpr OUString UPN_IS_SHOW_ENTRIES_RECENTLY_USED_FIRST = u"IsShowEntriesRecentlyUsedFirst"_ustr;
|
|
inline constexpr OUString UPN_IS_AUTO_REPLACE_UNIQUE_ENTRIES = u"IsAutoReplaceUniqueEntries"_ustr;
|
|
inline constexpr OUString UPN_IS_DIRECTION_TO_SIMPLIFIED = u"IsDirectionToSimplified"_ustr;
|
|
inline constexpr OUString UPN_IS_USE_CHARACTER_VARIANTS = u"IsUseCharacterVariants"_ustr;
|
|
inline constexpr OUString UPN_IS_TRANSLATE_COMMON_TERMS = u"IsTranslateCommonTerms"_ustr;
|
|
inline constexpr OUString UPN_IS_REVERSE_MAPPING = u"IsReverseMapping"_ustr;
|
|
|
|
inline constexpr OUString UPN_IS_GRAMMAR_AUTO = u"IsAutoGrammarCheck"_ustr;
|
|
inline constexpr OUString UPN_IS_GRAMMAR_INTERACTIVE = u"IsInteractiveGrammarCheck"_ustr;
|
|
|
|
// uno property handles
|
|
#define UPH_IS_USE_DICTIONARY_LIST 0
|
|
#define UPH_IS_IGNORE_CONTROL_CHARACTERS 1
|
|
#define UPH_IS_SPELL_UPPER_CASE 2
|
|
#define UPH_IS_SPELL_WITH_DIGITS 3
|
|
#define UPH_HYPH_MIN_LEADING 4
|
|
#define UPH_HYPH_MIN_TRAILING 5
|
|
#define UPH_HYPH_MIN_WORD_LENGTH 6
|
|
#define UPH_DEFAULT_LOCALE 7
|
|
#define UPH_IS_SPELL_AUTO 8
|
|
#define UPH_IS_SPELL_CLOSED_COMPOUND 9
|
|
#define UPH_IS_SPELL_HYPHENATED_COMPOUND 10
|
|
#define UPH_IS_SPELL_SPECIAL 11
|
|
#define UPH_IS_HYPH_AUTO 12
|
|
#define UPH_IS_HYPH_SPECIAL 13
|
|
#define UPH_IS_WRAP_REVERSE 14
|
|
#define UPH_DATA_FILES_CHANGED_CHECK_VALUE 15
|
|
#define UPH_DEFAULT_LANGUAGE 16
|
|
#define UPH_DEFAULT_LOCALE_CJK 17
|
|
#define UPH_DEFAULT_LOCALE_CTL 18
|
|
#define UPH_ACTIVE_DICTIONARIES 19
|
|
#define UPH_ACTIVE_CONVERSION_DICTIONARIES 20
|
|
#define UPH_IS_IGNORE_POST_POSITIONAL_WORD 21
|
|
#define UPH_IS_AUTO_CLOSE_DIALOG 22
|
|
#define UPH_IS_SHOW_ENTRIES_RECENTLY_USED_FIRST 23
|
|
#define UPH_IS_AUTO_REPLACE_UNIQUE_ENTRIES 24
|
|
#define UPH_IS_DIRECTION_TO_SIMPLIFIED 25
|
|
#define UPH_IS_USE_CHARACTER_VARIANTS 26
|
|
#define UPH_IS_TRANSLATE_COMMON_TERMS 27
|
|
#define UPH_IS_REVERSE_MAPPING 28
|
|
#define UPH_IS_GRAMMAR_AUTO 29
|
|
#define UPH_IS_GRAMMAR_INTERACTIVE 30
|
|
#define UPH_HYPH_NO_CAPS 31
|
|
#define UPH_HYPH_NO_LAST_WORD 32
|
|
#define UPH_HYPH_ZONE 33
|
|
#define UPH_HYPH_KEEP 34
|
|
#define UPH_HYPH_KEEP_TYPE 35
|
|
#define UPH_HYPH_COMPOUND_MIN_LEADING 36
|
|
|
|
#ifdef __GNUC__
|
|
#pragma GCC diagnostic pop
|
|
#endif
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|