tdf#130857 qt weld: Implement QtInstanceWidget::strip_mnemonic
[LibreOffice.git] / scripting / source / stringresource / stringresource.hxx
blob75c3ed23972921257cbad06cdc1e890a23ecfd1f
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #pragma once
22 #include <com/sun/star/resource/XStringResourceWithStorage.hpp>
23 #include <com/sun/star/resource/XStringResourceWithLocation.hpp>
24 #include <com/sun/star/lang/XServiceInfo.hpp>
25 #include <com/sun/star/lang/XInitialization.hpp>
26 #include <com/sun/star/uno/XComponentContext.hpp>
27 #include <com/sun/star/ucb/XSimpleFileAccess3.hpp>
28 #include <com/sun/star/io/XInputStream.hpp>
29 #include <com/sun/star/io/XOutputStream.hpp>
30 #include <cppuhelper/implbase.hxx>
31 #include <comphelper/interfacecontainer4.hxx>
32 #include <mutex>
33 #include <unordered_map>
34 #include <utility>
35 #include <vector>
38 namespace stringresource
42 // class stringresourceImpl
45 // Hashtable to map string ids to string
46 typedef std::unordered_map
48 OUString,
49 OUString
51 IdToStringMap;
53 typedef std::unordered_map
55 OUString,
56 sal_Int32
58 IdToIndexMap;
61 struct LocaleItem
63 css::lang::Locale m_locale;
64 IdToStringMap m_aIdToStringMap;
65 IdToIndexMap m_aIdToIndexMap;
66 sal_Int32 m_nNextIndex;
67 bool m_bLoaded;
68 bool m_bModified;
70 LocaleItem( css::lang::Locale locale, bool bLoaded=true )
71 : m_locale(std::move( locale ))
72 , m_nNextIndex( 0 )
73 , m_bLoaded( bLoaded )
74 , m_bModified( false )
78 typedef ::cppu::WeakImplHelper<
79 css::lang::XServiceInfo,
80 css::resource::XStringResourceManager > StringResourceImpl_BASE;
82 class StringResourceImpl : public StringResourceImpl_BASE
84 protected:
85 std::mutex m_aMutex;
86 css::uno::Reference< css::uno::XComponentContext > m_xContext;
88 LocaleItem* m_pCurrentLocaleItem;
89 LocaleItem* m_pDefaultLocaleItem;
90 bool m_bDefaultModified;
92 ::comphelper::OInterfaceContainerHelper4<css::util::XModifyListener> m_aListenerContainer;
94 std::vector< std::unique_ptr<LocaleItem> > m_aLocaleItemVector;
95 std::vector< std::unique_ptr<LocaleItem> > m_aDeletedLocaleItemVector;
96 std::vector< std::unique_ptr<LocaleItem> > m_aChangedDefaultLocaleVector;
98 bool m_bModified;
99 bool m_bReadOnly;
101 sal_Int32 m_nNextUniqueNumericId;
103 // Scans ResourceID to start with number and adapt m_nNextUniqueNumericId
104 void implScanIdForNumber(std::unique_lock<std::mutex>& rGuard, const OUString& ResourceID);
105 const static sal_Int32 UNIQUE_NUMBER_NEEDS_INITIALISATION = -1;
107 // Checks read only status and throws exception if it's true
108 /// @throws css::lang::NoSupportException
109 void implCheckReadOnly( const char* pExceptionMsg );
111 // Returns the LocalItem for a given locale, if it exists, otherwise NULL
112 // This method compares the locales exactly, no closest match search is performed
113 /// @throws css::lang::IllegalArgumentException
114 LocaleItem* getItemForLocale( const css::lang::Locale& locale, bool bException );
116 // Returns the LocalItem for a given locale, if it exists, otherwise NULL
117 // This method performs a closest match search, at least the language must match
118 LocaleItem* getClosestMatchItemForLocale( const css::lang::Locale& locale );
119 /// @throws css::lang::IllegalArgumentException
120 /// @throws css::uno::RuntimeException
121 void implSetCurrentLocale( std::unique_lock<std::mutex>& rGuard, const css::lang::Locale& locale,
122 bool FindClosestMatch, bool bUseDefaultIfNoMatch );
124 void implModified(std::unique_lock<std::mutex>&);
125 void implNotifyListeners(std::unique_lock<std::mutex>&);
127 //=== Impl methods for ...ForLocale methods ===
128 /// @throws css::resource::MissingResourceException
129 OUString implResolveString(std::unique_lock<std::mutex>& rGuard, const OUString& ResourceID, LocaleItem* pLocaleItem);
130 bool implHasEntryForId(std::unique_lock<std::mutex>& rGuard, const OUString& ResourceID, LocaleItem* pLocaleItem);
131 css::uno::Sequence< OUString > implGetResourceIDs(std::unique_lock<std::mutex>& rGuard, LocaleItem* pLocaleItem);
132 void implSetString( std::unique_lock<std::mutex>& rGuard, const OUString& ResourceID,
133 const OUString& Str, LocaleItem* pLocaleItem );
134 /// @throws css::resource::MissingResourceException
135 void implRemoveId( std::unique_lock<std::mutex>& rGuard, const OUString& ResourceID, LocaleItem* pLocaleItem );
137 // Method to load a locale if necessary, returns true if loading was
138 // successful. Default implementation in base class just returns true.
139 virtual bool loadLocale(std::unique_lock<std::mutex>& rGuard, LocaleItem* pLocaleItem);
141 virtual void implLoadAllLocales(std::unique_lock<std::mutex>& rGuard);
143 public:
144 explicit StringResourceImpl(
145 const css::uno::Reference< css::uno::XComponentContext >& rxContext );
146 virtual ~StringResourceImpl() override;
148 // XServiceInfo
149 virtual OUString SAL_CALL getImplementationName( ) override;
150 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
151 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) override;
153 // XModifyBroadcaster
154 virtual void SAL_CALL addModifyListener( const css::uno::Reference< css::util::XModifyListener >& aListener ) override;
155 virtual void SAL_CALL removeModifyListener( const css::uno::Reference< css::util::XModifyListener >& aListener ) override;
157 // XStringResourceResolver
158 virtual OUString SAL_CALL resolveString( const OUString& ResourceID ) override;
159 virtual OUString SAL_CALL resolveStringForLocale( const OUString& ResourceID,
160 const css::lang::Locale& locale ) override;
161 virtual sal_Bool SAL_CALL hasEntryForId( const OUString& ResourceID ) override;
162 virtual sal_Bool SAL_CALL hasEntryForIdAndLocale( const OUString& ResourceID,
163 const css::lang::Locale& locale ) override;
164 virtual css::uno::Sequence< OUString > SAL_CALL getResourceIDs( ) override;
165 virtual css::uno::Sequence< OUString > SAL_CALL getResourceIDsForLocale
166 ( const css::lang::Locale& locale ) override;
167 virtual css::lang::Locale SAL_CALL getCurrentLocale( ) override;
168 virtual css::lang::Locale SAL_CALL getDefaultLocale( ) override;
169 virtual css::uno::Sequence< css::lang::Locale > SAL_CALL getLocales( ) override;
171 // XStringResourceManager
172 virtual sal_Bool SAL_CALL isReadOnly() override;
173 virtual void SAL_CALL setCurrentLocale( const css::lang::Locale& locale, sal_Bool FindClosestMatch ) override;
174 virtual void SAL_CALL setDefaultLocale( const css::lang::Locale& locale ) override;
175 virtual void SAL_CALL setString( const OUString& ResourceID, const OUString& Str ) override;
176 virtual void SAL_CALL setStringForLocale( const OUString& ResourceID, const OUString& Str,
177 const css::lang::Locale& locale ) override;
178 virtual void SAL_CALL removeId( const OUString& ResourceID ) override;
179 virtual void SAL_CALL removeIdForLocale( const OUString& ResourceID,
180 const css::lang::Locale& locale ) override;
181 virtual void SAL_CALL newLocale( const css::lang::Locale& locale ) override;
182 virtual void SAL_CALL removeLocale( const css::lang::Locale& locale ) override;
183 virtual ::sal_Int32 SAL_CALL getUniqueNumericId( ) override;
186 typedef ::cppu::ImplInheritanceHelper<
187 StringResourceImpl,
188 css::resource::XStringResourcePersistence > StringResourcePersistenceImpl_BASE;
190 class BinaryOutput;
192 class StringResourcePersistenceImpl : public StringResourcePersistenceImpl_BASE
194 protected:
195 OUString m_aNameBase;
196 OUString m_aComment;
198 /// @throws css::uno::Exception
199 /// @throws css::uno::RuntimeException
200 void implInitializeCommonParameters( std::unique_lock<std::mutex>& rGuard, const css::uno::Sequence< css::uno::Any >& aArguments );
202 // Scan locale properties files
203 virtual void implScanLocales(std::unique_lock<std::mutex>& rGuard);
205 // Method to load a locale if necessary, returns true if loading was successful
206 virtual bool loadLocale(std::unique_lock<std::mutex>& rGuard, LocaleItem* pLocaleItem) override;
208 // does the actual loading
209 virtual bool implLoadLocale(std::unique_lock<std::mutex>& rGuard, LocaleItem* pLocaleItem);
211 virtual void implLoadAllLocales(std::unique_lock<std::mutex>& rGuard) override;
213 void implScanLocaleNames( const css::uno::Sequence< OUString >& aContentSeq );
214 static OUString implGetFileNameForLocaleItem( LocaleItem const * pLocaleItem, const OUString& aNameBase );
215 static OUString implGetPathForLocaleItem( LocaleItem const * pLocaleItem, const OUString& aNameBase,
216 std::u16string_view aLocation, bool bDefaultFile=false );
218 bool implReadPropertiesFile(std::unique_lock<std::mutex>& rGuard, LocaleItem* pLocaleItem,
219 const css::uno::Reference< css::io::XInputStream >& xInput);
221 bool implWritePropertiesFile( LocaleItem const * pLocaleItem,
222 const css::uno::Reference< css::io::XOutputStream >& xOutputStream,
223 const OUString& aComment );
225 void implWriteLocaleBinary( LocaleItem* pLocaleItem, BinaryOutput& rOut );
227 /// @throws css::uno::Exception
228 /// @throws css::uno::RuntimeException
229 void implStoreAtStorage
231 std::unique_lock<std::mutex>& rGuard,
232 const OUString& aNameBase,
233 const OUString& aComment,
234 const css::uno::Reference< css::embed::XStorage >& Storage,
235 bool bUsedForStore,
236 bool bStoreAll
239 /// @throws css::uno::Exception
240 /// @throws css::uno::RuntimeException
241 void implKillRemovedLocaleFiles
243 std::u16string_view Location,
244 const OUString& aNameBase,
245 const css::uno::Reference< css::ucb::XSimpleFileAccess3 >& xFileAccess
248 /// @throws css::uno::Exception
249 /// @throws css::uno::RuntimeException
250 void implKillChangedDefaultFiles
252 std::u16string_view Location,
253 const OUString& aNameBase,
254 const css::uno::Reference< css::ucb::XSimpleFileAccess3 >& xFileAccess
257 /// @throws css::uno::Exception
258 /// @throws css::uno::RuntimeException
259 void implStoreAtLocation
261 std::unique_lock<std::mutex>& rGuard,
262 std::u16string_view Location,
263 const OUString& aNameBase,
264 const OUString& aComment,
265 const css::uno::Reference< css::ucb::XSimpleFileAccess3 >& xFileAccess,
266 bool bUsedForStore,
267 bool bStoreAll,
268 bool bKillAll = false
271 public:
272 explicit StringResourcePersistenceImpl(
273 const css::uno::Reference< css::uno::XComponentContext >& rxContext );
274 virtual ~StringResourcePersistenceImpl() override;
276 // XServiceInfo
277 virtual OUString SAL_CALL getImplementationName( ) override;
278 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
279 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) override;
281 // XModifyBroadcaster
282 virtual void SAL_CALL addModifyListener( const css::uno::Reference< css::util::XModifyListener >& aListener ) override;
283 virtual void SAL_CALL removeModifyListener( const css::uno::Reference< css::util::XModifyListener >& aListener ) override;
285 // XStringResourceResolver
286 virtual OUString SAL_CALL resolveString( const OUString& ResourceID ) override;
287 virtual OUString SAL_CALL resolveStringForLocale( const OUString& ResourceID,
288 const css::lang::Locale& locale ) override;
289 virtual sal_Bool SAL_CALL hasEntryForId( const OUString& ResourceID ) override;
290 virtual sal_Bool SAL_CALL hasEntryForIdAndLocale( const OUString& ResourceID,
291 const css::lang::Locale& locale ) override;
292 virtual css::uno::Sequence< OUString > SAL_CALL getResourceIDs( ) override;
293 virtual css::uno::Sequence< OUString > SAL_CALL getResourceIDsForLocale
294 ( const css::lang::Locale& locale ) override;
295 virtual css::lang::Locale SAL_CALL getCurrentLocale( ) override;
296 virtual css::lang::Locale SAL_CALL getDefaultLocale( ) override;
297 virtual css::uno::Sequence< css::lang::Locale > SAL_CALL getLocales( ) override;
299 // XStringResourceManager
300 virtual sal_Bool SAL_CALL isReadOnly() override;
301 virtual void SAL_CALL setCurrentLocale( const css::lang::Locale& locale, sal_Bool FindClosestMatch ) override;
302 virtual void SAL_CALL setDefaultLocale( const css::lang::Locale& locale ) override;
303 virtual void SAL_CALL setString( const OUString& ResourceID, const OUString& Str ) override;
304 virtual void SAL_CALL setStringForLocale( const OUString& ResourceID, const OUString& Str,
305 const css::lang::Locale& locale ) override;
306 virtual void SAL_CALL removeId( const OUString& ResourceID ) override;
307 virtual void SAL_CALL removeIdForLocale( const OUString& ResourceID,
308 const css::lang::Locale& locale ) override;
309 virtual void SAL_CALL newLocale( const css::lang::Locale& locale ) override;
310 virtual void SAL_CALL removeLocale( const css::lang::Locale& locale ) override;
311 virtual ::sal_Int32 SAL_CALL getUniqueNumericId( ) override;
313 // XStringResourcePersistence
314 virtual void SAL_CALL store( ) override;
315 virtual sal_Bool SAL_CALL isModified( ) override;
316 virtual void SAL_CALL setComment( const OUString& Comment ) override;
317 virtual void SAL_CALL storeToStorage
318 ( const css::uno::Reference< css::embed::XStorage >& Storage,
319 const OUString& NameBase, const OUString& Comment ) override;
320 virtual void SAL_CALL storeToURL( const OUString& URL, const OUString& NameBase,
321 const OUString& Comment, const css::uno::Reference
322 < css::task::XInteractionHandler >& Handler ) override;
323 virtual css::uno::Sequence< ::sal_Int8 > SAL_CALL exportBinary( ) override;
324 virtual void SAL_CALL importBinary( const css::uno::Sequence< ::sal_Int8 >& Data ) override;
328 typedef ::cppu::ImplInheritanceHelper<
329 StringResourcePersistenceImpl,
330 css::lang::XInitialization,
331 css::resource::XStringResourceWithStorage > StringResourceWithStorageImpl_BASE;
333 class StringResourceWithStorageImpl : public StringResourceWithStorageImpl_BASE
335 css::uno::Reference< css::embed::XStorage > m_xStorage;
336 bool m_bStorageChanged;
338 virtual void implScanLocales(std::unique_lock<std::mutex>& rGuard) override;
339 virtual bool implLoadLocale(std::unique_lock<std::mutex>& rGuard, LocaleItem* pLocaleItem) override;
341 public:
342 explicit StringResourceWithStorageImpl( const css::uno::Reference< css::uno::XComponentContext >& rxContext );
343 virtual ~StringResourceWithStorageImpl() override;
345 // XServiceInfo
346 virtual OUString SAL_CALL getImplementationName( ) override;
347 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
348 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) override;
350 // XInitialization
351 virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override;
353 // XModifyBroadcaster
354 virtual void SAL_CALL addModifyListener( const css::uno::Reference< css::util::XModifyListener >& aListener ) override;
355 virtual void SAL_CALL removeModifyListener( const css::uno::Reference< css::util::XModifyListener >& aListener ) override;
357 // XStringResourceResolver
358 virtual OUString SAL_CALL resolveString( const OUString& ResourceID ) override;
359 virtual OUString SAL_CALL resolveStringForLocale( const OUString& ResourceID,
360 const css::lang::Locale& locale ) override;
361 virtual sal_Bool SAL_CALL hasEntryForId( const OUString& ResourceID ) override;
362 virtual sal_Bool SAL_CALL hasEntryForIdAndLocale( const OUString& ResourceID,
363 const css::lang::Locale& locale ) override;
364 virtual css::uno::Sequence< OUString > SAL_CALL getResourceIDs( ) override;
365 virtual css::uno::Sequence< OUString > SAL_CALL getResourceIDsForLocale
366 ( const css::lang::Locale& locale ) override;
367 virtual css::lang::Locale SAL_CALL getCurrentLocale( ) override;
368 virtual css::lang::Locale SAL_CALL getDefaultLocale( ) override;
369 virtual css::uno::Sequence< css::lang::Locale > SAL_CALL getLocales( ) override;
371 // XStringResourceManager
372 virtual sal_Bool SAL_CALL isReadOnly() override;
373 virtual void SAL_CALL setCurrentLocale( const css::lang::Locale& locale, sal_Bool FindClosestMatch ) override;
374 virtual void SAL_CALL setDefaultLocale( const css::lang::Locale& locale ) override;
375 virtual void SAL_CALL setString( const OUString& ResourceID, const OUString& Str ) override;
376 virtual void SAL_CALL setStringForLocale( const OUString& ResourceID, const OUString& Str,
377 const css::lang::Locale& locale ) override;
378 virtual void SAL_CALL removeId( const OUString& ResourceID ) override;
379 virtual void SAL_CALL removeIdForLocale( const OUString& ResourceID,
380 const css::lang::Locale& locale ) override;
381 virtual void SAL_CALL newLocale( const css::lang::Locale& locale ) override;
382 virtual void SAL_CALL removeLocale( const css::lang::Locale& locale ) override;
383 virtual ::sal_Int32 SAL_CALL getUniqueNumericId( ) override;
385 // XStringResourcePersistence
386 virtual void SAL_CALL store( ) override;
387 virtual sal_Bool SAL_CALL isModified( ) override;
388 virtual void SAL_CALL setComment( const OUString& Comment ) override;
389 virtual void SAL_CALL storeToStorage
390 ( const css::uno::Reference< css::embed::XStorage >& Storage,
391 const OUString& NameBase, const OUString& Comment ) override;
392 virtual void SAL_CALL storeToURL( const OUString& URL, const OUString& NameBase,
393 const OUString& Comment, const css::uno::Reference
394 < css::task::XInteractionHandler >& Handler ) override;
395 virtual css::uno::Sequence< ::sal_Int8 > SAL_CALL exportBinary( ) override;
396 virtual void SAL_CALL importBinary( const css::uno::Sequence< ::sal_Int8 >& Data ) override;
398 // XStringResourceWithStorage
399 virtual void SAL_CALL storeAsStorage
400 ( const css::uno::Reference< css::embed::XStorage >& Storage ) override;
401 virtual void SAL_CALL setStorage
402 ( const css::uno::Reference< css::embed::XStorage >& Storage ) override;
406 typedef ::cppu::ImplInheritanceHelper<
407 StringResourcePersistenceImpl,
408 css::lang::XInitialization,
409 css::resource::XStringResourceWithLocation > StringResourceWithLocationImpl_BASE;
411 class StringResourceWithLocationImpl : public StringResourceWithLocationImpl_BASE
413 OUString m_aLocation;
414 bool m_bLocationChanged;
415 css::uno::Reference< css::ucb::XSimpleFileAccess3 > m_xSFI;
416 css::uno::Reference< css::task::XInteractionHandler > m_xInteractionHandler;
418 const css::uno::Reference< css::ucb::XSimpleFileAccess3 > & getFileAccessImpl();
420 virtual void implScanLocales(std::unique_lock<std::mutex>& rGuard) override;
421 virtual bool implLoadLocale(std::unique_lock<std::mutex>& rGuard, LocaleItem* pLocaleItem) override;
423 public:
424 explicit StringResourceWithLocationImpl( const css::uno::Reference< css::uno::XComponentContext >& rxContext );
425 virtual ~StringResourceWithLocationImpl() override;
427 // XServiceInfo
428 virtual OUString SAL_CALL getImplementationName( ) override;
429 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
430 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) override;
432 // XInitialization
433 virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override;
435 // XModifyBroadcaster
436 virtual void SAL_CALL addModifyListener( const css::uno::Reference< css::util::XModifyListener >& aListener ) override;
437 virtual void SAL_CALL removeModifyListener( const css::uno::Reference< css::util::XModifyListener >& aListener ) override;
439 // XStringResourceResolver
440 virtual OUString SAL_CALL resolveString( const OUString& ResourceID ) override;
441 virtual OUString SAL_CALL resolveStringForLocale( const OUString& ResourceID,
442 const css::lang::Locale& locale ) override;
443 virtual sal_Bool SAL_CALL hasEntryForId( const OUString& ResourceID ) override;
444 virtual sal_Bool SAL_CALL hasEntryForIdAndLocale( const OUString& ResourceID,
445 const css::lang::Locale& locale ) override;
446 virtual css::uno::Sequence< OUString > SAL_CALL getResourceIDs( ) override;
447 virtual css::uno::Sequence< OUString > SAL_CALL getResourceIDsForLocale
448 ( const css::lang::Locale& locale ) override;
449 virtual css::lang::Locale SAL_CALL getCurrentLocale( ) override;
450 virtual css::lang::Locale SAL_CALL getDefaultLocale( ) override;
451 virtual css::uno::Sequence< css::lang::Locale > SAL_CALL getLocales( ) override;
453 // XStringResourceManager
454 virtual sal_Bool SAL_CALL isReadOnly() override;
455 virtual void SAL_CALL setCurrentLocale( const css::lang::Locale& locale, sal_Bool FindClosestMatch ) override;
456 virtual void SAL_CALL setDefaultLocale( const css::lang::Locale& locale ) override;
457 virtual void SAL_CALL setString( const OUString& ResourceID, const OUString& Str ) override;
458 virtual void SAL_CALL setStringForLocale( const OUString& ResourceID, const OUString& Str,
459 const css::lang::Locale& locale ) override;
460 virtual void SAL_CALL removeId( const OUString& ResourceID ) override;
461 virtual void SAL_CALL removeIdForLocale( const OUString& ResourceID,
462 const css::lang::Locale& locale ) override;
463 virtual void SAL_CALL newLocale( const css::lang::Locale& locale ) override;
464 virtual void SAL_CALL removeLocale( const css::lang::Locale& locale ) override;
465 virtual ::sal_Int32 SAL_CALL getUniqueNumericId( ) override;
467 // XStringResourcePersistence
468 virtual void SAL_CALL store( ) override;
469 virtual sal_Bool SAL_CALL isModified( ) override;
470 virtual void SAL_CALL setComment( const OUString& Comment ) override;
471 virtual void SAL_CALL storeToStorage
472 ( const css::uno::Reference< css::embed::XStorage >& Storage,
473 const OUString& NameBase, const OUString& Comment ) override;
474 virtual void SAL_CALL storeToURL( const OUString& URL, const OUString& NameBase,
475 const OUString& Comment, const css::uno::Reference
476 < css::task::XInteractionHandler >& Handler ) override;
477 virtual css::uno::Sequence< ::sal_Int8 > SAL_CALL exportBinary( ) override;
478 virtual void SAL_CALL importBinary( const css::uno::Sequence< ::sal_Int8 >& Data ) override;
480 // XStringResourceWithLocation
481 virtual void SAL_CALL storeAsURL( const OUString& URL ) override;
482 virtual void SAL_CALL setURL( const OUString& URL ) override;
486 } // namespace stringtable
488 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */