1*b1cdbd2cSJim Jagielski/**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_linguistic2_XDictionary_idl__
24*b1cdbd2cSJim Jagielski#define __com_sun_star_linguistic2_XDictionary_idl__
25*b1cdbd2cSJim Jagielski
26*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_container_XNamed_idl__
27*b1cdbd2cSJim Jagielski#include <com/sun/star/container/XNamed.idl>
28*b1cdbd2cSJim Jagielski#endif
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_lang_Locale_idl__
31*b1cdbd2cSJim Jagielski#include <com/sun/star/lang/Locale.idl>
32*b1cdbd2cSJim Jagielski#endif
33*b1cdbd2cSJim Jagielski
34*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_linguistic2_DictionaryType_idl__
35*b1cdbd2cSJim Jagielski#include <com/sun/star/linguistic2/DictionaryType.idl>
36*b1cdbd2cSJim Jagielski#endif
37*b1cdbd2cSJim Jagielski
38*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_linguistic2_XDictionaryEntry_idl__
39*b1cdbd2cSJim Jagielski#include <com/sun/star/linguistic2/XDictionaryEntry.idl>
40*b1cdbd2cSJim Jagielski#endif
41*b1cdbd2cSJim Jagielski
42*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_linguistic2_XDictionaryEventListener_idl__
43*b1cdbd2cSJim Jagielski#include <com/sun/star/linguistic2/XDictionaryEventListener.idl>
44*b1cdbd2cSJim Jagielski#endif
45*b1cdbd2cSJim Jagielski
46*b1cdbd2cSJim Jagielski//=============================================================================
47*b1cdbd2cSJim Jagielski
48*b1cdbd2cSJim Jagielskimodule com { module sun { module star { module linguistic2 {
49*b1cdbd2cSJim Jagielski
50*b1cdbd2cSJim Jagielski//=============================================================================
51*b1cdbd2cSJim Jagielski/** This interfaces enables the object to access personal dictionaries.
52*b1cdbd2cSJim Jagielski
53*b1cdbd2cSJim Jagielski	<P>Personal dictionaries are used to supply additional
54*b1cdbd2cSJim Jagielski	information for spellchecking and hyphenation (see
55*b1cdbd2cSJim Jagielski	<type scope="com::sun::star::linguistic2">XDictionaryEntry</type>).
56*b1cdbd2cSJim Jagielski	Only active dictionaries with an appropriate language are used
57*b1cdbd2cSJim Jagielski	for that purpose.
58*b1cdbd2cSJim Jagielski	The entries of an active, positive dictionary are words that are
59*b1cdbd2cSJim Jagielski	required to be recognized as correct during the spellchecking
60*b1cdbd2cSJim Jagielski	process. Additionally, they will be used for hyphenation.
61*b1cdbd2cSJim Jagielski	Entries of a negative dictionary are required to be recognized
62*b1cdbd2cSJim Jagielski	as negative words, for example, words that should not be used, during
63*b1cdbd2cSJim Jagielski	spellcheck. An entry in a negative dictionary may supply a
64*b1cdbd2cSJim Jagielski	proposal for a word to be used instead of the one being used.</P>
65*b1cdbd2cSJim Jagielski
66*b1cdbd2cSJim Jagielski    @see    <type scope="com::sun::star::linguistic2">XDictionaryEvent</type>
67*b1cdbd2cSJim Jagielski    @see    <type scope="com::sun::star::container">XNamed</type>
68*b1cdbd2cSJim Jagielski*/
69*b1cdbd2cSJim Jagielskipublished interface XDictionary : com::sun::star::container::XNamed
70*b1cdbd2cSJim Jagielski{
71*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
72*b1cdbd2cSJim Jagielski	/** returns the type of the dictionary.
73*b1cdbd2cSJim Jagielski
74*b1cdbd2cSJim Jagielski		@returns
75*b1cdbd2cSJim Jagielski			the type of the dictionary.
76*b1cdbd2cSJim Jagielski
77*b1cdbd2cSJim Jagielski        @see    <type scope="com::sun::star::linguistic2">DictionaryType</type>
78*b1cdbd2cSJim Jagielski	*/
79*b1cdbd2cSJim Jagielski	com::sun::star::linguistic2::DictionaryType getDictionaryType();
80*b1cdbd2cSJim Jagielski
81*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
82*b1cdbd2cSJim Jagielski	/** specifies whether the dictionary should be used or not .
83*b1cdbd2cSJim Jagielski
84*b1cdbd2cSJim Jagielski		@param	bAcvtivate
85*b1cdbd2cSJim Jagielski            <TRUE/> if the dictionary should be used, <FALSE/> otherwise.
86*b1cdbd2cSJim Jagielski
87*b1cdbd2cSJim Jagielski	*/
88*b1cdbd2cSJim Jagielski	void setActive( [in] boolean bActivate );
89*b1cdbd2cSJim Jagielski
90*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
91*b1cdbd2cSJim Jagielski    /**
92*b1cdbd2cSJim Jagielski		@returns
93*b1cdbd2cSJim Jagielski			<TRUE/> if the dictionary is active, <FALSE/> otherwise.
94*b1cdbd2cSJim Jagielski	*/
95*b1cdbd2cSJim Jagielski	boolean isActive();
96*b1cdbd2cSJim Jagielski
97*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
98*b1cdbd2cSJim Jagielski    /**
99*b1cdbd2cSJim Jagielski		@returns
100*b1cdbd2cSJim Jagielski	   		the number of entries in the dictionary.
101*b1cdbd2cSJim Jagielski	*/
102*b1cdbd2cSJim Jagielski    long getCount();
103*b1cdbd2cSJim Jagielski
104*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
105*b1cdbd2cSJim Jagielski	/**
106*b1cdbd2cSJim Jagielski	 	@returns
107*b1cdbd2cSJim Jagielski	 		the language of the dictionary.
108*b1cdbd2cSJim Jagielski
109*b1cdbd2cSJim Jagielski        @see    <type scope="com::sun::star::lang">Locale</type>
110*b1cdbd2cSJim Jagielski	*/
111*b1cdbd2cSJim Jagielski	com::sun::star::lang::Locale getLocale();
112*b1cdbd2cSJim Jagielski
113*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
114*b1cdbd2cSJim Jagielski	/** is used to set the language of the dictionary.
115*b1cdbd2cSJim Jagielski
116*b1cdbd2cSJim Jagielski	 	@param aLocale
117*b1cdbd2cSJim Jagielski            the new language of the dictionary.
118*b1cdbd2cSJim Jagielski
119*b1cdbd2cSJim Jagielski        @see    <type scope="com::sun::star::lang">Locale</type>
120*b1cdbd2cSJim Jagielski	*/
121*b1cdbd2cSJim Jagielski	void setLocale( [in] com::sun::star::lang::Locale aLocale );
122*b1cdbd2cSJim Jagielski
123*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
124*b1cdbd2cSJim Jagielski	/** searches for an entry that matches the given word.
125*b1cdbd2cSJim Jagielski
126*b1cdbd2cSJim Jagielski		@returns
127*b1cdbd2cSJim Jagielski			the reference to the entry found. If no entry was found,
128*b1cdbd2cSJim Jagielski			it is NULL.
129*b1cdbd2cSJim Jagielski
130*b1cdbd2cSJim Jagielski		@param	aWord
131*b1cdbd2cSJim Jagielski			the word to be looked for.
132*b1cdbd2cSJim Jagielski
133*b1cdbd2cSJim Jagielski        @see    <type scope="com::sun::star::linguistic2">XDictionaryEntry</type>
134*b1cdbd2cSJim Jagielski	*/
135*b1cdbd2cSJim Jagielski	com::sun::star::linguistic2::XDictionaryEntry getEntry( [in] string aWord );
136*b1cdbd2cSJim Jagielski
137*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
138*b1cdbd2cSJim Jagielski	/** is used to add an entry to the dictionary.
139*b1cdbd2cSJim Jagielski
140*b1cdbd2cSJim Jagielski		<P>If an entry already exists, the dictionary remains unchanged
141*b1cdbd2cSJim Jagielski	 	and <FALSE/> will be returned.</P>
142*b1cdbd2cSJim Jagielski
143*b1cdbd2cSJim Jagielski		<P>In positive dictionaries only postive entries
144*b1cdbd2cSJim Jagielski		can be made, and in negative ones only negative entries.</P>
145*b1cdbd2cSJim Jagielski
146*b1cdbd2cSJim Jagielski		@param	xDicEntry
147*b1cdbd2cSJim Jagielski			the entry to be added.
148*b1cdbd2cSJim Jagielski
149*b1cdbd2cSJim Jagielski		@returns
150*b1cdbd2cSJim Jagielski			<TRUE/> if the entry was successfully added <FALSE/> otherwise.
151*b1cdbd2cSJim Jagielski
152*b1cdbd2cSJim Jagielski        @see    <type scope="com::sun::star::linguistic2">XDictionaryEntry</type>
153*b1cdbd2cSJim Jagielski        @see    <type scope="com::sun::star::linguistic2">DictionaryType</type>
154*b1cdbd2cSJim Jagielski	*/
155*b1cdbd2cSJim Jagielski	boolean addEntry(
156*b1cdbd2cSJim Jagielski		[in] com::sun::star::linguistic2::XDictionaryEntry xDicEntry );
157*b1cdbd2cSJim Jagielski
158*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
159*b1cdbd2cSJim Jagielski	/** is used to make an entry in the dictionary.
160*b1cdbd2cSJim Jagielski
161*b1cdbd2cSJim Jagielski		<P>If an entry already exists, the dictionary remains unchanged
162*b1cdbd2cSJim Jagielski	 	and <FALSE/> will be returned.</P>
163*b1cdbd2cSJim Jagielski
164*b1cdbd2cSJim Jagielski		<P>In positive dictionaries only postive entries
165*b1cdbd2cSJim Jagielski		can be made, and in negative ones only negative entries.</P>
166*b1cdbd2cSJim Jagielski
167*b1cdbd2cSJim Jagielski		@param	aWord
168*b1cdbd2cSJim Jagielski			the word to be added.
169*b1cdbd2cSJim Jagielski
170*b1cdbd2cSJim Jagielski		@param	bIsNegative
171*b1cdbd2cSJim Jagielski			specifies whether the entry will be a negative one or not.
172*b1cdbd2cSJim Jagielski
173*b1cdbd2cSJim Jagielski		@param	aRplcText
174*b1cdbd2cSJim Jagielski			in the case of a negative entry, this is the replacement text to
175*b1cdbd2cSJim Jagielski			be used when replacing aWord. Otherwise, it is undefined.
176*b1cdbd2cSJim Jagielski
177*b1cdbd2cSJim Jagielski		@returns
178*b1cdbd2cSJim Jagielski			<TRUE/> if the entry was successfully added, <FALSE/> otherwise.
179*b1cdbd2cSJim Jagielski
180*b1cdbd2cSJim Jagielski        @see    <type scope="com::sun::star::linguistic2">DictionaryType</type>
181*b1cdbd2cSJim Jagielski	*/
182*b1cdbd2cSJim Jagielski	boolean add(
183*b1cdbd2cSJim Jagielski			[in] string aWord,
184*b1cdbd2cSJim Jagielski			[in] boolean bIsNegative,
185*b1cdbd2cSJim Jagielski			[in] string aRplcText );
186*b1cdbd2cSJim Jagielski
187*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
188*b1cdbd2cSJim Jagielski	/** removes an entry from the dictionary.
189*b1cdbd2cSJim Jagielski
190*b1cdbd2cSJim Jagielski		@param	aWord
191*b1cdbd2cSJim Jagielski			the word matching the entry to be removed.
192*b1cdbd2cSJim Jagielski
193*b1cdbd2cSJim Jagielski		@returns
194*b1cdbd2cSJim Jagielski			<TRUE/> if the entry was successfully removed, <FALSE/>
195*b1cdbd2cSJim Jagielski			otherwise (especially if the entry was not found).
196*b1cdbd2cSJim Jagielski	*/
197*b1cdbd2cSJim Jagielski	boolean remove( [in] string aWord );
198*b1cdbd2cSJim Jagielski
199*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
200*b1cdbd2cSJim Jagielski	/**
201*b1cdbd2cSJim Jagielski		@returns
202*b1cdbd2cSJim Jagielski	 		<TRUE/> if the dictionary is full and no further
203*b1cdbd2cSJim Jagielski			entry can be made, <FALSE/> otherwise.
204*b1cdbd2cSJim Jagielski	*/
205*b1cdbd2cSJim Jagielski	boolean isFull();
206*b1cdbd2cSJim Jagielski
207*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
208*b1cdbd2cSJim Jagielski	/**
209*b1cdbd2cSJim Jagielski        <p>This function should no longer be used since with the expansion of the
210*b1cdbd2cSJim Jagielski        maximum number of allowed entries the result may become unreasonable large!</p>
211*b1cdbd2cSJim Jagielski
212*b1cdbd2cSJim Jagielski	 	@returns
213*b1cdbd2cSJim Jagielski	 		a sequence with all the entries of the dictionary.
214*b1cdbd2cSJim Jagielski
215*b1cdbd2cSJim Jagielski        @see    <type scope="com::sun::star::linguistic2">XDictionaryEntry</type>
216*b1cdbd2cSJim Jagielski        @see    <type scope="com::sun::star::linguistic2">XSearchableDictionary</type>
217*b1cdbd2cSJim Jagielski        @deprecated
218*b1cdbd2cSJim Jagielski	*/
219*b1cdbd2cSJim Jagielski
220*b1cdbd2cSJim Jagielski	sequence<com::sun::star::linguistic2::XDictionaryEntry> getEntries();
221*b1cdbd2cSJim Jagielski
222*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
223*b1cdbd2cSJim Jagielski	/** removes all entries from the dictionary.
224*b1cdbd2cSJim Jagielski	*/
225*b1cdbd2cSJim Jagielski	void clear();
226*b1cdbd2cSJim Jagielski
227*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
228*b1cdbd2cSJim Jagielski	/** adds an entry to the list of dictionary event listeners.
229*b1cdbd2cSJim Jagielski
230*b1cdbd2cSJim Jagielski		<P>On dictionary events, each entry in the listener list will
231*b1cdbd2cSJim Jagielski	 	be notified via a call to
232*b1cdbd2cSJim Jagielski        <member scope="com::sun::star::linguistic2">XDictionaryEventListener::processDictionaryEvent</member>.</P>
233*b1cdbd2cSJim Jagielski
234*b1cdbd2cSJim Jagielski		@param	xListener
235*b1cdbd2cSJim Jagielski			the entry to be made, that is, the object that wants notifications.
236*b1cdbd2cSJim Jagielski
237*b1cdbd2cSJim Jagielski		@returns
238*b1cdbd2cSJim Jagielski			<TRUE/> if the entry was successfully made, <FALSE/> otherwise.
239*b1cdbd2cSJim Jagielski            If <member scope="com::sun::star::lang">XEventListener::disposing</member> was called before,
240*b1cdbd2cSJim Jagielski            it will always fail.
241*b1cdbd2cSJim Jagielski
242*b1cdbd2cSJim Jagielski        @see    <member scope="com::sun::star::linguistic2">XDictionary::removeDictionaryEventListener</member>
243*b1cdbd2cSJim Jagielski        @see    <type scope="com::sun::star::linguistic2">XDictionaryEventListener</type>
244*b1cdbd2cSJim Jagielski	*/
245*b1cdbd2cSJim Jagielski	boolean addDictionaryEventListener(
246*b1cdbd2cSJim Jagielski		[in] com::sun::star::linguistic2::XDictionaryEventListener xListener );
247*b1cdbd2cSJim Jagielski
248*b1cdbd2cSJim Jagielski	//-------------------------------------------------------------------------
249*b1cdbd2cSJim Jagielski	/** removes an entry from the list of dictionary event listeners.
250*b1cdbd2cSJim Jagielski
251*b1cdbd2cSJim Jagielski		@param	xListener
252*b1cdbd2cSJim Jagielski			the reference to the listening object to be removed.
253*b1cdbd2cSJim Jagielski
254*b1cdbd2cSJim Jagielski		@returns
255*b1cdbd2cSJim Jagielski			<TRUE/> if the object to be removed was found and removed,
256*b1cdbd2cSJim Jagielski			<FALSE/> if the object was not found in the list.
257*b1cdbd2cSJim Jagielski
258*b1cdbd2cSJim Jagielski        @see    <member scope="com::sun::star::linguistic2">XDictionary::addDictionaryEventListener</member>
259*b1cdbd2cSJim Jagielski        @see    <type scope="com::sun::star::linguistic2">XDictionaryEventListener</type>
260*b1cdbd2cSJim Jagielski	*/
261*b1cdbd2cSJim Jagielski	boolean removeDictionaryEventListener(
262*b1cdbd2cSJim Jagielski		[in] com::sun::star::linguistic2::XDictionaryEventListener xListener );
263*b1cdbd2cSJim Jagielski
264*b1cdbd2cSJim Jagielski};
265*b1cdbd2cSJim Jagielski
266*b1cdbd2cSJim Jagielski//=============================================================================
267*b1cdbd2cSJim Jagielski
268*b1cdbd2cSJim Jagielski}; }; }; };
269*b1cdbd2cSJim Jagielski
270*b1cdbd2cSJim Jagielski#endif
271*b1cdbd2cSJim Jagielski
272