summaryrefslogtreecommitdiff
path: root/offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl
diff options
context:
space:
mode:
Diffstat (limited to 'offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl')
-rw-r--r--offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl182
1 files changed, 182 insertions, 0 deletions
diff --git a/offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl b/offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl
new file mode 100644
index 000000000000..1d945ad02609
--- /dev/null
+++ b/offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl
@@ -0,0 +1,182 @@
+/*************************************************************************
+ *
+ * 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_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 OOo 2.0.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