LibreOffice Module linguistic (master) 1
misc.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#ifndef INCLUDED_LINGUISTIC_MISC_HXX
21#define INCLUDED_LINGUISTIC_MISC_HXX
22
23#include <com/sun/star/uno/Sequence.h>
24#include <com/sun/star/uno/Reference.h>
25#include <com/sun/star/beans/PropertyValues.hpp>
26#include <com/sun/star/frame/XTerminateListener.hpp>
27#include <com/sun/star/lang/Locale.hpp>
28
30#include <i18nlangtag/lang.h>
31#include <rtl/ustring.hxx>
33
34#include <vector>
35
36namespace com::sun::star::beans { class XPropertySet; }
37namespace com::sun::star::frame { class XDesktop2; }
38namespace com::sun::star::linguistic2 { class XDictionary; }
39namespace com::sun::star::linguistic2 { class XDictionaryEntry; }
40namespace com::sun::star::linguistic2 { class XHyphenatedWord; }
41namespace com::sun::star::linguistic2 { class XLinguProperties; }
42namespace com::sun::star::linguistic2 { class XSearchableDictionaryList; }
43namespace osl { class Mutex; }
44
45class CharClass;
47
48
49inline constexpr OUStringLiteral SN_GRAMMARCHECKER = u"com.sun.star.linguistic2.Proofreader";
50inline constexpr OUStringLiteral SN_SPELLCHECKER = u"com.sun.star.linguistic2.SpellChecker";
51inline constexpr OUStringLiteral SN_HYPHENATOR = u"com.sun.star.linguistic2.Hyphenator";
52inline constexpr OUStringLiteral SN_THESAURUS = u"com.sun.star.linguistic2.Thesaurus";
53
54
55namespace linguistic
56{
57
58
59// AddEntryToDic return values
61{
63};
64
65// values assigned to capitalization types
66enum class CapType
67{
68 UNKNOWN,
69 NOCAP,
70 INITCAP,
71 ALLCAP,
72 MIXED
73};
74
75LNG_DLLPUBLIC ::osl::Mutex& GetLinguMutex();
76
78
79sal_Int32 LevDistance( std::u16string_view rTxt1, std::u16string_view rTxt2 );
80
85LNG_DLLPUBLIC LanguageType LinguLocaleToLanguage( const css::lang::Locale& rLocale );
86
91LNG_DLLPUBLIC css::lang::Locale LinguLanguageToLocale( LanguageType nLanguage );
92
98
101LNG_DLLPUBLIC bool LinguIsUnspecified( std::u16string_view rBcp47 );
102
103std::vector< LanguageType >
104 LocaleSeqToLangVec( css::uno::Sequence< css::lang::Locale > const &rLocaleSeq );
105css::uno::Sequence<sal_Int16>
106 LocaleSeqToLangSeq( css::uno::Sequence< css::lang::Locale > const &rLocaleSeq );
107
108// checks if file pointed to by rURL is readonly
109// and may also check return if such a file exists or not
110bool IsReadOnly( const OUString &rURL, bool *pbExist = nullptr );
111
112// checks if a file with the given URL exists
113bool FileExists( const OUString &rURL );
114
115
117std::vector< OUString > GetDictionaryPaths();
118
121LNG_DLLPUBLIC OUString GetWritableDictionaryURL( std::u16string_view rDicName );
122
123LNG_DLLPUBLIC sal_Int32 GetPosInWordToCheck( std::u16string_view rTxt, sal_Int32 nPos );
124
125css::uno::Reference< css::linguistic2::XHyphenatedWord >
127 const OUString &rOrigWord,
128 css::uno::Reference< css::linguistic2::XHyphenatedWord > const &rxHyphWord );
129
130
131LNG_DLLPUBLIC bool IsUpper( const OUString &rText, sal_Int32 nPos, sal_Int32 nLen, LanguageType nLanguage );
132
133inline bool IsUpper( const OUString &rText, LanguageType nLanguage ) { return IsUpper( rText, 0, rText.getLength(), nLanguage ); }
134LNG_DLLPUBLIC CapType capitalType(const OUString&, CharClass const *);
135
136LNG_DLLPUBLIC bool HasDigits( const OUString &rText );
137LNG_DLLPUBLIC bool IsNumeric( std::u16string_view rText );
138
139
140LNG_DLLPUBLIC css::uno::Reference< css::linguistic2::XLinguProperties > GetLinguProperties();
141css::uno::Reference< css::linguistic2::XSearchableDictionaryList > GetDictionaryList();
142css::uno::Reference< css::linguistic2::XDictionary > GetIgnoreAllList();
143
144
145bool IsUseDicList( const css::beans::PropertyValues &rProperties,
146 const css::uno::Reference< css::beans::XPropertySet > &rxPropSet );
147
148bool IsIgnoreControlChars( const css::beans::PropertyValues &rProperties,
149 const css::uno::Reference< css::beans::XPropertySet > &rxPropSet );
150
151css::uno::Reference<
152 css::linguistic2::XDictionaryEntry >
154 const css::uno::Reference< css::linguistic2::XSearchableDictionaryList >& rDicList,
155 const OUString& rWord, LanguageType nLanguage,
156 bool bSearchPosDics, bool bSearchSpellEntry );
157
159 css::uno::Reference< css::linguistic2::XDictionary > const &rxDic,
160 const OUString &rWord, bool bIsNeg,
161 const OUString &rRplcTxt,
162 bool bStripDot = true );
163
164LNG_DLLPUBLIC bool SaveDictionaries( const css::uno::Reference< css::linguistic2::XSearchableDictionaryList > &xDicList );
165
166// AppExitLstnr:
167// virtual base class that calls it AtExit function when the application
168// (ie the Desktop) is about to terminate
169
171 public cppu::WeakImplHelper< css::frame::XTerminateListener >
172{
173 css::uno::Reference< css::frame::XDesktop2 > xDesktop;
174
175public:
177 virtual ~AppExitListener() override;
178
179 virtual void AtExit() = 0;
180
181 void Activate();
182 void Deactivate();
183
184 // XEventListener
185 virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override;
186
187 // XTerminateListener
188 virtual void SAL_CALL queryTermination( const css::lang::EventObject& aEvent ) override;
189 virtual void SAL_CALL notifyTermination( const css::lang::EventObject& aEvent ) override;
190};
191
192} // namespace linguistic
193
194#endif
195
196/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
#define FULL
virtual void SAL_CALL disposing(const css::lang::EventObject &Source) override
Definition: misc.cxx:732
css::uno::Reference< css::frame::XDesktop2 > xDesktop
Definition: misc.hxx:173
virtual void SAL_CALL queryTermination(const css::lang::EventObject &aEvent) override
Definition: misc.cxx:743
virtual ~AppExitListener() override
Definition: misc.cxx:715
virtual void SAL_CALL notifyTermination(const css::lang::EventObject &aEvent) override
Definition: misc.cxx:748
MIXED
const bool READONLY
float u
UNKNOWN
#define LNG_DLLPUBLIC
Definition: lngdllapi.h:29
constexpr OUStringLiteral SN_SPELLCHECKER
Definition: misc.hxx:50
constexpr OUStringLiteral SN_HYPHENATOR
Definition: misc.hxx:51
constexpr OUStringLiteral SN_GRAMMARCHECKER
Definition: misc.hxx:49
constexpr OUStringLiteral SN_THESAURUS
Definition: misc.hxx:52
NONE
class SAL_NO_VTABLE XPropertySet
OUString GetWritableDictionaryURL(std::u16string_view rDicName)
Definition: misc2.cxx:147
bool SaveDictionaries(const uno::Reference< XSearchableDictionaryList > &xDicList)
Definition: misc.cxx:294
std::vector< LanguageType > LocaleSeqToLangVec(uno::Sequence< Locale > const &rLocaleSeq)
Definition: misc.cxx:363
bool IsReadOnly(const OUString &rURL, bool *pbExist)
Definition: misc.cxx:385
uno::Sequence< sal_Int16 > LocaleSeqToLangSeq(uno::Sequence< Locale > const &rLocaleSeq)
Definition: misc.cxx:375
bool FileExists(const OUString &rMainURL)
Definition: misc2.cxx:60
bool LinguIsUnspecified(LanguageType nLanguage)
Checks if a LanguageType is one of the values that denote absence of language or undetermined languag...
Definition: misc.cxx:88
uno::Reference< XSearchableDictionaryList > GetDictionaryList()
Definition: misc.cxx:671
uno::Reference< XHyphenatedWord > RebuildHyphensAndControlChars(const OUString &rOrigWord, uno::Reference< XHyphenatedWord > const &rxHyphWord)
Definition: misc.cxx:499
uno::Reference< XLinguProperties > GetLinguProperties()
Definition: misc.cxx:666
DictionaryError
Definition: misc.hxx:61
CapType capitalType(const OUString &aTerm, CharClass const *pCC)
Definition: misc.cxx:564
uno::Reference< XDictionaryEntry > SearchDicList(const uno::Reference< XSearchableDictionaryList > &xDicList, const OUString &rWord, LanguageType nLanguage, bool bSearchPosDics, bool bSearchSpellEntry)
Definition: misc.cxx:248
OUString GetDictionaryWriteablePath()
Definition: misc2.cxx:131
sal_Int32 GetPosInWordToCheck(std::u16string_view rTxt, sal_Int32 nPos)
Definition: misc.cxx:481
osl::Mutex & GetLinguMutex()
! multi-thread safe mutex for all platforms !!
Definition: misc.cxx:60
bool IsUpper(const OUString &rText, sal_Int32 nPos, sal_Int32 nLen, LanguageType nLanguage)
Definition: misc.cxx:558
bool IsIgnoreControlChars(const PropertyValues &rProperties, const uno::Reference< XPropertySet > &rxProp)
Definition: misc.cxx:211
sal_Int32 LevDistance(std::u16string_view rTxt1, std::u16string_view rTxt2)
Definition: misc.cxx:143
bool IsNumeric(std::u16string_view rText)
Definition: misc.cxx:646
css::lang::Locale LinguLanguageToLocale(LanguageType nLanguage)
Convert LanguageType to Locale for legacy handling.
Definition: misc.cxx:81
bool HasDigits(const OUString &rText)
Definition: misc.cxx:627
std::vector< OUString > GetDictionaryPaths()
Definition: misc2.cxx:142
const LocaleDataWrapper & GetLocaleDataWrapper(LanguageType nLang)
Definition: misc.cxx:66
DictionaryError AddEntryToDic(uno::Reference< XDictionary > const &rxDic, const OUString &rWord, bool bIsNeg, const OUString &rRplcTxt, bool bStripDot)
Definition: misc.cxx:322
uno::Reference< XDictionary > GetIgnoreAllList()
Definition: misc.cxx:687
LanguageType LinguLocaleToLanguage(const css::lang::Locale &rLocale)
Convert Locale to LanguageType for legacy handling.
Definition: misc.cxx:74
bool IsUseDicList(const PropertyValues &rProperties, const uno::Reference< XPropertySet > &rxProp)
Definition: misc.cxx:189
CapType