diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 09:06:44 +0000 |
commit | ed5640d8b587fbcfed7dd7967f3de04b37a76f26 (patch) | |
tree | 7a5f7c6c9d02226d7471cb3cc8fbbf631b415303 /offapi/com/sun/star/resource/XStringResourceManager.idl | |
parent | Initial commit. (diff) | |
download | libreoffice-upstream.tar.xz libreoffice-upstream.zip |
Adding upstream version 4:7.4.7.upstream/4%7.4.7upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'offapi/com/sun/star/resource/XStringResourceManager.idl')
-rw-r--r-- | offapi/com/sun/star/resource/XStringResourceManager.idl | 291 |
1 files changed, 291 insertions, 0 deletions
diff --git a/offapi/com/sun/star/resource/XStringResourceManager.idl b/offapi/com/sun/star/resource/XStringResourceManager.idl new file mode 100644 index 000000000..c602c7d7b --- /dev/null +++ b/offapi/com/sun/star/resource/XStringResourceManager.idl @@ -0,0 +1,291 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_resource_XStringResourceManager_idl__ +#define __com_sun_star_resource_XStringResourceManager_idl__ + +#include <com/sun/star/resource/MissingResourceException.idl> +#include <com/sun/star/resource/XStringResourceResolver.idl> +#include <com/sun/star/container/ElementExistException.idl> +#include <com/sun/star/lang/Locale.idl> +#include <com/sun/star/lang/IllegalArgumentException.idl> +#include <com/sun/star/lang/NoSupportException.idl> + + + +module com { module sun { module star { module resource { + +/** + Interface to manage a resource string table containing a set of + strings for different locales. + + The interface is derived from + com::sun::star::resource::XStringResourceResolver + that allows to access the string table but not to modify it. This + interface also allows to modify the string table. + + It's designed to be used in the context of creating a string table, + e.g. from a string table editor or from a Dialog Editor designing + localized dialogs. + +*/ +interface XStringResourceManager: com::sun::star::resource::XStringResourceResolver +{ + /** + Returns the resource's read only state + + @return `TRUE` if the resource is read only, otherwise `FALSE` + */ + boolean isReadOnly(); + + + /** Sets the locale to be used + + @param Locale + Specifies the current locale to be used. + + @param FindClosestMatch + <p>If true: If the exact locale that should be set is not available + the method tries to find the closest match. E.g. if en_US is re- + quired but not available, en would be the next choice. Finally + the default locale will be used `TRUE`. + + <p>If false: If the exact locale that should be set is not available + a com::sun::star::lang::IllegalArgumentException + is thrown. + + <p>If false: If the exact locale that should be set is not available + a com::sun::star::lang::IllegalArgumentException + is thrown. + */ + void setCurrentLocale + ( + [in] com::sun::star::lang::Locale Locale, + [in] boolean FindClosestMatch + ) + raises( com::sun::star::lang::IllegalArgumentException ); + + + /** Sets the default locale to be used + + @param Locale + Specifies the default locale to be used. + If this locale is not available a + com::sun::star::lang::IllegalArgumentException + is thrown. + + @throws com::sun::star::lang::NoSupportException + if the resource is read only, see isReadOnly() + */ + void setDefaultLocale( [in] com::sun::star::lang::Locale Locale ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::NoSupportException ); + + + /** + Associates a String to a Resource ID for the current locale. + If an entry for the Resource ID already exists, the string + associated with it will be overwritten, otherwise a new + entry will be created. + + @param ResourceID + ID to address the string inside the resource for the current locale. + + @param Str + String to be associated with the Resource ID. + + @throws com::sun::star::lang::NoSupportException + if the resource is read only, see isReadOnly() + */ + void setString + ( + [in] string ResourceID, + [in] string Str + ) + raises( com::sun::star::lang::NoSupportException ); + + + /** + Associates a String to a Resource ID for a specific locale. + If an entry for the Resource ID already exists, the string + associated with it will be overwritten, otherwise a new + entry will be created. + + It's not recommended to use this method to get the best + performance as the implementation may be optimized for + the use of the current locale. + + @param ResourceID + ID to address the string inside the resource. + + @param Str + String to be associated with the Resource ID. + + @param locale + The locale the string should be set for. + The locale has to match exactly with one of the locales provided by + getLocales(). A closest match search is not supported. + + @throws com::sun::star::lang::NoSupportException + if the resource is read only, see isReadOnly() + */ + void setStringForLocale + ( + [in] string ResourceID, + [in] string Str, + [in] com::sun::star::lang::Locale locale + ) + raises( com::sun::star::lang::NoSupportException ); + + + /** + Removes a Resource ID including the corresponding string for + the current locale. + + @param ResourceID + The Resource ID to be removed for the current locale. + + @throws + com::sun::star::resource::MissingResourceException + if the Resource ID is not valid. + + @throws + com::sun::star::lang::NoSupportException + if the resource is read only, see isReadOnly() + */ + void removeId( [in] string ResourceID ) + raises( com::sun::star::resource::MissingResourceException, + com::sun::star::lang::NoSupportException ); + + + /** + Removes a Resource ID including the corresponding string for + s specific locale. + + @param ResourceID + The Resource ID to be removed. + + @param locale + The locale the Resource ID should be removed for. + The locale has to match exactly with one of the locales provided by + getLocales(). A closest match search is not supported. + + @throws + com::sun::star::resource::MissingResourceException + if the Resource ID is not valid. + + @throws + com::sun::star::lang::NoSupportException + if the resource is read only, see isReadOnly() + */ + void removeIdForLocale( [in] string ResourceID, [in] com::sun::star::lang::Locale locale ) + raises( com::sun::star::resource::MissingResourceException, + com::sun::star::lang::NoSupportException ); + + + /** + Creates a new locale. + + <p>For each existing ResourceID an empty string + will be created. The first locale created will + automatically be the first default locale. + Otherwise strings for all already created IDs + will be copied from the default locale.</p> + + @throws + com::sun::star::container::ElementExistException + if the Locale already has been created. + + @throws + com::sun::star::lang::IllegalArgumentException + if the Locale is not valid. + + @throws + com::sun::star::lang::NoSupportException + if the resource is read only, see isReadOnly() + */ + void newLocale( [in] com::sun::star::lang::Locale locale ) + raises( com::sun::star::container::ElementExistException, + com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::NoSupportException ); + + + /** + Removes a locale completely including the corresponding + strings for each locale. + + @throws + com::sun::star::lang::IllegalArgumentException + if the Locale to be removed is not supported. + + @throws + com::sun::star::lang::NoSupportException + if the resource is read only, see isReadOnly() + */ + void removeLocale( [in] com::sun::star::lang::Locale locale ) + raises( com::sun::star::lang::IllegalArgumentException, + com::sun::star::lang::NoSupportException ); + + + /** + Provides a numeric id that is unique within all Resource IDs + used in the string table. + + This method takes into account all Resource IDs starting with + a decimal number and only evaluates the ID until the first non + digit character is reached. This allows to extend unique IDs + with individual identifiers without breaking the mechanism of + this method. + + Examples: + ID "42" -> numeric id 42 + ID "0foo" -> numeric id 0 + ID "111.MyId.Something.Else" -> numeric id 111 + ID "No Digits" -> not considered for numeric id + + The id returned will be 0 for an empty string table and it will + be reset to 0 if all locales are removed. In all other cases + this method returns the maximum numeric id used so far at the + beginning of a Resource ID incremented by 1. When calling this + method more than once always the same number will be returned + until this number is really used at the beginning of a new + Resource ID passed to setString() or + setStringForLocale(). + + As the numeric id is guaranteed to be unique for the complete + string table all locales are taken into account. So using this + methods will force the implementation to load all locale data + that may not have been loaded so far. + + @throws + com::sun::star::lang::NoSupportException + if the next available id exceeds the range of type long. + So it's not recommended to use own Resource IDs starting + with a decimal number near to the maximum long value if + this methods should be used. + */ + long getUniqueNumericId() + raises( com::sun::star::lang::NoSupportException ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |