summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/ui
diff options
context:
space:
mode:
Diffstat (limited to 'offapi/com/sun/star/ui')
-rw-r--r--offapi/com/sun/star/ui/ActionTrigger.idl56
-rw-r--r--offapi/com/sun/star/ui/ActionTriggerContainer.idl83
-rw-r--r--offapi/com/sun/star/ui/ActionTriggerSeparator.idl39
-rw-r--r--offapi/com/sun/star/ui/ActionTriggerSeparatorType.idl43
-rw-r--r--offapi/com/sun/star/ui/AddressBookSourceDialog.idl51
-rw-r--r--offapi/com/sun/star/ui/ConfigurableUIElement.idl100
-rw-r--r--offapi/com/sun/star/ui/ConfigurationEvent.idl50
-rw-r--r--offapi/com/sun/star/ui/ContextChangeEventMultiplexer.idl36
-rw-r--r--offapi/com/sun/star/ui/ContextChangeEventObject.idl44
-rw-r--r--offapi/com/sun/star/ui/ContextMenuExecuteEvent.idl52
-rw-r--r--offapi/com/sun/star/ui/ContextMenuInterceptorAction.idl52
-rw-r--r--offapi/com/sun/star/ui/DockingArea.idl68
-rw-r--r--offapi/com/sun/star/ui/DocumentAcceleratorConfiguration.idl40
-rw-r--r--offapi/com/sun/star/ui/GlobalAcceleratorConfiguration.idl36
-rw-r--r--offapi/com/sun/star/ui/ImageManager.idl37
-rw-r--r--offapi/com/sun/star/ui/ImageType.idl62
-rw-r--r--offapi/com/sun/star/ui/ItemDescriptor.idl93
-rw-r--r--offapi/com/sun/star/ui/ItemStyle.idl165
-rw-r--r--offapi/com/sun/star/ui/ItemType.idl49
-rw-r--r--offapi/com/sun/star/ui/LayoutSize.idl49
-rw-r--r--offapi/com/sun/star/ui/ModuleAcceleratorConfiguration.idl39
-rw-r--r--offapi/com/sun/star/ui/ModuleUICategoryDescription.idl66
-rw-r--r--offapi/com/sun/star/ui/ModuleUICommandDescription.idl74
-rw-r--r--offapi/com/sun/star/ui/ModuleUIConfigurationManager.idl80
-rw-r--r--offapi/com/sun/star/ui/ModuleUIConfigurationManagerSupplier.idl42
-rw-r--r--offapi/com/sun/star/ui/ModuleWindowStateConfiguration.idl88
-rw-r--r--offapi/com/sun/star/ui/UICategoryDescription.idl40
-rw-r--r--offapi/com/sun/star/ui/UIConfigurationManager.idl39
-rw-r--r--offapi/com/sun/star/ui/UIElement.idl89
-rw-r--r--offapi/com/sun/star/ui/UIElementFactory.idl57
-rw-r--r--offapi/com/sun/star/ui/UIElementFactoryManager.idl43
-rw-r--r--offapi/com/sun/star/ui/UIElementSettings.idl81
-rw-r--r--offapi/com/sun/star/ui/UIElementType.idl77
-rw-r--r--offapi/com/sun/star/ui/WindowContentFactory.idl49
-rw-r--r--offapi/com/sun/star/ui/WindowContentFactoryManager.idl41
-rw-r--r--offapi/com/sun/star/ui/WindowStateConfiguration.idl44
-rw-r--r--offapi/com/sun/star/ui/XAcceleratorConfiguration.idl272
-rw-r--r--offapi/com/sun/star/ui/XContextChangeEventListener.idl38
-rw-r--r--offapi/com/sun/star/ui/XContextChangeEventMultiplexer.idl116
-rw-r--r--offapi/com/sun/star/ui/XContextMenuInterception.idl49
-rw-r--r--offapi/com/sun/star/ui/XContextMenuInterceptor.idl44
-rw-r--r--offapi/com/sun/star/ui/XDeck.idl92
-rw-r--r--offapi/com/sun/star/ui/XDecks.idl37
-rw-r--r--offapi/com/sun/star/ui/XDockingAreaAcceptor.idl102
-rw-r--r--offapi/com/sun/star/ui/XImageManager.idl223
-rw-r--r--offapi/com/sun/star/ui/XModuleUIConfigurationManager.idl92
-rw-r--r--offapi/com/sun/star/ui/XModuleUIConfigurationManager2.idl62
-rw-r--r--offapi/com/sun/star/ui/XModuleUIConfigurationManagerSupplier.idl58
-rw-r--r--offapi/com/sun/star/ui/XPanel.idl94
-rw-r--r--offapi/com/sun/star/ui/XPanels.idl41
-rw-r--r--offapi/com/sun/star/ui/XSidebar.idl41
-rw-r--r--offapi/com/sun/star/ui/XSidebarPanel.idl57
-rw-r--r--offapi/com/sun/star/ui/XSidebarProvider.idl68
-rw-r--r--offapi/com/sun/star/ui/XStatusbarItem.idl115
-rw-r--r--offapi/com/sun/star/ui/XToolPanel.idl55
-rw-r--r--offapi/com/sun/star/ui/XUIConfiguration.idl76
-rw-r--r--offapi/com/sun/star/ui/XUIConfigurationListener.idl70
-rw-r--r--offapi/com/sun/star/ui/XUIConfigurationManager.idl241
-rw-r--r--offapi/com/sun/star/ui/XUIConfigurationManager2.idl70
-rw-r--r--offapi/com/sun/star/ui/XUIConfigurationManagerSupplier.idl51
-rw-r--r--offapi/com/sun/star/ui/XUIConfigurationPersistence.idl96
-rw-r--r--offapi/com/sun/star/ui/XUIConfigurationStorage.idl75
-rw-r--r--offapi/com/sun/star/ui/XUIElement.idl80
-rw-r--r--offapi/com/sun/star/ui/XUIElementFactory.idl130
-rw-r--r--offapi/com/sun/star/ui/XUIElementFactoryManager.idl57
-rw-r--r--offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl159
-rw-r--r--offapi/com/sun/star/ui/XUIElementSettings.idl88
-rw-r--r--offapi/com/sun/star/ui/XUIFunctionListener.idl53
-rw-r--r--offapi/com/sun/star/ui/XUpdateModel.idl35
-rw-r--r--offapi/com/sun/star/ui/dialogs/AddressBookSourcePilot.idl43
-rw-r--r--offapi/com/sun/star/ui/dialogs/CommonFilePickerElementIds.idl71
-rw-r--r--offapi/com/sun/star/ui/dialogs/ControlActions.idl93
-rw-r--r--offapi/com/sun/star/ui/dialogs/DialogClosedEvent.idl51
-rw-r--r--offapi/com/sun/star/ui/dialogs/ExecutableDialogException.idl39
-rw-r--r--offapi/com/sun/star/ui/dialogs/ExecutableDialogResults.idl46
-rw-r--r--offapi/com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.idl62
-rw-r--r--offapi/com/sun/star/ui/dialogs/FilePicker.idl69
-rw-r--r--offapi/com/sun/star/ui/dialogs/FilePickerEvent.idl49
-rw-r--r--offapi/com/sun/star/ui/dialogs/FilePreviewImageFormats.idl44
-rw-r--r--offapi/com/sun/star/ui/dialogs/FilterOptionsDialog.idl74
-rw-r--r--offapi/com/sun/star/ui/dialogs/FolderPicker.idl38
-rw-r--r--offapi/com/sun/star/ui/dialogs/ListboxControlActions.idl76
-rw-r--r--offapi/com/sun/star/ui/dialogs/TemplateDescription.idl155
-rw-r--r--offapi/com/sun/star/ui/dialogs/Wizard.idl72
-rw-r--r--offapi/com/sun/star/ui/dialogs/WizardButton.idl53
-rw-r--r--offapi/com/sun/star/ui/dialogs/WizardTravelType.idl47
-rw-r--r--offapi/com/sun/star/ui/dialogs/XAsynchronousExecutableDialog.idl55
-rw-r--r--offapi/com/sun/star/ui/dialogs/XControlAccess.idl88
-rw-r--r--offapi/com/sun/star/ui/dialogs/XControlInformation.idl94
-rw-r--r--offapi/com/sun/star/ui/dialogs/XDialogClosedListener.idl54
-rw-r--r--offapi/com/sun/star/ui/dialogs/XExecutableDialog.idl58
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilePicker.idl107
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilePicker2.idl62
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilePicker3.idl78
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilePickerControlAccess.idl136
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilePickerListener.idl100
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilePickerNotifier.idl58
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilePreview.idl122
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilterGroupManager.idl65
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilterManager.idl79
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFolderPicker.idl78
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFolderPicker2.idl53
-rw-r--r--offapi/com/sun/star/ui/dialogs/XSLTFilterDialog.idl38
-rw-r--r--offapi/com/sun/star/ui/dialogs/XWizard.idl221
-rw-r--r--offapi/com/sun/star/ui/dialogs/XWizardController.idl78
-rw-r--r--offapi/com/sun/star/ui/dialogs/XWizardPage.idl79
-rw-r--r--offapi/com/sun/star/ui/test/UITest.idl29
-rw-r--r--offapi/com/sun/star/ui/test/XUIObject.idl36
-rw-r--r--offapi/com/sun/star/ui/test/XUITest.idl36
-rw-r--r--offapi/com/sun/star/ui/theModuleUIConfigurationManagerSupplier.idl52
-rw-r--r--offapi/com/sun/star/ui/theUICategoryDescription.idl64
-rw-r--r--offapi/com/sun/star/ui/theUIElementFactoryManager.idl44
-rw-r--r--offapi/com/sun/star/ui/theWindowContentFactoryManager.idl41
-rw-r--r--offapi/com/sun/star/ui/theWindowStateConfiguration.idl63
114 files changed, 8241 insertions, 0 deletions
diff --git a/offapi/com/sun/star/ui/ActionTrigger.idl b/offapi/com/sun/star/ui/ActionTrigger.idl
new file mode 100644
index 000000000..5b36df834
--- /dev/null
+++ b/offapi/com/sun/star/ui/ActionTrigger.idl
@@ -0,0 +1,56 @@
+/* -*- 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_ActionTrigger_idl__
+#define __com_sun_star_ui_ActionTrigger_idl__
+
+#include <com/sun/star/awt/XBitmap.idl>
+#include <com/sun/star/container/XIndexContainer.idl>
+#include <com/sun/star/lang/XMultiServiceFactory.idl>
+
+module com { module sun { module star { module ui {
+
+/** describes a trigger for an (user inter-)action.
+ <p>Common examples for such triggers are menu entries or toolbar icons.</p>
+*/
+published service ActionTrigger
+{
+ /** contains the text of the menu entry.
+ */
+ [property] string Text;
+
+ /** contains the command URL for the menu entry.
+ */
+ [property] string CommandURL;
+
+ /** contains the a URL that points to a help text.
+ */
+ [optional, property] string HelpURL;
+
+ /** contains the menu item image.
+ */
+ [property] ::com::sun::star::awt::XBitmap Image;
+
+ /** contains a sub menu.
+ */
+ [property] ::com::sun::star::container::XIndexContainer SubContainer;
+};
+}; }; }; };
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ActionTriggerContainer.idl b/offapi/com/sun/star/ui/ActionTriggerContainer.idl
new file mode 100644
index 000000000..b3c2d7df2
--- /dev/null
+++ b/offapi/com/sun/star/ui/ActionTriggerContainer.idl
@@ -0,0 +1,83 @@
+/* -*- 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_ActionTriggerContainer_idl__
+#define __com_sun_star_ui_ActionTriggerContainer_idl__
+
+#include <com/sun/star/container/XIndexContainer.idl>
+#include <com/sun/star/lang/XMultiServiceFactory.idl>
+#include <com/sun/star/container/XContainer.idl>
+#include <com/sun/star/container/XEnumerationAccess.idl>
+
+module com { module sun { module star { module ui {
+
+
+/** describes a container of user actions.
+
+ <p>No assumption is made about any graphical representation:
+ You could have a menu or a toolbox working with the same container
+ describing their entries.</p>
+
+ <p>Possible elements of the ActionTriggerContainer are
+ <ul>
+ <li>ActionTrigger -
+ represents a simply clickable menu entry</li>
+ <li>ActionTriggerSeparator -
+ represents a separator between two entries<br/>
+ This entry type is of interest for components rendering a an
+ ActionTriggerContainer
+ </li>
+ <li>ActionTriggerContainer -
+ represents a sub container</li>
+ </ul>
+ </p>
+*/
+published service ActionTriggerContainer
+{
+ /** provides access to the entries of a menu. The element type
+ is com::sun::star::beans::XPropertySet.
+ The property set contains attributes like CommandURL, HelpURL
+ as defined in the service com::sun::star::ui::ActionTrigger
+ and optional a com::sun::star::ui::ActionTriggerContainer.
+ */
+
+ interface ::com::sun::star::container::XIndexContainer;
+
+ /** creates elements to be inserted into the container.
+ <p>Usually, the XMultiServiceFactory::getSupportedServiceNames()
+ gives you an ActionTrigger and
+ optionally ActionTriggerContainer and
+ ActionTriggerSeparator
+
+ .</p>
+ */
+ interface ::com::sun::star::lang::XMultiServiceFactory;
+
+ /** allows to enumerate the elements of the container
+ */
+ [optional] interface ::com::sun::star::container::XEnumerationAccess;
+
+ /** allows foreign components to register themselves as listener for the container
+ structure.
+ */
+ [optional] interface ::com::sun::star::container::XContainer;
+};
+}; }; }; };
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ActionTriggerSeparator.idl b/offapi/com/sun/star/ui/ActionTriggerSeparator.idl
new file mode 100644
index 000000000..2d4c2f7ce
--- /dev/null
+++ b/offapi/com/sun/star/ui/ActionTriggerSeparator.idl
@@ -0,0 +1,39 @@
+/* -*- 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_ActionTriggerSeparator_idl__
+#define __com_sun_star_ui_ActionTriggerSeparator_idl__
+
+module com { module sun { module star { module ui {
+
+
+/** describes a separator entry. Such entries are of interest
+ for components rendering an ActionTriggerContainer.
+*/
+published service ActionTriggerSeparator
+{
+ /** determines the type of the separator using constants from
+ ActionTriggerSeparatorType.
+ */
+ [optional, property] short SeparatorType;
+};
+
+}; }; }; };
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ActionTriggerSeparatorType.idl b/offapi/com/sun/star/ui/ActionTriggerSeparatorType.idl
new file mode 100644
index 000000000..dc6b201ec
--- /dev/null
+++ b/offapi/com/sun/star/ui/ActionTriggerSeparatorType.idl
@@ -0,0 +1,43 @@
+/* -*- 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_ActionTriggerSeparatorType_idl__
+#define __com_sun_star_ui_ActionTriggerSeparatorType_idl__
+
+module com { module sun { module star { module ui {
+
+/** Determines the type of a separator in an ActionTriggerContainer.
+ */
+published constants ActionTriggerSeparatorType
+{
+ /** a separator is inserted as a line.
+ */
+ const short LINE = 0;
+ /** a separator is inserted as a space.
+ */
+ const short SPACE = 1;
+ /** a line break is inserted.
+ */
+ const short LINEBREAK = 2;
+
+};
+
+}; }; }; };
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/AddressBookSourceDialog.idl b/offapi/com/sun/star/ui/AddressBookSourceDialog.idl
new file mode 100644
index 000000000..b986f3113
--- /dev/null
+++ b/offapi/com/sun/star/ui/AddressBookSourceDialog.idl
@@ -0,0 +1,51 @@
+/* -*- 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_AddressBookSourceDialog_idl__
+#define __com_sun_star_ui_AddressBookSourceDialog_idl__
+
+#include <com/sun/star/ui/dialogs/XExecutableDialog.idl>
+#include <com/sun/star/awt/XWindow.idl>
+#include <com/sun/star/beans/XPropertySet.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** This interface could be incomplete since I derived it from its places of use.
+
+ @since LibreOffice 4.1
+*/
+
+service AddressBookSourceDialog : com::sun::star::ui::dialogs::XExecutableDialog
+{
+
+ createWithDataSource([in] com::sun::star::awt::XWindow ParentWindow,
+ [in] com::sun::star::beans::XPropertySet DataSource,
+ [in] string DataSourceName,
+ [in] string Command,
+ [in] string Title);
+};
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ConfigurableUIElement.idl b/offapi/com/sun/star/ui/ConfigurableUIElement.idl
new file mode 100644
index 000000000..94dd7ce42
--- /dev/null
+++ b/offapi/com/sun/star/ui/ConfigurableUIElement.idl
@@ -0,0 +1,100 @@
+/* -*- 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_ConfigurableUIElement_idl__
+#define __com_sun_star_ui_ConfigurableUIElement_idl__
+
+#include <com/sun/star/ui/UIElement.idl>
+#include <com/sun/star/ui/XUIElementSettings.idl>
+#include <com/sun/star/beans/XPropertySet.idl>
+#include <com/sun/star/ui/UIElementType.idl>
+#include <com/sun/star/ui/XUIConfigurationManager.idl>
+#include <com/sun/star/frame/XFrame.idl>
+#include <com/sun/star/lang/XInitialization.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** specifies a configurable user interface element that supports persistence.
+
+ <p>
+ Configurable user interface elements are:
+ <ul>
+ <li>menubar</li>
+ <li>popupmenu<li>
+ <li>toolbar</li>
+ <li>statusbar</li>
+ </ul>
+ </p>
+
+ @since OOo 2.0
+*/
+
+service ConfigurableUIElement
+{
+ /** provides properties and functions to initialize and identify a user
+ interface element.
+
+ <p>
+ A configurable user interface element must be initialized using
+ com::sun::star::lang::XInitialization::initialize() before
+ it can be used. The following properties must be provided:
+ <ul>
+ <li><b>ResourceURL</b><br>specifies the user interface name.</li>
+ <li><b>Frame</b><br>specifies to which frame instance the user interface belongs to.</li>
+ <li><b>ConfigurationSource</b><br>specifies to which configuration manager a user interface
+ element instance is bound to.</li>
+ </ul>
+ </p>
+
+ A user interface element factory creates and initializes every user interface element
+ correctly.
+
+ @see com::sun::star::ui::UIElementFactory
+ */
+ service UIElement;
+
+ /** provides functions to retrieve and change the user interface element structure data and to
+ update its visible representation.
+ */
+ interface com::sun::star::ui::XUIElementSettings;
+
+ /** specifies if the user interface element stores changes of its structure to its creator
+ source defined by the property #ConfigurationSource. */
+ [property] boolean Persistent;
+
+ /** specifies the configuration source of this user interface element.
+
+ <p>
+ If the property #Persistent is `TRUE` changes on the structure of
+ the user interface element are written back to configuration source. When this property is
+ changed, afterwards XUIElementSettings::updateSettings() must be called so
+ the user interface element tries to retrieve its settings from the new user interface
+ configuration manager.
+ </p>
+ */
+ [property] com::sun::star::ui::XUIConfigurationManager ConfigurationSource;
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ConfigurationEvent.idl b/offapi/com/sun/star/ui/ConfigurationEvent.idl
new file mode 100644
index 000000000..cf8afd226
--- /dev/null
+++ b/offapi/com/sun/star/ui/ConfigurationEvent.idl
@@ -0,0 +1,50 @@
+/* -*- 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_ConfigurationEvent_idl__
+#define __com_sun_star_ui_ConfigurationEvent_idl__
+
+#include <com/sun/star/container/ContainerEvent.idl>
+
+module com { module sun { module star { module ui {
+
+/** this event is broadcasted by a configuration manager whenever the state of
+ user interface element has changed.
+
+ @since OOo 2.0
+*/
+
+published struct ConfigurationEvent : ::com::sun::star::container::ContainerEvent
+{
+ /** contains the resource URL of the user interface element or a
+ configuration manager, which has been changed, inserted or replaced. */
+ string ResourceURL;
+
+ /** contains additional information about this configuration event.
+ The type depends on the specific implementation.
+ */
+ any aInfo;
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ContextChangeEventMultiplexer.idl b/offapi/com/sun/star/ui/ContextChangeEventMultiplexer.idl
new file mode 100644
index 000000000..80fe8c635
--- /dev/null
+++ b/offapi/com/sun/star/ui/ContextChangeEventMultiplexer.idl
@@ -0,0 +1,36 @@
+/* -*- 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_ContextChangeEventMultiplexer_idl__
+#define __com_sun_star_ui_ContextChangeEventMultiplexer_idl__
+
+#include <com/sun/star/ui/XContextChangeEventMultiplexer.idl>
+
+module com { module sun { module star { module ui {
+
+/** Multiplex events for context changes.
+
+ A typical listener for context changes is the sidebar.
+*/
+singleton ContextChangeEventMultiplexer : com::sun::star::ui::XContextChangeEventMultiplexer;
+
+}; }; }; }; // com.sun.star.ui
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ContextChangeEventObject.idl b/offapi/com/sun/star/ui/ContextChangeEventObject.idl
new file mode 100644
index 000000000..64280be87
--- /dev/null
+++ b/offapi/com/sun/star/ui/ContextChangeEventObject.idl
@@ -0,0 +1,44 @@
+/* -*- 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_ContextChangeEventObject_idl__
+#define __com_sun_star_ui_ContextChangeEventObject_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/lang/EventObject.idl>
+
+module com { module sun { module star { module ui {
+
+struct ContextChangeEventObject : com::sun::star::lang::EventObject
+{
+ /** Return the name of the application.
+ */
+ string ApplicationName;
+
+ /** Return the application specific context name.
+ */
+ string ContextName;
+};
+
+}; }; }; };
+
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ContextMenuExecuteEvent.idl b/offapi/com/sun/star/ui/ContextMenuExecuteEvent.idl
new file mode 100644
index 000000000..6afed53ed
--- /dev/null
+++ b/offapi/com/sun/star/ui/ContextMenuExecuteEvent.idl
@@ -0,0 +1,52 @@
+/* -*- 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_ContextMenuExecuteEvent_idl__
+#define __com_sun_star_ui_ContextMenuExecuteEvent_idl__
+
+#include <com/sun/star/awt/XWindow.idl>
+#include <com/sun/star/awt/Point.idl>
+#include <com/sun/star/container/XIndexContainer.idl>
+#include <com/sun/star/view/XSelectionSupplier.idl>
+
+module com { module sun { module star { module ui {
+
+/** contains all information about the requested context menu.
+ */
+published struct ContextMenuExecuteEvent
+{
+ /** contains the window where the context menu has been requested
+ */
+ ::com::sun::star::awt::XWindow SourceWindow;
+ /** contains the position the context menu will be executed at.
+ */
+ ::com::sun::star::awt::Point ExecutePosition;
+ /** enables the access to the menu content.
+ The implementing object has to support the service
+ com::sun::star::ui::ActionTriggerContainer;
+ */
+ ::com::sun::star::container::XIndexContainer ActionTriggerContainer;
+ /** provides the current selection inside the source window.
+ */
+ ::com::sun::star::view::XSelectionSupplier Selection;
+};
+
+}; }; }; };
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ContextMenuInterceptorAction.idl b/offapi/com/sun/star/ui/ContextMenuInterceptorAction.idl
new file mode 100644
index 000000000..82fcbe82b
--- /dev/null
+++ b/offapi/com/sun/star/ui/ContextMenuInterceptorAction.idl
@@ -0,0 +1,52 @@
+/* -*- 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_ContextMenuInterceptorAction_idl__
+#define __com_sun_star_ui_ContextMenuInterceptorAction_idl__
+
+module com { module sun { module star { module ui {
+
+
+/** determines the action that is requested from the XContextMenuInterceptor.
+ */
+published enum ContextMenuInterceptorAction
+{
+ /** the XContextMenuInterceptor has ignored the call. The next registered
+ XContextMenuInterceptor should be notified.
+ */
+ IGNORED,
+ /** the context menu must not be executed. The next registered
+ XContextMenuInterceptor should not be notified.
+ */
+ CANCELLED,
+ /**
+ the menu has been modified and should be executed without notifying the next registered
+ XContextMenuInterceptor.
+ */
+ EXECUTE_MODIFIED,
+ /**
+ the menu has been modified and the next registered XContextMenuInterceptor
+ should be notified.
+ */
+ CONTINUE_MODIFIED
+};
+
+}; }; }; };
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/DockingArea.idl b/offapi/com/sun/star/ui/DockingArea.idl
new file mode 100644
index 000000000..a268b4948
--- /dev/null
+++ b/offapi/com/sun/star/ui/DockingArea.idl
@@ -0,0 +1,68 @@
+/* -*- 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_DockingArea_idl__
+#define __com_sun_star_ui_DockingArea_idl__
+
+
+module com { module sun { module star { module ui {
+
+
+/** specifies different docking areas a frame based layout manager
+ supports.
+
+ <p>
+ A frame based layout manager supports four different docking areas where
+ dockable user interface elements can be docked.
+
+ @see com::sun::star::frame::XLayoutManager
+ </p>
+
+ @since OOo 2.0
+*/
+
+enum DockingArea
+{
+ /** the top docking area below the menu bar.
+ */
+ DOCKINGAREA_TOP,
+
+ /** the bottom docking area above the status bar.
+ */
+ DOCKINGAREA_BOTTOM,
+
+ /** the left side docking area.
+ */
+ DOCKINGAREA_LEFT,
+
+ /** the right side docking area.
+ */
+ DOCKINGAREA_RIGHT,
+
+ /** a default docking area. It depends on the implementation
+ how to treat this value.
+ */
+ DOCKINGAREA_DEFAULT
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/DocumentAcceleratorConfiguration.idl b/offapi/com/sun/star/ui/DocumentAcceleratorConfiguration.idl
new file mode 100644
index 000000000..45d85b7d6
--- /dev/null
+++ b/offapi/com/sun/star/ui/DocumentAcceleratorConfiguration.idl
@@ -0,0 +1,40 @@
+/* -*- 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_DocumentAcceleratorConfiguration_idl__
+#define __com_sun_star_ui_DocumentAcceleratorConfiguration_idl__
+
+#include <com/sun/star/ui/XAcceleratorConfiguration.idl>
+#include <com/sun/star/embed/XStorage.idl>
+
+module com { module sun { module star { module ui {
+
+/**
+
+ @since LibreOffice 4.2
+*/
+service DocumentAcceleratorConfiguration : XAcceleratorConfiguration
+{
+ createWithDocumentRoot([in] com::sun::star::embed::XStorage DocumentRoot);
+};
+
+}; }; }; }; // com.sun.star
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/GlobalAcceleratorConfiguration.idl b/offapi/com/sun/star/ui/GlobalAcceleratorConfiguration.idl
new file mode 100644
index 000000000..6a464bde4
--- /dev/null
+++ b/offapi/com/sun/star/ui/GlobalAcceleratorConfiguration.idl
@@ -0,0 +1,36 @@
+/* -*- 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_GlobalAcceleratorConfiguration_idl__
+#define __com_sun_star_ui_GlobalAcceleratorConfiguration_idl__
+
+#include <com/sun/star/ui/XAcceleratorConfiguration.idl>
+
+module com { module sun { module star { module ui {
+
+/** provides access to the global accelerator (aka shortcut) configuration set.
+
+ @since OOo 2.0
+*/
+service GlobalAcceleratorConfiguration : XAcceleratorConfiguration;
+
+}; }; }; }; // com.sun.star
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ImageManager.idl b/offapi/com/sun/star/ui/ImageManager.idl
new file mode 100644
index 000000000..f8b5b1a4d
--- /dev/null
+++ b/offapi/com/sun/star/ui/ImageManager.idl
@@ -0,0 +1,37 @@
+/* -*- 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_ImageManager_idl__
+#define __com_sun_star_ui_ImageManager_idl__
+
+#include <com/sun/star/ui/XImageManager.idl>
+
+module com { module sun { module star { module ui {
+
+
+/**
+
+ @since LibreOffice 4.1
+*/
+service ImageManager : XImageManager;
+
+}; }; }; }; // com.sun.star.ui
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ImageType.idl b/offapi/com/sun/star/ui/ImageType.idl
new file mode 100644
index 000000000..8dff0acd4
--- /dev/null
+++ b/offapi/com/sun/star/ui/ImageType.idl
@@ -0,0 +1,62 @@
+/* -*- 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_ImageType_idl__
+#define __com_sun_star_ui_ImageType_idl__
+
+module com { module sun { module star { module ui {
+
+/** Determine the image set of an image manager.
+
+ <p>
+ The constants describe bits in a bit field which determine
+ the current image set of an image manager.
+ </p>
+
+ @since OOo 2.0
+ */
+constants ImageType
+{
+ /** an image with default size.
+ */
+ const short SIZE_DEFAULT = 0;
+
+ /** an image with large size.
+ */
+ const short SIZE_LARGE = 1;
+
+ /** an image with size 32.
+ @since LibreOffice 5.3
+ */
+ const short SIZE_32 = 2;
+
+ /** an image with normal colors.
+ */
+ const short COLOR_NORMAL = 0;
+
+ /** an image with high contrast colors.
+ */
+ const short COLOR_HIGHCONTRAST = 4;
+
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ItemDescriptor.idl b/offapi/com/sun/star/ui/ItemDescriptor.idl
new file mode 100644
index 000000000..a0c492ada
--- /dev/null
+++ b/offapi/com/sun/star/ui/ItemDescriptor.idl
@@ -0,0 +1,93 @@
+/* -*- 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_ItemDescriptor_idl__
+#define __com_sun_star_ui_ItemDescriptor_idl__
+
+#include <com/sun/star/container/XIndexAccess.idl>
+
+
+module com { module sun { module star { module ui {
+
+/**
+ describes a user interface item that is part of a user interface
+ element.
+ <p>Common examples for such elements are:
+ <ul>
+ <li>menus</li>
+ <li>tool bars</li>
+ <li>status bars</li>
+ </ul>
+ No assumption is made about any graphical representation:
+ You could have a menu or a toolbox working with the same item descriptor.
+ </p>
+
+ @since OOo 2.0
+*/
+service ItemDescriptor
+{
+ /** specifies which type this item descriptor belongs to.<p>See constant definition
+ ItemType.</p>
+ */
+ [property] short Type;
+
+ /** the text of the user interface item.
+ */
+ [property] string Label;
+
+ /** contains the command URL which specifies which action should be accomplished.
+ */
+ [property] string CommandURL;
+
+ /** contains the a URL that points to a help text.
+ */
+ [property] string HelpURL;
+
+ /** different styles which influence the appearance of the item and its behavior.
+ <p>This property is only valid if the item describes a toolbar or statusbar
+ item. See ItemStyle for more information about possible styles.</p>
+ */
+ [optional, property] short Style;
+
+ /** specifies the pixel distance by which the text of the item is shifted on the x-axis.
+ <p>This property is only valid if the item describes a statusbar item.</p>
+ */
+ [optional, property] short Offset;
+
+ /** specifies an optional sub container.
+ <p>This property is valid for menus only. It can be used to define sub menus.</p>
+ */
+ [optional, property] com::sun::star::container::XIndexAccess ItemDescriptorContainer;
+
+ /** specifies if this item is visible or not.
+ <p>This property is only valid if the item describes a toolbar or statusbar item.</p>
+ */
+ [optional, property] boolean IsVisible;
+
+ /** specifies a pixel width for this item inside the user interface element.
+ <p>This property is only valid if the item describes a toolbar or statusbar item.</p>
+ */
+ [optional, property] short Width;
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ItemStyle.idl b/offapi/com/sun/star/ui/ItemStyle.idl
new file mode 100644
index 000000000..155cfe510
--- /dev/null
+++ b/offapi/com/sun/star/ui/ItemStyle.idl
@@ -0,0 +1,165 @@
+/* -*- 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_ItemStyle_idl__
+#define __com_sun_star_ui_ItemStyle_idl__
+
+
+module com { module sun { module star { module ui {
+
+/**
+ specifies styles which influence the appearance and the behavior of an
+ user interface item.
+
+ <p>
+ These styles are only valid if the item describes a toolbar or statusbar item.
+ The style values can be combined with the OR operator. Styles which are not valid
+ for an item will be ignored by the implementation.<br/>
+ There are two styles where
+ only one value is valid:
+ Alignment:
+ <ul>
+ <li>ALIGN_LEFT</li>
+ <li>ALIGN_CENTER</li>
+ <li>ALIGN_RIGHT</li>
+ </ul>
+ Drawing:
+ <ul>
+ <li>DRAW_OUT3D</li>
+ <li>DRAW_IN3D</li>
+ <li>DRAW_FLAT</li>
+ </ul>
+ </p>
+
+ @since OOo 2.0
+*/
+constants ItemStyle
+{
+ /** specifies how the output of the item is aligned in the bounding box of
+ the user interface element.
+ <p>This style is only valid for an item which describes a statusbar item.
+ Draw item with a left aligned output.</p>
+ */
+ const short ALIGN_LEFT = 1;
+
+ /** specifies how the output of the item is aligned in the bounding box of
+ the user interface element.
+ <p>This style is only valid for an item which describes a statusbar item.
+ Draw item with a centered aligned output.</p>
+ */
+ const short ALIGN_CENTER = 2;
+
+ /** specifies how the output of the item is aligned in the bounding box of
+ the user interface element.
+ <p>This style is only valid for an item which describes a statusbar item.
+ Draw item with a right aligned output.</p>
+ */
+ const short ALIGN_RIGHT = 3;
+
+ /** specifies how the implementation should draw the item.
+ <p>This style is only valid for an item which describes a statusbar item.
+ Draw item with an embossed 3D effect.</p>
+ */
+ const short DRAW_OUT3D = 4;
+
+ /** specifies how the implementation should draw the item.
+ <p>This style is only valid for an item which describes a statusbar item.
+ Draw item with an impressed 3D effect.</p>
+ */
+ const short DRAW_IN3D = 8;
+
+ /** specifies how the implementation should draw the item.
+ <p>This style is only valid for an item which describes a statusbar item.
+ Draw item without an 3D effect.</p>
+ */
+ const short DRAW_FLAT = 12;
+
+ /** specifies whether or not an item is displayed using an external function.
+ <p>This style is only valid if the item describes a statusbar item.</p>
+ */
+ const short OWNER_DRAW = 16;
+
+ /** specifies whether or not the size of the item is set automatically by
+ the parent user interface element.
+ <p>This style is only valid if the item describes a toolbar or statusbar item.</p>
+ */
+ const short AUTO_SIZE = 32;
+
+ /** determines whether the item unchecks neighbor entries which have also this style set.
+ <p>This style is only valid if the item describes a toolbar item.</p>
+ */
+ const short RADIO_CHECK = 64;
+
+ /** specifies if an icon is placed on left side of the text, like an entry in a taskbar.
+ <p>This style is only valid if the item describes a toolbar item and visible if
+ style of the toolbar is set to symboltext.</p>
+
+ <p>This style can also be used for custom toolbars and menus, in a
+ custom toolbar an item's Style setting can used to override the
+ toolbar container setting, the style can be bitwise OR-ed with
+ ::com::sun::star::ui::ItemStyle::TEXT to define text,
+ text+icon or icon only is to be displayed. Similarly for menu items,
+ an items Style can override the application setting to display either
+ text or icon (note: for menu an icon only setting interpreted as
+ icon+text)</p>
+ */
+ const short ICON = 128;
+
+ /** specifies that the item supports a dropdown menu or toolbar for additional functions.
+ <p>This style is only valid if the item describes a toolbar item.</p>
+ */
+ const short DROP_DOWN = 256;
+
+ /** indicates that the item continues to execute the command while you click and hold
+ the mouse button.
+ <p>This style is only valid if the item describes a toolbar item.</p>
+ */
+ const short REPEAT = 512;
+
+ /** indicates that the item only supports a dropdown menu or toolbar for
+ additional functions. There is no function on the button itself.
+ <p>This style is only valid if the item describes a toolbar item.</p>
+ */
+ const short DROPDOWN_ONLY = 1024;
+ /** indicates if icon, text or text+icon is displayed for the item.
+
+ <p>This style can be used for custom toolbars and menus, in a custom
+ toolbar an item's Style setting can used to override the toolbar
+ container setting, the style can be bitwise OR-ed with
+ com::sun::star::ui::ItemStyle::ICON to define text,
+ text+icon or icon only is to be displayed. Similarly for menu items,
+ an items Style can override the application setting to display either
+ text or icon (note: for menu an icon only setting interpreted as
+ icon+text)</p>
+ */
+ const short TEXT = 2048;
+
+ /** marks always visible element which can not be removed when statusbar
+ width is not sufficient.
+
+ @since LibreOffice 6.1
+ */
+ const short MANDATORY = 4096;
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ItemType.idl b/offapi/com/sun/star/ui/ItemType.idl
new file mode 100644
index 000000000..64a1b5549
--- /dev/null
+++ b/offapi/com/sun/star/ui/ItemType.idl
@@ -0,0 +1,49 @@
+/* -*- 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_ItemType_idl__
+#define __com_sun_star_ui_ItemType_idl__
+
+module com { module sun { module star { module ui {
+
+/** Determines the type of an item.
+
+ @since OOo 2.0
+ */
+constants ItemType
+{
+ /** a normal item
+ */
+ const short DEFAULT = 0;
+ /** a separator is inserted as a line.
+ */
+ const short SEPARATOR_LINE = 1;
+ /** a separator is inserted as a space.
+ */
+ const short SEPARATOR_SPACE = 2;
+ /** a line break is inserted.
+ */
+ const short SEPARATOR_LINEBREAK = 3;
+
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/LayoutSize.idl b/offapi/com/sun/star/ui/LayoutSize.idl
new file mode 100644
index 000000000..98fc05259
--- /dev/null
+++ b/offapi/com/sun/star/ui/LayoutSize.idl
@@ -0,0 +1,49 @@
+/* -*- 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_LayoutSize_idl__
+#define __com_sun_star_ui_LayoutSize_idl__
+
+module com { module sun { module star { module ui {
+
+/** Size used for layouting windows.
+ It specifies a range of valid values and a preferred value.
+ The values must not violate the relation 0 ≤ Minimum ≤ Preferred ≤ Maximum.
+
+ @param Minimum
+ Zero or positive. The value itself is included in the valid
+ range.
+ @param Maximum
+ A value larger than or equal to Minimum.
+ The special value -1 means that there is no upper bound. Every value larger than or
+ equal to Minimum is valid.
+ @param Preferred
+ The preferred size inside the valid range.
+*/
+struct LayoutSize
+{
+ long Minimum;
+ long Maximum;
+ long Preferred;
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ModuleAcceleratorConfiguration.idl b/offapi/com/sun/star/ui/ModuleAcceleratorConfiguration.idl
new file mode 100644
index 000000000..532e93fb0
--- /dev/null
+++ b/offapi/com/sun/star/ui/ModuleAcceleratorConfiguration.idl
@@ -0,0 +1,39 @@
+/* -*- 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_ModuleAcceleratorConfiguration_idl__
+#define __com_sun_star_ui_ModuleAcceleratorConfiguration_idl__
+
+#include <com/sun/star/ui/XAcceleratorConfiguration.idl>
+
+module com { module sun { module star { module ui {
+
+/**
+
+ @since LibreOffice 4.2
+*/
+service ModuleAcceleratorConfiguration : XAcceleratorConfiguration
+{
+ createWithModuleIdentifier([in] string ModuleIdentifier);
+};
+
+}; }; }; }; // com.sun.star
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ModuleUICategoryDescription.idl b/offapi/com/sun/star/ui/ModuleUICategoryDescription.idl
new file mode 100644
index 000000000..923b9a4ae
--- /dev/null
+++ b/offapi/com/sun/star/ui/ModuleUICategoryDescription.idl
@@ -0,0 +1,66 @@
+/* -*- 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_ModuleUICategoryDescription_idl__
+#define __com_sun_star_ui_ModuleUICategoryDescription_idl__
+
+#include <com/sun/star/container/XNameAccess.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** a service which provides information about the user interface command
+ categories of a single module.
+
+ <p>
+ Every OpenOffice.org module has an amount of commands that can be used by
+ user interface elements. This service provides access to the user interface
+ commands that are part of a single OpenOffice.org module, like Writer
+ or Calc.
+ </p>
+
+ @since OOo 2.0
+*/
+
+service ModuleUICategoryDescription
+{
+ /** provides access to user interface command categories of an installed
+ module.
+
+ <p>
+ An implementation must provide a language dependent string which
+ can be used by a UI to display the category name.
+ The key to a user interface command category depends on the specific
+ implementation. OpenOffice.org uses a pre-defined number of
+ identifiers defined in ::com::sun::star::frame::CommandGroup.
+ </p>
+
+ @see ::com::sun::star::frame::ModuleManager
+ @see ::com::sun::star::frame::CommandGroup
+ */
+
+ interface com::sun::star::container::XNameAccess;
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ModuleUICommandDescription.idl b/offapi/com/sun/star/ui/ModuleUICommandDescription.idl
new file mode 100644
index 000000000..d4364a329
--- /dev/null
+++ b/offapi/com/sun/star/ui/ModuleUICommandDescription.idl
@@ -0,0 +1,74 @@
+/* -*- 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_ModuleUICommandDescription_idl__
+#define __com_sun_star_ui_ModuleUICommandDescription_idl__
+
+#include <com/sun/star/container/XNameAccess.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** a service which provides information about the user interface commands of
+ a single module.
+
+ <p>
+ Every OpenOffice.org module has an amount of commands that can be used by
+ user interface elements. This service provides access to the user interface commands
+ that are part of a single OpenOffice.org module, like Writer or Calc.
+ </p>
+
+ @since OOo 2.0
+*/
+
+service ModuleUICommandDescription
+{
+ /** provides access to user interface commands of an installed module.
+
+ <p>
+ An implementation must provide a com::sun::star::uno::Sequence which
+ has com::sun::star::beans::PropertyValue as entries. The following
+ entries a defined:
+ <ul>
+ <li><b>Label</b><br>a string which specifies the short name of the user interface command with
+ mnemonic and optional subsequent ... if the command needs additional user input. This string
+ can directly be used to set the text of a menu item.</li>
+ <li><b>Name</b><br>a string which specifies the short name of the user interface command without
+ any additional information. It can be used for the bubble help.</li>
+ <li><b>Popup</b><br>a boolean which specifies if the user interface command is a unique
+ identifier for a pop-up menu. A pop-up menu has a label, but is not bound to a command.</li>
+ </ul>
+ The key to a user interface command description is the user interface command itself which has
+ the following syntax ".uno:$Command". For example ".uno:Open" shows the file open dialog.
+ A complete list of user interface commands can be found inside the latest OpenOffice Developers Guide
+ or online at http://framework.openoffice.org.
+ </p>
+
+ @see com::sun::star::frame::ModuleManager
+ */
+
+ interface com::sun::star::container::XNameAccess;
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ModuleUIConfigurationManager.idl b/offapi/com/sun/star/ui/ModuleUIConfigurationManager.idl
new file mode 100644
index 000000000..3c418fadd
--- /dev/null
+++ b/offapi/com/sun/star/ui/ModuleUIConfigurationManager.idl
@@ -0,0 +1,80 @@
+/* -*- 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_ModuleUIConfigurationManager_idl__
+#define __com_sun_star_ui_ModuleUIConfigurationManager_idl__
+
+#include <com/sun/star/ui/XModuleUIConfigurationManager2.idl>
+#include <com/sun/star/configuration/CorruptedUIConfigurationException.idl>
+#include <com/sun/star/beans/UnknownPropertyException.idl>
+#include <com/sun/star/lang/WrappedTargetException.idl>
+
+module com { module sun { module star { module ui {
+
+/** specifies a user interface configuration manager which gives access to user interface
+ configuration data of a module.
+
+ <p>
+ A module user interface configuration manager supports two layers of configuration settings
+ data:<br>
+ 1. Layer: A module default user interface configuration which describe all user interface
+ elements settings that are used by OpenOffice. It is not possible to insert, remove or change
+ elements settings in this layer through the interfaces.<br>
+ 2. Layer: A module user interface configuration which only contains customized user interface
+ elements and user-defined ones. All changes on user interface element settings are done on
+ this layer.
+ </p>
+
+ @since OOo 2.0
+*/
+
+service ModuleUIConfigurationManager : XModuleUIConfigurationManager2
+{
+ /** provides a function to initialize a module user interface configuration manager instance.
+
+ <p>
+ A module user interface configuration manager instance needs the following arguments as
+ com::sun::star::beans::PropertyValue to be in a working state:
+ <ul>
+ <li><b>DefaultConfigStorage</b>a reference to a com::sun::star::embed::Storage that
+ contains the default module user interface configuration settings.</li>
+ <li><b>UserConfigStorage</b>a reference to a com::sun::star::embed::Storage that
+ contains the user-defined module user interface configuration settings.</li>
+ <li><b>ModuleIdentifier</b>string that provides the module identifier.</li>
+ <li><b>UserRootCommit</b>a reference to a com::sun::star::embed::XTransactedObject which
+ represents the customizable root storage. Every implementation must use this reference to commit its
+ changes also at the root storage.</li>
+ </ul>
+ A non-initialized module user interface configuration manager cannot be used, it is treated
+ as a read-only container.
+ </p>
+ */
+ createDefault([in] string ModuleShortName, [in] string ModuleIdentifier)
+ raises ( com::sun::star::configuration::CorruptedUIConfigurationException,
+ com::sun::star::beans::UnknownPropertyException,
+ com::sun::star::lang::WrappedTargetException );
+
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ModuleUIConfigurationManagerSupplier.idl b/offapi/com/sun/star/ui/ModuleUIConfigurationManagerSupplier.idl
new file mode 100644
index 000000000..60e1bd58b
--- /dev/null
+++ b/offapi/com/sun/star/ui/ModuleUIConfigurationManagerSupplier.idl
@@ -0,0 +1,42 @@
+/* -*- 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_ModuleUIConfigurationManagerSupplier_idl__
+#define __com_sun_star_ui_ModuleUIConfigurationManagerSupplier_idl__
+
+#include <com/sun/star/ui/XModuleUIConfigurationManagerSupplier.idl>
+#include <com/sun/star/beans/XPropertySet.idl>
+
+module com { module sun { module star { module ui {
+
+/**
+ A legacy (single-instance) service-variant of
+ theModuleUIConfigurationManagerSupplier singleton.
+
+ @deprecated Use theModuleUIConfigurationManagerSupplier singleton instead.
+
+ @since OOo 2.0
+*/
+service ModuleUIConfigurationManagerSupplier : XModuleUIConfigurationManagerSupplier;
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/ModuleWindowStateConfiguration.idl b/offapi/com/sun/star/ui/ModuleWindowStateConfiguration.idl
new file mode 100644
index 000000000..5391847f5
--- /dev/null
+++ b/offapi/com/sun/star/ui/ModuleWindowStateConfiguration.idl
@@ -0,0 +1,88 @@
+/* -*- 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_ModuleWindowStateConfiguration_idl__
+#define __com_sun_star_ui_ModuleWindowStateConfiguration_idl__
+
+#include <com/sun/star/container/XNameContainer.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** a service which provides window based information about user interface
+ elements of a single application module.
+
+ <p>
+ Every OpenOffice.org module has an amount of user interface elements that can
+ be positioned, resized, closed and their style can be changed. This service
+ provides access to the window based information of available user interface
+ elements which are part of a single OpenOffice.org module, like Writer or
+ Calc.
+ </p>
+
+ @since OOo 2.0
+*/
+
+service ModuleWindowStateConfiguration
+{
+ /** provides read/write access to window based information of user interface
+ elements which are part of single installed module.
+
+ <p>
+ An implementation must provide a com::sun::star::uno::Sequence which
+ has com::sun::star::beans::PropertyValue as entries. The following
+ entries a defined:
+ <ul>
+ <li><b>Docked</b><br>a boolean which specifies if the window is docked or not.</li>
+ <li><b>DockingArea</b><br>a com::sun::star::ui::DockingArea
+ which specifies the docking area where the window is docked.</li>
+ <li><b>DockPos</b><br>a com::sun::star::awt::Point which specifies the
+ docked position of a window. The X and Y values are interpreted as a row/column number and
+ a pixel position for top/bottom docked windows. For left/right docked windows this is</li>
+ <li><b>DockSize</b><br>a com::sun::star::awt::Size which specifies
+ the docked size of the window. This property is currently not used by the layout manager
+ implementation. For future use.</li>
+ <li><b>Locked</b><br>a boolean which specifies if the window is locked or not. This property
+ is only valid for docked windows</li>
+ <li><b>Pos</b><br>a com::sun::star::awt::Point which specifies the
+ floating position in pixel of the window.</li>
+ <li><b>Size</b><br>a com::sun::star::awt::Size which specifies the
+ floating size in pixel of the window.</li>
+ <li><b>Style</b><br>a long which specifies the style of the window. A toolbar support the
+ following values: 0 = icons, 1 = text, 2 = text+icons.</li>
+ <li><b>UIName</b><br>a localized string which specifies the default window title.</li>
+ </ul>
+ The key to a user interface element is the resource URL which has
+ the following syntax "private:resource/$type/$name". For example "private:resource/toolbar/standardbar"
+ addresses the standard bar of a module.
+ A complete list of all user interface elements is available in the Developers Guide.
+ </p>
+
+ @see com::sun::star::frame::ModuleManager
+ */
+
+ interface com::sun::star::container::XNameContainer;
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/UICategoryDescription.idl b/offapi/com/sun/star/ui/UICategoryDescription.idl
new file mode 100644
index 000000000..96415ed44
--- /dev/null
+++ b/offapi/com/sun/star/ui/UICategoryDescription.idl
@@ -0,0 +1,40 @@
+/* -*- 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_UICategoryDescription_idl__
+#define __com_sun_star_ui_UICategoryDescription_idl__
+
+#include <com/sun/star/container/XNameAccess.idl>
+
+module com { module sun { module star { module ui {
+
+
+/**
+ A legacy (single-instance) service-variant of theUICategoryDescription singleton.
+
+ @deprecated Use theUICategoryDescription singleton instead.
+
+ @since OOo 2.0
+*/
+service UICategoryDescription : com::sun::star::container::XNameAccess;
+
+}; }; }; }; // com.sun.star.ui
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/UIConfigurationManager.idl b/offapi/com/sun/star/ui/UIConfigurationManager.idl
new file mode 100644
index 000000000..9b5fa9824
--- /dev/null
+++ b/offapi/com/sun/star/ui/UIConfigurationManager.idl
@@ -0,0 +1,39 @@
+/* -*- 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_UIConfigurationManager_idl__
+#define __com_sun_star_ui_UIConfigurationManager_idl__
+
+#include <com/sun/star/ui/XUIConfigurationManager2.idl>
+
+module com { module sun { module star { module ui {
+
+/** specifies a user interface configuration manager which controls
+ all customizable user interface elements of an object.
+
+ @since OOo 2.0
+*/
+
+service UIConfigurationManager : XUIConfigurationManager2;
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/UIElement.idl b/offapi/com/sun/star/ui/UIElement.idl
new file mode 100644
index 000000000..9ebceb714
--- /dev/null
+++ b/offapi/com/sun/star/ui/UIElement.idl
@@ -0,0 +1,89 @@
+/* -*- 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_UIElement_idl__
+#define __com_sun_star_ui_UIElement_idl__
+
+#include <com/sun/star/ui/XUIElement.idl>
+#include <com/sun/star/beans/XPropertySet.idl>
+#include <com/sun/star/lang/XInitialization.idl>
+#include <com/sun/star/lang/XComponent.idl>
+#include <com/sun/star/util/XUpdatable.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** specifies a user interface element.
+
+ <p>
+ A user interface element consists of a unique identifier and a type specifier. It
+ provides an interface to retrieve a special purpose interface which depends on
+ the specific user interface element type. Every user interface must be initialized
+ before it can be used.
+ </p>
+
+ @since OOo 2.0
+*/
+
+service UIElement
+{
+ /** provides a function to retrieve a special purpose interface which depends on
+ the specific user interface element type.
+ */
+ interface ::com::sun::star::ui::XUIElement;
+
+ /** interface to initialize a user interface element instance.
+
+ A user interface element must be initialized using
+ com::sun::star::lang::XInitialization::initialize() before
+ it can be used. The following property must be provided:
+ <ul>
+ <li><b>ResourceURL</b>specifies a string property which is the unique identifier of
+ the user interface element.</li>
+ </ul>
+
+ A user interface element factory creates and initializes every user interface element
+ correctly.
+
+ @see com::sun::star::ui::UIElementFactoryManager;
+ @see com::sun::star::ui::UIElementFactory
+ */
+ [optional] interface ::com::sun::star::lang::XInitialization;
+
+ /** used to notify an implementation that it needs to update its visual representation.
+
+ <p>
+ A user interface element implementation should check if it has to update its visual
+ representation. It is up to the implementation if it ignores notifications.
+ </p>
+ */
+ [optional] interface com::sun::star::util::XUpdatable;
+
+ /** controls the life-time of the object.
+ */
+ interface ::com::sun::star::lang::XComponent;
+};
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/UIElementFactory.idl b/offapi/com/sun/star/ui/UIElementFactory.idl
new file mode 100644
index 000000000..1ffcf6afe
--- /dev/null
+++ b/offapi/com/sun/star/ui/UIElementFactory.idl
@@ -0,0 +1,57 @@
+/* -*- 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_UIElementFactory_idl__
+#define __com_sun_star_ui_UIElementFactory_idl__
+
+#include <com/sun/star/ui/XUIElementFactory.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** specifies a user interface element factory that can create and initialize
+ a user interface element type.
+
+ <p>
+ It depends on the implementation which user interface element types can be
+ created. It is also possible that a factory is only able to create one
+ special user interface element. User interface element factories must be
+ registered at the single instance UIElementFactoryManager
+ service to provide access to itself.
+ </p>
+
+ @since OOo 2.0
+*/
+
+service UIElementFactory
+{
+ /** this interface provides a function to create and initialize new
+ instances of user interface elements.
+
+ @see XUIElementFactory
+ */
+ interface com::sun::star::ui::XUIElementFactory;
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/UIElementFactoryManager.idl b/offapi/com/sun/star/ui/UIElementFactoryManager.idl
new file mode 100644
index 000000000..8a1645141
--- /dev/null
+++ b/offapi/com/sun/star/ui/UIElementFactoryManager.idl
@@ -0,0 +1,43 @@
+/* -*- 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_UIElementFactoryManager_idl__
+#define __com_sun_star_ui_UIElementFactoryManager_idl__
+
+#include <com/sun/star/ui/XUIElementFactoryManager.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/**
+ A legacy (single-instance) service-variant of theUIElementFactoryManager singleton.
+
+ @deprecated Use theUIElementFactoryManager singleton instead.
+
+ @since OOo 2.0
+*/
+
+service UIElementFactoryManager : XUIElementFactoryManager;
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/UIElementSettings.idl b/offapi/com/sun/star/ui/UIElementSettings.idl
new file mode 100644
index 000000000..dbe0b8c65
--- /dev/null
+++ b/offapi/com/sun/star/ui/UIElementSettings.idl
@@ -0,0 +1,81 @@
+/* -*- 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_UIElementSettings_idl__
+#define __com_sun_star_ui_UIElementSettings_idl__
+
+#include <com/sun/star/container/XIndexAccess.idl>
+#include <com/sun/star/lang/XSingleComponentFactory.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/**
+ describes the internal structure of a configurable user interface element.
+
+ <p>
+ No assumption is made about any graphical representation:
+ You could have a menu or a toolbar working with the same UIElementSettings
+ although limitations based on the real user interface element may be visible.
+ </p>
+
+ @since OOo 2.0
+*/
+service UIElementSettings
+{
+ /** provides access to the structure of the user interface element.
+
+ <p>
+ The container contains the items of the user interface element. Every
+ item is stored as a sequence of com::sun::star::beans::PropertyValue.
+ The properties insides the sequence are defined by the service com::sun::star::ui::ItemDescriptor.
+ It depends on the function which provides these service if the container is shareable read-only or exclusive writable.
+
+ @see com::sun::star::ui::ItemDescriptor
+ @see com::sun::star::ui::ItemType
+ @see com::sun::star::ui::ItemStyle
+ </p>
+ */
+ interface ::com::sun::star::container::XIndexAccess;
+
+
+ /** provides access to an optional factory interface to create sub container.
+
+ <p>
+ The factory should be used to create sub container within this user interface element settings. This interface is only
+ available if the container is exclusive writable.
+ </p>
+ */
+ [optional] interface ::com::sun::star::lang::XSingleComponentFactory;
+
+ /** determine an optional user interface name of the user interface element.
+
+ <p>
+ A toolbar can show its user interface name on the window title, when it is in floating mode.
+ </p>
+ */
+ [optional, property] string UIName;
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/UIElementType.idl b/offapi/com/sun/star/ui/UIElementType.idl
new file mode 100644
index 000000000..91bf96ded
--- /dev/null
+++ b/offapi/com/sun/star/ui/UIElementType.idl
@@ -0,0 +1,77 @@
+/* -*- 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_UIElementType_idl__
+#define __com_sun_star_ui_UIElementType_idl__
+
+module com { module sun { module star { module ui {
+
+/** determine the type of a user interface element which is controlled
+ by a layout manager.
+
+ @since OOo 2.0
+ */
+constants UIElementType
+{
+ /** unknown user interface element type, which can be used as a wildcard
+ to specify all types.
+ */
+ const short UNKNOWN = 0;
+
+ /** specifies a menu bar.
+ */
+ const short MENUBAR = 1;
+
+ /** specifies a pop-up menu.
+ */
+ const short POPUPMENU = 2;
+
+ /** specifies a toolbar.
+ */
+ const short TOOLBAR = 3;
+
+ /** specifies a statusbar.
+ */
+ const short STATUSBAR = 4;
+
+ /** specifies a floating window, which can also be docked.
+ */
+ const short FLOATINGWINDOW = 5;
+
+ /** specifies a floating window, which can also be docked.
+ */
+ const short PROGRESSBAR = 6;
+
+ /** specifies a tool panel
+ */
+ const short TOOLPANEL = 7;
+
+ /** specifies a window that can be docked.
+ */
+ const short DOCKINGWINDOW = 7;
+
+ /** specifies the number of constants.
+ */
+ const short COUNT = 8;
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/WindowContentFactory.idl b/offapi/com/sun/star/ui/WindowContentFactory.idl
new file mode 100644
index 000000000..2f61ebefa
--- /dev/null
+++ b/offapi/com/sun/star/ui/WindowContentFactory.idl
@@ -0,0 +1,49 @@
+/* -*- 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_WindowContentFactory_idl__
+#define __com_sun_star_ui_WindowContentFactory_idl__
+
+#include <com/sun/star/lang/XSingleComponentFactory.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** specifies a factory which creates a window that is a container for user
+ interface elements. Dependent on the provided arguments different window
+ types can be created. This container window must be capable of being
+ integrated into another window (e.g. docking or floating windows).
+
+ <p>
+ The specific type of the created window depends on the provided arguments.
+ </p>
+
+ @since OOo 3.1
+*/
+
+service WindowContentFactory : com::sun::star::lang::XSingleComponentFactory
+{
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/WindowContentFactoryManager.idl b/offapi/com/sun/star/ui/WindowContentFactoryManager.idl
new file mode 100644
index 000000000..bddb5a7f9
--- /dev/null
+++ b/offapi/com/sun/star/ui/WindowContentFactoryManager.idl
@@ -0,0 +1,41 @@
+/* -*- 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_WindowContentFactoryManager_idl__
+#define __com_sun_star_ui_WindowContentFactoryManager_idl__
+
+#include <com/sun/star/lang/XSingleComponentFactory.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/**
+ A legacy (single-instance) service-variant of theWindowContentFactoryManager singleton.
+
+ @deprecated Use theWindowContentFactoryManager singleton instead.
+
+ @since LibreOffice 4.1
+*/
+service WindowContentFactoryManager : com::sun::star::lang::XSingleComponentFactory;
+
+
+}; }; }; };
+
+#endif
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/WindowStateConfiguration.idl b/offapi/com/sun/star/ui/WindowStateConfiguration.idl
new file mode 100644
index 000000000..562490eb3
--- /dev/null
+++ b/offapi/com/sun/star/ui/WindowStateConfiguration.idl
@@ -0,0 +1,44 @@
+/* -*- 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_WindowStateConfiguration_idl__
+#define __com_sun_star_ui_WindowStateConfiguration_idl__
+
+#include <com/sun/star/container/XNameAccess.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/**
+ A legacy (single-instance) service-variant of theWindowStateConfiguration singleton.
+
+ @deprecated Use theWindowStateConfiguration singleton instead.
+
+ @since OOo 2.0
+*/
+
+service WindowStateConfiguration : com::sun::star::container::XNameAccess;
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XAcceleratorConfiguration.idl b/offapi/com/sun/star/ui/XAcceleratorConfiguration.idl
new file mode 100644
index 000000000..39d02b28d
--- /dev/null
+++ b/offapi/com/sun/star/ui/XAcceleratorConfiguration.idl
@@ -0,0 +1,272 @@
+/* -*- 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_XAcceleratorConfiguration_idl__
+#define __com_sun_star_ui_XAcceleratorConfiguration_idl__
+
+#include <com/sun/star/ui/XUIConfiguration.idl>
+#include <com/sun/star/ui/XUIConfigurationPersistence.idl>
+#include <com/sun/star/ui/XUIConfigurationStorage.idl>
+#include <com/sun/star/awt/KeyEvent.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+module com { module sun { module star { module ui {
+
+/** provides read/write access to an accelerator configuration set.
+
+ <p>
+ Such configuration set base on:<br>
+ <ul>
+ <li>Key events structure</li>
+ <li>and Commands, which are represented as URLs; describing
+ a function, which and can be executed using the dispatch API.</li>
+ </ul>
+ </p>
+
+ <p>
+ Note further:<br>
+ All changes you made on this configuration access modify the
+ configuration set inside memory only. You have to use
+ the com::sun::star::util::XFlushable interface
+ (which must be available at the same implementation object too), to
+ make it persistent.
+ </p>
+
+ @see AcceleratorConfiguration
+ @see dom::sun::star::util::XFlushable
+
+ @since OOo 2.0
+*/
+published interface XAcceleratorConfiguration
+{
+ /** return the list of all key events, which
+ are available at this configuration set.
+
+ <p>
+ The key events are the "primary keys" of this configuration sets.
+ Means: Commands are registered for key events.
+ </p>
+
+ <p>
+ Such key event can be mapped to its bound command,
+ using the method getCommandForKeyEvent().
+ </p>
+
+ @see getCommandForKeyEvent().
+
+ @return A list of key events.
+ */
+ sequence< com::sun::star::awt::KeyEvent > getAllKeyEvents();
+
+ /** return the registered command for the specified key event.
+
+ <p>
+ This function can be used to:<br>
+ <ul>
+ <li>by a generic service, which can execute commands if a
+ keyboard event occurs.</li>
+ <li>or to iterate over the whole container and change some
+ accelerator bindings.</li>
+ </ul>
+ </p>
+
+ @param aKeyEvent
+ the key event, where the registered command is searched for.
+
+ @return The registered command for the specified key event.
+
+ @throws ::com::sun::star::container::NoSuchElementException
+ if the key event is an invalid one or does not exists
+ inside this configuration set.
+ */
+ string getCommandByKeyEvent( [in] com::sun::star::awt::KeyEvent aKeyEvent )
+ raises(com::sun::star::container::NoSuchElementException);
+
+ /** modify or create a key - command - binding.
+
+ <p>
+ If the specified key event does not already exists inside this
+ configuration access, it will be created and the command will be
+ registered for it.
+ </p>
+
+ <p>
+ If the specified key event already exists, its command will
+ be overwritten with the new command. There is no warning nor any error
+ about that! The outside code has to use the method getCommandForKeyEvent()
+ to check for possible collisions.
+ </p>
+
+ <p>
+ Note: This method can't be used to remove entities from the configuration set.
+ Empty parameters will result into an exception!
+ Use the method removeKeyEvent() instead.
+ </p>
+
+ @see removeKeyEvent()
+
+ @param aKeyEvent
+ specify the key event, which must be updated or new created.
+
+ @param sCommand
+ the new command for the specified key event.
+
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the key event isn't a valid one. Commands can be
+ checked only, if they are empty. Because every URL schema can be used
+ by commands in general, so it's not possible to validate it.
+ */
+ void setKeyEvent( [in] com::sun::star::awt::KeyEvent aKeyEvent,
+ [in] string sCommand )
+ raises(com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException);
+
+ /** remove a key-command-binding from this configuration set.
+
+ @param aKeyEvent
+ the key event, which should be removed.
+
+ @throws ::com::sun::star::container::NoSuchElementException
+ if the key event does not exists inside this configuration set.
+ */
+ void removeKeyEvent( [in] com::sun::star::awt::KeyEvent aKeyEvent )
+ raises(com::sun::star::container::NoSuchElementException);
+
+ /** optimized access to the relation "command-key" instead
+ of "key-command" which is provided normally by this interface.
+
+ <p>
+ It can be used to implement collision handling, if more than one
+ key event match to the same command. The returned list contains all
+ possible key events - and the outside code can select a possible one.
+ Of course - mostly this list will contain only one key event ...
+ </p>
+
+ @param sCommand
+ the command, where key bindings are searched for.
+
+ @return A list of com::sun::star::awt::KeyEvent structures,
+ where the specified command is registered for.
+
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the specified command is empty. It can't be checked, if a command
+ is valid - because every URL schema can be used here.
+
+ @throws ::com::sun::star::container::NoSuchElementException
+ if the specified command isn't empty but does not
+ occur inside this configuration set.
+ */
+ sequence< com::sun::star::awt::KeyEvent > getKeyEventsByCommand( [in] string sCommand )
+ raises(com::sun::star::lang::IllegalArgumentException ,
+ com::sun::star::container::NoSuchElementException);
+
+ /** optimized function to map a list of commands to a corresponding
+ list of key events.
+
+ <p>
+ It provides a fast mapping, which is e.g. needed by a menu or toolbar implementation.
+ E.g. a sub menu is described by a list of commands - and the implementation of the menu
+ must show the corresponding shortcuts. Iteration over all items of this configuration
+ set can be very expensive.
+ </p>
+
+ <p>
+ Instead to the method getKeyEventsForCommand() the returned list contains only
+ one(!) key event bound to one(!) requested command. If more than one key event
+ is bound to a command - a selection is done inside this method.
+ This internal selection can't be influenced from outside.
+ </p>
+
+ @attention Because it's not defined, that any command (e.g. configured inside a menu)
+ must have an accelerator - we can't reject the call if at least one command
+ does not occur inside this configuration set ...
+ We handle it more gracefully - and return an empty item instead of throwing
+ and exception.
+
+ @param lCommandList
+ a list of commands
+
+ @return A (non packed!) list of key events, where every item match by index
+ directly to a command of the specified <var>CommandList</var>.
+ If a command does not exists inside this configuration set, the
+ corresponding any value will be empty.
+
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if at least one of the specified commands is empty.
+ It can't be checked, if a command is valid -
+ because every URL schema can be used here.
+ */
+ sequence< any > getPreferredKeyEventsForCommandList( [in] sequence< string > lCommandList )
+ raises(com::sun::star::lang::IllegalArgumentException,
+ com::sun::star::container::NoSuchElementException);
+
+ /** search for a key-command-binding inside this configuration set,
+ where the specified command is used.
+
+ <p>
+ If such binding could be located, the command will be removed
+ from it. If as result of that the key binding will be empty,
+ if will be removed too.
+ </p>
+
+ <p>
+ This is an optimized method, which can perform removing of commands
+ from this configuration set. Because normally Commands are "foreign keys"
+ and key identifier the "primary keys" - it needs some work to remove
+ all commands outside this container ...
+ </p>
+
+ @param sCommand
+ the command, which should be removed from any key binding.
+
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ if the specified command is empty.
+
+ @throws ::com::sun::star::container::NoSuchElementException
+ if the specified command isn't used inside this configuration set.
+ */
+ void removeCommandFromAllKeyEvents( [in] string sCommand )
+ raises(com::sun::star::lang::IllegalArgumentException ,
+ com::sun::star::container::NoSuchElementException);
+
+ /** specifies a persistence interface which supports to
+ load/store accelerator configuration data to a storage
+ and to retrieve information about the current state.
+ */
+ interface com::sun::star::ui::XUIConfigurationPersistence;
+
+ /** connects this configuration to a new storage
+ which must be used further on subsequent calls of
+ com::sun::star::util::XConfigurationPersistence.load()
+ and com::sun::star::util::XConfigurationPersistence.store().
+ */
+ interface com::sun::star::ui::XUIConfigurationStorage;
+
+ /** supports to notify other implementations about
+ changes of this accelerator configuration.
+ */
+ interface com::sun::star::ui::XUIConfiguration;
+
+}; // interface XAcceleratorConfiguration
+
+}; }; }; }; // com.sun.star
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XContextChangeEventListener.idl b/offapi/com/sun/star/ui/XContextChangeEventListener.idl
new file mode 100644
index 000000000..71b352d76
--- /dev/null
+++ b/offapi/com/sun/star/ui/XContextChangeEventListener.idl
@@ -0,0 +1,38 @@
+/* -*- 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_XContextChangeEventListener_idl__
+#define __com_sun_star_ui_XContextChangeEventListener_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/lang/XEventListener.idl>
+#include <com/sun/star/ui/ContextChangeEventObject.idl>
+
+module com { module sun { module star { module ui {
+
+interface XContextChangeEventListener : ::com::sun::star::lang::XEventListener
+{
+ void notifyContextChangeEvent (
+ [in] com::sun::star::ui::ContextChangeEventObject event);
+} ;
+
+} ; } ; } ; } ;
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XContextChangeEventMultiplexer.idl b/offapi/com/sun/star/ui/XContextChangeEventMultiplexer.idl
new file mode 100644
index 000000000..d768854ab
--- /dev/null
+++ b/offapi/com/sun/star/ui/XContextChangeEventMultiplexer.idl
@@ -0,0 +1,116 @@
+/* -*- 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_XContextChangeEventMultiplexer_idl__
+#define __com_sun_star_ui_XContextChangeEventMultiplexer_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/ui/XContextChangeEventListener.idl>
+#include <com/sun/star/ui/ContextChangeEventObject.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+module com { module sun { module star { module ui {
+
+/** Provide a central access point for a group of events.
+
+ Listeners can be added with a simple restriction on the event source.
+ They are only called for events that originate at the specified source.
+
+ Event providers can broadcast an event to all interested listeners.
+
+ The XEventMultiplexer interface is typically implemented as a singleton
+*/
+interface XContextChangeEventMultiplexer : ::com::sun::star::uno::XInterface
+{
+ /** Add an event listener that is called only when events are broadcast for the specified
+ event focus.
+
+ @param xListener
+ An empty reference results in an InvalidArgumentException.
+
+ One listener may be added more than once for different
+ event foci. Adding a listener a second time for the same
+ event focus results in an InvalidArgumentException.
+
+ @param xEventFocus
+ An empty reference is a valid value. In this case the
+ registered listener will be called for every event
+ broadcast, regardless of its event focus.
+
+ The event focus may or may not be the source of the event.
+
+ A typical example for an event focus is the XController of
+ a view. Using an XController restricts events passed to
+ a listener to events that belong to one view.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+
+ */
+ void addContextChangeEventListener (
+ [in] com::sun::star::ui::XContextChangeEventListener xListener,
+ [in] com::sun::star::uno::XInterface xEventFocus)
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+ /** Remove an event listener for the specified event focus.
+
+ When the same listener was added for other event foci then
+ these associations remain unmodified.
+
+ @param xListener
+ An empty reference results in an InvalidArgumentException.
+
+ When the listener is not registered for the given event
+ focus then an InvalidArgumentException is thrown.
+
+ @param xEventFocus
+ The listener is only removed for this event focus.
+ An empty reference is a valid value.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ */
+ void removeContextChangeEventListener (
+ [in] com::sun::star::ui::XContextChangeEventListener xListener,
+ [in] com::sun::star::uno::XInterface xEventFocus)
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+ /** Remove an event listener for all event foci.
+
+ @param xListener
+ An empty reference results in an InvalidArgumentException.
+
+ It is not an error when the listener is not registered for any event focus.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ */
+ void removeAllContextChangeEventListeners (
+ [in] com::sun::star::ui::XContextChangeEventListener xListener)
+ raises (com::sun::star::lang::IllegalArgumentException);
+
+
+ /** Call all event listeners that were added for the specified event focus.
+ */
+ void broadcastContextChangeEvent (
+ [in] com::sun::star::ui::ContextChangeEventObject aEvent,
+ [in] com::sun::star::uno::XInterface xEventFocus);
+} ;
+
+} ; } ; } ; } ;
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XContextMenuInterception.idl b/offapi/com/sun/star/ui/XContextMenuInterception.idl
new file mode 100644
index 000000000..881cf2d01
--- /dev/null
+++ b/offapi/com/sun/star/ui/XContextMenuInterception.idl
@@ -0,0 +1,49 @@
+/* -*- 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_XContextMenuInterception_idl__
+#define __com_sun_star_ui_XContextMenuInterception_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+module com { module sun { module star { module ui {
+
+
+ published interface XContextMenuInterceptor;
+/** This interface enables an object to get interceptors registered that
+ change context menus or prevent them from being executed.
+ */
+published interface XContextMenuInterception : ::com::sun::star::uno::XInterface
+{
+ /** registers an XContextMenuInterceptor, which will become
+ the first interceptor in the chain of registered interceptors.
+ */
+
+ void registerContextMenuInterceptor( [in]XContextMenuInterceptor Interceptor);
+ /** removes an XContextMenuInterceptor which was previously registered
+ using XContextMenuInterception::registerContextMenuInterceptor().
+
+ <p>The order of removals is arbitrary. It is not necessary to remove the last
+ registered interceptor first.</p>
+ */
+ void releaseContextMenuInterceptor( [in]XContextMenuInterceptor Interceptor);
+};
+}; }; }; };
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XContextMenuInterceptor.idl b/offapi/com/sun/star/ui/XContextMenuInterceptor.idl
new file mode 100644
index 000000000..1be269843
--- /dev/null
+++ b/offapi/com/sun/star/ui/XContextMenuInterceptor.idl
@@ -0,0 +1,44 @@
+/* -*- 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_XContextMenuInterceptor_idl__
+#define __com_sun_star_ui_XContextMenuInterceptor_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/ui/ContextMenuInterceptorAction.idl>
+#include <com/sun/star/ui/ContextMenuExecuteEvent.idl>
+
+module com { module sun { module star { module ui {
+
+/** This interface enables the object to be registered as interceptor to
+ change context menus or prevent them from being executed.
+ */
+published interface XContextMenuInterceptor : ::com::sun::star::uno::XInterface
+{
+ /** notifies the interceptor about the request to execute a ContextMenu.
+ The interceptor has to decide whether the menu should be executed with or without
+ being modified or may ignore the call.
+ */
+ ContextMenuInterceptorAction notifyContextMenuExecute([in]ContextMenuExecuteEvent aEvent);
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XDeck.idl b/offapi/com/sun/star/ui/XDeck.idl
new file mode 100644
index 000000000..e5f73e295
--- /dev/null
+++ b/offapi/com/sun/star/ui/XDeck.idl
@@ -0,0 +1,92 @@
+/* -*- 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/.
+ *
+ */
+#ifndef __com_sun_star_ui_XDeck_idl__
+#define __com_sun_star_ui_XDeck_idl__
+
+#include <com/sun/star/ui/XPanels.idl>
+
+
+ module com { module sun { module star { module ui {
+
+/** provides access to Deck
+ @since LibreOffice 5.1
+*/
+
+interface XDeck
+
+{
+ /** The deck identifier
+ */
+ string getId();
+
+ /** Get the deck title string
+ */
+ string getTitle();
+
+ /** Set the deck title string
+
+ @param newTitle
+ The new title string
+ */
+ void setTitle( [in] string newTitle );
+
+ /** Is the deck the active one
+ */
+ boolean isActive();
+
+ /** Activate the deck and display its content
+
+ @param bActivate
+ The requested state for the deck
+ <ul>
+ <li>TRUE sets the deck as the active one</li>
+ <li>FALSE hide the deck and defaults to the first deck of the sidebar</li>
+ </ul>
+ */
+ void activate( [in] boolean bActivate );
+
+ /** Get the ordering index of the deck button in sidebar
+ */
+ long getOrderIndex();
+
+ /** Set the ordering index of the deck button in sidebar
+
+ @param newOrderIndex
+ The new position
+ */
+ void setOrderIndex( [in] long newOrderIndex );
+
+ /** Move deck button at first position in sidebar
+ */
+ void moveFirst();
+
+ /** Move deck button at last position in sidebar
+ */
+ void moveLast();
+
+ /** Move deck one step up in the sidebar
+ */
+ void moveUp();
+
+ /** Move deck one step down in the sidebar
+ */
+ void moveDown();
+
+ /** Panels collection attached to the deck
+ */
+ com::sun::star::ui::XPanels getPanels();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XDecks.idl b/offapi/com/sun/star/ui/XDecks.idl
new file mode 100644
index 000000000..0ed297702
--- /dev/null
+++ b/offapi/com/sun/star/ui/XDecks.idl
@@ -0,0 +1,37 @@
+/* -*- 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/.
+ *
+ */
+#ifndef __com_sun_star_ui_XDecks_idl__
+#define __com_sun_star_ui_XDecks_idl__
+
+#include <com/sun/star/container/XIndexAccess.idl>
+#include <com/sun/star/container/XNameAccess.idl>
+
+ module com { module sun { module star { module ui {
+
+/** provides access to Decks of a Sidebar.
+ @since LibreOffice 5.1
+*/
+
+interface XDecks
+
+{
+ /**
+ returned ANYs are actually of type com::sun::star::ui::XDeck
+ */
+ interface com::sun::star::container::XIndexAccess;
+ interface com::sun::star::container::XNameAccess;
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ \ No newline at end of file
diff --git a/offapi/com/sun/star/ui/XDockingAreaAcceptor.idl b/offapi/com/sun/star/ui/XDockingAreaAcceptor.idl
new file mode 100644
index 000000000..3bed41314
--- /dev/null
+++ b/offapi/com/sun/star/ui/XDockingAreaAcceptor.idl
@@ -0,0 +1,102 @@
+/* -*- 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_XDockingAreaAcceptor_idl__
+#define __com_sun_star_ui_XDockingAreaAcceptor_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/awt/Rectangle.idl>
+#include <com/sun/star/awt/XWindow.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** this interface enables developer to implement different docking area
+ acceptors which are used by the frame based layout manager.
+
+ <p>
+ A docking area acceptor is responsible to control the docking area of a
+ container window. As OLE for example supports inplace and outplace editing,
+ there are different parts of code responsible for the container window.
+ This interface enables developer to make support implementations for these
+ scenarios.
+
+ @see com::sun::star::frame::XFrame
+ </p>
+
+ @since OOo 2.0
+*/
+
+
+interface XDockingAreaAcceptor : com::sun::star::uno::XInterface
+{
+ /** provide the container window where the layout manager can request border
+ space for docking windows.
+
+ <p>
+ Additionally the layout manager uses this window to create its own child
+ windows for docking purposes.
+ </p>
+ */
+ com::sun::star::awt::XWindow getContainerWindow();
+
+ /** method to ask an implementation if the provided space for docking windows
+ is available or not.
+
+ <p>
+ The com::sun::star::awt::Rectangle parameter is
+ filled by the caller with pixel data. The members of
+ com::sun::star::awt::Rectangle must be filled
+ as following:
+ <ul>
+ <li>X = requested area on left side (in pixel)</li>
+ <li>Y = requested area on top side (in pixel)</li>
+ <li>Width = requested area on right side (in pixel)</li>
+ <li>Height = requested area on bottom side (in pixel)</li>
+ </ul>
+ </p>
+ */
+ boolean requestDockingAreaSpace( [in] com::sun::star::awt::Rectangle RequestedSpace );
+
+ /** method to brief an implementation that we need new border space.
+
+ <p>
+ The callee must size its document window so that we have the amount
+ of space we have provided. The com::sun::star::awt::Rectangle
+ parameter is filled by the caller with pixel data. The members of
+ com::sun::star::awt::Rectangle must be filled as
+ following:
+ <ul>
+ <li>X = new area on left side (in pixel)</li>
+ <li>Y = new area on top side (in pixel)</li>
+ <li>Width = new area on right side (in pixel)</li>
+ <li>Height = new area on bottom side (in pixel)</li>
+ </ul>
+ </p>
+ */
+ void setDockingAreaSpace( [in] com::sun::star::awt::Rectangle BorderSpace );
+};
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XImageManager.idl b/offapi/com/sun/star/ui/XImageManager.idl
new file mode 100644
index 000000000..1bf87c9fc
--- /dev/null
+++ b/offapi/com/sun/star/ui/XImageManager.idl
@@ -0,0 +1,223 @@
+/* -*- 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_XImageManager_idl__
+#define __com_sun_star_ui_XImageManager_idl__
+
+#include <com/sun/star/lang/XComponent.idl>
+#include <com/sun/star/graphic/XGraphic.idl>
+#include <com/sun/star/ui/XUIConfigurationListener.idl>
+#include <com/sun/star/ui/XUIConfigurationPersistence.idl>
+#include <com/sun/star/ui/XUIConfiguration.idl>
+#include <com/sun/star/ui/ImageType.idl>
+#include <com/sun/star/lang/XInitialization.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#include <com/sun/star/lang/IllegalAccessException.idl>
+
+module com { module sun { module star { module ui {
+
+/** specifies access functions to an images manager interface to add,
+ replace and remove images associations to command URLs.
+
+ <p>
+ An image manager controls a number of image sets which are specified
+ by an ImageType.
+ </p>
+*/
+
+interface XImageManager
+{
+ /** resets the image manager to default data.
+
+ <p>
+ This means that all user images of the instance will be removed.
+ </p>
+ */
+ void reset() raises ( com::sun::star::lang::IllegalArgumentException, com::sun::star::lang::IllegalAccessException );
+
+ /** 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 CommandURL
+ a command URL that should be checked for an associated image.
+
+ @return
+ `TRUE` if an image is associated, otherwise `FALSE`.
+ */
+ boolean hasImage( [in] short nImageType, [in] string CommandURL ) 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
+ <var>aCommandURLSequence</var> contains an invalid command
+ URL a com::sun::star::lang::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.
+
+ <p>
+ If a command URL cannot be found the replace call will be omitted. If
+ <var>aCommandURLSequence</var> contains an invalid command URL a
+ com::sun::star::lang::IllegalArgumentException
+ is thrown. If the image manager is associated with a read-only configuration
+ manager a com::sun::star::lang::IllegalAccessException
+ is thrown.
+ </p>
+ */
+ 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 CommandURLs
+ a sequence of command URLs for which the images should be removed.
+
+ <p>
+ If the <var>aCommandURLSequence</var> contains an invalid command URL a
+ com::sun::star::lang::IllegalArgumentException is
+ thrown. If the image manager is associated with a read-only configuration
+ manager a com::sun::star::lang::IllegalAccessException
+ is thrown.
+ </p>
+ */
+ void removeImages( [in] short nImageType, [in] sequence< string > CommandURLs ) raises ( com::sun::star::lang::IllegalArgumentException, com::sun::star::lang::IllegalAccessException );
+
+ /** inserts new image/command associations to an image manager.
+
+ @param nImageType
+ specifies the image type for this association operation.
+
+ @param aCommandURLSequence
+ a sequence of command URLs which specify which commands get a new image.
+
+ @param aGraphicSequence
+ a sequence of graphic objects which should be associated with the provided
+ command URLs.
+
+ <p>
+ If an association is already present it is replaced. If
+ <var>aCommandURLSequence</var> contains an invalid command URL a
+ com::sun::star::lang::IllegalArgumentException
+ is thrown. If the configuration manager is read-only a
+ com::sun::star::lang::IllegalAccessException is
+ thrown.
+ </p>
+ */
+ 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.
+
+ <p>
+ 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 com::sun::star::container::XNameAccess
+ holds the information. The access key is a command URL and provides a
+ ::com::sun::star::graphic::XGraphic. This container
+ is placed into the
+ com::sun::star::ui::ConfigurationEvent::Element.
+ The image set which has been changed is put into the
+ com::sun::star::ui::ConfigurationEvent::aInfo().
+ </p>
+ */
+ interface com::sun::star::ui::XUIConfiguration;
+
+ /** allows controlling or observing the lifetime of an image manager
+ instance.
+
+ <p>The owner of the object may dispose of this object using
+ com::sun::star::lang::XComponent::dispose().
+ </p>
+ */
+ interface ::com::sun::star::lang::XComponent;
+
+ /** initializes an image manager instance.
+
+ An image manager instance must be initialized using
+ com::sun::star::lang::XInitialization::initialize()
+ before it can be used.<br>
+ The following property must be provided if the image manager is
+ related to a module:
+ <ul>
+ <li><b>ModuleIdentifier</b>specifies a string property which is the
+ unique identifier of module.
+ </li>
+ <li><b>UserConfigStorage</b>specifies a
+ com::sun::star::embed::XStorage property which
+ provides access to the configuration storage of the module.
+ </li>
+ <li><b>UserRootCommit</b>specifies an optional
+ com::sun::star::embed::XTransactedObject
+ property which makes it possible to commit a root storage.
+ </li>
+ </ul>
+ */
+ interface ::com::sun::star::lang::XInitialization;
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XModuleUIConfigurationManager.idl b/offapi/com/sun/star/ui/XModuleUIConfigurationManager.idl
new file mode 100644
index 000000000..4b2e05b0a
--- /dev/null
+++ b/offapi/com/sun/star/ui/XModuleUIConfigurationManager.idl
@@ -0,0 +1,92 @@
+/* -*- 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_XModuleUIConfigurationManager_idl__
+#define __com_sun_star_ui_XModuleUIConfigurationManager_idl__
+
+#include <com/sun/star/container/XIndexContainer.idl>
+#include <com/sun/star/container/XIndexAccess.idl>
+#include <com/sun/star/container/NoSuchElementException.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#include <com/sun/star/lang/IllegalAccessException.idl>
+
+module com { module sun { module star { module ui {
+
+/** specifies specific functions of a module based user interface
+ configuration manager interface.
+
+ <p>
+ A module user interface configuration manager supports, unlike a
+ document based ui configuration manager, two layers of configuration
+ settings data:<br>
+ 1. Layer: A module default user interface configuration which
+ describe all user interface elements settings that are
+ used by OpenOffice. It is not possible to insert, remove
+ or change elements settings in this layer through the
+ interfaces.<br>
+ 2. Layer: A module user interface configuration which only contains
+ customized user interface elements and user-defined ones.
+ All changes on user interface element settings are done on
+ this layer. This layer is the same as the document ui
+ configuration manager uses.
+ </p>
+
+ @since OOo 2.0
+*/
+
+interface XModuleUIConfigurationManager : ::com::sun::star::uno::XInterface
+{
+ /** determine if the settings of a user interface element is part
+ of the default layer of the user interface configuration manager.
+
+ @param ResourceURL
+ a resource URL which identifies the user interface element. A
+ resource URL must meet the following syntax:
+ "private:resource/$type/$name. It is only allowed to use ASCII
+ characters for type and name.
+
+ @return
+ `TRUE` if settings have been found in the default layer,
+ otherwise `FALSE`.
+ */
+ boolean isDefaultSettings( [in] string ResourceURL ) raises ( com::sun::star::lang::IllegalArgumentException );
+
+ /** retrieves the settings from the default layer of the user interface
+ configuration manager if it has a default layer.
+
+ @param ResourceURL
+ a resource URL which identifies the user interface element. A
+ resource URL must meet the following syntax:
+ "private:resource/$type/$name. It is only allowed to use ASCII
+ characters for type and name.
+
+ @return
+ `TRUE` if default settings have been found in the default layer,
+ otherwise `FALSE`.
+ */
+ ::com::sun::star::container::XIndexAccess getDefaultSettings( [in] string ResourceURL ) raises ( com::sun::star::container::NoSuchElementException, com::sun::star::lang::IllegalArgumentException );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XModuleUIConfigurationManager2.idl b/offapi/com/sun/star/ui/XModuleUIConfigurationManager2.idl
new file mode 100644
index 000000000..3dd4b4805
--- /dev/null
+++ b/offapi/com/sun/star/ui/XModuleUIConfigurationManager2.idl
@@ -0,0 +1,62 @@
+/* -*- 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_XModuleUIConfigurationManager2_idl__
+#define __com_sun_star_ui_XModuleUIConfigurationManager2_idl__
+
+#include <com/sun/star/ui/XUIConfigurationManager.idl>
+#include <com/sun/star/ui/XUIConfigurationPersistence.idl>
+#include <com/sun/star/ui/XModuleUIConfigurationManager.idl>
+#include <com/sun/star/ui/XUIConfiguration.idl>
+
+module com { module sun { module star { module ui {
+
+/**
+ Provides a unified interface for the ModuleUIConfigurationManager service.
+
+ @since LibreOffice 4.2
+*/
+interface XModuleUIConfigurationManager2
+{
+ /** provides access to persistence functions to load/store user interface element
+ settings from/to a module storage.
+ */
+ interface com::sun::star::ui::XUIConfigurationPersistence;
+
+ /** provides functions to change, insert and remove user interface element settings
+ from a module user interface configuration manager.
+ */
+ interface com::sun::star::ui::XUIConfigurationManager;
+
+ /** provides access to the default layer of a module based ui configuration
+ manager.
+ */
+ interface com::sun::star::ui::XModuleUIConfigurationManager;
+
+ /** provides functions to add and remove listeners for changes within a module user
+ interface configuration manager.
+ */
+ interface com::sun::star::ui::XUIConfiguration;
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XModuleUIConfigurationManagerSupplier.idl b/offapi/com/sun/star/ui/XModuleUIConfigurationManagerSupplier.idl
new file mode 100644
index 000000000..b538728ac
--- /dev/null
+++ b/offapi/com/sun/star/ui/XModuleUIConfigurationManagerSupplier.idl
@@ -0,0 +1,58 @@
+/* -*- 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_XModuleUIConfigurationManagerSupplier_idl__
+#define __com_sun_star_ui_XModuleUIConfigurationManagerSupplier_idl__
+
+#include <com/sun/star/ui/XUIConfigurationManager.idl>
+#include <com/sun/star/container/NoSuchElementException.idl>
+
+module com { module sun { module star { module ui {
+
+/** allows to retrieve user interface configuration managers related to
+ OpenOffice.org modules.
+
+ @since OOo 2.0
+*/
+
+interface XModuleUIConfigurationManagerSupplier : ::com::sun::star::uno::XInterface
+{
+ /** returns the requested module based user interface configuration manager.
+
+ @param ModuleIdentifier
+ a module identifier which identifies an OpenOffice.org module. The
+ module identifier can be retrieved from the
+ com::sun::star::frame::ModuleManager service.
+
+ @returns
+ an object implementing
+ ::com::sun::star::ui::ModuleUIConfigurationManager
+ service. If the provided module identifier is unknown a
+ com::sun::star::container::NoSuchElementException
+ is thrown.
+ */
+ XUIConfigurationManager getUIConfigurationManager( [in] string ModuleIdentifier ) raises ( com::sun::star::container::NoSuchElementException );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XPanel.idl b/offapi/com/sun/star/ui/XPanel.idl
new file mode 100644
index 000000000..f02d8b3b5
--- /dev/null
+++ b/offapi/com/sun/star/ui/XPanel.idl
@@ -0,0 +1,94 @@
+/* -*- 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/.
+ *
+ */
+#ifndef __com_sun_star_ui_XPanel_idl__
+#define __com_sun_star_ui_XPanel_idl__
+
+#include <com/sun/star/ui/XPanel.idl>
+#include <com/sun/star/awt/XWindow.idl>
+
+
+ module com { module sun { module star { module ui {
+
+/** provides access to Panel
+ @since LibreOffice 5.1
+*/
+
+interface XPanel
+
+{
+ /** The panel identifier
+ */
+ string getId();
+
+ /** Get the panel title string
+ */
+ string getTitle();
+
+ /** Set the panel title string
+
+ @param newTitle
+ The new title string
+ */
+ void setTitle( [in] string newTitle );
+
+ /** Is the panel expanded
+ */
+ boolean isExpanded();
+
+ /** Collapse the panel to only show its title bar
+ */
+ void collapse ();
+
+ /** Expand and display the panel
+
+ @param bCollapseOther
+ <ul>
+ <li>TRUE collapse all other panels of the deck</li>
+ <li>FALSE do not change other panels state</li>
+ </ul>
+ */
+ void expand ( [in] boolean bCollapseOther );
+
+ /** Get the ordering index of the panel in the deck
+ */
+ long getOrderIndex();
+
+ /** Set the ordering index of the panel in the deck
+ */
+ void setOrderIndex( [in] long newOrderIndex );
+
+ /** Move panel as first item of the deck
+ */
+ void moveFirst();
+
+ /** Move panel as last item of the deck
+ **/
+ void moveLast();
+
+ /** Move panel one step up in the deck
+ */
+ void moveUp();
+
+ /** Move the panel one step down in the deck
+ */
+ void moveDown();
+
+ /** Get the panel dialog element
+ */
+ com::sun::star::awt::XWindow getDialog();
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ \ No newline at end of file
diff --git a/offapi/com/sun/star/ui/XPanels.idl b/offapi/com/sun/star/ui/XPanels.idl
new file mode 100644
index 000000000..361785546
--- /dev/null
+++ b/offapi/com/sun/star/ui/XPanels.idl
@@ -0,0 +1,41 @@
+/* -*- 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/.
+ *
+ */
+#ifndef __com_sun_star_ui_XPanels_idl__
+#define __com_sun_star_ui_XPanels_idl__
+
+#include <com/sun/star/container/XIndexAccess.idl>
+#include <com/sun/star/container/XNameAccess.idl>
+
+ module com { module sun { module star { module ui {
+
+/** provides access to Panels of a Deck.
+ @since LibreOffice 5.1
+*/
+
+interface XPanels
+
+{
+ /**
+ returned ANYs are actually of type com::sun::star::ui::XPanel
+ */
+ interface com::sun::star::container::XIndexAccess;
+ interface com::sun::star::container::XNameAccess;
+
+ /** The deck Id that contains the Panels
+ */
+ string getDeckId();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ \ No newline at end of file
diff --git a/offapi/com/sun/star/ui/XSidebar.idl b/offapi/com/sun/star/ui/XSidebar.idl
new file mode 100644
index 000000000..1881804d8
--- /dev/null
+++ b/offapi/com/sun/star/ui/XSidebar.idl
@@ -0,0 +1,41 @@
+/* -*- 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_XSidebar_idl__
+#define __com_sun_star_ui_XSidebar_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+
+module com { module sun { module star { module ui {
+
+/** Interface of the sidebar that allows its elements like panels to eg request layouts.
+*/
+interface XSidebar
+{
+ /** Request layout of the sidebar.
+ Call this method when one of the panels wants to change its size due to
+ late initialization or different content after a context change.
+ */
+ void requestLayout ();
+} ;
+
+} ; } ; } ; } ;
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XSidebarPanel.idl b/offapi/com/sun/star/ui/XSidebarPanel.idl
new file mode 100644
index 000000000..da8f19aa6
--- /dev/null
+++ b/offapi/com/sun/star/ui/XSidebarPanel.idl
@@ -0,0 +1,57 @@
+/* -*- 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_XSidebarPanel_idl__
+#define __com_sun_star_ui_XSidebarPanel_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/rendering/XCanvas.idl>
+#include <com/sun/star/awt/Point.idl>
+#include <com/sun/star/beans/XPropertySet.idl>
+#include <com/sun/star/ui/LayoutSize.idl>
+
+module com { module sun { module star { module ui {
+
+/** Optional interface of sidebar panels.
+*/
+interface XSidebarPanel
+{
+ /** For a given width of the container the layouter asks every ui element for its
+ optimal height.
+
+ The height to which a ui element is set may differ from the returned value.
+
+ The height is set via the XWindow interface.
+ */
+ LayoutSize getHeightForWidth ( [in] long nWidth);
+
+ /** Minimal possible width of this panel in pixels.
+
+ If this value is smaller than the maximum allowed size of the Sidebar
+ (see config option 'org.openoffice.Office.UI.Sidebar.General.MaximumWidth'),
+ the config option will be ignored and the new maximum Sidebar width will be
+ getMinimalWidth() + 100px.
+ */
+ long getMinimalWidth();
+} ;
+
+} ; } ; } ; } ;
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XSidebarProvider.idl b/offapi/com/sun/star/ui/XSidebarProvider.idl
new file mode 100644
index 000000000..242bad740
--- /dev/null
+++ b/offapi/com/sun/star/ui/XSidebarProvider.idl
@@ -0,0 +1,68 @@
+/* -*- 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/.
+ *
+ */
+#ifndef __com_sun_star_ui_XSidebarProvider_idl__
+#define __com_sun_star_ui_XSidebarProvider_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/frame/XFrame.idl>
+#include <com/sun/star/awt/XWindow2.idl>
+
+#include <com/sun/star/ui/XSidebar.idl>
+#include <com/sun/star/ui/XDecks.idl>
+
+
+module com { module sun { module star { module ui {
+
+/** Interface of the sidebar
+ @since LibreOffice 5.1
+*/
+interface XSidebarProvider: com::sun::star::uno::XInterface
+{
+ /** Display the sidebar
+
+ @param bVisible
+ the requested visible state
+ */
+ void setVisible ( [in] boolean bVisible);
+
+ /** Is the sidebar visible
+ */
+ boolean isVisible();
+
+ /** Get the XFrame owner
+ */
+ com::sun::star::frame::XFrame getFrame();
+
+ /* Decks collection attached to the sidebar
+ */
+ com::sun::star::ui::XDecks getDecks();
+
+ /** Decks container visibility
+
+ @param bVisible
+ the requested visible state
+ <ul>
+ <li>FALSE collapses the deck container horizontally. Then Only shows the deck TabBar selector</li>
+ <li>TRUE expands the deck container and show active Deck content</li>
+ </ul>
+ */
+ void showDecks([in] boolean bVisible);
+
+ /**
+ * Returns the sidebar object
+ */
+ com::sun::star::ui::XSidebar getSidebar();
+} ;
+
+} ; } ; } ; } ;
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XStatusbarItem.idl b/offapi/com/sun/star/ui/XStatusbarItem.idl
new file mode 100644
index 000000000..a45d961fe
--- /dev/null
+++ b/offapi/com/sun/star/ui/XStatusbarItem.idl
@@ -0,0 +1,115 @@
+/* -*- 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_XStatusbarItem_idl__
+#define __com_sun_star_ui_XStatusbarItem_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/awt/Rectangle.idl>
+
+module com { module sun { module star { module ui {
+
+/** Represents an item in a status bar
+
+ @see com::sun::star::frame::XStatusbarController
+
+ @since LibreOffice 4.1
+*/
+interface XStatusbarItem
+{
+ /** the command of the status bar item
+ */
+ [attribute, readonly] string Command;
+
+ /** the unique ID of the control within the status bar
+ */
+ [attribute, readonly] unsigned short ItemId;
+
+ /** the width of the status bar item
+ */
+ [attribute, readonly] unsigned long Width;
+
+ /** the style of the status bar item
+
+ <p>The following values apply for a status bar item:</p>
+ <ul>
+ <li>Alignment
+ <ul>
+ <li>com::sun::star::ui::ItemStyle::ALIGN_LEFT</li>
+ <li>com::sun::star::ui::ItemStyle::ALIGN_CENTER</li>
+ <li>com::sun::star::ui::ItemStyle::ALIGN_RIGHT</li>
+ </ul>
+ </li>
+ <li>Drawing
+ <ul>
+ <li>com::sun::star::ui::ItemStyle::DRAW_OUT3D</li>
+ <li>com::sun::star::ui::ItemStyle::DRAW_IN3D</li>
+ <li>com::sun::star::ui::ItemStyle::DRAW_FLAT</li>
+ </ul>
+ </li>
+ <li>com::sun::star::ui::ItemStyle::AUTO_SIZE</li>
+ <li>com::sun::star::ui::ItemStyle::OWNER_DRAW</li>
+ <li>com::sun::star::ui::ItemStyle::MANDATORY (@since LibreOffice 6.1)</li>
+ </ul>
+
+ @see com::sun::star::ui::ItemStyle
+ */
+ [attribute, readonly] unsigned short Style;
+
+ /** the offset between this status bar item and the following
+ */
+ [attribute, readonly] long Offset;
+
+ /** the rectangle on the status bar device onto which the item is drawn
+
+ @see com::sun::star::frame::XStatusbarController::paint()
+ */
+ [attribute, readonly] com::sun::star::awt::Rectangle ItemRect;
+
+ /** the text of status bar item
+ */
+ [attribute] string Text;
+
+ /** the help text of the status bar item when extended help tips are on
+ */
+ [attribute] string HelpText;
+
+ /** the help text of the status bar item when help tips are on
+ */
+ [attribute] string QuickHelpText;
+
+ /** the accessible name of the status bar item
+ */
+ [attribute] string AccessibleName;
+
+ /** whether the item is visible or not
+ */
+ [attribute] boolean Visible;
+
+ /** forces repainting the item onto the status bar device
+
+ @see com::sun::star::frame::XStatusbarController::paint()
+ */
+ void repaint();
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XToolPanel.idl b/offapi/com/sun/star/ui/XToolPanel.idl
new file mode 100644
index 000000000..64242f232
--- /dev/null
+++ b/offapi/com/sun/star/ui/XToolPanel.idl
@@ -0,0 +1,55 @@
+/* -*- 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_XToolPanel_idl__
+#define __com_sun_star_ui_XToolPanel_idl__
+
+#include <com/sun/star/awt/XWindow.idl>
+#include <com/sun/star/accessibility/XAccessible.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** describes the basic interface to be implemented by a tool panel
+ */
+interface XToolPanel
+{
+ /** provides access to the tool panel's main window.
+
+ <p>It is allowed for an implementation to return `NULL` here, but in this case some functionality, for instance
+ automatic positioning of the tool panel, might not be available, and must be implemented by the tool panel itself.</p>
+ */
+ [attribute, readonly] ::com::sun::star::awt::XWindow Window;
+
+ /** creates the root of the Accessibility object tree for the tool panel
+ @param ParentAccessible
+ the parent object in the Accessibility object tree
+ */
+ ::com::sun::star::accessibility::XAccessible
+ createAccessible( [in] ::com::sun::star::accessibility::XAccessible ParentAccessible );
+};
+
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XUIConfiguration.idl b/offapi/com/sun/star/ui/XUIConfiguration.idl
new file mode 100644
index 000000000..f3d419e37
--- /dev/null
+++ b/offapi/com/sun/star/ui/XUIConfiguration.idl
@@ -0,0 +1,76 @@
+/* -*- 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_XUIConfiguration_idl__
+#define __com_sun_star_ui_XUIConfiguration_idl__
+
+#include <com/sun/star/ui/XUIConfigurationListener.idl>
+
+module com { module sun { module star { module ui {
+
+/** supports to notify other implementations about changes of a user
+ interface configuration manager.
+
+ <p>
+ The XUIConfiguration interface is provided for user
+ interface configuration managers which need to broadcast changes
+ within the container; that means the actions of adding, replacing
+ and removing elements are broadcast to listeners.
+ </p>
+
+ <p>This can be useful for UI to enable/disable some functions without
+ actually accessing the data.</p>
+
+ @since OOo 2.0
+*/
+
+published interface XUIConfiguration : ::com::sun::star::uno::XInterface
+{
+ /** adds the specified listener to receive events when elements are
+ changed, inserted or removed.
+
+ <p>
+ It is suggested to allow multiple registration of the same
+ listener, thus for each time a listener is added, it has to be
+ removed.
+
+ @see XUIConfigurationListener
+ </p>
+ */
+ void addConfigurationListener( [in] ::com::sun::star::ui::XUIConfigurationListener Listener );
+
+ /** removes the specified listener so it does not receive any events
+ from this user interface configuration manager.
+
+ <p>It is suggested to allow multiple registration of the same
+ listener, thus for each time a listener is added, it has to be
+ removed.
+
+ @see XUIConfigurationListener
+ </p>
+ */
+ void removeConfigurationListener( [in] ::com::sun::star::ui::XUIConfigurationListener Listener );
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XUIConfigurationListener.idl b/offapi/com/sun/star/ui/XUIConfigurationListener.idl
new file mode 100644
index 000000000..a6637d27e
--- /dev/null
+++ b/offapi/com/sun/star/ui/XUIConfigurationListener.idl
@@ -0,0 +1,70 @@
+/* -*- 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_XUIConfigurationListener_idl__
+#define __com_sun_star_ui_XUIConfigurationListener_idl__
+
+#include <com/sun/star/lang/XEventListener.idl>
+#include <com/sun/star/ui/ConfigurationEvent.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** supplies information about changes of a user interface
+ configuration manager.
+
+ @since OOo 2.0
+*/
+
+published interface XUIConfigurationListener : com::sun::star::lang::XEventListener
+{
+
+ /** is invoked when a configuration has inserted an user interface element.
+
+ @param Event
+ provides information about the element which has been inserted.
+ */
+ void elementInserted( [in] ::com::sun::star::ui::ConfigurationEvent Event );
+
+
+ /** is invoked when a configuration has removed an user interface element.
+
+ @param Event
+ provides information about the element which has been removed.
+ */
+ void elementRemoved( [in] ::com::sun::star::ui::ConfigurationEvent Event );
+
+
+ /** is invoked when a configuration has replaced an user interface element.
+
+ @param Event
+ provides information about the element which has been
+ inserted/replaced.
+ */
+ void elementReplaced( [in] ::com::sun::star::ui::ConfigurationEvent Event );
+
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XUIConfigurationManager.idl b/offapi/com/sun/star/ui/XUIConfigurationManager.idl
new file mode 100644
index 000000000..cf18387f0
--- /dev/null
+++ b/offapi/com/sun/star/ui/XUIConfigurationManager.idl
@@ -0,0 +1,241 @@
+/* -*- 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_XUIConfigurationManager_idl__
+#define __com_sun_star_ui_XUIConfigurationManager_idl__
+
+#include <com/sun/star/container/XIndexContainer.idl>
+#include <com/sun/star/container/XIndexAccess.idl>
+#include <com/sun/star/beans/XPropertySet.idl>
+#include <com/sun/star/beans/PropertyValue.idl>
+#include <com/sun/star/ui/XUIConfigurationListener.idl>
+#include <com/sun/star/ui/XAcceleratorConfiguration.idl>
+#include <com/sun/star/container/ElementExistException.idl>
+#include <com/sun/star/container/NoSuchElementException.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#include <com/sun/star/lang/IllegalAccessException.idl>
+
+module com { module sun { module star { module ui {
+
+/** specifies a user interface configuration manager interface which
+ controls the structure of all customizable user interface
+ elements.
+
+ @since OOo 2.0
+*/
+
+interface XUIConfigurationManager : ::com::sun::star::uno::XInterface
+{
+ /** resets the configuration manager to the default user interface
+ configuration data.
+ <p>
+ This means that all user interface configuration data of the
+ instance will be removed. A module based user interface
+ configuration manager removes user defined elements, but set all
+ other elements back to default. It is not possible to remove
+ default elements from a module user interface configuration
+ manager.
+ </p>
+ */
+ void reset();
+
+ /** retrieves information about all user interface elements within
+ the user interface configuration manager.
+
+ @param ElementType
+ makes it possible to narrow the result set to only one type
+ of user interface elements. If all user interface element
+ types should be returned com::sun::star::ui::UIElementType::UNKNOWN
+ must be provided.
+
+ @return
+ returns all user interface elements within the user interface
+ configuration manager that meet the given ElementType
+ specification. <p>The following
+ com::sun::star::beans::PropertyValue entries
+ are defined inside the sequence for every user interface element.
+ <ul>
+ <li><b>ResourceURL</b>specifies the unique resource URL for
+ the user interface element.</li>
+ <li><b>UIName</b>specifies the user interface name for the
+ user interface element. Not all user interface elements have
+ set UIName. At least menubars do not.</li>
+ </ul>
+ <p>
+
+ @see UIElementType
+ */
+ sequence< sequence< com::sun::star::beans::PropertyValue > > getUIElementsInfo( [in] short ElementType ) raises ( com::sun::star::lang::IllegalArgumentException );
+
+ /** creates an empty settings data container.
+
+ @return
+ an empty user interface element settings data container, which
+ implements UIElementSettings.
+ */
+ ::com::sun::star::container::XIndexContainer createSettings();
+
+ /** determines if the settings of a user interface element is part the
+ user interface configuration manager.
+
+ @param ResourceURL
+ a resource URL which identifies the user interface element. A
+ resource URL must meet the following syntax:
+ "private:resource/$type/$name. It is only allowed to use ASCII
+ characters for type and name.
+
+ @return
+ `TRUE` if settings have been found, otherwise `FALSE`.
+ */
+ boolean hasSettings( [in] string ResourceURL ) raises ( com::sun::star::lang::IllegalArgumentException );
+
+ /** retrieves the settings of a user interface element.
+
+ @param ResourceURL
+ a resource URL which identifies the user interface element. A
+ resource URL must meet the following syntax:
+ "private:resource/$type/$name. It is only allowed to use ASCII
+ characters for type and name.
+
+ @param bWriteable
+ must be `TRUE` if the retrieved settings should be a writable.
+ Otherwise `FALSE` should be provided to get a shareable reference
+ to the settings data.
+
+ @return
+ settings data of an existing user interface element, which
+ implements UIElementSettings. If the settings data
+ cannot be found a
+ com::sun::star::container::NoSuchElementException
+ is thrown. If the \p ResourceURL is not valid or
+ describes an unknown type a
+ com::sun::star::lang::IllegalArgumentException
+ is thrown.
+ */
+ ::com::sun::star::container::XIndexAccess getSettings( [in] string ResourceURL, [in] boolean bWriteable ) raises ( com::sun::star::container::NoSuchElementException, com::sun::star::lang::IllegalArgumentException );
+
+ /** replaces the settings of a user interface element with new settings.
+
+ @param ResourceURL
+ a resource URL which identifies the user interface element to
+ be replaced. If no element with the given resource URL exists a
+ com::sun::star::container::NoSuchElementException
+ is thrown.
+
+ @param aNewData
+ the new settings data of an existing user interface element, which
+ implements UIElementSettings.
+
+ <p>
+ If the settings data cannot be found a
+ com::sun::star::container::NoSuchElementException
+ is thrown. If the \p ResourceURL is not valid or describes
+ an unknown type a
+ com::sun::star::lang::IllegalArgumentException
+ is thrown. If the configuration manager is read-only a
+ com::sun::star::lang::IllegalAccessException is
+ thrown.
+ </p>
+ */
+ void replaceSettings( [in] string ResourceURL, [in] ::com::sun::star::container::XIndexAccess aNewData ) raises ( com::sun::star::container::NoSuchElementException, com::sun::star::lang::IllegalArgumentException, com::sun::star::lang::IllegalAccessException );
+
+ /** removes the settings of an existing user interface element.
+
+ @param ResourceURL
+ a resource URL which identifies the user interface element settings
+ to be removed.
+
+ <p>
+ If the settings data cannot be found a
+ com::sun::star::container::NoSuchElementException is
+ thrown. If the \p ResourceURL is not valid or describes an
+ unknown type a com::sun::star::lang::IllegalArgumentException
+ is thrown. If the configuration manager is read-only a
+ com::sun::star::lang::IllegalAccessException is thrown.
+ </p>
+ */
+ void removeSettings( [in] string ResourceURL ) raises ( com::sun::star::container::NoSuchElementException, com::sun::star::lang::IllegalArgumentException, com::sun::star::lang::IllegalAccessException );
+
+ /** inserts the settings of a new user interface element.
+
+ @param NewResourceURL
+ a resource URL which identifies the new user interface element.
+
+ @param aNewData
+ the settings data of the new user interface element, which implements
+ UIElementSettings.
+
+ <p>
+ If the settings data is already present a
+ com::sun::star::container::ElementExistException
+ is thrown. If the \p NewResourceURL is not valid or describes
+ an unknown type a com::sun::star::lang::IllegalArgumentException
+ is thrown. If the configuration manager is read-only a
+ com::sun::star::lang::IllegalAccessException is thrown.
+ </p>
+ */
+ void insertSettings( [in] string NewResourceURL, [in] ::com::sun::star::container::XIndexAccess aNewData ) raises ( com::sun::star::container::ElementExistException, com::sun::star::lang::IllegalArgumentException, com::sun::star::lang::IllegalAccessException );
+
+ /** retrieves the image manager from the user interface configuration
+ manager.
+
+ <p>
+ Every user interface configuration manager has one image manager
+ instance which controls all images of a module or document.
+ </p>
+
+ @return
+ the image manager of the user interface configuration manager.
+ */
+ com::sun::star::uno::XInterface getImageManager();
+
+ /** retrieves the keyboard short cut manager from the user interface
+ configuration manager.
+
+ <p>
+ Every user interface configuration manager has one keyboard short cut
+ manager instance which controls all short cuts of a module or document.
+ </p>
+
+ @return
+ the short cut manager of the user interface configuration manager.
+ */
+ com::sun::star::ui::XAcceleratorConfiguration getShortCutManager();
+
+ /** retrieves the events manager from the user interface configuration manager.
+
+ <p>
+ Every user interface configuration manager has one events manager
+ instance which controls the mapping of events to script URLs of a module
+ or document.
+ </p>
+
+ @return
+ the events manager of the user interface configuration
+ manager, if one exists.
+ */
+ com::sun::star::uno::XInterface getEventsManager();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XUIConfigurationManager2.idl b/offapi/com/sun/star/ui/XUIConfigurationManager2.idl
new file mode 100644
index 000000000..99e7a0429
--- /dev/null
+++ b/offapi/com/sun/star/ui/XUIConfigurationManager2.idl
@@ -0,0 +1,70 @@
+/* -*- 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_XUIConfigurationManager2_idl__
+#define __com_sun_star_ui_XUIConfigurationManager2_idl__
+
+#include <com/sun/star/lang/XComponent.idl>
+#include <com/sun/star/ui/XUIConfiguration.idl>
+#include <com/sun/star/ui/XUIConfigurationManager.idl>
+#include <com/sun/star/ui/XUIConfigurationPersistence.idl>
+#include <com/sun/star/ui/XUIConfigurationStorage.idl>
+
+module com { module sun { module star { module ui {
+
+/**
+ @since LibreOffice 4.1
+*/
+interface XUIConfigurationManager2
+{
+ /** provides access to set a storage and to check if a storage has been
+ associated to the user interface configuration manager.
+ */
+ interface com::sun::star::ui::XUIConfigurationStorage;
+
+ /** provides access to persistence functions to load/store user interface configuration
+ data from a storage.
+ */
+ interface com::sun::star::ui::XUIConfigurationPersistence;
+
+ /** provides functions to change, insert and remove user interface elements
+ from a user interface configuration manager.
+ */
+ interface com::sun::star::ui::XUIConfigurationManager;
+
+ /** provides functions to add and remove listeners for changes within a user
+ interface configuration manager.
+ */
+ interface com::sun::star::ui::XUIConfiguration;
+
+ /** allows controlling or observing the lifetime of a user interface configuration manager
+ instance.
+
+ <p>The owner of the object may dispose of this object using
+ com::sun::star::lang::XComponent::dispose().
+ </p>
+ */
+ interface ::com::sun::star::lang::XComponent;
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XUIConfigurationManagerSupplier.idl b/offapi/com/sun/star/ui/XUIConfigurationManagerSupplier.idl
new file mode 100644
index 000000000..caa4ba2f5
--- /dev/null
+++ b/offapi/com/sun/star/ui/XUIConfigurationManagerSupplier.idl
@@ -0,0 +1,51 @@
+/* -*- 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_XUIConfigurationManagerSupplier_idl__
+#define __com_sun_star_ui_XUIConfigurationManagerSupplier_idl__
+
+#include <com/sun/star/ui/XUIConfigurationManager.idl>
+
+module com { module sun { module star { module ui {
+
+/** allows to retrieve the user interface configuration manager related to
+ an object.
+
+ @since OOo 2.0
+*/
+
+interface XUIConfigurationManagerSupplier : ::com::sun::star::uno::XInterface
+{
+ /** returns the user interface configuration manager related to the
+ object.
+
+ @returns
+ an object implementing
+ ::com::sun::star::ui::UIConfigurationManager
+ service.
+ */
+ XUIConfigurationManager getUIConfigurationManager();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XUIConfigurationPersistence.idl b/offapi/com/sun/star/ui/XUIConfigurationPersistence.idl
new file mode 100644
index 000000000..7c5c8a822
--- /dev/null
+++ b/offapi/com/sun/star/ui/XUIConfigurationPersistence.idl
@@ -0,0 +1,96 @@
+/* -*- 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_XUIConfigurationPersistence_idl__
+#define __com_sun_star_ui_XUIConfigurationPersistence_idl__
+
+#include <com/sun/star/embed/XStorage.idl>
+
+module com { module sun { module star { module ui {
+
+/** specifies a persistence interface which supports to load/store user
+ interface configuration data to a storage and to retrieve information
+ about the current state.
+
+ @since OOo 2.0
+*/
+
+published interface XUIConfigurationPersistence : ::com::sun::star::uno::XInterface
+{
+ /** reloads the configuration data from the storage and reinitialize
+ the user interface configuration manager instance with this data.
+
+ <p>
+ It is up to the implementation if it defers the first loading process
+ until the first data request using XUIConfigurationManager
+ interface.
+ </p>
+ */
+ void reload() raises ( ::com::sun::star::uno::Exception );
+
+ /** stores the configuration data to the storage provided by
+ setStorage() from the storage and initialize the
+ user interface configuration manager instance with the newly
+ data. This call can throw an
+ com::sun::star::io::IOException if
+ store() cannot store its data into the internal
+ storage.
+ */
+ void store() raises ( ::com::sun::star::uno::Exception );
+
+ /** stores the configuration data to the provided storage, ignoring
+ the previously set storage by setStorage(). Can
+ be used to make copy of the current user interface configuration
+ data to another storage. This call will throw an
+ com::sun::star::io::IOException if the provided
+ storage is in read-only mode.
+
+ @param Storage
+ all configuration data will be stored to this storage.
+ */
+ void storeToStorage( [in] ::com::sun::star::embed::XStorage Storage ) raises ( ::com::sun::star::uno::Exception );
+
+ /** provides the current modify state of the configuration manager
+ instance.
+
+ @return
+ `TRUE` if the configuration manager has changed since the
+ last store() call. `FALSE` if the configuration
+ manager has not been changed.
+ */
+ boolean isModified();
+
+ /** provides the current read-only state of the user configuration
+ manager. Storing a user interface configuration to a read-only storage
+ is not possible. A read-only configuration manager instance will also
+ not support any changes to its configuration settings.
+
+ @return
+ `TRUE` if the configuration manager storage is read-only otherwise
+ `FALSE`.
+ */
+ boolean isReadOnly();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XUIConfigurationStorage.idl b/offapi/com/sun/star/ui/XUIConfigurationStorage.idl
new file mode 100644
index 000000000..7823e6c4e
--- /dev/null
+++ b/offapi/com/sun/star/ui/XUIConfigurationStorage.idl
@@ -0,0 +1,75 @@
+/* -*- 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_XUIConfigurationStorage_idl__
+#define __com_sun_star_ui_XUIConfigurationStorage_idl__
+
+#include <com/sun/star/embed/XStorage.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** supplies functions to change or get information about the storage
+ of a user interface configuration manager.
+
+ @since OOo 2.0
+*/
+
+published interface XUIConfigurationStorage : ::com::sun::star::uno::XInterface
+{
+ /** connects a storage to the user interface configuration manager
+ which is used on subsequent calls of load() and
+ store().
+
+ @param Storage
+ all configuration data is loaded/stored from/into this storage.
+ If the storage is in read/write mode load()
+ and store() can be used otherwise only
+ load() is possible.
+
+ <p>
+ This call needs careful usage as data loss can occur. If the
+ implementation has modified data and a new storage is set the
+ implementation is not allowed to write back the data to the old
+ storage. This must be done explicitly with store().
+ In general a user interface configuration manager instance is
+ created and initialize by the document model or the module user
+ interface configuration supplier. Normally there is no need to
+ set a storage for a user interface configuration manager. If a
+ copy of the configuration data to another storage should be made,
+ use storeToStorage().
+ </p>
+ */
+ void setStorage( [in] ::com::sun::star::embed::XStorage Storage );
+
+ /** checks if an instance has already a storage to load/store its data.
+
+ @return
+ `TRUE` if the instance has a storage otherwise `FALSE`.
+ */
+ boolean hasStorage();
+};
+
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XUIElement.idl b/offapi/com/sun/star/ui/XUIElement.idl
new file mode 100644
index 000000000..f67284c0c
--- /dev/null
+++ b/offapi/com/sun/star/ui/XUIElement.idl
@@ -0,0 +1,80 @@
+/* -*- 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_XUIElement_idl__
+#define __com_sun_star_ui_XUIElement_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/beans/XPropertySet.idl>
+#include <com/sun/star/frame/XFrame.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** provides a function to retrieve a special purpose interface dependent
+ on the user interface element type.
+
+ <p>
+ The type of the interface depends on the real type of the user interface
+ element. A menubar user interface element provides access to its
+ com::sun::star::awt::XSystemDependentMenuBarPeer
+ which supports to retrieve the system dependent menu handle.
+ A floating window or a toolbar user interface element return a
+ com::sun::star::awt::XWindow
+ interface.
+ </p>
+*/
+
+interface XUIElement : com::sun::star::uno::XInterface
+{
+ /** returns an interface to get access to user interface type specific functions.
+
+ @return
+ a special purpose interface which depends on the type of the user
+ interface element.
+ */
+ ::com::sun::star::uno::XInterface getRealInterface();
+
+ /** determines the document frame to which this element is bound to.
+
+ <p>The life time of a user interface element does not explicitly depend on the
+ frame itself but on the visible component attached to the frame. It is possible
+ to exchange the visible component of a frame and that will lead to the end of
+ life of all user interface elements.</p>
+ */
+ [readonly, attribute] ::com::sun::star::frame::XFrame Frame;
+
+ /** a resource URL which is a unique identifier of a user interface element.
+ */
+ [readonly, attribute] string ResourceURL;
+
+ /** determines the type of the user interface element.
+
+ @see UIElementType
+ */
+ [readonly, attribute] short Type;
+};
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
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: */
diff --git a/offapi/com/sun/star/ui/XUIElementFactoryManager.idl b/offapi/com/sun/star/ui/XUIElementFactoryManager.idl
new file mode 100644
index 000000000..9b41f40ab
--- /dev/null
+++ b/offapi/com/sun/star/ui/XUIElementFactoryManager.idl
@@ -0,0 +1,57 @@
+/* -*- 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_XUIElementFactoryManager_idl__
+#define __com_sun_star_ui_XUIElementFactoryManager_idl__
+
+#include <com/sun/star/lang/XMultiComponentFactory.idl>
+#include <com/sun/star/ui/XUIElementFactoryRegistration.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** Provides a unified interface for the new-style service XUIElementFactoryManager.
+
+ @since LibreOffice 4.1
+*/
+interface XUIElementFactoryManager
+{
+ /** provides a function to create new instances of user interface elements.
+
+ <p>
+ A user interface element factory manager is also a user interface element factory. It
+ retrieves the responsible user interface element factory from the provided arguments and passes
+ the arguments to it.
+
+ @see XUIElementFactory
+ </p>
+ */
+ interface XUIElementFactory;
+
+ /** provides functions to query, retrieve, register and deregister user interface element factories.
+ */
+ interface XUIElementFactoryRegistration;
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl b/offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl
new file mode 100644
index 000000000..7d184485c
--- /dev/null
+++ b/offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl
@@ -0,0 +1,159 @@
+/* -*- 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_XUIElementFactoryRegistration_idl__
+#define __com_sun_star_ui_XUIElementFactoryRegistration_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/ui/XUIElementFactory.idl>
+#include <com/sun/star/container/ElementExistException.idl>
+#include <com/sun/star/container/NoSuchElementException.idl>
+#include <com/sun/star/beans/PropertyValue.idl>
+
+
+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 identify 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
+ */
+
+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 property 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 ModuleIdentifier
+ an optional module identifier. This value can remain empty, if a generic factory is requested.
+ The module identifier can be retrieved from the com::sun::star::frame::ModuleManager 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 com::sun::star::frame::ModuleManager 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 ModuleIdentifier
+ 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 deregistered. The module identifier can be retrieved
+ from the com::sun::star::frame::ModuleManager 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 ModuleIdentifier ) raises (com::sun::star::container::NoSuchElementException);
+};
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XUIElementSettings.idl b/offapi/com/sun/star/ui/XUIElementSettings.idl
new file mode 100644
index 000000000..3d0a7b105
--- /dev/null
+++ b/offapi/com/sun/star/ui/XUIElementSettings.idl
@@ -0,0 +1,88 @@
+/* -*- 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_XUIElementSettings_idl__
+#define __com_sun_star_ui_XUIElementSettings_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/container/XIndexAccess.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** provides functions to retrieve and change user interface element structure
+ data and to update its visible representation.
+
+ @since OOo 2.0
+*/
+
+interface XUIElementSettings : com::sun::star::uno::XInterface
+{
+ /** forces the user interface element to retrieve new settings from its
+ configuration source.
+
+ <p>
+ This is not done automatically as configurable user interface elements
+ are controlled by layout managers. It is more efficient to let the
+ responsible layout manager to control the update process in a single
+ task.
+ </p>
+ */
+ void updateSettings();
+
+ /** provides a UIElementSettings instance that provides access
+ to the structure of user interface element if the user interface element
+ type supports it.
+
+ @param bWriteable
+ must be `TRUE` if the retrieved settings should be a writable.
+ Otherwise `FALSE` should be provided to get a shareable reference
+ to the settings data.
+
+ @return
+ the current settings of the user interface element.
+ */
+ com::sun::star::container::XIndexAccess getSettings( [in] boolean bWriteable );
+
+ /** set changes to the structure of the user interface element.
+
+ @param UISettings
+ new data settings for the configurable user interface element.
+
+
+ <p>
+ User interface elements cannot be changed directly. The changed structure
+ data has to be set again. This speeds up the configuration process if many
+ changes have to be made on the structure. The persistence of changes are
+ controlled by the boolean property Persistent.
+
+ </p>
+
+ @see com::sun::star::ui::UIElementSettings
+ */
+ void setSettings( [in] com::sun::star::container::XIndexAccess UISettings );
+};
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XUIFunctionListener.idl b/offapi/com/sun/star/ui/XUIFunctionListener.idl
new file mode 100644
index 000000000..1ee857d3a
--- /dev/null
+++ b/offapi/com/sun/star/ui/XUIFunctionListener.idl
@@ -0,0 +1,53 @@
+/* -*- 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_XUIFunctionListener_idl__
+#define __com_sun_star_ui_XUIFunctionListener_idl__
+
+#include <com/sun/star/lang/XEventListener.idl>
+
+
+ module com { module sun { module star { module ui {
+
+/** special interface to receive notification that a user interface
+ element will execute a function.
+
+ @since OOo 2.0
+ */
+interface XUIFunctionListener : com::sun::star::lang::XEventListener
+{
+ /** gets called to notify a component that a user interface element
+ wants to execute a function.
+
+ @param aUIElementName
+ a string which identifies the user interface element that wants
+ to execute a function.
+
+ @param aCommand
+ a string which identifies the function that has been selected by
+ a user.
+ */
+ void functionExecute( [in] string aUIElementName, [in] string aCommand );
+
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/XUpdateModel.idl b/offapi/com/sun/star/ui/XUpdateModel.idl
new file mode 100644
index 000000000..0c707b8af
--- /dev/null
+++ b/offapi/com/sun/star/ui/XUpdateModel.idl
@@ -0,0 +1,35 @@
+/* -*- 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/.
+ */
+
+#ifndef __com_sun_star_ui_XUpdateModel_idl__
+#define __com_sun_star_ui_XUpdateModel_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/frame/XModel.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** Internal interface to update the used css::frame::XModel
+ </p>
+ @since LibreOffice 5.1
+*/
+
+interface XUpdateModel : com::sun::star::uno::XInterface
+{
+ void updateModel( [in] com::sun::star::frame::XModel xModel);
+};
+
+}; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/AddressBookSourcePilot.idl b/offapi/com/sun/star/ui/dialogs/AddressBookSourcePilot.idl
new file mode 100644
index 000000000..6e3668cb8
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/AddressBookSourcePilot.idl
@@ -0,0 +1,43 @@
+/* -*- 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_dialogs_AddressBookSourcePilot_idl__
+#define __com_sun_star_ui_dialogs_AddressBookSourcePilot_idl__
+
+#include <com/sun/star/awt/XWindow.idl>
+#include <com/sun/star/ui/dialogs/XExecutableDialog.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/**
+ @since LibreOffice 4.1
+*/
+service AddressBookSourcePilot : XExecutableDialog
+{
+ createWithParent([in] com::sun::star::awt::XWindow ParentWindow);
+};
+
+
+}; }; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/CommonFilePickerElementIds.idl b/offapi/com/sun/star/ui/dialogs/CommonFilePickerElementIds.idl
new file mode 100644
index 000000000..7ec5aa413
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/CommonFilePickerElementIds.idl
@@ -0,0 +1,71 @@
+/* -*- 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_dialogs_CommonFilePickerElementIds_idl__
+#define __com_sun_star_ui_dialogs_CommonFilePickerElementIds_idl__
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** These constants are used to specify common controls of a FilePicker dialog.
+
+ */
+
+published constants CommonFilePickerElementIds
+{
+ /** The control id of the OK button.
+ */
+ const short PUSHBUTTON_OK = 1;
+
+ /** The control id of the Cancel button.
+ */
+ const short PUSHBUTTON_CANCEL = 2;
+
+ /** The filter listbox of a FilePicker dialog.
+ */
+ const short LISTBOX_FILTER = 3;
+
+ /** Is used to refer to the file view of the file picker. This view shows the list of
+ all files/folders in the currently selected folder.
+ */
+ const short CONTROL_FILEVIEW = 4;
+
+ /** Is used to refer to the edit line where a file or path can be entered by the user.
+ */
+ const short EDIT_FILEURL = 5;
+
+ /** The label of the filter listbox of a FilePicker dialog.
+
+ @since OOo 1.1.2
+ */
+ const short LISTBOX_FILTER_LABEL = 6;
+
+ /** The label of the file name listbox of a FilePicker dialog.
+
+ @since OOo 1.1.2
+ */
+ const short EDIT_FILEURL_LABEL = 7;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/ControlActions.idl b/offapi/com/sun/star/ui/dialogs/ControlActions.idl
new file mode 100644
index 000000000..43130cf59
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/ControlActions.idl
@@ -0,0 +1,93 @@
+/* -*- 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_dialogs_ControlActions_idl__
+#define __com_sun_star_ui_dialogs_ControlActions_idl__
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** Control actions for common and extended controls of a FilePicker.
+
+ @see com::sun::star::ui::dialogs::XFilePickerControlAccess
+ @see com::sun::star::ui::dialogs::CommonFilePickerElementIds
+ @see com::sun::star::ui::dialogs::ExtendedFilePickerElementIds
+ */
+
+published constants ControlActions
+{
+ /** Adds an item to the content of the listbox. The given item has to
+ be a string.
+ */
+ const short ADD_ITEM = 1;
+
+ /** Adds a sequence of strings to the content of the listbox.
+ */
+ const short ADD_ITEMS = 2;
+
+ /** Removes an item from a listbox. The given value has to be a
+ position. If the position is invalid an exception will be thrown.
+ The index of the first position is 0.
+ The value should be a sal_Int32.
+ */
+ const short DELETE_ITEM = 3;
+
+ /** Removes all items from the listbox.
+ */
+ const short DELETE_ITEMS = 4;
+
+ /** Selects an item in a listbox. The given value has to be a position.
+ The index of the first position is 0. A value of -1 removes the
+ selection.
+ If the given position is invalid an exception will be thrown.
+ The value should be a sal_Int32.
+ */
+ const short SET_SELECT_ITEM = 5;
+
+ /** Returns all items of the listbox as a sequence of strings.
+ */
+ const short GET_ITEMS = 6;
+
+ /** Returns the currently selected item. The returned item is an empty
+ string if the listbox is empty or no item is selected.
+ */
+ const short GET_SELECTED_ITEM = 7;
+
+ /** Returns the zero based index of the currently selected item.
+ If the listbox is empty or there is no item selected -1 will be
+ returned. The returned value is a sal_Int32.
+ */
+
+ const short GET_SELECTED_ITEM_INDEX = 8;
+
+ /** Sets the help URL of a control.
+ */
+ const short SET_HELP_URL = 100;
+
+ /** Retrieves the help URL of a control.
+ */
+ const short GET_HELP_URL = 101;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/DialogClosedEvent.idl b/offapi/com/sun/star/ui/dialogs/DialogClosedEvent.idl
new file mode 100644
index 000000000..5b25fabbe
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/DialogClosedEvent.idl
@@ -0,0 +1,51 @@
+/* -*- 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_dialogs_DialogClosedEvent_idl__
+#define __com_sun_star_ui_dialogs_DialogClosedEvent_idl__
+
+#include <com/sun/star/lang/EventObject.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+
+/** Information of a closed dialog.
+
+ <p>The broadcaster who sends such event, must send the dialog as the source.</p>
+
+ @see com::sun::star::lang::EventObject
+*/
+struct DialogClosedEvent: com::sun::star::lang::EventObject
+{
+ /**
+ @param DialogResult
+ Identifies the result of a dialog.
+
+ @see ExecutableDialogResults
+ */
+ short DialogResult;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/ExecutableDialogException.idl b/offapi/com/sun/star/ui/dialogs/ExecutableDialogException.idl
new file mode 100644
index 000000000..a632953a3
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/ExecutableDialogException.idl
@@ -0,0 +1,39 @@
+/* -*- 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_dialogs_ExecutableDialogException_idl__
+#define __com_sun_star_ui_dialogs_ExecutableDialogException_idl__
+
+#include <com/sun/star/uno/Exception.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** Base class of all XExecutableDialog related exceptions.
+ */
+published exception ExecutableDialogException: com::sun::star::uno::Exception
+{
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/ExecutableDialogResults.idl b/offapi/com/sun/star/ui/dialogs/ExecutableDialogResults.idl
new file mode 100644
index 000000000..5e39783c8
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/ExecutableDialogResults.idl
@@ -0,0 +1,46 @@
+/* -*- 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_dialogs_ExecutableDialogResults_idl__
+#define __com_sun_star_ui_dialogs_ExecutableDialogResults_idl__
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** These constants are used to specify a result of executing a XExecutableDialog.
+*/
+
+published constants ExecutableDialogResults
+{
+ /** The user canceled the dialog.
+ */
+ const short CANCEL = 0;
+
+ /** The user acknowledged the dialog.
+ */
+ const short OK = 1;
+};
+
+
+}; }; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.idl b/offapi/com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.idl
new file mode 100644
index 000000000..f981d0430
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.idl
@@ -0,0 +1,62 @@
+/* -*- 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_dialogs_ExtendedFilePickerElementIds_idl__
+#define __com_sun_star_ui_dialogs_ExtendedFilePickerElementIds_idl__
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** <p>These constants are used to specify extended controls of a FilePicker dialog.
+ A FilePicker service may be initialized so that it has additional controls
+ extending the set of common controls a FilePicker usually supports.</p>
+
+ @see com::sun::star::ui::dialogs::FilePicker
+ @see com::sun::star::ui::dialogs::XFilePickerControlAccess
+ @see com::sun::star::ui::dialogs::CommonFilePickerElementIds
+ */
+
+published constants ExtendedFilePickerElementIds
+{
+ const short CHECKBOX_AUTOEXTENSION = 100;
+ const short CHECKBOX_PASSWORD = 101;
+ const short CHECKBOX_FILTEROPTIONS = 102;
+ const short CHECKBOX_READONLY = 103;
+ const short CHECKBOX_LINK = 104;
+ const short CHECKBOX_PREVIEW = 105;
+ const short PUSHBUTTON_PLAY = 106;
+ const short LISTBOX_VERSION = 107;
+ const short LISTBOX_TEMPLATE = 108;
+ const short LISTBOX_IMAGE_TEMPLATE = 109;
+ const short CHECKBOX_SELECTION = 110;
+ const short LISTBOX_VERSION_LABEL = 207;
+ const short LISTBOX_TEMPLATE_LABEL = 208;
+ const short LISTBOX_IMAGE_TEMPLATE_LABEL = 209;
+ const short LISTBOX_FILTER_SELECTOR = 210;
+ /** @since LibreOffice 6.0 */ const short CHECKBOX_GPGENCRYPTION = 211;
+ /** @since LibreOffice 6.1 */ const short LISTBOX_IMAGE_ANCHOR = 212;
+ /** @since LibreOffice 6.1 */ const short LISTBOX_IMAGE_ANCHOR_LABEL = 213;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/FilePicker.idl b/offapi/com/sun/star/ui/dialogs/FilePicker.idl
new file mode 100644
index 000000000..6c61f394a
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/FilePicker.idl
@@ -0,0 +1,69 @@
+/* -*- 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_dialogs_FilePicker_idl__
+#define __com_sun_star_ui_dialogs_FilePicker_idl__
+
+#include <com/sun/star/ui/dialogs/XFilePicker3.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+
+/** A FilePicker.
+
+ It is <strong>NOT</strong> recommended to cache a reference to a file
+ picker instance. Due to restrictions by the underlying system there can
+ be specific limitations possible. To overcome these problems it's
+ recommended to create a new instance on demand.
+
+ @see XFilePicker
+*/
+
+published service FilePicker : XFilePicker3
+{
+
+ /** Provides the ability to choose between different custom templates that
+ do extend the subset of common controls a FilePicker usually supports.
+ Implementers may omit this interface if the FileOpen
+ dialog doesn't support custom templates. In this case a createInstance
+ will create an ordinary FileOpen dialog with only the common FilePicker
+ elements.
+ The client has to provide one of the specified constants in
+ TemplateDescription.
+ <br/><br/>
+ <p><strong>Notes for the implementation of a FileSave dialog:</strong>
+ The implementation of a FileSave dialog should automatically check
+ for existence of a file and issue a warning if a file with the same
+ name already exist.</p>
+ <p>Note that when creating a file picker, the top window is selected
+ as the parent window for the file picker. Make sure that it does not get
+ closed while opening the file picker, as there is a potential race.</p>
+
+ @see com::sun::star::ui::dialogs::TemplateDescription
+ */
+ createWithMode([in] short Mode);
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/FilePickerEvent.idl b/offapi/com/sun/star/ui/dialogs/FilePickerEvent.idl
new file mode 100644
index 000000000..2c834e893
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/FilePickerEvent.idl
@@ -0,0 +1,49 @@
+/* -*- 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_dialogs_FilePickerEvent_idl__
+#define __com_sun_star_ui_dialogs_FilePickerEvent_idl__
+
+#include <com/sun/star/lang/EventObject.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+
+/** Context information in case of a FilePicker event.
+*/
+published struct FilePickerEvent: com::sun::star::lang::EventObject
+{
+ /**
+ @param ElementId
+ Identifies the affected element
+
+ @see com::sun::star::ui::dialogs::CommonFilePickerElementIds
+ @see com::sun::star::ui::dialogs::ExtendedFilePickerElementIds
+ */
+ short ElementId;
+};
+
+
+}; }; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/FilePreviewImageFormats.idl b/offapi/com/sun/star/ui/dialogs/FilePreviewImageFormats.idl
new file mode 100644
index 000000000..e6a765ed7
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/FilePreviewImageFormats.idl
@@ -0,0 +1,44 @@
+/* -*- 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_dialogs_FilePreviewImageFormats_idl__
+#define __com_sun_star_ui_dialogs_FilePreviewImageFormats_idl__
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** These constants are used to specify image formats supported by an implementation
+ of the interface com::sun::star::ui::dialogs::XFilePreview.
+ */
+
+published constants FilePreviewImageFormats
+{
+ /** A LibreOffice bitmap which is similar to the device independent bitmap
+ (DIB) format on windows.
+ The bitmap data should be provided as a sequence of sal_Int8.
+ */
+ const short BITMAP = 1;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/FilterOptionsDialog.idl b/offapi/com/sun/star/ui/dialogs/FilterOptionsDialog.idl
new file mode 100644
index 000000000..b5866343a
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/FilterOptionsDialog.idl
@@ -0,0 +1,74 @@
+/* -*- 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_dialogs_FilterOptionsDialog_idl__
+#define __com_sun_star_ui_dialogs_FilterOptionsDialog_idl__
+
+#include <com/sun/star/ui/dialogs/XExecutableDialog.idl>
+#include <com/sun/star/beans/XPropertyAccess.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+
+/** This service enables a filter developer to register a dialog to query
+ for user options before the filter operation is performed.
+
+ <p>The user options are stored inside the com::sun::star::document::MediaDescriptor
+ and can be queried from the com::sun::star::document::MediaDescriptor by
+ the component that implements com::sun::star::document::XFilter.</p>
+
+ <p>The application will set the com::sun::star::document::MediaDescriptor
+ using the interface com::sun::star::beans::XPropertyAccess and then
+ call XExecutableDialog::execute().</p>
+
+ <p>If that method returns <code>ExecutableDialogResults::OK</code>,
+ the application will retrieve the changed com::sun::star::document::MediaDescriptor
+ back using the interface com::sun::star::beans::XPropertyAccess. The filter
+ operation is then continued, using the new com::sun::star::document::MediaDescriptor.</p>
+
+ <p>Otherwise, the filter operation is canceled.</p>
+
+ @since OOo 1.1.2
+ */
+published service FilterOptionsDialog
+{
+ /** this interface is used to set the property values of the
+ com::sun::star::document::MediaDescriptor before executing
+ the dialog and to retrieve the changed com::sun::star::document::MediaDescriptor
+
+ afterwards.
+ */
+ interface com::sun::star::beans::XPropertyAccess;
+
+ /** this interface executes a dialog that displays the options
+ for a filter.
+ If XExecutableDialog::execute()
+ returns <code>ExecutableDialogResults::OK</code>,
+ the options can be retrieved by calling
+ com::sun::star::beans::XPropertyAccess::getPropertyValues.
+ */
+ interface ::com::sun::star::ui::dialogs::XExecutableDialog;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/FolderPicker.idl b/offapi/com/sun/star/ui/dialogs/FolderPicker.idl
new file mode 100644
index 000000000..a283c6085
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/FolderPicker.idl
@@ -0,0 +1,38 @@
+/* -*- 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_dialogs_FolderPicker_idl__
+#define __com_sun_star_ui_dialogs_FolderPicker_idl__
+
+#include <com/sun/star/ui/dialogs/XFolderPicker2.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** A FolderPicker service.
+*/
+
+published service FolderPicker : XFolderPicker2;
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/ListboxControlActions.idl b/offapi/com/sun/star/ui/dialogs/ListboxControlActions.idl
new file mode 100644
index 000000000..dba798e7b
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/ListboxControlActions.idl
@@ -0,0 +1,76 @@
+/* -*- 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_dialogs_ListboxControlActions_idl__
+#define __com_sun_star_ui_dialogs_ListboxControlActions_idl__
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** These constants are deprecated and should not be used anymore. They're superseded
+ by ControlActions.
+ @deprecated
+ */
+
+published constants ListboxControlActions
+{
+ /** Adds an item to the content of the listbox. The given item has to
+ be a string.
+ */
+ const short ADD_ITEM = 1;
+
+ /** Adds a sequence of strings to the content of the listbox.
+ */
+ const short ADD_ITEMS = 2;
+
+ /** Removes an item from a listbox. The given value has to be a
+ position. If the position is invalid an exception will be thrown.
+ The index of the first position is 0.
+ The value should be a sal_Int32.
+ */
+ const short DELETE_ITEM = 3;
+
+ /** Removes all items from the listbox.
+ */
+ const short DELETE_ITEMS = 4;
+
+ /** Selects an item in a listbox. The given value has to be a position.
+ The index of the first position is 0. A value of -1 removes the
+ selection.
+ If the given position is invalid an exception will be thrown.
+ The value should be a sal_Int32.
+ */
+ const short SET_SELECT_ITEM = 5;
+
+ /** Returns all items of the listbox as a sequence of strings.
+ */
+ const short GET_ITEMS = 6;
+
+ /** Returns the currently selected item. The returned item is an empty
+ string if the listbox is empty or no item is selected.
+ */
+ const short GET_SELECTED_ITEM = 7;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/TemplateDescription.idl b/offapi/com/sun/star/ui/dialogs/TemplateDescription.idl
new file mode 100644
index 000000000..2879f72a7
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/TemplateDescription.idl
@@ -0,0 +1,155 @@
+/* -*- 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_dialogs_TemplateDescription_idl__
+#define __com_sun_star_ui_dialogs_TemplateDescription_idl__
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** The implementation of a FilePicker service may support the usage of
+ different templates. The following constants define the currently
+ specified templates.
+
+ @see com::sun::star::ui::dialogs::FilePicker
+ */
+
+published constants TemplateDescription
+{
+ /** A FileOpen dialog without any additional controls.
+ */
+ const short FILEOPEN_SIMPLE = 0;
+
+ /** A FileSave dialog without any additional controls.
+ */
+ const short FILESAVE_SIMPLE = 1;
+
+ /** A FileSave dialog with additional controls.
+ <ul>
+ <li>A checkbox "Auto Extension"</li>
+ <li>A checkbox "Password"</li>
+ </ul>
+ */
+ const short FILESAVE_AUTOEXTENSION_PASSWORD = 2;
+
+ /** A FileSave dialog with additional controls.
+ <ul>
+ <li>A checkbox "Auto Extension"</li>
+ <li>A checkbox "Password"</li>
+ <li>A checkbox "Filter Options"</li>
+ </ul>
+ */
+ const short FILESAVE_AUTOEXTENSION_PASSWORD_FILTEROPTIONS = 3;
+
+ /** A FileSave dialog with additional controls.
+ <ul>
+ <li>A checkbox "Auto Extension"</li>
+ <li>A checkbox "Selection"</li>
+ </ul>
+ */
+ const short FILESAVE_AUTOEXTENSION_SELECTION = 4;
+
+ /** A FileSave dialog with additional controls.
+ <ul>
+ <li>A checkbox "Auto Extension"</li>
+ <li>A listbox "Template" for selecting different templates</li>
+ </ul>
+ */
+ const short FILESAVE_AUTOEXTENSION_TEMPLATE = 5;
+
+ /** A FileOpen dialog with additional controls.
+ <ul>
+ <li>A checkbox "Insert as link"
+ <li>A checkbox "Show Preview"
+ <li>A listbox "Image Template" for inserting an image with different styles.</li>
+ <li>A window for displaying a file preview</li>
+ </ul>
+ */
+ const short FILEOPEN_LINK_PREVIEW_IMAGE_TEMPLATE = 6;
+
+ /** A FileOpen dialog with additional controls.
+ <ul>
+ <li>A push button "Play"</li>
+ </ul>
+ */
+ const short FILEOPEN_PLAY = 7;
+
+ /** A FileOpen dialog with additional controls.
+ <ul>
+ <li>A checkbox "Read only"</li>
+ <li>A listbox "Version" for selecting a document version</li>
+ </ul>
+ */
+ const short FILEOPEN_READONLY_VERSION = 8;
+
+ /** A FileOpen dialog with additional controls.
+ <ul>
+ <li>A checkbox "Insert as link"</li>
+ <li>A checkbox "Show Preview"</li>
+ <li>A window for displaying a file preview</li>
+ </ul>
+ */
+ const short FILEOPEN_LINK_PREVIEW = 9;
+
+ /** A FileSave dialog with additional controls.
+ <ul>
+ <li>A checkbox "Auto Extension"</li>
+ </ul>
+ */
+ const short FILESAVE_AUTOEXTENSION = 10;
+
+ /** A FileOpen dialog with additional controls.
+ <ul>
+ <li>A checkbox "Show Preview"</li>
+ <li>A window for displaying a file preview</li>
+ </ul>
+
+ @since LibreOffice 5.3
+ */
+ const short FILEOPEN_PREVIEW = 11;
+
+ /** A FileOpen dialog with additional controls.
+ <ul>
+ <li>A checkbox "Insert as link"</li>
+ <li>A push button "Play"</li>
+ </ul>
+
+ @since LibreOffice 5.3
+ */
+ const short FILEOPEN_LINK_PLAY = 12;
+
+ /** A FileOpen dialog with additional controls.
+ <ul>
+ <li>A checkbox "Insert as link"
+ <li>A checkbox "Show Preview"
+ <li>A listbox "Image Anchor" for choosing how to anchor the image in Calc.</li>
+ <li>A window for displaying a file preview</li>
+ </ul>
+
+ @since LibreOffice 6.1
+ */
+ const short FILEOPEN_LINK_PREVIEW_IMAGE_ANCHOR = 13;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/Wizard.idl b/offapi/com/sun/star/ui/dialogs/Wizard.idl
new file mode 100644
index 000000000..f7156496a
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/Wizard.idl
@@ -0,0 +1,72 @@
+/* -*- 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_dialogs_Wizard_idl__
+#define __com_sun_star_ui_dialogs_Wizard_idl__
+
+#include <com/sun/star/ui/dialogs/XWizard.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+interface XWizardController;
+
+
+/** provides a framework for implementing a wizard dialog.
+
+ @since OOo 3.3
+ */
+service Wizard : XWizard
+{
+ /** creates a wizard with a single execution path
+ @param PageIds
+ the IDs of the pages which constitute the execution path. IDs must be in ascending order.
+ @param Controller
+ the wizard controller.
+ */
+ createSinglePathWizard(
+ [in] sequence< short > PageIds,
+ [in] XWizardController Controller
+ )
+ raises ( ::com::sun::star::lang::IllegalArgumentException
+ );
+
+ /** creates a wizard with a multiple possible execution paths
+
+ @param PageIds
+ the IDs of the pages which constitute the execution paths. IDs in each path must be in ascending order.
+ @param Controller
+ the wizard controller.
+ */
+ createMultiplePathsWizard(
+ [in] sequence< sequence< short > > PageIds,
+ [in] XWizardController Controller
+ )
+ raises ( ::com::sun::star::lang::IllegalArgumentException
+ );
+};
+
+
+}; }; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/WizardButton.idl b/offapi/com/sun/star/ui/dialogs/WizardButton.idl
new file mode 100644
index 000000000..757a7d33b
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/WizardButton.idl
@@ -0,0 +1,53 @@
+/* -*- 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_dialogs_WizardButton_idl__
+#define __com_sun_star_ui_dialogs_WizardButton_idl__
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+
+/** denotes the buttons found in a Wizard
+
+ @since OOo 3.3
+ */
+constants WizardButton
+{
+ /// denotes none of the buttons in the wizard
+ const short NONE = 0;
+ /// denotes the button used to travel forward through the wizard
+ const short NEXT = 1;
+ /// denotes the button used to travel backward through the wizard
+ const short PREVIOUS = 2;
+ /// denotes the button used to finish the wizard
+ const short FINISH = 3;
+ /// denotes the button used to cancel the wizard
+ const short CANCEL = 4;
+ /// denotes the button used to request help
+ const short HELP = 5;
+};
+
+
+}; }; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/WizardTravelType.idl b/offapi/com/sun/star/ui/dialogs/WizardTravelType.idl
new file mode 100644
index 000000000..8df9865e2
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/WizardTravelType.idl
@@ -0,0 +1,47 @@
+/* -*- 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_dialogs_WizardTravelType_idl__
+#define __com_sun_star_ui_dialogs_WizardTravelType_idl__
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+
+/** denotes ways to leave a Wizard's page
+
+ @since OOo 3.3
+ */
+constants WizardTravelType
+{
+ /// indicates the wizard page is left due to forward traveling through the wizard
+ const short FORWARD = 1;
+ /// indicates the wizard page is left due to backward traveling through the wizard
+ const short BACKWARD = 2;
+ /// indicates the wizard page is left since the wizard is about to be finished
+ const short FINISH = 3;
+};
+
+
+}; }; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XAsynchronousExecutableDialog.idl b/offapi/com/sun/star/ui/dialogs/XAsynchronousExecutableDialog.idl
new file mode 100644
index 000000000..18f1eec71
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XAsynchronousExecutableDialog.idl
@@ -0,0 +1,55 @@
+/* -*- 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_dialogs_XAsynchronousExecutableDialog_idl__
+#define __com_sun_star_ui_dialogs_XAsynchronousExecutableDialog_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/ui/dialogs/XDialogClosedListener.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** Specifies an interface for an executable dialog in asynchronous mode.
+*/
+interface XAsynchronousExecutableDialog: com::sun::star::uno::XInterface
+{
+ /** Sets the title of the dialog.
+
+ @param aTitle
+ Set an arbitrary title for the dialog,
+ may be an empty string if the dialog should not have a title.
+ */
+ void setDialogTitle( [in] string aTitle );
+
+ /** Executes (shows) the dialog and returns immediately.
+
+ @param xListener
+ This listener will be called when the dialog is closed.
+ */
+ void startExecuteModal( [in] XDialogClosedListener xListener );
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XControlAccess.idl b/offapi/com/sun/star/ui/dialogs/XControlAccess.idl
new file mode 100644
index 000000000..ce9cbc689
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XControlAccess.idl
@@ -0,0 +1,88 @@
+/* -*- 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_dialogs_XControlAccess_idl__
+#define __com_sun_star_ui_dialogs_XControlAccess_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** Generic control access interface.
+
+ <p>Use this interface to access user interface controls supported
+ by the implementing service. The supported controls, control
+ properties and the appropriate values are documented in the
+ description of the implementing service.</p>
+
+ @see com::sun::star::ui::dialogs::FilePicker
+ @see com::sun::star::ui::dialogs::FilePicker
+
+ @since OOo 1.1.2
+*/
+published interface XControlAccess: com::sun::star::uno::XInterface
+{
+/** Change a control property.
+
+ @param aControlName
+ The name of the control. Common control names are for
+ instance "OkButton" or "CancelButton".
+
+ @param aControlProperty
+ The control property to manipulate. Common control properties
+ are for instance "Label" or "State".
+
+ @param aValue
+ A value appropriated for the property.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ when the control is not supported, the control property is invalid or
+ the value fits not the control action.
+*/
+void setControlProperty( [in] string aControlName, [in] string aControlProperty, [in] any aValue )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+/** Query for a control property.
+
+ @param aControlName
+ The name of the control. Common control names are for
+ instance "OkButton" or "CancelButton".
+
+ @param aControlProperty
+ The requested control property. Common control properties
+ are for instance "Label" or "State".
+
+ @returns
+ the requested value.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ when the control is not supported or the control property is invalid.
+*/
+any getControlProperty( [in] string aControlName, [in] string aControlProperty )
+ raises( com::sun::star::lang::IllegalArgumentException );
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XControlInformation.idl b/offapi/com/sun/star/ui/dialogs/XControlInformation.idl
new file mode 100644
index 000000000..3fbe3f2aa
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XControlInformation.idl
@@ -0,0 +1,94 @@
+/* -*- 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_dialogs_XControlInformation_idl__
+#define __com_sun_star_ui_dialogs_XControlInformation_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** Interface to query for controls and control properties supported by the
+ implementing instance.
+
+ @since OOo 1.1.2
+*/
+published interface XControlInformation: com::sun::star::uno::XInterface
+{
+/** Query for the supported controls of a service instance.
+
+ @returns
+ a sequence with the names of the supported controls.
+*/
+sequence<string> getSupportedControls( );
+
+/** Returns whether the specified control is supported or not.
+
+ @param aControlName
+ The name of the control. Common control names are for
+ instance "OkButton" or "CancelButton".
+
+ @returns
+ `TRUE` if the specified control is supported.
+ `FALSE` if the specified control is not supported.
+*/
+boolean isControlSupported( [in] string aControlName );
+
+/** Returns a sequence with properties supported by the specified
+ control.
+
+ @param aControlName
+ The name of the control. Common control names are for
+ instance "OkButton" or "CancelButton".
+
+ @returns
+ a sequence of control properties supported by the specified control.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ when the specified control is not supported.
+*/
+sequence<string> getSupportedControlProperties( [in] string aControlName )
+ raises( com::sun::star::lang::IllegalArgumentException );
+
+/** Returns whether control property is supported by a control.
+
+ @param aControlName
+ The name of the control.
+
+ @param aControlProperty
+ The control property to query for.
+
+ @returns
+ `TRUE` if the specified control action is supported.
+ `FALSE` if the specified control action is not supported.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ when the specified control is not supported.
+*/
+boolean isControlPropertySupported( [in] string aControlName, [in] string aControlProperty )
+ raises( com::sun::star::lang::IllegalArgumentException );
+};
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XDialogClosedListener.idl b/offapi/com/sun/star/ui/dialogs/XDialogClosedListener.idl
new file mode 100644
index 000000000..75f3eb44c
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XDialogClosedListener.idl
@@ -0,0 +1,54 @@
+/* -*- 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_dialogs_XDialogClosedListener_idl__
+#define __com_sun_star_ui_dialogs_XDialogClosedListener_idl__
+
+#include <com/sun/star/lang/XEventListener.idl>
+#include <com/sun/star/ui/dialogs/DialogClosedEvent.idl>
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** Used to notify listeners about dialog-closed events.
+
+ <p>Registered listeners will be notified with a
+ DialogClosedEvent when a XAsynchronousExecutableDialog is closed.</p>
+
+ @see XAsynchronousExecutableDialog
+ @see DialogClosedEvent
+*/
+
+
+interface XDialogClosedListener: com::sun::star::lang::XEventListener
+{
+ /** A client receives this event if a dialog is closed.
+
+ @param aEvent
+ of type DialogClosedEvent that describes the event
+
+ @see EndDialogEvent
+ */
+ void dialogClosed( [in] DialogClosedEvent aEvent );
+};
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XExecutableDialog.idl b/offapi/com/sun/star/ui/dialogs/XExecutableDialog.idl
new file mode 100644
index 000000000..610a0859d
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XExecutableDialog.idl
@@ -0,0 +1,58 @@
+/* -*- 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_dialogs_XExecutableDialog_idl__
+#define __com_sun_star_ui_dialogs_XExecutableDialog_idl__
+
+#include <com/sun/star/uno/RuntimeException.idl>
+#include <com/sun/star/uno/XInterface.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** Specifies an interface for an executable dialog.
+*/
+
+
+published interface XExecutableDialog: com::sun::star::uno::XInterface
+{
+ /** Sets the title of the dialog.
+
+ @param aTitle
+ Set an arbitrary title for the dialog,
+ may be an empty string if the dialog should not
+ have a title.
+ */
+ void setTitle( [in] string aTitle );
+
+ /** Executes (shows) the dialog.
+
+ @returns
+ A status code of type ExecutableDialogResults.
+ */
+ short execute();
+};
+
+
+}; }; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XFilePicker.idl b/offapi/com/sun/star/ui/dialogs/XFilePicker.idl
new file mode 100644
index 000000000..17b56cc34
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XFilePicker.idl
@@ -0,0 +1,107 @@
+/* -*- 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_dialogs_XFilePicker_idl__
+#define __com_sun_star_ui_dialogs_XFilePicker_idl__
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/ui/dialogs/XExecutableDialog.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** Specifies an interface for a FilePicker
+*/
+
+published interface XFilePicker: com::sun::star::ui::dialogs::XExecutableDialog
+{
+
+ /** Enable/disable multi-selection mode
+
+ <p>If the multi-selection mode is enabled, multiple files
+ may be selected by the user else only one file selection at a time is possible</p>
+
+ @param bMode
+ <p>A value of `TRUE` enables the multi-selection mode.</p>
+ <p>A value of `FALSE` disables the multi-selection mode, this is the default.</p>
+ */
+ void setMultiSelectionMode( [in] boolean bMode );
+
+ /** Sets the default string that appears in the file name box of a FilePicker.
+
+ @param aName
+ <p> Specifies the default file name, displayed when the FilePicker
+ is shown. The implementation may accept any string, and does not
+ have to check for a valid file name or if the file really exists.
+ </p>
+ */
+ void setDefaultName( [in] string aName );
+
+ /** Sets the directory that the file dialog initially displays.
+
+ @param aDirectory
+ Specifies the initial directory in URL format. The given URL must
+ conform to <a href="http://www.w3.org/Addressing/rfc1738.txt">Rfc1738</a>).
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the URL is invalid (doesn't conform to <a href="http://www.w3.org/Addressing/rfc1738.txt">Rfc1738</a>).
+ */
+ void setDisplayDirectory( [in] string aDirectory )
+ raises( ::com::sun::star::lang::IllegalArgumentException );
+
+ /** Returns the directory that the file dialog is currently showing or
+ was last showing before closing the dialog with Ok. If the user
+ did cancel the dialog, the returned value is undefined.
+
+ @returns
+ The directory in URL format, must conform to <a href="http://www.w3.org/Addressing/rfc1738.txt">Rfc1738</a>.
+ */
+ string getDisplayDirectory();
+
+ /** Returns a sequence of the selected files including path information in
+ URL format, conforming to <a href="http://www.w3.org/Addressing/rfc1738.txt">Rfc1738</a>.
+
+ <p>If the user closed the dialog with cancel an empty sequence will be
+ returned.</p>
+ <br/>
+ <p>If the dialog is in execution mode and a single file is selected
+ the complete URL of this file will be returned.</p>
+ <p>If the dialog is in execution mode and the selected file name is false
+ or any other error occurs an empty sequence will be returned.</p>
+
+ @returns
+ <p> The complete path of the file or directory currently selected
+ in URL format. This always returns only the first entry of the sequence.
+ <br/>
+ <p><strong>Notes for the implementation of a FileSave dialog:</strong>If there exists
+ a checkbox "Automatic File Extension" which is checked and a valid filter is currently selected
+ the dialog may automatically add an extension to the selected file name.</p>
+ </p>
+ @deprecated use com::sun::star::ui::dialogs::XFilePicker2::getSelectedFiles instead
+ */
+ sequence< string > getFiles();
+};
+
+
+}; }; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XFilePicker2.idl b/offapi/com/sun/star/ui/dialogs/XFilePicker2.idl
new file mode 100644
index 000000000..b04517f51
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XFilePicker2.idl
@@ -0,0 +1,62 @@
+/* -*- 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_dialogs_XFilePicker2_idl__
+#define __com_sun_star_ui_dialogs_XFilePicker2_idl__
+
+#include <com/sun/star/ui/dialogs/XFilePicker.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** extends file picker interface to workaround some design problems.
+*/
+published interface XFilePicker2 : ::com::sun::star::ui::dialogs::XFilePicker
+{
+ /** Returns a sequence of the selected files including path information in
+ URL format, conforming to <a href="http://www.w3.org/Addressing/rfc1738.txt">Rfc1738</a>.
+
+ <p>If the user closed the dialog with cancel an empty sequence will be returned.</p>
+ <br/>
+
+ <p>If the user closed the dialog with OK a list of all selected files will be returned.</p>
+
+ @attention
+ <p>
+ Instead to the method getFiles() of base interface XFilePicker the new method return
+ full qualified URLs for every selected file.
+ </p>
+
+ @returns
+ <p>A list of all selected file as complete URLs.</p>
+ <br/>
+
+ <p><strong>Notes for the implementation of a FileSave dialog:</strong>If there exists
+ a checkbox "Automatic File Extension" which is checked and a valid filter is currently selected
+ the dialog may automatically add an extension to the selected file name(s).</p>
+ */
+ sequence< string > getSelectedFiles();
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XFilePicker3.idl b/offapi/com/sun/star/ui/dialogs/XFilePicker3.idl
new file mode 100644
index 000000000..d2ee0e2d7
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XFilePicker3.idl
@@ -0,0 +1,78 @@
+/* -*- 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_dialogs_XFilePicker3_idl__
+#define __com_sun_star_ui_dialogs_XFilePicker3_idl__
+
+#include <com/sun/star/lang/XComponent.idl>
+#include <com/sun/star/util/XCancellable.idl>
+#include <com/sun/star/ui/dialogs/XFilePicker2.idl>
+#include <com/sun/star/ui/dialogs/XFilePickerNotifier.idl>
+#include <com/sun/star/ui/dialogs/XFilePickerControlAccess.idl>
+#include <com/sun/star/ui/dialogs/XFilterManager.idl>
+#include <com/sun/star/ui/dialogs/XFilePreview.idl>
+#include <com/sun/star/ui/dialogs/XFilterGroupManager.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+
+/**
+ Provides unified interface for FilePicker service.
+
+ @since LibreOffice 4.1
+*/
+published interface XFilePicker3
+{
+ interface XFilePicker2;
+
+ /** Provides the ability to request notifications about changes.
+ */
+ interface XFilePickerNotifier; // extends XEventListener
+
+ /** Provides the ability to add different filter, query for the current
+ filters and set a current filter
+ */
+ interface XFilterManager;
+
+ /** Provides the ability to show a preview of a selected file
+ */
+ [optional] interface XFilePreview;
+
+ /** An interface which allows manipulation of groups of filters
+ */
+ interface XFilterGroupManager;
+
+ /** For canceling a running dialog instance.
+ <p>This may be useful for automatic test tools for instance.</p>
+ */
+ interface com::sun::star::util::XCancellable;
+
+ /** For shutdown and listener support.
+ */
+ interface com::sun::star::lang::XComponent;
+
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XFilePickerControlAccess.idl b/offapi/com/sun/star/ui/dialogs/XFilePickerControlAccess.idl
new file mode 100644
index 000000000..e50db024c
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XFilePickerControlAccess.idl
@@ -0,0 +1,136 @@
+/* -*- 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_dialogs_XFilePickerControlAccess_idl__
+#define __com_sun_star_ui_dialogs_XFilePickerControlAccess_idl__
+
+#include <com/sun/star/ui/dialogs/XFilePicker.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** Provides access to the controls of a FilePicker.
+
+ <p> A FilePicker may contain additional elements according to the needs
+ of the different applications. These additional elements can be
+ addressed by this interface.</p>
+
+ @see com::sun::star::ui::dialogs::FilePicker
+*/
+published interface XFilePickerControlAccess: com::sun::star::ui::dialogs::XFilePicker
+{
+
+/** Set the value of an additional element within a FilePicker.
+
+ @param ControlId
+ Identifies the element which value is to be set.
+
+ @param aControlAction
+ Specifies an action to perform with the given value.
+ aControlAction has to be one of the values defined in ControlActions.
+ Not all of the values are valid for all controls.
+ To add a new filter to the FilePicker use the interface XFilterManager, but
+ optionally an implementation may also support adding new filter using this
+ method.
+
+ @param aValue
+ The value to set. For checkboxes aValue should be a boolean value that
+ should be `TRUE` if the checkbox should be checked and `FALSE` otherwise.
+
+ @see com::sun::star::ui::dialogs::CommonFilePickerElementIds
+ @see com::sun::star::ui::dialogs::ExtendedFilePickerElementIds
+ @see com::sun::star::ui::dialogs::ControlActions
+*/
+void setValue( [in] short ControlId, [in] short aControlAction, [in] any aValue );
+
+/** Get the value of an additional element within a FilePicker
+
+ @param aControlId
+ Identifies the element for which value is requested.
+
+ @param aControlAction
+ Specifies which value to retrieve.
+ aControlAction has to be one of the values defined in ControlActions.
+ Not all of the values are valid for all controls.
+
+ @returns
+ The value of the specified element. If the specified control
+ is a checkbox the returned value is a boolean that is `TRUE`
+ if the checkbox is checked `FALSE` otherwise.
+ If the specified element doesn't exist or the specified element
+ doesn't support the specified control action an empty any will be
+ returned.
+
+ @see com::sun::star::ui::dialogs::CommonFilePickerElementIds
+ @see com::sun::star::ui::dialogs::ExtendedFilePickerElementIds
+ @see com::sun::star::ui::dialogs::ControlActions
+*/
+any getValue( [in] short aControlId, [in] short aControlAction );
+
+/** Set the label of the specified element. If the specified element
+ doesn't support setting a label, this method has no effect.
+
+ @param aControlId
+ Identifies the element for which the label should be set.
+
+ @param aLabel
+ The label to be set.
+
+ @see com::sun::star::ui::dialogs::CommonFilePickerElementIds
+ @see com::sun::star::ui::dialogs::ExtendedFilePickerElementIds
+*/
+void setLabel( [in] short aControlId, [in] string aLabel );
+
+/** Returns the label of the specified element.
+
+ @param aControlId
+ Identifies the element for which the label should be returned.
+
+ @returns
+ The label of the specified element or an empty string if
+ the specified element has no or supports no label or the
+ specified element doesn't exist.
+
+ @see com::sun::star::ui::dialogs::CommonFilePickerElementIds
+ @see com::sun::star::ui::dialogs::ExtendedFilePickerElementIds
+*/
+string getLabel( [in] short aControlId );
+
+/** Enables or disables a control.
+
+ @param ControlId
+ Identifies the control.
+
+ @param bEnable
+ <p>If `TRUE` the specified control will be enabled.</p>
+ <p>If `FALSE` the specified control will be disabled.</p>
+
+ @see com::sun::star::ui::dialogs::CommonFilePickerElementIds
+ @see com::sun::star::ui::dialogs::ExtendedFilePickerElementIds
+*/
+void enableControl( [in] short ControlId, [in] boolean bEnable );
+};
+
+
+}; }; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XFilePickerListener.idl b/offapi/com/sun/star/ui/dialogs/XFilePickerListener.idl
new file mode 100644
index 000000000..21d82c810
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XFilePickerListener.idl
@@ -0,0 +1,100 @@
+/* -*- 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_dialogs_XFilePickerListener_idl__
+#define __com_sun_star_ui_dialogs_XFilePickerListener_idl__
+
+#include <com/sun/star/lang/XEventListener.idl>
+#include <com/sun/star/ui/dialogs/FilePickerEvent.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+
+/** Interface to be implemented by a FilePicker listener.
+
+ <p> The XFilePickerListener interface must be implemented by
+ the clients of the FilePicker service which need to be informed about
+ events while the FilePicker service is displayed.</p>
+*/
+
+published interface XFilePickerListener: com::sun::star::lang::XEventListener
+{
+ /** A client receives this event if the file selection within the
+ FilePicker service dialog changes.
+
+ @param aEvent
+ of type FilePickerEvent that describes the event
+
+ @see com::sun::star::ui::dialogs::FilePickerEvent
+ */
+ void fileSelectionChanged( [in] FilePickerEvent aEvent );
+
+
+ /** A client receives this event if the directory selection within the
+ FilePicker dialog changes.
+
+ @param aEvent
+ Of type FilePickerEvent that describes the event.
+
+ @see com::sun::star::ui::dialogs::FilePickerEvent
+ */
+ void directoryChanged( [in] FilePickerEvent aEvent );
+
+ /** A client receives this event if the F1 key or the help button was
+ pressed.
+
+ @param aEvent
+ of type FilePickerEvent that describes the event
+
+ @returns
+ A help string which the FilePicker dialog should use to display
+ a help for a specific control. If the returned string is empty it is
+ undefined how the FilePicker implementation will behave.
+ It may show a message "no help available" or may show no
+ help at all.
+
+ @see com::sun::star::ui::dialogs::FilePickerEvent
+ */
+ string helpRequested( [in] FilePickerEvent aEvent );
+
+ /** A client receives this event if the state of a control within the
+ FilePicker service dialog changes.
+
+ @param aEvent
+ of type FilePickerEvent that describes the event.
+
+ @see com::sun::star::ui::dialogs::FilePickerEvent
+ */
+ void controlStateChanged( [in] FilePickerEvent aEvent );
+
+ /** A client receives this event if the size of the FilePicker dialog
+ has changed. If the FilePicker dialog contains a preview the client
+ may ask for the new dimension of the preview area.
+ */
+ void dialogSizeChanged( );
+};
+
+
+}; }; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XFilePickerNotifier.idl b/offapi/com/sun/star/ui/dialogs/XFilePickerNotifier.idl
new file mode 100644
index 000000000..9c20dc932
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XFilePickerNotifier.idl
@@ -0,0 +1,58 @@
+/* -*- 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_dialogs_XFilePickerNotifier_idl__
+#define __com_sun_star_ui_dialogs_XFilePickerNotifier_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/ui/dialogs/XFilePickerListener.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+
+/** Interface to be implemented in order to support listener management.
+*/
+published interface XFilePickerNotifier: com::sun::star::uno::XInterface
+{
+ /** Interface for clients to register as XFilePickerListener
+
+ @param xListener
+ The XFilePickerListener interface of the listener that
+ wants to receive events of type FilePickerEvent.
+ <p>Invalid interfaces or NULL values will be ignored.</p>
+ */
+ void addFilePickerListener( [in] XFilePickerListener xListener );
+
+ /** Interface for clients to unregister as XFilePickerListener.
+
+ @param xListener
+ The XFilePickerListener interface of the listener that
+ wants to receive events of type FilePickerEvent.
+ <p>Invalid interfaces or NULL values will be ignored.</p>
+ */
+ void removeFilePickerListener( [in] XFilePickerListener xListener );
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XFilePreview.idl b/offapi/com/sun/star/ui/dialogs/XFilePreview.idl
new file mode 100644
index 000000000..baaa033db
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XFilePreview.idl
@@ -0,0 +1,122 @@
+/* -*- 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_dialogs_XFilePreview_idl__
+#define __com_sun_star_ui_dialogs_XFilePreview_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/util/Color.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** FilePicker that support the preview of various file formats should implement
+ this interface.
+*/
+
+published interface XFilePreview: com::sun::star::uno::XInterface
+{
+ /** The method returns all image formats that the preview supports.
+
+ @returns
+ A sequence of all supported preview formats
+
+ @see com::sun::star::ui::dialogs::FilePreviewImageFormats
+ */
+ sequence< short > getSupportedImageFormats( );
+
+ /** The method returns the supported color depth of the target device.
+
+ @deprecated - typically now just returns 0
+
+ @returns
+ The color depth in bit, e.g. 8 bit, 16 bit, 32 bit.
+ */
+ com::sun::star::util::Color getTargetColorDepth( );
+
+ /** The method returns the available width of the preview window
+ even if the window is invisible or could not be created.
+ If a service implementation doesn't support a file preview
+ 0 will be returned.
+
+ @returns
+ The width of the preview window in pixel.
+ */
+ long getAvailableWidth( );
+
+ /** The method returns the available height of the preview window
+ even if the window is invisible or could not be created.
+ If a service implementation doesn't support a file preview
+ 0 will be returned.
+
+ @returns
+ The height of the preview window in pixel.
+ */
+ long getAvailableHeight( );
+
+ /** Sets a new image. If the preview is currently hidden the
+ image will be ignored. An empty any will clear the preview window.
+
+ @param aImageFormat
+ Specifies the format of the data that will be delivered
+
+ @param aImage
+ The image data, the image format defines how
+ the image data have to be delivered
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ If the specified image format is invalid or not
+ supported by the preview implementation
+
+ @see com::sun::star::ui::dialogs::FilePreviewImageFormats
+ */
+ void setImage( [in] short aImageFormat, [in] any aImage )
+ raises( ::com::sun::star::lang::IllegalArgumentException );
+
+ /** Optionally sets the current show state of the preview. It is possible
+ that the preview implementation doesn't support hiding the preview.
+
+ @param bShowState
+ A value of `TRUE` shows the preview window.
+ <p>A value of `FALSE` hides the preview window.</p>
+
+ @returns
+ A value of `TRUE` on success.
+ <p>A value of `FALSE` if the operation fails for any reason or the preview
+ implementation doesn't support hiding the preview.</p>
+ */
+ boolean setShowState( [in] boolean bShowState );
+
+ /** Returns the current show state of the preview.
+
+ @returns
+ A value of `TRUE` if the preview window is visible.
+ <p>A value of `FALSE` if the preview window is invisible.</p>
+ */
+ boolean getShowState( );
+};
+
+
+}; }; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XFilterGroupManager.idl b/offapi/com/sun/star/ui/dialogs/XFilterGroupManager.idl
new file mode 100644
index 000000000..2776717a5
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XFilterGroupManager.idl
@@ -0,0 +1,65 @@
+/* -*- 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_dialogs_XFilterGroupManager_idl__
+#define __com_sun_star_ui_dialogs_XFilterGroupManager_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/beans/StringPair.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** Specifies an interface which allows manipulation of groups of filters
+ for the FilePicker service.
+*/
+published interface XFilterGroupManager : com::sun::star::uno::XInterface
+{
+ /** Appends a group of filters to the current filter list.
+
+ <p>It is implementation dependent how the filter groups are presented to the user.<br/>
+ It is not even guaranteed that the groups are visualized: implementations are free to simply
+ append all the filters separately, with ignoring the group title.</p>
+
+ @param sGroupTitle
+ The title of the filter group. Usually, the caller should localize this title, as it is to be presented to
+ the user.
+
+ @param aFilters
+ The filters which form a group. Every filter consists of two strings, where the first one is a display name
+ (as for sGroupTitle, it holds that these strings should be localized), and the second one the
+ semicolon separated list of wildcard expressions for the filter.<br/>
+ Usually, the expressions are simply extensions (e.g. "*.txt"), but this must no necessarily be the case.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if one or more filters in the given filter list already exist.
+
+ @see com::sun::star::ui::dialogs::XFilterManager
+ @see com::sun::star::ui::dialogs::FilePicker
+ */
+ void appendFilterGroup(
+ [in] string sGroupTitle,
+ [in] sequence< com::sun::star::beans::StringPair > aFilters
+ )
+ raises( com::sun::star::lang::IllegalArgumentException );
+};
+
+}; }; }; }; };
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XFilterManager.idl b/offapi/com/sun/star/ui/dialogs/XFilterManager.idl
new file mode 100644
index 000000000..123b92354
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XFilterManager.idl
@@ -0,0 +1,79 @@
+/* -*- 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_dialogs_XFilterManager_idl__
+#define __com_sun_star_ui_dialogs_XFilterManager_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** Specifies a filter manager interface for a FilePicker
+*/
+
+published interface XFilterManager: com::sun::star::uno::XInterface
+{
+
+ /** Adds a filter identified by a title.
+
+ @param aTitle
+ Specifies the name of the filter as shown in the filter box of the
+ FilePicker dialog.
+
+ @param aFilter
+ Specifies the extensions of the filter. Multiple filters should be
+ semicolon separated. The semicolon may not be used as character in
+ a filter expression. A typical filter is for instance "*.txt".
+
+ @throws ::com::sun::star::lang::IllegalArgumentException
+ If a filter with the specified title already exists.
+
+ */
+ void appendFilter( [in] string aTitle, [in] string aFilter )
+ raises( ::com::sun::star::lang::IllegalArgumentException );
+
+ /** Sets the current filter.
+
+ @param aTitle
+ Specifies the name of the filter to be set.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ If the specified filter was not found.
+ */
+ void setCurrentFilter( [in] string aTitle )
+ raises( ::com::sun::star::lang::IllegalArgumentException );
+
+ /** Returns the currently selected filter.
+
+ @returns
+ The name of the selected filter or an empty string if
+ there is no filter or no filter is currently selected.
+ */
+ string getCurrentFilter( );
+};
+
+
+}; }; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XFolderPicker.idl b/offapi/com/sun/star/ui/dialogs/XFolderPicker.idl
new file mode 100644
index 000000000..26f02dd31
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XFolderPicker.idl
@@ -0,0 +1,78 @@
+/* -*- 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_dialogs_XFolderPicker_idl__
+#define __com_sun_star_ui_dialogs_XFolderPicker_idl__
+
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/ui/dialogs/XExecutableDialog.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/** Specifies a FolderPicker interface.
+*/
+
+published interface XFolderPicker: com::sun::star::ui::dialogs::XExecutableDialog
+{
+ /** Sets the root directory that the FolderPicker should display.
+ It is not specified which root directory the FolderPicker
+ chooses if the specified root directory doesn't exist.
+
+ @param aDirectory
+ Specifies the root directory in url format, conforming to <a href="http://www.w3.org/Addressing/rfc1738.txt">Rfc1738</a>.
+
+ @throws com::sun::star::lang::IllegalArgumentException
+ if the given url is invalid.
+ */
+ void setDisplayDirectory( [in] string aDirectory )
+ raises( ::com::sun::star::lang::IllegalArgumentException );
+
+ /** Returns the root directory that the FolderPicker is showing. The
+ return value is undefined if the client did not choose a root directory
+ or the previously specified root directory doesn't exist.
+
+ @returns
+ The directory in url format.
+ */
+ string getDisplayDirectory();
+
+ /** Returns the selected directory as url conforming to <a href="http://www.w3.org/Addressing/rfc1738.txt">Rfc1738</a>.
+
+ @returns
+ The selected directory as url if the user did close the dialog with Ok
+ else the returned value is undefined.
+ */
+ string getDirectory( );
+
+ /** The implementation may optionally show the given text as a description
+ for the user within the dialog, e.g. "Please select a directory".
+ If the client doesn't set a description the dialog may show a default
+ description.
+ */
+ void setDescription( [in] string aDescription );
+};
+
+
+}; }; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XFolderPicker2.idl b/offapi/com/sun/star/ui/dialogs/XFolderPicker2.idl
new file mode 100644
index 000000000..7dc16dc1c
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XFolderPicker2.idl
@@ -0,0 +1,53 @@
+/* -*- 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_dialogs_XFolderPicker2_idl__
+#define __com_sun_star_ui_dialogs_XFolderPicker2_idl__
+
+#include <com/sun/star/ui/dialogs/XFolderPicker.idl>
+#include <com/sun/star/util/XCancellable.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+
+/**
+ Provides a unified interface for the new-style FolderPicker service to implement.
+
+ @since LibreOffice 4.0
+*/
+published interface XFolderPicker2
+{
+ /** Provides the ability to execute a FolderPicker dialog and
+ browse for and select folders.
+ */
+ interface XFolderPicker;
+
+ /** For canceling a running dialog instance.
+ <p>This may be useful for automatic test tools for instance.</p>
+ */
+ interface com::sun::star::util::XCancellable;
+};
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XSLTFilterDialog.idl b/offapi/com/sun/star/ui/dialogs/XSLTFilterDialog.idl
new file mode 100644
index 000000000..7eea2ebd7
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XSLTFilterDialog.idl
@@ -0,0 +1,38 @@
+/* -*- 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_dialogs_XSLTFilterDialog_idl__
+#define __com_sun_star_ui_dialogs_XSLTFilterDialog_idl__
+
+#include <com/sun/star/ui/dialogs/XExecutableDialog.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+/**
+ @since LibreOffice 4.1
+*/
+published service XSLTFilterDialog : XExecutableDialog;
+
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XWizard.idl b/offapi/com/sun/star/ui/dialogs/XWizard.idl
new file mode 100644
index 000000000..59b8d61c0
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XWizard.idl
@@ -0,0 +1,221 @@
+/* -*- 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_dialogs_XWizard_idl__
+#define __com_sun_star_ui_dialogs_XWizard_idl__
+
+#include <com/sun/star/ui/dialogs/XExecutableDialog.idl>
+#include <com/sun/star/util/InvalidStateException.idl>
+#include <com/sun/star/container/NoSuchElementException.idl>
+#include <com/sun/star/awt/XWindow.idl>
+
+module com { module sun { module star { module ui { module dialogs {
+
+
+interface XWizardPage;
+
+/** is the main interface implemented by the Wizard services.
+
+ <p>A wizard is a dialog which guides the user through a number of tasks (usually input of data), which the user can
+ accomplish either sequentially or out-of-order. For this, a wizard is comprised of a number of tab pages,
+ each page representing a single <em>step</em>.</p>
+
+ <p>Sequential navigation in a wizard is done via a <em>Next</em> and a <em>Back</em> button. Non-sequential navigation
+ is done via a roadmap, which is displayed on the left hand side of the wizard dialog, lists all available
+ steps, and allows jumping to a certain step (where the creator of the wizard can restrict the available steps
+ depending on the current situation in the wizard, see below).</p>
+
+ <p>A sequence of steps in a wizard dialog is called a <em>path</em>. A given wizard can support one or multiple paths,
+ which are declared at the time of construction of the wizard.</p>
+
+ <p>In the simplest case, where the wizard supports only one path, all available steps are displayed in the roadmap,
+ and the user can simply travel through them as desired.</p>
+
+ <p>If the wizard is more complex, and supports multiple paths, things become more complicated. In a given situation
+ of the wizard, where the user is at step <em>k</em> of the current path, the <em>potential</em> or <em>conflicting</em>
+ paths are those whose first <em>k</em> steps are the same as in the current path. Obviously, there's at least one
+ potential path in every situation: the current one. If there is more than one, then the future steps in the dialog
+ are not finally decided. In such a case, the roadmap will display future steps up to the point where the potential
+ paths diverge, and then an item <em><code>...</code></em> indicating that the order of steps is undecided.</p>
+
+ <p>An XWizardController can declare a certain path as active path by calling the activatePath()
+ method. Usually, this is done depending on user input. For instance, your wizard could have radio buttons on the
+ first page which effectively decide about which path to take in the wizard.</p>
+
+ <p>Single steps in the wizard can be freely enabled and disabled, using the enablePage() method.
+ Disabled pages are skipped during sequential traveling, and not selectable in the roadmap.</p>
+
+ <p>The state of the <em>Next</em> button in the dialog will be automatically maintained in most situations,
+ depending on the results of calls to the XWizardController::canAdvance() and XWizardPage::canAdvance()
+ methods. More sophisticated wizard logic, however, will need manual calls to the enableButton() method.
+ Also, the <em>Finish</em> button needs to be maintained by the wizard's controller, too, as it cannot be decided
+ generically in which situations it should be enabled or disabled.</p>
+
+ @see XWizardController
+ @see XWizardPage
+
+ @since OOo 3.3
+ */
+interface XWizard
+{
+ interface XExecutableDialog;
+
+ /** is the help URL of the wizard's main window.
+ */
+ [attribute] string HelpURL;
+
+ [attribute, readonly] ::com::sun::star::awt::XWindow
+ DialogWindow;
+
+ /** provides access to the current page of the wizard
+ */
+ XWizardPage
+ getCurrentPage();
+
+ /** enables or disables a certain button in the wizard
+
+ <p>Normally, you will want to use this method for the <em>Finish</em> button only: The <em>Next</em>
+ and <em>Back</em> buttons are usually maintained automatically, the <em>Help</em> and <em>Cancel</em>
+ buttons are unlikely to ever being disabled.</p>
+
+ @param WizardButton
+ denotes the button to enable or disable, as one of the WizardButton constants. Must not be
+ WizardButton::NONE.
+ @param Enable
+ specifies whether the button should be enabled (`TRUE`) or disabled (`FALSE`)
+ */
+ void enableButton( [in] short WizardButton, [in] boolean Enable );
+
+ /** sets a button in the wizard as default button
+
+ <p>In general, the default button in a wizard is the one which is activated when the user presses
+ the <em>return</em> key while the focus is in a control which does not handle this key itself (such as
+ ordinary input controls).</p>
+
+ <p>You can use this method, for instance, to make the <em>Next</em> button the default button on all pages
+ except the last one, where <em>Finish</em> should be defaulted.</p>
+ */
+ void setDefaultButton( [in] short WizardButton );
+
+ /** travels to the next page, if possible
+
+ <p>Calling this method is equivalent to the user pressing the <em>Next</em> button in the wizard. Consequently,
+ the method will fail if in the current state of the wizard, it is not allowed to advance to a next page.</p>
+ */
+ boolean travelNext();
+
+ /** travels to the next page, if possible
+
+ <p>Calling this method is equivalent to the user pressing the <em>Back</em> button in the wizard.</p>
+ */
+ boolean travelPrevious();
+
+ /** enables or disables the given page
+
+ <p>You can use this method when not all pages of your wizard are necessarily needed in all cases. For instance,
+ assume that your first wizard page contains a check box, which the user can check to enter additional data.
+ If you place this data on the second page, then you will want to enable this second page if and only if the
+ checkbox is checked.</p>
+
+ <p>If a page is disabled, it can reached neither by clicking the respective item in the wizard's roadmap,
+ nor by sequential traveling. Still, the page's item is displayed in the roadmap, though disabled.</p>
+
+ @throws ::com::sun::star::container::NoSuchElementException
+ if there is no page with the given ID
+ @throws ::com::sun::star::util::InvalidStateException
+ if the page shall be disabled, but is active currently.
+ */
+ void enablePage( [in] short PageID, [in] boolean Enable )
+ raises ( ::com::sun::star::container::NoSuchElementException
+ , ::com::sun::star::util::InvalidStateException );
+
+ /** updates the wizard elements which are related to traveling.
+
+ <p>For instance, the <em>Next</em> button is disabled if the current page's XWizardPage::canAdvance()
+ method returns `FALSE`.</p>
+
+ <p>You usually call this method from within a wizard page whose state changed in a way that it affects the
+ user's ability to reach other pages.</p>
+ */
+ void updateTravelUI();
+
+ /** advances to the given page, if possible.
+
+ <p>Calling this method is equivalent to the user repeatedly pressing the <em>Next</em> button, until the
+ given page is reached. Consequently, the method will fail if one of the intermediate pages does not allow
+ advancing to the next page.</p>
+ */
+ boolean advanceTo( [in] short PageId );
+
+ /** goes back to the given page, if possible.
+
+ <p>Calling this method is equivalent to the user repeatedly pressing the <em>Back</em> button, until the
+ given page is reached.</p>
+ */
+ boolean goBackTo( [in] short PageId );
+
+ /** activates a path
+
+ <p>If the wizard has been created with multiple paths of control flow, then this method allows switching to
+ another path.</p>
+
+ <p>You can only activate a path which shares the first <code>k</code> pages with the path
+ which is previously active (if any), where <code>k</code> is the index of the current page within the current
+ path.</p>
+
+ <p><strong>Example</strong>: Say you have paths, <code>(0,1,2,5)</code> and <code>(0,1,4,5)</code> (with
+ the numbers denoting page IDs). This means that after page <code>1</code>, you either continue with page
+ <code>2</code> or state <code>4</code>,and after this, you finish in state <code>5</code>.<br/>
+ Now if the first path is active, and your current state is <code>1</code>, then you can easily switch to the
+ second path, since both paths start with <code>(0,1)</code>.<br/>
+ However, if your current state is <code>2</code>, then you can not switch to the second path anymore.</p>
+
+ @param PathIndex
+ the index of the path, as used in the Wizard::createMultiplePathsWizard() constructor.
+ @param Final
+ <p>If `TRUE`, the path will be completely activated, even if it is a conflicting path (i.e. there is another
+ path which shares the first <code>k</code> states with the to-be-activated path.)</p>
+
+ <p>If `FALSE`, then the new path is checked for conflicts with other paths. If such conflicts exists, the path
+ is not completely activated, but only up to the point where it does <em>not</em> conflict.</p>
+
+ <p>In this latter case, you need another activatePath method (usually triggered by the user doing some decisions
+ and entering some data on the reachable pages) before the wizard can actually be finished.</p>
+
+ <p>With the paths in the example above, if you activate the second path, then only steps <code>0</code> and
+ <code>1</code> are activated, since they are common to both paths. Steps <code>2</code>, <code>4</code>,
+ and <code>5</code> are not reachable, yet.</p>
+
+ @throws ::com::sun::star::container::NoSuchElementException
+ if there is no path with the given index
+ @throws ::com::sun::star::util::InvalidStateException
+ if the path cannot be activated in the current state of the wizard.
+ */
+ void activatePath( [in] short PathIndex, [in] boolean Final )
+ raises ( ::com::sun::star::container::NoSuchElementException
+ , ::com::sun::star::util::InvalidStateException );
+};
+
+
+}; }; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XWizardController.idl b/offapi/com/sun/star/ui/dialogs/XWizardController.idl
new file mode 100644
index 000000000..b15286c6c
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XWizardController.idl
@@ -0,0 +1,78 @@
+/* -*- 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_dialogs_XWizardController_idl__
+#define __com_sun_star_ui_dialogs_XWizardController_idl__
+
+#include <com/sun/star/ui/dialogs/XWizardPage.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+
+/** is the interface of a client-provided controller of a custom Wizard.
+
+ @since OOo 3.3
+ */
+interface XWizardController
+{
+ /** creates a page
+
+ <p>Wizard pages are created on demand, when the respective page is reached during traveling through the
+ wizard. Effectively, this means the method is called at most once for each possible page ID.</p>
+
+ @param ParentWindow
+ the parent window to use for the page window
+ @param PageId
+ the ID of the page.
+ @return
+ the requested page.
+ */
+ XWizardPage createPage( [in] ::com::sun::star::awt::XWindow ParentWindow, [in] short PageId );
+
+ /** provides the title of a page given by ID
+
+ <p>The page titles are displayed in the wizard's roadmap.</p>
+ */
+ string getPageTitle( [in] short PageId );
+
+ boolean canAdvance();
+
+ /** called when a new page in the wizard is being activated
+ */
+ void onActivatePage( [in] short PageId );
+
+ /** called when a page in the wizard is being deactivated
+ */
+ void onDeactivatePage( [in] short PageId );
+
+ /** called when the wizard is about to be finished.
+
+ <p>This method allows the controller to do any final checks, and ultimately veto finishing the wizard.</p>
+ */
+ boolean confirmFinish();
+};
+
+
+}; }; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/dialogs/XWizardPage.idl b/offapi/com/sun/star/ui/dialogs/XWizardPage.idl
new file mode 100644
index 000000000..c7c1be2fa
--- /dev/null
+++ b/offapi/com/sun/star/ui/dialogs/XWizardPage.idl
@@ -0,0 +1,79 @@
+/* -*- 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_dialogs_XWizardPage_idl__
+#define __com_sun_star_ui_dialogs_XWizardPage_idl__
+
+#include <com/sun/star/awt/XWindow.idl>
+
+
+module com { module sun { module star { module ui { module dialogs {
+
+
+/** is a single page of a Wizard
+
+ @since OOo 3.3
+ */
+interface XWizardPage : ::com::sun::star::lang::XComponent
+{
+ /** provides read-only access to the window of the page
+ */
+ [attribute, readonly] ::com::sun::star::awt::XWindow Window;
+
+ /** denotes the ID of the page.
+
+ <p>Within a wizard, no two pages are allowed to have the same ID.</p>
+ */
+ [attribute, readonly] short PageId;
+
+ /** called when the page is activated
+ */
+ void activatePage();
+
+ /** is called when the page is about to be left
+
+ <p>An implementation can veto the leave by returning `FALSE` here. Usually, the decision about this
+ depends on the current state of the page.</p>
+
+ @param Reason
+ is one of the WizardTravelType constants denoting the reason why the page should be
+ committed.
+ */
+ boolean commitPage( [in] short Reason );
+
+ /** determines whether it is allowed to travel to a later page in the wizard
+
+ <p>You should base this decision on the state of the page only, not on a global state of the wizard. Usually,
+ you return `FALSE` here if and only if not all necessary input on the page has been provided by the user,
+ or the provided input is not valid.</p>
+
+ <p>If checked for validity is expensive, or if you prefer giving your user more detailed feedback on validity
+ than a disabled <code>Next</code> button in the wizard, then move your checks to the commitPage()
+ method.</p>
+ */
+ boolean canAdvance();
+};
+
+
+}; }; }; }; };
+
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/test/UITest.idl b/offapi/com/sun/star/ui/test/UITest.idl
new file mode 100644
index 000000000..59bc73489
--- /dev/null
+++ b/offapi/com/sun/star/ui/test/UITest.idl
@@ -0,0 +1,29 @@
+/* -*- 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/.
+ */
+
+#ifndef __com_sun_star_ui_UIElementFactory_idl__
+#define __com_sun_star_ui_UIElementFactory_idl__
+
+#include <com/sun/star/ui/test/XUITest.idl>
+
+
+module com { module sun { module star { module ui { module test {
+
+
+service UITest
+{
+ interface com::sun::star::ui::test::XUITest;
+};
+
+}; }; }; }; };
+
+#endif
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/test/XUIObject.idl b/offapi/com/sun/star/ui/test/XUIObject.idl
new file mode 100644
index 000000000..e437b198f
--- /dev/null
+++ b/offapi/com/sun/star/ui/test/XUIObject.idl
@@ -0,0 +1,36 @@
+/* -*- 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/.
+ */
+
+#ifndef __com_sun_star_ui_test_XUIObject_idl__
+#define __com_sun_star_ui_test_XUIObject_idl__
+
+#include <com/sun/star/beans/PropertyValues.idl>
+
+module com { module sun { module star { module ui { module test {
+
+interface XUIObject
+{
+ XUIObject getChild([in] string id);
+
+ void executeAction([in] string action, [in] com::sun::star::beans::PropertyValues propValues);
+
+ com::sun::star::beans::PropertyValues getState();
+
+ string getType();
+
+ sequence<string> getChildren();
+
+ string getHierarchy();
+};
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/test/XUITest.idl b/offapi/com/sun/star/ui/test/XUITest.idl
new file mode 100644
index 000000000..b8dba4f9a
--- /dev/null
+++ b/offapi/com/sun/star/ui/test/XUITest.idl
@@ -0,0 +1,36 @@
+/* -*- 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/.
+ */
+
+#ifndef __com_sun_star_ui_test_XUITest_idl__
+#define __com_sun_star_ui_test_XUITest_idl__
+
+#include <com/sun/star/ui/test/XUIObject.idl>
+#include <com/sun/star/beans/PropertyValues.idl>
+
+module com { module sun { module star { module ui { module test {
+
+interface XUITest
+{
+ boolean executeCommand([in] string command);
+
+ boolean executeCommandWithParameters([in] string command,
+ [in] com::sun::star::beans::PropertyValues propValues);
+
+ boolean executeDialog([in] string command);
+
+ XUIObject getTopFocusWindow();
+
+ XUIObject getFloatWindow();
+};
+
+}; }; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/theModuleUIConfigurationManagerSupplier.idl b/offapi/com/sun/star/ui/theModuleUIConfigurationManagerSupplier.idl
new file mode 100644
index 000000000..fbc3778b5
--- /dev/null
+++ b/offapi/com/sun/star/ui/theModuleUIConfigurationManagerSupplier.idl
@@ -0,0 +1,52 @@
+/* -*- 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_theModuleUIConfigurationManagerSupplier_idl__
+#define __com_sun_star_ui_theModuleUIConfigurationManagerSupplier_idl__
+
+#include <com/sun/star/ui/XModuleUIConfigurationManagerSupplier.idl>
+#include <com/sun/star/beans/XPropertySet.idl>
+
+module com { module sun { module star { module ui {
+
+/** specifies a central user interface configuration provider which gives
+ access to module based user interface configuration managers.
+
+ Controls module based user interface configuration managers.
+
+ <p>
+ There can only exist one user interface configuration manager for
+ a module. A user interface configuration manager supports to get and set
+ user interface configuration data for configurable user interface elements.
+
+ @see ConfigurableUIElement
+ @see XUIConfigurationManager
+ </p>
+
+ Prior to LibreOffice 4.3, this singleton was only available as a
+ (single-instance) ModuleUIConfigurationManagerSupplier service.
+
+ @since LibreOffice 4.3
+*/
+singleton theModuleUIConfigurationManagerSupplier : XModuleUIConfigurationManagerSupplier;
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/theUICategoryDescription.idl b/offapi/com/sun/star/ui/theUICategoryDescription.idl
new file mode 100644
index 000000000..466e3d90d
--- /dev/null
+++ b/offapi/com/sun/star/ui/theUICategoryDescription.idl
@@ -0,0 +1,64 @@
+/* -*- 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_theUICategoryDescription_idl__
+#define __com_sun_star_ui_theUICategoryDescription_idl__
+
+#include <com/sun/star/container/XNameAccess.idl>
+
+module com { module sun { module star { module ui {
+
+
+/** a singleton which provides information about user interface command
+ categories.
+
+ <p>
+ OpenOffice.org has an amount of commands that can be used by user
+ interface elements. Every command is member of a single category.
+ Categories makes it easier to handle to huge amount of commands
+ provided by OpenOffice.org. This singleton is normally used by UI
+ implementations which provides all commands to a user.
+ </p>
+
+ Provides access to user interface command categories of the installed
+ modules.
+
+ <p>
+ To access the user interface command categories of a module, a unique
+ module specifier must be provided to
+ com::sun::star::container::XNameAccess::getByName()
+ function. The module specifier can be retrieved from the
+ com::sun::star::frame::ModuleManager
+ service. The interface provides references to
+ com::sun:star::ui::ModuleUICommandDescription.
+ </p>
+
+ @see com::sun::star::frame::ModuleManager
+
+ Prior to LibreOffice 4.3, this singleton was only available as a
+ (single-instance) UICategoryDescription service.
+
+ @since LibreOffice 4.3
+*/
+singleton theUICategoryDescription : com::sun::star::container::XNameAccess;
+
+}; }; }; }; // com.sun.star.ui
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/theUIElementFactoryManager.idl b/offapi/com/sun/star/ui/theUIElementFactoryManager.idl
new file mode 100644
index 000000000..d6125776d
--- /dev/null
+++ b/offapi/com/sun/star/ui/theUIElementFactoryManager.idl
@@ -0,0 +1,44 @@
+/* -*- 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_theUIElementFactoryManager_idl__
+#define __com_sun_star_ui_theUIElementFactoryManager_idl__
+
+#include <com/sun/star/ui/XUIElementFactoryManager.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** specifies a user interface factory manager that controls all registered user
+ interface element factories.
+
+ Prior to LibreOffice 4.3, this singleton was only available as a
+ (single-instance) UIElementFactoryManager service.
+
+ @since LibreOffice 4.3
+*/
+
+singleton theUIElementFactoryManager : XUIElementFactoryManager;
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/theWindowContentFactoryManager.idl b/offapi/com/sun/star/ui/theWindowContentFactoryManager.idl
new file mode 100644
index 000000000..334ecf7b8
--- /dev/null
+++ b/offapi/com/sun/star/ui/theWindowContentFactoryManager.idl
@@ -0,0 +1,41 @@
+/* -*- 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_theWindowContentFactoryManager_idl__
+#define __com_sun_star_ui_theWindowContentFactoryManager_idl__
+
+#include <com/sun/star/lang/XSingleComponentFactory.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/**
+ This interface could be incomplete since I derived it from its sole place of use.
+
+ Prior to LibreOffice 4.3, this singleton was only available as a
+ (single-instance) WindowContentFactoryManager service.
+
+ @since LibreOffice 4.3
+*/
+singleton theWindowContentFactoryManager : com::sun::star::lang::XSingleComponentFactory;
+
+}; }; }; };
+
+#endif
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/ui/theWindowStateConfiguration.idl b/offapi/com/sun/star/ui/theWindowStateConfiguration.idl
new file mode 100644
index 000000000..b8d257b0c
--- /dev/null
+++ b/offapi/com/sun/star/ui/theWindowStateConfiguration.idl
@@ -0,0 +1,63 @@
+/* -*- 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_theWindowStateConfiguration_idl__
+#define __com_sun_star_ui_theWindowStateConfiguration_idl__
+
+#include <com/sun/star/container/XNameAccess.idl>
+
+
+module com { module sun { module star { module ui {
+
+
+/** a singleton which provides window based information about user interface
+ elements.
+
+ <p>
+ OpenOffice.org has an amount of user interface elements that can be positioned,
+ resized, closed and their style can be changed. This singleton provides access
+ to the window based information of available user interface elements which are
+ part of OpenOffice.org modules, like Writer or Calc.
+ </p>
+
+ Provides access to window based information about user interface elements
+ of all installed application modules.
+
+ <p>
+ To access the window based information of a module, a unique module specifier
+ must be provided to com::sun::star::container::XNameAccess::getByName() function.
+ The module specifier can be retrieved from the com::sun::star::frame::ModuleManager
+ service. The interface provides references to a com::sun:star::ui::ModuleWindowStateConfiguration.
+ </p>
+
+ Prior to LibreOffice 4.3, this singleton was only available as a
+ (single-instance) WindowStateConfiguration service.
+
+ @see com::sun::star::frame::ModuleManager
+
+ @since LibreOffice 4.3
+*/
+
+singleton theWindowStateConfiguration : com::sun::star::container::XNameAccess;
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */