xref: /aoo42x/main/linguistic/source/defs.hxx (revision 63ce064a)
1*63ce064aSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*63ce064aSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*63ce064aSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*63ce064aSAndrew Rist  * distributed with this work for additional information
6*63ce064aSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*63ce064aSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*63ce064aSAndrew Rist  * "License"); you may not use this file except in compliance
9*63ce064aSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*63ce064aSAndrew Rist  *
11*63ce064aSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*63ce064aSAndrew Rist  *
13*63ce064aSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*63ce064aSAndrew Rist  * software distributed under the License is distributed on an
15*63ce064aSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*63ce064aSAndrew Rist  * KIND, either express or implied.  See the License for the
17*63ce064aSAndrew Rist  * specific language governing permissions and limitations
18*63ce064aSAndrew Rist  * under the License.
19*63ce064aSAndrew Rist  *
20*63ce064aSAndrew Rist  *************************************************************/
21*63ce064aSAndrew Rist 
22*63ce064aSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _LINGUISTIC_DEFS_HXX_
25cdf0e10cSrcweir #define _LINGUISTIC_DEFS_HXX_
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <com/sun/star/linguistic2/XSpellChecker.hpp>
28cdf0e10cSrcweir #include <com/sun/star/linguistic2/XProofreader.hpp>
29cdf0e10cSrcweir #include <com/sun/star/linguistic2/XHyphenator.hpp>
30cdf0e10cSrcweir #include <com/sun/star/linguistic2/XThesaurus.hpp>
31cdf0e10cSrcweir 
32cdf0e10cSrcweir #include <boost/shared_ptr.hpp>
33cdf0e10cSrcweir 
34cdf0e10cSrcweir class SvStream;
35cdf0e10cSrcweir 
36cdf0e10cSrcweir 
37cdf0e10cSrcweir ///////////////////////////////////////////////////////////////////////////
38cdf0e10cSrcweir 
39cdf0e10cSrcweir #define A2OU(x)	::rtl::OUString::createFromAscii( x )
40cdf0e10cSrcweir 
41cdf0e10cSrcweir typedef boost::shared_ptr< SvStream > SvStreamPtr;
42cdf0e10cSrcweir 
43cdf0e10cSrcweir namespace css = ::com::sun::star;
44cdf0e10cSrcweir 
45cdf0e10cSrcweir ///////////////////////////////////////////////////////////////////////////
46cdf0e10cSrcweir 
47cdf0e10cSrcweir struct LangSvcEntries
48cdf0e10cSrcweir {
49cdf0e10cSrcweir     css::uno::Sequence< ::rtl::OUString >   aSvcImplNames;
50cdf0e10cSrcweir 
51cdf0e10cSrcweir     sal_Int16   nLastTriedSvcIndex;
52cdf0e10cSrcweir     bool        bAlreadyWarned;
53cdf0e10cSrcweir     bool        bDoWarnAgain;
54cdf0e10cSrcweir 
LangSvcEntriesLangSvcEntries55cdf0e10cSrcweir     LangSvcEntries() : nLastTriedSvcIndex(-1), bAlreadyWarned(false), bDoWarnAgain(false) {}
56cdf0e10cSrcweir 
LangSvcEntriesLangSvcEntries57cdf0e10cSrcweir     inline LangSvcEntries( const css::uno::Sequence< ::rtl::OUString > &rSvcImplNames ) :
58cdf0e10cSrcweir 		aSvcImplNames(rSvcImplNames),
59cdf0e10cSrcweir         nLastTriedSvcIndex(-1), bAlreadyWarned(false), bDoWarnAgain(false)
60cdf0e10cSrcweir     {
61cdf0e10cSrcweir     }
62cdf0e10cSrcweir 
LangSvcEntriesLangSvcEntries63cdf0e10cSrcweir     inline LangSvcEntries( const ::rtl::OUString &rSvcImplName ) :
64cdf0e10cSrcweir         nLastTriedSvcIndex(-1), bAlreadyWarned(false), bDoWarnAgain(false)
65cdf0e10cSrcweir     {
66cdf0e10cSrcweir         aSvcImplNames.realloc(1);
67cdf0e10cSrcweir         aSvcImplNames[0] = rSvcImplName;
68cdf0e10cSrcweir     }
69cdf0e10cSrcweir 
IsAlreadyWarnedLangSvcEntries70cdf0e10cSrcweir     bool    IsAlreadyWarned() const         { return bAlreadyWarned != 0; }
SetAlreadyWarnedLangSvcEntries71cdf0e10cSrcweir     void    SetAlreadyWarned( bool bVal )   { bAlreadyWarned = 0 != bVal; }
IsDoWarnAgainLangSvcEntries72cdf0e10cSrcweir     bool    IsDoWarnAgain() const           { return bDoWarnAgain != 0; }
SetDoWarnAgainLangSvcEntries73cdf0e10cSrcweir     void    SetDoWarnAgain( bool bVal )     { bDoWarnAgain = 0 != bVal; }
74cdf0e10cSrcweir 
ClearLangSvcEntries75cdf0e10cSrcweir     inline void Clear()
76cdf0e10cSrcweir     {
77cdf0e10cSrcweir         aSvcImplNames.realloc(0);
78cdf0e10cSrcweir         nLastTriedSvcIndex  = -1;
79cdf0e10cSrcweir         bAlreadyWarned      = false;
80cdf0e10cSrcweir         bDoWarnAgain        = false;
81cdf0e10cSrcweir     }
82cdf0e10cSrcweir };
83cdf0e10cSrcweir 
84cdf0e10cSrcweir struct LangSvcEntries_Spell : public LangSvcEntries
85cdf0e10cSrcweir {
86cdf0e10cSrcweir     css::uno::Sequence< css::uno::Reference< css::linguistic2::XSpellChecker > >  aSvcRefs;
87cdf0e10cSrcweir 
LangSvcEntries_SpellLangSvcEntries_Spell88cdf0e10cSrcweir     LangSvcEntries_Spell() : LangSvcEntries() {}
LangSvcEntries_SpellLangSvcEntries_Spell89cdf0e10cSrcweir     LangSvcEntries_Spell( const css::uno::Sequence< ::rtl::OUString > &rSvcImplNames ) : LangSvcEntries( rSvcImplNames ) {}
90cdf0e10cSrcweir };
91cdf0e10cSrcweir 
92cdf0e10cSrcweir struct LangSvcEntries_Grammar : public LangSvcEntries
93cdf0e10cSrcweir {
94cdf0e10cSrcweir     css::uno::Sequence< css::uno::Reference< css::linguistic2::XProofreader > >  aSvcRefs;
95cdf0e10cSrcweir 
LangSvcEntries_GrammarLangSvcEntries_Grammar96cdf0e10cSrcweir     LangSvcEntries_Grammar() : LangSvcEntries() {}
LangSvcEntries_GrammarLangSvcEntries_Grammar97cdf0e10cSrcweir     LangSvcEntries_Grammar( const ::rtl::OUString &rSvcImplName ) : LangSvcEntries( rSvcImplName ) {}
98cdf0e10cSrcweir };
99cdf0e10cSrcweir 
100cdf0e10cSrcweir struct LangSvcEntries_Hyph : public LangSvcEntries
101cdf0e10cSrcweir {
102cdf0e10cSrcweir     css::uno::Sequence< css::uno::Reference< css::linguistic2::XHyphenator > >  aSvcRefs;
103cdf0e10cSrcweir 
LangSvcEntries_HyphLangSvcEntries_Hyph104cdf0e10cSrcweir     LangSvcEntries_Hyph() : LangSvcEntries() {}
LangSvcEntries_HyphLangSvcEntries_Hyph105cdf0e10cSrcweir     LangSvcEntries_Hyph( const ::rtl::OUString &rSvcImplName ) : LangSvcEntries( rSvcImplName ) {}
106cdf0e10cSrcweir };
107cdf0e10cSrcweir 
108cdf0e10cSrcweir struct LangSvcEntries_Thes : public LangSvcEntries
109cdf0e10cSrcweir {
110cdf0e10cSrcweir     css::uno::Sequence< css::uno::Reference< css::linguistic2::XThesaurus > >  aSvcRefs;
111cdf0e10cSrcweir 
LangSvcEntries_ThesLangSvcEntries_Thes112cdf0e10cSrcweir     LangSvcEntries_Thes() : LangSvcEntries() {}
LangSvcEntries_ThesLangSvcEntries_Thes113cdf0e10cSrcweir     LangSvcEntries_Thes( const css::uno::Sequence< ::rtl::OUString > &rSvcImplNames ) : LangSvcEntries( rSvcImplNames ) {}
114cdf0e10cSrcweir };
115cdf0e10cSrcweir 
116cdf0e10cSrcweir ///////////////////////////////////////////////////////////////////////////
117cdf0e10cSrcweir 
118cdf0e10cSrcweir // virtual base class for the different dispatchers
119cdf0e10cSrcweir class LinguDispatcher
120cdf0e10cSrcweir {
121cdf0e10cSrcweir public:
122cdf0e10cSrcweir     enum DspType    { DSP_SPELL, DSP_HYPH, DSP_THES, DSP_GRAMMAR };
123cdf0e10cSrcweir 
124cdf0e10cSrcweir     virtual void SetServiceList( const css::lang::Locale &rLocale, const css::uno::Sequence< rtl::OUString > &rSvcImplNames ) = 0;
125cdf0e10cSrcweir     virtual css::uno::Sequence< rtl::OUString > GetServiceList( const css::lang::Locale &rLocale ) const = 0;
126cdf0e10cSrcweir     virtual DspType GetDspType() const = 0;
127cdf0e10cSrcweir };
128cdf0e10cSrcweir 
129cdf0e10cSrcweir ///////////////////////////////////////////////////////////////////////////
130cdf0e10cSrcweir 
131cdf0e10cSrcweir #endif
132cdf0e10cSrcweir 
133