| /************************************************************** |
| * |
| * 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_frame_XUIElementFactoryRegistration_idl__ |
| #define __com_sun_star_frame_XUIElementFactoryRegistration_idl__ |
| |
| #ifndef __com_sun_star_uno_XInterface_idl__ |
| #include <com/sun/star/uno/XInterface.idl> |
| #endif |
| |
| #ifndef __com_sun_star_ui_XUIElementFactory_idl__ |
| #include <com/sun/star/ui/XUIElementFactory.idl> |
| #endif |
| |
| #ifndef __com_sun_star_container_ElementExistException_idl__ |
| #include <com/sun/star/container/ElementExistException.idl> |
| #endif |
| |
| #ifndef __com_sun_star_container_NoSuchElementException_idl__ |
| #include <com/sun/star/container/NoSuchElementException.idl> |
| #endif |
| |
| #ifndef __com_sun_star_beans_PropertyValue_idl__ |
| #include <com/sun/star/beans/PropertyValue.idl> |
| #endif |
| |
| //============================================================================= |
| |
| module com { module sun { module star { module ui { |
| |
| //============================================================================= |
| |
| /** is used to query, register and deregister user interface element factories. |
| |
| <p> |
| A user interface element factory is registered for a set of three properties. |
| <ul> |
| <li><b>Type</b>a string that identifies a type of a user interface element.</li> |
| <li><b>Name</b>a string that identifies a single user interface element within a type class.</li> |
| <li><b>Module</b>a string that identifies a single module of OpenOffice.</li> |
| <ul> |
| A combination of these three property values can uniquely identifiy every user interface |
| element within OpenOffice. |
| |
| Currently the following user interface element types are defined: |
| <ul> |
| <li><b>menubar</b></li> |
| <li><b>popupmenu</b></li> |
| <li><b>toolbar</b></li> |
| <li><b>statusbar</b></li> |
| <li><b>floater</b></li> |
| </ul> |
| </p> |
| |
| @since OpenOffice 2.0 |
| */ |
| |
| interface XUIElementFactoryRegistration : com::sun::star::uno::XInterface |
| { |
| /** function to retrieve a list of all registered user interface element factories |
| |
| @returns |
| a sequence of sequence of propert values which describe every registered |
| user interface element factory.<br/> |
| |
| The following properties are defined: |
| <ul> |
| <li><b>Type</b>a string property that identifies the type of the user interface |
| element which this factory can create.</li> |
| <li><b>Name</b>an optional string property which identifies a single user interface |
| element within a type class which this factory can create. If this property is not |
| returned, the factory is a generic factory for all user interface elements of the |
| same type.</li> |
| <li><b>Module</b>an optional string property that specifies to which module this factory is |
| bound to. If this property is not returned, the factory is a generic factory.</li> |
| </ul> |
| */ |
| sequence< sequence< com::sun::star::beans::PropertyValue > > getRegisteredFactories(); |
| |
| /** function to retrieve a previously registered user interface element factory. |
| |
| @returns |
| a reference to a registered user interface element factory if a factory has been |
| found. An empty reference when no factory has been found. |
| <b>The defined search order of factories must be from special to generic ones.</b> |
| |
| @param ResourceURL |
| a resource URL which identifies a user interface element. A resource URL uses the |
| following syntax: "private:resource/$type/$name". It is only allowed to use ascii |
| characters for type and name. |
| |
| @param ModuleName |
| an optional module identifier. This value can remain empty, if a generic factory is requested. |
| The module identifier can be retrieved from the <type scope="com::sun::star::frame">ModuleManager</type> service. |
| */ |
| ::com::sun::star::ui::XUIElementFactory getFactory( [in] string ResourceURL, [in] string ModuleIdentifier ); |
| |
| /** function to register a user interface element factory. |
| |
| @param aType |
| a string that identifies a type of a user interface element. Currently the following types |
| are supported: |
| <ul> |
| <li><b>menubar</b></li> |
| <li><b>toolbar</b></li> |
| <li><b>statusbar</b></li> |
| </ul> |
| |
| @param aName |
| an optional name of a single user interface element. This name must be unique within a user |
| interface element type class. This value can remain empty if no special factory for a single |
| user interface element is needed. |
| |
| @param aModuleIdentifier |
| an optional module identifier that can be used to register a factory only for a single module. This value |
| can remain empty if no special factory for a single module is needed. The module identifier can be retrieved |
| from the <type scope="com::sun::star::frame">ModuleManager</type> service. |
| |
| @param aFactoryImplementationName |
| a UNO implementation name that can be used by an implementation to create a factory instance. |
| */ |
| void registerFactory( [in] string aType, [in] string aName, [in] string aModuleIdentifier, [in] string aFactoryImplementationName ) raises (com::sun::star::container::ElementExistException); |
| |
| /** function to remove a previously defined user interface element factory. |
| |
| @param aType |
| a string that identifies a type of a user interface element. Currently the following types |
| are supported: |
| <ul> |
| <li><b>menubar</b></li> |
| <li><b>toolbar</b></li> |
| <li><b>statusbar</b></li> |
| </ul> |
| |
| @param aName |
| an optional name of a single user interface element. This name must be unique within a user |
| interface element type class. This value can remain empty if no special factory for a single |
| user interface element should be deregistered. |
| |
| @param aModuleName |
| an optional module name that can be used to deregister a factory only for a single module. This value |
| can remain empty if not a module based factory should be deregisted. The module identifier can be retrieved |
| from the <type scope="com::sun::star::frame">ModuleManager</type> service. |
| |
| <p> |
| <b>Using this function can be very dangerous as other implementation with OpenOffice may not be able to create their |
| user interface element anymore. |
| </b> |
| </p> |
| */ |
| void deregisterFactory( [in] string aType, [in] string aName, [in] string aModuleIdentifier ) raises (com::sun::star::container::NoSuchElementException); |
| }; |
| |
| }; }; }; }; |
| |
| //============================================================================= |
| |
| #endif |