/************************************************************** * * 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 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef __com_sun_star_ui_XImageManager_idl__ #define __com_sun_star_ui_XImageManager_idl__ #ifndef __com_sun_star_lang_XComponent_idl__ #include #endif #ifndef __com_sun_star_graphic_XGraphic_idl__ #include #endif #ifndef __com_sun_star_ui_XUIConfigurationListener_idl__ #include #endif #ifndef __com_sun_star_ui_XUIConfigurationPersistence_idl__ #include #endif #ifndef __com_sun_star_ui_XUIConfiguration_idl__ #include #endif #ifndef __com_sun_star_ui_ImageType_idl__ #include #endif #ifndef __com_sun_star_lang_XInitialization_idl__ #include #endif #ifndef __com_sun_star_lang_IllegalArgumentException_idl__ #include #endif #ifndef __com_sun_star_lang_IllegalAccessException_idl__ #include #endif module com { module sun { module star { module ui { /** specifies access functions to an images manager interface to add, replace and remove images assocations to command URLs.

An image manager controls a number of image sets which are specified by a ImageType.

*/ published interface XImageManager { /** resets the image manager to default data.

This means that all user images of the instance will be removed.

*/ void reset(); /** retrieves the list of command URLs which have images associated. @param nImageType specifies the image type for this operation. @return all command URLs within the images manager that have an image associated. */ sequence< string > getAllImageNames( [in] short nImageType ); /** determines if a command URL has an associated image. @param nImageType specifies the image type for this operation. @param ResourceURL a command URL that should be checked for an associated image. @return if an image is associated, otherwise . */ boolean hasImage( [in] short nImageType, [in] string aCommandURL ) raises ( com::sun::star::lang::IllegalArgumentException ); /** retrieves the associated images of command URLs. @param nImageType specifies the image type for this association operation. @param aCommandURLSequence a sequence of command URLs for which the images are requested. @return a sequence of graphics object which are associated with the provided command URLs. If an unknown command URL is provided or a command URL has no associated image a graphics object with an empty image is provided. If the sequence aCommandURLSequence contains an invalid command URL a IllegalArgumentException is thrown. */ sequence< ::com::sun::star::graphic::XGraphic > getImages( [in] short nImageType, [in] sequence< string > aCommandURLSequence ) raises ( com::sun::star::lang::IllegalArgumentException ); /** replaces the associated images of command URLs. @param nImageType specifies the image type for this association operation. @param aCommandURLSequence a sequence of command URLs for which images should be replaced. @param aGraphicsSequence a sequence of graphic objects which should replace the old images of the provided command URLs.

If a command URL cannot be found the replace call will be omitted. If aCommandURLSequence contains an invalid command URL a IllegalArgumentException is thrown. If the image manager is associated with a read-only configuration manager a IllegalAccessException is thrown.

*/ void replaceImages( [in] short nImageType, [in] sequence< string > aCommandURLSequence, [in] sequence< ::com::sun::star::graphic::XGraphic > aGraphicsSequence ) raises ( com::sun::star::lang::IllegalArgumentException, com::sun::star::lang::IllegalAccessException ); /** removes associated images to a command URL. @param nImageType specifies the image type for this association operation. @param aCommandURLSequence a sequence of command URLs for which the images should be removed.

If the aCommandURLSequence contains an invalid command URL a IllegalArgumentException is thrown. If the image manager is associated with a read-only configuration manager a IllegalAccessException is thrown.

*/ void removeImages( [in] short nImageType, [in] sequence< string > aResourceURLSequence ) raises ( com::sun::star::lang::IllegalArgumentException, com::sun::star::lang::IllegalAccessException ); /** inserts new image/command associations to a image manager. @param nImageType specifies the image type for this association operation. @param aCommandURLSequence a sequence of command URLs which specify which commands get an new image. @param aGraphicSequence a sequence of graphic objects which should be associated with the provided command URLs.

If an association is already present it is replaced. If aCommandURLSequence contains an invalid command URL a IllegalArgumentException is thrown. If the configuration manager is read-only a IllegalAccessException is thrown.

*/ void insertImages( [in] short nImageType, [in] sequence< string > aCommandURLSequence, [in] sequence< ::com::sun::star::graphic::XGraphic > aGraphicSequence ) raises ( com::sun::star::container::ElementExistException, com::sun::star::lang::IllegalArgumentException, com::sun::star::lang::IllegalAccessException ); /** provides access to persistence functions to load/store images data from a storage. */ interface com::sun::star::ui::XUIConfigurationPersistence; /** provides functions to add and remove listeners for changes within an image manager.

An image manager implementation notifies its listener whenever an image set has been changed, due to insert, remove or replace operations. To minimize the overhead for notifications an image manager places all inserted and/or replaced images into a single notify call. A container which implements XNameAccess holds the information. The access key is a command URL and provides a XGraphic. This container is placed into the ConfigurationEvent::Element. The image set which has been changed is put into the ConfigurationEvent::aInfo.

*/ interface com::sun::star::ui::XUIConfiguration; /** allows controlling or observing the lifetime of an imahge manager instance.

The owner of the object may dispose of this object using XComponent::dispose().

*/ interface ::com::sun::star::lang::XComponent; /** initializes an image manager instance. An image manager instance must be initialized using XInitialization::initialize before it can be used.
The following property must be provided if the image manager is related to a module:
  • ModuleIdentifierspecifies a string property which is the unique identifier of module.
  • UserConfigStoragespecifies a XStorage property which provides access to the configuration storage of the module.
  • UserRootCommitspecifies an optional XTransactedObject property which makes it possible to commit a root storage.
*/ interface ::com::sun::star::lang::XInitialization; }; //============================================================================= }; }; }; }; #endif