summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/ui/XUIElementFactory.idl
diff options
context:
space:
mode:
Diffstat (limited to 'offapi/com/sun/star/ui/XUIElementFactory.idl')
-rw-r--r--offapi/com/sun/star/ui/XUIElementFactory.idl130
1 files changed, 130 insertions, 0 deletions
diff --git a/offapi/com/sun/star/ui/XUIElementFactory.idl b/offapi/com/sun/star/ui/XUIElementFactory.idl
new file mode 100644
index 000000000..c87638c0e
--- /dev/null
+++ b/offapi/com/sun/star/ui/XUIElementFactory.idl
@@ -0,0 +1,130 @@
+/* -*- 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_ui_XUIElementFactory_idl__
+#define __com_sun_star_ui_XUIElementFactory_idl__
+
+#include <com/sun/star/ui/XUIElement.idl>
+#include <com/sun/star/container/NoSuchElementException.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#include <com/sun/star/beans/PropertyValue.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** specifies a user interface element factory that can create and initialize
+ user interface elements.
+
+ <p>
+ User interface element factories must be registered at a
+ UIElementFactoryManager service to provide access to itself.
+
+ Currently the following user interface element types are defined:
+ <ul>
+ <li><b>menubar</b>A configurable user interface element.</li>
+ <li><b>popupmenu</b>A configurable user interface element.</li>
+ <li><b>toolbar</b>A configurable user interface element.</li>
+ <li><b>statusbar</b>A configurable user interface element.</li>
+ <li><b>floater</b>A basic user interface element.</li>
+ </ul>
+ </p>
+
+ @since OOo 2.0
+*/
+
+interface XUIElementFactory : ::com::sun::star::uno::XInterface
+{
+ /** creates a new instances of a specific user interface element.
+
+ @param ResourceURL
+ specifies which unique user interface element should be created
+ by the factory. A resource URL must meet the following syntax:
+ "private:resource/$type/$name. It is only allowed to use ASCII
+ characters for type and name. This argument must not be empty to
+ have a working user interface element instance.The implementation
+ can throw an
+ com::sun::star::container::NoSuchElementException
+ if it doesn't know how to create the request user interface
+ element.
+
+ @param Args
+ The following arguments are supported:
+ <ul>
+ <li><b>Frame</b><br>
+ specifies the com::sun::star::frame::XFrame
+ instance to which the user interface element belongs to. To
+ create a configurable user interface element the frame
+ instance must contain a visible component. Otherwise it is
+ not possible to determine the correct user interface
+ configuration manager. This argument is <b>mandatory</b> to
+ have a working configurable user interface element instance.
+ </li>
+ <li><b>ParentWindow</b><br/>
+ specifies a parent window to use for the window(s) representing
+ the UI element. Depending on the concrete UI element type, this parameter
+ might be required or ignored by an implementation.
+ </li>
+ <li><b>Persistent</b><br>
+ specifies if changes to a configurable
+ user interface element should be persistent. This is an
+ optional argument. The default value is `TRUE`.
+ </li>
+ <li><b>Module</b><br>
+ specifies the current module name (as a string).
+ May be empty.
+ </li>
+ <li><b>Controller</b><br>
+ (Sidebar only) specifies the current com::sun::star::frame::XController2 instance.
+ May be empty.
+ </li>
+ <li><b>Canvas</b><br>
+ (Sidebar only) specifies the current com::sun::star::rendering::XSpriteCanvas instance.
+ </li>
+ <li><b>ApplicationName</b><br>
+ (Sidebar only) Specifies the current application name (as a string)
+ </li>
+ <li><b>ContextName</b><br>
+ (Sidebar only) Specifies the current context (as a string)
+ </li>
+ </ul>
+
+ <p>
+ An implementation is responsible to initialize every newly created user
+ interface element if the necessary properties are provided. Especially
+ it must connect a configurable user interface element to the correct user
+ interface configuration manager. Without this connection the configurable
+ user interface element cannot retrieve its structure data and changes to
+ the user interface element structure won't be persistent. It is up to the
+ implementation to throw an
+ com::sun::star::lang::IllegalArgumentException
+ if it cannot create a user interface element with the provided arguments.
+
+ @see ConfigurableUIElement
+ @see UIElement
+ </p>
+ */
+ ::com::sun::star::ui::XUIElement createUIElement( [in] string ResourceURL, [in] sequence< com::sun::star::beans::PropertyValue > Args ) raises ( com::sun::star::container::NoSuchElementException, com::sun::star::lang::IllegalArgumentException );
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */