summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/linguistic2/XDictionaryList.idl
blob: c45c18b8bb437afd214b2d2d3ad3e97ec4916929 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
/*************************************************************************
 *
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * Copyright 2000, 2010 Oracle and/or its affiliates.
 *
 * OpenOffice.org - a multi-platform office productivity suite
 *
 * This file is part of OpenOffice.org.
 *
 * OpenOffice.org is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License version 3
 * only, as published by the Free Software Foundation.
 *
 * OpenOffice.org is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License version 3 for more details
 * (a copy is included in the LICENSE file that accompanied this code).
 *
 * You should have received a copy of the GNU Lesser General Public License
 * version 3 along with OpenOffice.org.  If not, see
 * <http://www.openoffice.org/license.html>
 * for a copy of the LGPLv3 License.
 *
 ************************************************************************/
#ifndef __com_sun_star_linguistic2_XDictionaryList_idl__
#define __com_sun_star_linguistic2_XDictionaryList_idl__

#ifndef __com_sun_star_uno_XInterface_idl__
#include <com/sun/star/uno/XInterface.idl>
#endif

#ifndef __com_sun_star_linguistic2_XDictionary_idl__
#include <com/sun/star/linguistic2/XDictionary.idl>
#endif

#ifndef __com_sun_star_linguistic2_XDictionaryListEventListener_idl__
#include <com/sun/star/linguistic2/XDictionaryListEventListener.idl>
#endif

//=============================================================================

module com { module sun { module star { module linguistic2 {

//=============================================================================
/** is used to manage and maintain a list of dictionaries.

    <P>A dictionary-list may be given to a spellchecker or hyphenator
    service implementation on their creation in order to supply a set
    of dictionaries and additional information to be used for
    those purposes.</P>

    @see    <type scope="com::sun::star::linguistic2">XDictionary</type>
    @see    <type scope="com::sun::star::uno">XInterface</type>
*/
published interface XDictionaryList : com::sun::star::uno::XInterface
{
    //-------------------------------------------------------------------------
    /**
        @returns
            the number of dictionaries in the list.
    */
    short getCount();

    //-------------------------------------------------------------------------
    /**
        @returns
             a sequence with an entry for every dictionary
            in the list.

        @see    <type scope="com::sun::star::linguistic2">XDictionary</type>
    */
    sequence<com::sun::star::linguistic2::XDictionary> getDictionaries();

    //-------------------------------------------------------------------------
    /** searches the list for a dictionary with a given name.

         @returns
            the XDictionary with the specified name. If no such
            dictionary exists, <NULL/> will be returned.

        @param  aDictionaryName
            specifies the name of the dictionary to look for.

        @see    <type scope="com::sun::star::linguistic2">XDictionary</type>
    */
    com::sun::star::linguistic2::XDictionary getDictionaryByName(
            [in] string aDictionaryName );

    //-------------------------------------------------------------------------
    /** adds a dictionary to the list.

        <P>Additionally, the dictionary-list will add itself to the list of dictionary
         event listeners of that dictionary.</P>

        @returns
             <TRUE/> if the dictionary was added successfully,
            <FALSE/> otherwise.

        @param  xDictionary
            the dictionary to be added.

        @see    <type scope="com::sun::star::linguistic2">XDictionary</type>
    */
    boolean addDictionary(
            [in] com::sun::star::linguistic2::XDictionary xDictionary );

    //-------------------------------------------------------------------------
    /** removes a single dictionary from the list.

        <P>If the dictionary is still active, it will be deactivated
        first. The dictionary-list will remove itself from the list of
        dictionary event listeners of the dictionary.</P>

        @returns
             <TRUE/> if the dictionary was removed successfully, <FALSE/>
             otherwise.

        @param  xDictionary
            dictionary to be removed from the list of dictionaries.

        @see    <type scope="com::sun::star::linguistic2">XDictionary</type>
    */
    boolean removeDictionary(
            [in] com::sun::star::linguistic2::XDictionary xDictionary );

    //-------------------------------------------------------------------------
    /** adds an entry to the list of dictionary-list event listeners.

        <P>On dictionary-list events, each entry in the listener list will
         be notified via a call to
        <member scope="com::sun::star::linguistic2">XDictionaryListEventListener::processDictionaryListEvent</member>.</P>

        @returns
            <TRUE/> if the entry was made, <FALSE/> otherwise.
            If <member scope="com::sun::star::lang">XEventListener::disposing</member>
            was called before, it will always fail.

        @param  xListener
            the object to be notified of dictionary-list events.

        @param  bReceiveVerbose
            <TRUE/> if the listener requires more detailed event
            notification than usual.

        @see    <type scope="com::sun::star::linguistic2">XDictionaryListEventListener</type>
        @see    <type scope="com::sun::star::linguistic2">XDictionaryListEvent</type>
    */
    boolean addDictionaryListEventListener(
        [in] com::sun::star::linguistic2::XDictionaryListEventListener xListener,
        [in] boolean bReceiveVerbose );

    //-------------------------------------------------------------------------
    /** removes an entry from the list of dictionary-list event listeners.

        @returns
            <TRUE/> if the object to be removed was found and removed,
            <FALSE/> otherwise.

        @param  xListener
            the object to be removed from the listener list.

        @see    <type scope="com::sun::star::linguistic2">XDictionaryListEventListener</type>
        @see    <type scope="com::sun::star::linguistic2">XDictionaryListEvent</type>
    */
    boolean removeDictionaryListEventListener(
        [in] com::sun::star::linguistic2::XDictionaryListEventListener xListener );

    //-------------------------------------------------------------------------
    /** increases request level for event buffering by one.

         <P>The request level for event buffering is an integer
         counter that is initially set to 0.
        As long as the request level is not 0, events will be buffered
         until the next flushing of the buffer.</P>

        @returns
             the current request level for event buffering.

        @see    <type scope="com::sun::star::linguistic2">XDictionaryListEvent</type>
        @see    <type scope="com::sun::star::linguistic2">XDictionaryListEventListener</type>
        @see    <member scope="com::sun::star::linguistic2">XDictionaryList::endCollectEvents</member>
        @see    <member scope="com::sun::star::linguistic2">XDictionaryList::flushEvents</member>
    */
    short beginCollectEvents();

    //-------------------------------------------------------------------------
    /** flushes the event buffer and decreases the request level for
         event buffering by one.

         <P>There should be one matching endCollectEvents call for every
         beginCollectEvents call. Usually you will group these around
         some code where you do not wish to get notfied of every single
         event.</P>

        @returns
             the current request level for event buffering.

        @see    <type scope="com::sun::star::linguistic2">XDictionaryListEvent</type>
        @see    <type scope="com::sun::star::linguistic2">XDictionaryListEventListener</type>
        @see    <member scope="com::sun::star::linguistic2">XDictionaryList::beginCollectEvents</member>
        @see    <member scope="com::sun::star::linguistic2">XDictionaryList::flushEvents</member>
    */
    short endCollectEvents();

    //-------------------------------------------------------------------------
    /** notifies the listeners of all buffered events and then clears
         that buffer.

        @returns
             the current request level for event buffering.

        @see    <type scope="com::sun::star::linguistic2">XDictionaryListEvent</type>
        @see    <type scope="com::sun::star::linguistic2">XDictionaryListEventListener</type>
        @see    <member scope="com::sun::star::linguistic2">XDictionaryList::beginCollectEvents</member>
        @see    <member scope="com::sun::star::linguistic2">XDictionaryList::endCollectEvents</member>
    */
    short flushEvents();

    //-------------------------------------------------------------------------
    /** creates a new dictionary.

        @returns
            an empty dictionary with the given name, language and type.
             <NULL/> on failure.

        @param  aName
            is the name of the dictionary (should be unique).

        @param  aLocale
            defines the language of the dictionary.
             Use an empty aLocale for dictionaries which may contain
            entries of all languages.

        @param  eDicType
            specifies the type of the dictionary.

         @param aURL
            is the URL of the location where the dictionary is persistent,
            if the XStorable interface is supported.
            It may be empty, which means the dictionary will not be persistent.

        @see    <type scope="com::sun::star::linguistic2">XDictionary</type>
        @see    <type scope="com::sun::star::lang">Locale</type>
        @see    <type scope="com::sun::star::linguistic2">DictionaryType</type>
    */
    com::sun::star::linguistic2::XDictionary createDictionary(
            [in] string aName,
            [in] com::sun::star::lang::Locale aLocale,
            [in] com::sun::star::linguistic2::DictionaryType eDicType,
            [in] string aURL );

};

//=============================================================================

}; }; }; };

#endif