Implements the ODF 1.2 paragraph attribute style:writing-mode-automatic, and supporting runtime features. When set, this attribute allows programs to automatically recompute the paragraph writing mode when the contents of the paragraph have been edited. The ODF standard does not suggest any particular algorithm for automatically determining paragraph direction. This implementation uses the rules from Unicode UAX #9 3.3.1. Currently, LO will only automatically change the writing direction when new text is typed or deleted. Other known interesting cases are already tracked as separate enhancement requests. Change-Id: I49eecea36952588dc98f2a98ebce712cd2846c0c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193547 Reviewed-by: Jonathan Clark <jonathan@libreoffice.org> Tested-by: Jenkins
31 lines
826 B
C++
31 lines
826 B
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
|
|
/*
|
|
* 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/.
|
|
*/
|
|
#pragma once
|
|
|
|
#include <i18nutil/i18nutildllapi.h>
|
|
#include <com/sun/star/text/ScriptHintType.hpp>
|
|
#include <rtl/ustring.hxx>
|
|
#include <optional>
|
|
#include <memory>
|
|
#include <vector>
|
|
|
|
namespace i18nutil
|
|
{
|
|
enum class ParagraphDirection
|
|
{
|
|
Ambiguous,
|
|
LeftToRight,
|
|
RightToLeft
|
|
};
|
|
|
|
I18NUTIL_DLLPUBLIC ParagraphDirection GuessParagraphDirection(const OUString& rText);
|
|
}
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
|