/* -*- 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 __com_sun_star_linguistic2_XHyphenator_idl__ #define __com_sun_star_linguistic2_XHyphenator_idl__ #include #include #include #include #include #include #include module com { module sun { module star { module linguistic2 { /** provides functionality for hyphenation of single words.

Its three main functionalities are to provide a suitable position for breaking lines within a word, query about the existence of an alternative spelling at a specific position of a word and provide a list of possible hyphenation positions within a word.

A hyphenation position for a word with n characters is represented by a value in the range from 0 to n-2, indicating the position of the character after which the hyphenation is done. That is, it is after the first and before the last character.

A valid hyphenation position is a hyphenation position that fulfills all the restrictions implied by the properties MinLeading, MinTrailing and MinWordLength.

@see com::sun::star::linguistic2::LinguProperties @see com::sun::star::linguistic2::XSupportedLocales */ published interface XHyphenator : com::sun::star::linguistic2::XSupportedLocales { /** tries to find a valid hyphenation position relative to the beginning of a word.

Note: Some languages, for example Arabic, are written from right to left.

@returns the XHyphenatedWord for the last valid hyphenation position that is less than or equal to nMaxLeading - 1. If there is no such valid hyphenation position, `NULL` is returned. @param aWord is the word to be hyphenated. @param aLocale defines the language to be used.

If the language is not supported, an IllegalArgumentException exception is raised.

@param nMaxLeading specifies the maximum number of characters to remain before the hyphen in the hyphenated word.

It has to be greater than or equal to 0.

@param aProperties provides property values to be used for this function call only. It is usually empty in order to use the default values supplied with the property set. @see com::sun::star::linguistic2::XHyphenatedWord @see com::sun::star::lang::Locale */ com::sun::star::linguistic2::XHyphenatedWord hyphenate( [in] string aWord, [in] com::sun::star::lang::Locale aLocale, [in] short nMaxLeading, [in] com::sun::star::beans::PropertyValues aProperties ) raises( com::sun::star::lang::IllegalArgumentException ); /** checks whether hyphenation at a position in a word will result in an alternative spelling or not.

An alternative spelling position is a hyphen position where, if hyphenation is done here, the writing of the word changes. Example: "Bäcker" in German pre spelling-reform becomes "Bäkker" if hyphenation is done after the "c".

The hyphenation position does not need to be a valid one to be an alternative spelling position.

@returns the information about the alternative spelling found at the specified position. Otherwise, if no alternative spelling was found, `NULL` is returned. @param aWord is the original word to be looked at for having an alternative spelling, if hyphenation is done at position nIndex. @param aLocale specifies the language to be used.

If the language is not supported, an IllegalArgumentException exception is raised.

@param nIndex is the position in the word to be looked at.

If the length of the word is n, the value of this parameter has to be in the range from 0 to n-2.

@param aProperties provides property values to be used for this function call only. It is usually empty in order to use the default values supplied with the property set. @see com::sun::star::linguistic2::XHyphenatedWord @see com::sun::star::lang::Locale */ com::sun::star::linguistic2::XHyphenatedWord queryAlternativeSpelling( [in] string aWord, [in] com::sun::star::lang::Locale aLocale, [in] short nIndex, [in] com::sun::star::beans::PropertyValues aProperties ) raises( com::sun::star::lang::IllegalArgumentException ); /** returns information about all possible hyphenation positions of a word. @returns an com::sun::star::linguistic2::XPossibleHyphens for the given word and language if there are any hyphenation positions. `NULL` otherwise. @param aWord is the word for which information about the possible hyphenation positions is to be retrieved. @param aLocale defines the language of the word.

If the language is not supported, an IllegalArgumentException exception is raised.

@param aProperties provides property values to be used for this function call only. It is usually empty in order to use the default values supplied with the property set. @see com::sun::star::linguistic2::XPossibleHyphens @see com::sun::star::lang::Locale */ com::sun::star::linguistic2::XPossibleHyphens createPossibleHyphens( [in] string aWord, [in] com::sun::star::lang::Locale aLocale, [in] com::sun::star::beans::PropertyValues aProperties ) raises( com::sun::star::lang::IllegalArgumentException ); }; }; }; }; }; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */