diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 16:51:28 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 16:51:28 +0000 |
commit | 940b4d1848e8c70ab7642901a68594e8016caffc (patch) | |
tree | eb72f344ee6c3d9b80a7ecc079ea79e9fba8676d /offapi/com/sun/star/ui | |
parent | Initial commit. (diff) | |
download | libreoffice-upstream.tar.xz libreoffice-upstream.zip |
Adding upstream version 1:7.0.4.upstream/1%7.0.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
114 files changed, 8238 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..463674813 --- /dev/null +++ b/offapi/com/sun/star/ui/dialogs/FilePicker.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_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> + + @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: */ |