xref: /AOO41X/main/linguistic/workben/sprophelp.hxx (revision 63ce064adffbff2897afdaa4d6906d07224572bb)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef _LINGU2_PROPHELP_HXX_
25 #define _LINGU2_PROPHELP_HXX_
26 
27 #include <tools/solar.h>
28 
29 #include <uno/lbnames.h>            // CPPU_CURRENT_LANGUAGE_BINDING_NAME macro, which specify the environment type
30 #include <cppuhelper/implbase2.hxx> // helper for implementations
31 #include <cppuhelper/interfacecontainer.h>
32 #include <com/sun/star/beans/XPropertyChangeListener.hpp>
33 #include <com/sun/star/beans/PropertyValues.hpp>
34 
35 #include <com/sun/star/linguistic2/XLinguServiceEventBroadcaster.hpp>
36 
37 namespace com { namespace sun { namespace star { namespace beans {
38     class   XPropertySet;
39 }}}};
40 
41 namespace com { namespace sun { namespace star { namespace linguistic2 {
42     struct  LinguServiceEvent;
43 }}}};
44 
45 
46 using namespace ::rtl;
47 using namespace ::com::sun::star::uno;
48 using namespace ::com::sun::star::beans;
49 using namespace ::com::sun::star::lang;
50 using namespace ::com::sun::star::linguistic2;
51 
52 ///////////////////////////////////////////////////////////////////////////
53 // PropertyChgHelper
54 // virtual base class for all XPropertyChangeListener members of the
55 // various lingu services.
56 // Only propertyChange needs to be implemented.
57 
58 class PropertyChgHelper :
59     public cppu::WeakImplHelper2
60     <
61         XPropertyChangeListener,
62         XLinguServiceEventBroadcaster
63     >
64 {
65     Sequence< OUString >                aPropNames;
66     Reference< XInterface >             xMyEvtObj;
67     ::cppu::OInterfaceContainerHelper   aLngSvcEvtListeners;
68     Reference< XPropertySet >           xPropSet;
69 
70     // disallow use of copy-constructor and assignment-operator
71     PropertyChgHelper( const PropertyChgHelper & );
72     PropertyChgHelper & operator = ( const PropertyChgHelper & );
73 
74 public:
75     PropertyChgHelper(
76             const Reference< XInterface > &rxSource,
77             Reference< XPropertySet > &rxPropSet,
78             const char *pPropNames[], USHORT nPropCount );
79     virtual ~PropertyChgHelper();
80 
81     // XEventListener
82     virtual void SAL_CALL
83         disposing( const EventObject& rSource )
84             throw(RuntimeException);
85 
86     // XPropertyChangeListener
87     virtual void SAL_CALL
88         propertyChange( const PropertyChangeEvent& rEvt )
89             throw(RuntimeException) = 0;
90 
91     // XLinguServiceEventBroadcaster
92     virtual sal_Bool SAL_CALL
93         addLinguServiceEventListener(
94                 const Reference< XLinguServiceEventListener >& rxListener )
95             throw(RuntimeException);
96     virtual sal_Bool SAL_CALL
97         removeLinguServiceEventListener(
98                 const Reference< XLinguServiceEventListener >& rxListener )
99             throw(RuntimeException);
100 
101     // non UNO functions
102     void    AddAsPropListener();
103     void    RemoveAsPropListener();
104     void    LaunchEvent( const LinguServiceEvent& rEvt );
105 
106     const Sequence< OUString > &
GetPropNames() const107             GetPropNames() const    { return aPropNames; }
108     const Reference< XPropertySet > &
GetPropSet() const109             GetPropSet() const      { return xPropSet; }
110     const Reference< XInterface > &
GetEvtObj() const111             GetEvtObj() const       { return xMyEvtObj; }
112 };
113 
114 
115 ///////////////////////////////////////////////////////////////////////////
116 
117 
118 class PropertyHelper_Spell :
119     public PropertyChgHelper
120 {
121     // default values
122     BOOL    bIsGermanPreReform;
123     BOOL    bIsIgnoreControlCharacters;
124     BOOL    bIsUseDictionaryList;
125     BOOL    bIsSpellUpperCase;
126     BOOL    bIsSpellWithDigits;
127     BOOL    bIsSpellCapitalization;
128 
129     // return values, will be set to default value or current temporary value
130     BOOL    bResIsGermanPreReform;
131     BOOL    bResIsIgnoreControlCharacters;
132     BOOL    bResIsUseDictionaryList;
133     BOOL    bResIsSpellUpperCase;
134     BOOL    bResIsSpellWithDigits;
135     BOOL    bResIsSpellCapitalization;
136 
137 
138     // disallow use of copy-constructor and assignment-operator
139     PropertyHelper_Spell( const PropertyHelper_Spell & );
140     PropertyHelper_Spell & operator = ( const PropertyHelper_Spell & );
141 
142     void    SetDefault();
143 
144 public:
145     PropertyHelper_Spell(
146             const Reference< XInterface > &rxSource,
147             Reference< XPropertySet > &rxPropSet );
148     virtual ~PropertyHelper_Spell();
149 
150     // XPropertyChangeListener
151     virtual void SAL_CALL
152         propertyChange( const PropertyChangeEvent& rEvt )
153             throw(RuntimeException);
154 
155     void    SetTmpPropVals( const PropertyValues &rPropVals );
156 
IsGermanPreReform() const157     BOOL    IsGermanPreReform() const           { return bResIsGermanPreReform; }
IsIgnoreControlCharacters() const158     BOOL    IsIgnoreControlCharacters() const   { return bResIsIgnoreControlCharacters; }
IsUseDictionaryList() const159     BOOL    IsUseDictionaryList() const         { return bResIsUseDictionaryList; }
IsSpellUpperCase() const160     BOOL    IsSpellUpperCase() const            { return bResIsSpellUpperCase; }
IsSpellWithDigits() const161     BOOL    IsSpellWithDigits() const           { return bResIsSpellWithDigits; }
IsSpellCapitalization() const162     BOOL    IsSpellCapitalization() const       { return bResIsSpellCapitalization; }
163 };
164 
165 ///////////////////////////////////////////////////////////////////////////
166 
167 #endif
168 
169