From 267c6f2ac71f92999e969232431ba04678e7437e Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 15 Apr 2024 07:54:39 +0200 Subject: Adding upstream version 4:24.2.0. Signed-off-by: Daniel Baumann --- .../star/drawing/framework/AnchorBindingMode.idl | 36 +++ .../star/drawing/framework/BasicPaneFactory.idl | 44 ++++ .../star/drawing/framework/BasicToolBarFactory.idl | 47 ++++ .../star/drawing/framework/BasicViewFactory.idl | 49 +++++ .../com/sun/star/drawing/framework/BorderType.idl | 35 +++ .../drawing/framework/ConfigurationChangeEvent.idl | 71 ++++++ .../drawing/framework/ResourceActivationMode.idl | 42 ++++ .../com/sun/star/drawing/framework/ResourceId.idl | 55 +++++ .../sun/star/drawing/framework/TabBarButton.idl | 53 +++++ .../sun/star/drawing/framework/XConfiguration.idl | 117 ++++++++++ .../framework/XConfigurationChangeListener.idl | 39 ++++ .../framework/XConfigurationChangeRequest.idl | 50 +++++ .../drawing/framework/XConfigurationController.idl | 244 +++++++++++++++++++++ .../XConfigurationControllerBroadcaster.idl | 73 ++++++ .../XConfigurationControllerRequestQueue.idl | 60 +++++ .../star/drawing/framework/XControllerManager.idl | 48 ++++ .../star/drawing/framework/XModuleController.idl | 38 ++++ offapi/com/sun/star/drawing/framework/XPane.idl | 50 +++++ offapi/com/sun/star/drawing/framework/XPane2.idl | 61 ++++++ .../star/drawing/framework/XPaneBorderPainter.idl | 142 ++++++++++++ .../drawing/framework/XRelocatableResource.idl | 41 ++++ .../com/sun/star/drawing/framework/XResource.idl | 48 ++++ .../star/drawing/framework/XResourceFactory.idl | 71 ++++++ .../drawing/framework/XResourceFactoryManager.idl | 83 +++++++ .../com/sun/star/drawing/framework/XResourceId.idl | 136 ++++++++++++ offapi/com/sun/star/drawing/framework/XTabBar.idl | 85 +++++++ offapi/com/sun/star/drawing/framework/XToolBar.idl | 33 +++ offapi/com/sun/star/drawing/framework/XView.idl | 38 ++++ 28 files changed, 1889 insertions(+) create mode 100644 offapi/com/sun/star/drawing/framework/AnchorBindingMode.idl create mode 100644 offapi/com/sun/star/drawing/framework/BasicPaneFactory.idl create mode 100644 offapi/com/sun/star/drawing/framework/BasicToolBarFactory.idl create mode 100644 offapi/com/sun/star/drawing/framework/BasicViewFactory.idl create mode 100644 offapi/com/sun/star/drawing/framework/BorderType.idl create mode 100644 offapi/com/sun/star/drawing/framework/ConfigurationChangeEvent.idl create mode 100644 offapi/com/sun/star/drawing/framework/ResourceActivationMode.idl create mode 100644 offapi/com/sun/star/drawing/framework/ResourceId.idl create mode 100644 offapi/com/sun/star/drawing/framework/TabBarButton.idl create mode 100644 offapi/com/sun/star/drawing/framework/XConfiguration.idl create mode 100644 offapi/com/sun/star/drawing/framework/XConfigurationChangeListener.idl create mode 100644 offapi/com/sun/star/drawing/framework/XConfigurationChangeRequest.idl create mode 100644 offapi/com/sun/star/drawing/framework/XConfigurationController.idl create mode 100644 offapi/com/sun/star/drawing/framework/XConfigurationControllerBroadcaster.idl create mode 100644 offapi/com/sun/star/drawing/framework/XConfigurationControllerRequestQueue.idl create mode 100644 offapi/com/sun/star/drawing/framework/XControllerManager.idl create mode 100644 offapi/com/sun/star/drawing/framework/XModuleController.idl create mode 100644 offapi/com/sun/star/drawing/framework/XPane.idl create mode 100644 offapi/com/sun/star/drawing/framework/XPane2.idl create mode 100644 offapi/com/sun/star/drawing/framework/XPaneBorderPainter.idl create mode 100644 offapi/com/sun/star/drawing/framework/XRelocatableResource.idl create mode 100644 offapi/com/sun/star/drawing/framework/XResource.idl create mode 100644 offapi/com/sun/star/drawing/framework/XResourceFactory.idl create mode 100644 offapi/com/sun/star/drawing/framework/XResourceFactoryManager.idl create mode 100644 offapi/com/sun/star/drawing/framework/XResourceId.idl create mode 100644 offapi/com/sun/star/drawing/framework/XTabBar.idl create mode 100644 offapi/com/sun/star/drawing/framework/XToolBar.idl create mode 100644 offapi/com/sun/star/drawing/framework/XView.idl (limited to 'offapi/com/sun/star/drawing/framework') diff --git a/offapi/com/sun/star/drawing/framework/AnchorBindingMode.idl b/offapi/com/sun/star/drawing/framework/AnchorBindingMode.idl new file mode 100644 index 0000000000..84a7b8c524 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/AnchorBindingMode.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +/** This enum specifies how a resource is bound to an anchor. This can be + direct or indirect. +

Example: Let r:a1:a2 denote a resource r which is bound to + anchor a1:a2 which itself is a resource a1 bound to anchor a2. + Then r:a1:a2 is bound directly to a1:a2 and indirectly to a2.

+*/ +enum AnchorBindingMode +{ + DIRECT, + INDIRECT +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/BasicPaneFactory.idl b/offapi/com/sun/star/drawing/framework/BasicPaneFactory.idl new file mode 100644 index 0000000000..2defacca10 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/BasicPaneFactory.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +/** The BasicPaneFactory is a resource factory that provides the + panes used by the Draw and Impress applications. +

This factory provides the center, left, and right pane. For the left + pane there are two URLS, private:resource/floater/LeftImpressPane + and private:resource/floater/LeftDrawPane, one for Impress, + the other for Draw. The center pane and the right pane have the URLs + private:resource/floater/CenterPane and + private:resource/floater/RightPane respectively.

+

This factory is typically created indirectly by registering it in the + configuration and have the XModuleController create it on + demand.

+*/ +service BasicPaneFactory : XResourceFactory +{ + /** Give the controller to new instances so that they have access to the + drawing framework controllers. + */ + create ([in] ::com::sun::star::frame::XController xController); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/BasicToolBarFactory.idl b/offapi/com/sun/star/drawing/framework/BasicToolBarFactory.idl new file mode 100644 index 0000000000..d2dcea1501 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/BasicToolBarFactory.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +/** The BasicToolBarFactory is a resource factory that provides + (some of) the tool bars used by the Draw and Impress applications. + +

The factory recognizes the following URLs:

+ This short list marks the implementation of this service clearly as + being in transition. +

+ +

This factory is typically created indirectly by registering it in the + configuration and have the XModuleController create it on + demand.

+*/ +service BasicToolBarFactory : XResourceFactory +{ + /** Give the controller to new instances so that they have access to the + drawing framework controllers. + */ + create ([in] ::com::sun::star::frame::XController xController); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/BasicViewFactory.idl b/offapi/com/sun/star/drawing/framework/BasicViewFactory.idl new file mode 100644 index 0000000000..816959985d --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/BasicViewFactory.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +/** The BasicViewFactory is a view factory that provides the + panes used by the Draw and Impress applications. + +

The factory recognizes the following URLs:

+*/ +service BasicViewFactory : XResourceFactory +{ + /** Give the controller to new instances so that they have access to the + drawing framework controllers. + */ + create ([in] ::com::sun::star::frame::XController xController); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/BorderType.idl b/offapi/com/sun/star/drawing/framework/BorderType.idl new file mode 100644 index 0000000000..dff66b0cde --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/BorderType.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/. + * + * 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 . + */ + + +module com { module sun { module star { module drawing { module framework { + +/** See XPaneBorderPainter and its addBorder() and removeBorder() methods + for an explanation of the border type and its values. +*/ +enum BorderType +{ + INNER_BORDER, + OUTER_BORDER, + TOTAL_BORDER +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/ConfigurationChangeEvent.idl b/offapi/com/sun/star/drawing/framework/ConfigurationChangeEvent.idl new file mode 100644 index 0000000000..fd7218bce7 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/ConfigurationChangeEvent.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 . + */ + +module com { module sun { module star { module uno { interface XInterface; }; }; }; }; + +module com { module sun { module star { module drawing { module framework { + +interface XConfiguration; +interface XResourceId; + +/** Objects of this class are used for notifying changes of the + configuration. + +

They are broadcasted by the configuration controller + which maintains the configuration. The set of types of configuration + changes is not fixed and is not maintained or documented in one + place.

+ +

The set of used members and the exact meaning of their values is not the + same for all types. Therefore, the descriptions of the members are just + general guidelines. See XConfigurationController for a + list of event types used by the basic drawing framework.

+*/ +struct ConfigurationChangeEvent + : ::com::sun::star::lang::EventObject +{ + /** The type of configuration change is a free-form string. This is the + only member that is always set. The values of the other members + depend on the configuration change type and may or may not be set. + */ + string Type; + + /** The current configuration, depending on the event type, either + before or after the change. May be an empty reference. + */ + XConfiguration Configuration; + + /** The resource id that is part of the configuration change. + */ + XResourceId ResourceId; + + /** The resource object that corresponds to the ResourceId. May + be an empty reference. + */ + com::sun::star::uno::XInterface ResourceObject; + + /** Each listener is called with exactly the #UserData + that was given when the listener was registered. + */ + any UserData; +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/ResourceActivationMode.idl b/offapi/com/sun/star/drawing/framework/ResourceActivationMode.idl new file mode 100644 index 0000000000..4e2dc38198 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/ResourceActivationMode.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +/** The ResourceActivationMode specifies, for example for the + com::sun::star::drawing::framework::XConfigurationController::requestResourceActivation(), + whether a requested resource is to replace an existing resource of the + same class or is to be activated additionally. +*/ +enum ResourceActivationMode +{ + /** A resource is requested in addition to already existing ones. This + is used for example for panes. + */ + ADD, + + /** A resource is requested to replace an already existing one of the + same class. This is used for example for views. + */ + REPLACE +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/ResourceId.idl b/offapi/com/sun/star/drawing/framework/ResourceId.idl new file mode 100644 index 0000000000..5caf0e6a6e --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/ResourceId.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +/** The ResourceId service provides several constructors for + resource ids. +

They mainly differ in how the anchor is specified.

+*/ +service ResourceId + : XResourceId +{ + /** Create an empty resource id. It does not specify a specific + resource but describes the absence of one. + */ + createEmpty (); + + /** Create a resource id that has no anchor. +

This constructor can be used to create resource ids for panes.

+ */ + create ([in] string sResourceURL); + + /** Create a resource id for an anchor that is given as + XResourceId object. This is the most general of the + constructor variants. + */ + createWithAnchor ([in] string sResourceURL, [in] XResourceId xAnchor); + + /** Create a resource id for a resource that is bound to an anchor that + can be specified by a single URL. +

This constructor can be used to create resources ids for views + where the anchor is a pane.

+ */ + createWithAnchorURL ([in] string sResourceURL, [in] string sAnchorURL); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/TabBarButton.idl b/offapi/com/sun/star/drawing/framework/TabBarButton.idl new file mode 100644 index 0000000000..2122074852 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/TabBarButton.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XResourceId; + +/** Descriptor of a tab bar button. Tab bar buttons are typically used to + offer the user the choice between different views to be displayed in + one pane. +

For identification only the #ResourceId is used, so for + some methods of the XTabBar interface only the + #ResourceId member is evaluated.

+*/ +struct TabBarButton +{ + /** This label is displayed on the UI as button text. +

The label is expected to be localized.

+ */ + string ButtonLabel; + + /** The localized help text that may be displayed in a tool tip. + */ + string HelpText; + + /** XResourceId object of the resource that is requested to be + displayed when the tab bar button is activated. +

For some methods of the XTabBar interface only this + member is evaluated. That is because only this member is used to + identify a tab bar button.

+ */ + XResourceId ResourceId; +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XConfiguration.idl b/offapi/com/sun/star/drawing/framework/XConfiguration.idl new file mode 100644 index 0000000000..3aa4b5e70a --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XConfiguration.idl @@ -0,0 +1,117 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XResourceId; + +/** A configuration describes the resources of an application like panes, + views, and tool bars and their relationships that are currently active + or are requested to be activated. Resources are specified by ResourceId + structures rather than references so that not only the current + configuration but also a requested configuration can be represented. + +

Direct manipulation of a configuration object is not advised with the + exception of the ConfigurationController and objects that + implement the XConfigurationChangeRequest interface.

+ + @see XConfigurationController +*/ +interface XConfiguration + : ::com::sun::star::util::XCloneable +{ + /** Returns the list of resources that are bound directly and/or + indirectly to the given anchor. A URL filter can reduce the set of + returned resource ids. + @param xAnchorId + This anchor typically is either a pane or an empty + XResourceId object. An + empty reference is treated like an XResourceId object. + @param sTargetURLPrefix + When a non-empty string is given then resource ids are returned + only when their resource URL matches this prefix, i.e. when it + begins with this prefix or is equal to it. Characters with + special meaning to URLs are not interpreted. In the typical + usage the prefix specifies the type of a resource. A typical + value is "private:resource/floater/", which is the prefix for + pane URLs. In a recursive search, only resource ids at the top + level are matched against this prefix. +

Use an empty string to prevent filtering out resource ids.

+ @param eSearchMode + This flag defines whether to return only resources that are + directly bound to the given anchor or a recursive search is to + be made. Note that for the recursive search and an empty anchor + all resource ids are returned that belong to the configuration. + @return + The set of returned resource ids may be empty when there are no + resource ids that match all conditions. The resources in the + sequence are ordered with respect to the + XResourceId::compareTo() method. + */ + sequence getResources ( + [in] XResourceId xAnchorId, + [in] string sTargetURLPrefix, + [in] AnchorBindingMode eSearchMode); + + /**

Returns whether the specified resource is part of the + configuration.

+ This is independent of whether the resource does really exist and is + active, i.e. has a visible representation in the GUI. + @param xResourceId + The id of a resource. May be empty (empty reference or empty + XResourceId object) in which case `FALSE` is + returned. + @return + Returns `TRUE` when the resource is part of the configuration + and `FALSE` when it is not. + */ + boolean hasResource ([in] XResourceId xResourceId); + + /** Add a resource to the configuration. +

This method should be used only by objects that implement the + XConfigurationRequest interface or by the configuration + controller.

+ @param xResourceId + The resource to add to the configuration. When the specified + resource is already part of the configuration then this call is + silently ignored. + @throws IllegalArgumentException + When an empty resource id is given then an + IllegalArgumentException is thrown. + */ + void addResource ([in] XResourceId xResourceId); + + /** Remove a resource from the configuration. +

This method should be used only by objects that implement the + XConfigurationRequest interface or by the configuration + controller.

+ @param xResourceId + The resource to remove from the configuration. When the + specified resource is not part of the configuration then this + call is silently ignored. + @throws IllegalArgumentException + When an empty resource id is given then an + IllegalArgumentException is thrown. + */ + void removeResource ([in] XResourceId xResourceId); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XConfigurationChangeListener.idl b/offapi/com/sun/star/drawing/framework/XConfigurationChangeListener.idl new file mode 100644 index 0000000000..ce8ffefb4f --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XConfigurationChangeListener.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +/** A listener for configuration changes is called when it has been + registered at the configuration controller and a configuration change + occurs. +*/ +interface XConfigurationChangeListener + : ::com::sun::star::lang::XEventListener +{ + /** The exact time of when a listener is called (before the change takes + place, during the change, or when the change has been made) depends + on the change event. The order in which listeners are called is the + order in which they are registered (First registered, first called.) + */ + void notifyConfigurationChange ([in] ConfigurationChangeEvent aEvent); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XConfigurationChangeRequest.idl b/offapi/com/sun/star/drawing/framework/XConfigurationChangeRequest.idl new file mode 100644 index 0000000000..bbdebce3c8 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XConfigurationChangeRequest.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XConfiguration; + +/** A single explicit request for a configuration change. + +

The requested change is committed to a configuration only when the + execute() method is called. Configuration change + requests are executed asynchronously. This is done to avoid reentrance + problems with objects that are registered as + XConfigurationChangeListener and at the same time make + configuration change requests. When the requests were executed + synchronously then the listeners would be notified of the changes while + their request call has not yet returned.

+ +

This interface is typically used internally by the + XConfigurationController

@see XConfigurationController +*/ +interface XConfigurationChangeRequest +{ + /** Commit the configuration change request represented by the called + object to the given configuration. + @param xConfiguration + This is the configuration to commit the requested change to. + */ + void execute ([in] XConfiguration xConfiguration); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XConfigurationController.idl b/offapi/com/sun/star/drawing/framework/XConfigurationController.idl new file mode 100644 index 0000000000..b9b2b38f2b --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XConfigurationController.idl @@ -0,0 +1,244 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XConfigurationChangeListener; +interface XConfigurationChangeRequest; +interface XResourceId; +interface XResource; + +/** The configuration controller is responsible for the management of the + set of active resources. + +

There are two configurations of resources:

    +
  • The current configuration contains the set of currently active + resources.
  • +
  • The requested configuration describes what the current configuration + should be. The requested configuration is changed usually by calling + requestResourceActivation() and + requestResourceDeactivation().
  • +

+ +

When the two configurations differ then the current configuration is + updated eventually to reflect the requested configuration. An update + takes place when the following three conditions are fulfilled. +

    +
  1. when the last pending request for configuration changes has been + processed,
  2. +
  3. when the update() method is called.
  4. +
  5. when the configuration manager it is unlocked after formerly being + locked.
  6. +

+ +

Requests for configuration changes are handled in a two step process: +

    +
  1. First the requested configuration is updated iteratively: Every + request that is being made by calling + requestResourceActivation() or + requestResourceDeactivation() results in one or more + function objects, that each implement the + XConfigurationChangeRequest interface. These are inserted + into a queue. The request objects in the queue are processed + asynchronously one at a time in the order in which they are inserted. + Only when one request object is processed a change to the requested + configuration is made. These changes are broadcasted to registered + XConfigurationChangeListener objects. Listeners may + decide to make requests that then are added to the queue. For example + when the view in the center pane is replaced by another view, some + listeners may want to turn some side panes on or off, or show other + views in the side panes.

    +

    This process goes on until the queue of request objects becomes + empty. Until this point only the requested configuration has been + modified. No resources have been activated or deactivated.

  2. + +
  3. The second update step activates or deactivates resources so that + the current configuration (the one that comprises the actually active + resources) reflects the requested configuration.

    +

    The order in which resources are activated or deactivated depends on + the dependency between the resources. For example a view depends on the + pane it is displayed in. Resources that other resources depend on are + activated first and deactivated last. The order is undefined for + unrelated resources.

    +

    Note that the second update step may not be able to activate (or even to + deactivate) all the requested resources. Either because they are + temporarily or permanently unavailable. For example, during the + start-up of a new Impress application the side panes are displayed + with a visible delay because they are not provided sooner by the + underlying framework. Such unavailable resources are not forgotten but + remain in the requested configuration. Every time the configuration + controller updates its current configuration these resources are + requested once more.

+ +

The configuration controller sends the following events: +

    +
  • ResourceActivationRequested is sent when the + activation of a resource has been requested and the resource is not yet + active in the requested configuration. The event is sent when the + configuration change request is executed, not when the + requestResourceActivation() call is made.

    +

    The ConfigurationChangeEvent::ResourceId member is set to the requested + resource. The ResourceObject member is not + set.

  • +
  • ResourceDeactivationRequested is sent when the + deactivation of a resource has been requested and the resource is active + in the requested configuration. The event is sent when the + configuration change request is executed that is created when for + example requestResourceDeactivation() is called.

    +

    The ResourceId member is set to the requested + resource. The ResourceObject member is not + set.

  • +
  • ConfigurationUpdateStart is sent before the update of + the current configuration starts.

    +

    The requested configuration is available in the + ConfigurationChangeEvent::Configuration member. The + ResourceId and ResourceObject members + are not set.

  • +
  • ConfigurationUpdateEnd is sent after the update of + the current configuration ends.

    +

    The requested configuration is + available in the ConfigurationChangeEvent::Configuration member. + The ResourceId and ResourceObject members are not set.

  • +
  • ResourceActivation is sent when a resource is + activated, i.e. when a new object of a resource is created (or taken + from a cache).

    +

    The ResourceId and ResourceObject + members are set to the XResourceId and object reference of + the activated resource.

  • +
  • ResourceDeactivation is sent when a resource is + deactivated, i.e. when an object that previously was part of the + configuration is removed from the configuration.

    +

    The ResourceId and ResourceObject + members are set to XResourceId and object reference of the + deactivated resource.

  • +

+*/ +interface XConfigurationController +{ + interface XConfigurationControllerRequestQueue; + interface XConfigurationControllerBroadcaster; + interface XResourceFactoryManager; + + /** Request the activation of a resource. +

The request is processed asynchronously. Notifications about + configuration changes are sent after this call returns.

+ @param xResourceId + The resource whose activation is requested. + @param eMode +

When eMode is REPLACE then, before adding the + resource activation to the request queue, similar resources + linked to the same anchor are removed. This makes it easier to + switch between resources whose activation is mutually exclusive. + For example, there can only be one view per pane, so before + activating a new view the old one has to be deactivated.

+

When eMode is ADD then the resource is requested + without further changes.

+ */ + void requestResourceActivation ( + [in] XResourceId xResourceId, + [in] ResourceActivationMode eMode); + + /** Request the deactivation of a resource. +

The request is processed asynchronously. Notifications about + configuration changes are sent after this call returns.

+

Requesting the deactivation + of a resource that is not active is not an error.

+ @param xResourceId + The resource whose deactivation is requested. + */ + void requestResourceDeactivation ( + [in] XResourceId xResourceId); + + + /** Return the active resource specified by the given resource id. + @param xResourceId + A valid resource id. This should, but does not have to be, the + resource id of an active resource. + @return + When the given resource id specifies an active resource then + that resource is returned. Otherwise an empty reference is + returned. + */ + XResource getResource ( + [in] XResourceId xResourceId); + + /** Lock the processing of configuration change requests. +

This is only necessary when more than one change request is being + made in a row. It prevents an update being made (with all the visible UI + changes) before all change requests are being made.

+

Recursive lock() calls are recognized: the + configuration controller is locked while lock() was + called more often than unlock().

+ */ + void lock (); + + /** Unlock the processing of configuration change requests. +

When unlock() is called as many times as + lock() and the queue of configuration change + requests is not empty the configuration controller continues the + processing of the change requests. An update of the current + configuration will eventually being made.

+ */ + void unlock (); + + /** Explicitly request an update of the current configuration. +

Call it when a resource is activated or deactivated + without the control and knowledge of the drawing framework. Calling + this method (from outside the drawing framework) should hardly every + be necessary.

+ */ + void update (); + + /** Return a copy of the requested configuration. +

Modifications to the returned configuration have no effect on the + drawing framework.

+ */ + XConfiguration getRequestedConfiguration (); + + /** Return a copy of the current configuration. +

Modifications to the returned configuration have no effect on the + drawing framework.

+ */ + XConfiguration getCurrentConfiguration (); + + /** Replace the requested configuration with the given configuration and + schedule an update of the current configuration. +

Together with the getCurrentConfiguration() and + getRequestedConfiguration() methods this + allows the saving and restoring of configurations. However, the + given configuration can have other origins then these methods.

+

The given configuration is transformed into a list of change + requests so that the resulting requested configuration equals the + given configuration. This has the advantage that not only the + resource activations and deactivations but all configuration + changes are properly broadcasted.

+

Note that because of the configuration change notifications + listeners can make more configuration change requests, so that the + resulting requested configuration can be different from the given + configuration.

+ @param xConfiguration + This typically is a configuration that was obtained with an + earlier getRequestedConfiguration() call. + */ + void restoreConfiguration ([in] XConfiguration xConfiguration); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XConfigurationControllerBroadcaster.idl b/offapi/com/sun/star/drawing/framework/XConfigurationControllerBroadcaster.idl new file mode 100644 index 0000000000..c3b3e373db --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XConfigurationControllerBroadcaster.idl @@ -0,0 +1,73 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XConfigurationChangeListener; + +/** Manage the set of registered event listeners and the event notification for a configuration + controller. +

The listeners are called in the order in which they are registered.

+*/ +interface XConfigurationControllerBroadcaster +{ + /** Add a new listener for configuration changes. +

The listener is notified only for the specified type of + configuration changes. When the listener is interested in more than + one event type this method has to be called multiple times. + Alternatively it can register as universal listener that will be + called for all event types. However, this option is provided + primarily to support debugging and monitoring.

+ @param xListener + The new listener. + @param sEventType + The event type that the listener is interested in. The set of + event types is not fixed and there can be no exhaustive + list. The empty string is a special value in that the listener + will be called for all types of event. + @param aUserData + Arbitrary data that is passed to the listener when it is called + for the specified event type. When one listener is registered + for more than one event type then different user data objects + may be given as well. Supplying unique integer values allows + the listener to use a switch statement to distinguish between + the different event types. + */ + void addConfigurationChangeListener ( + [in] XConfigurationChangeListener xListener, + [in] string sEventType, + [in] any aUserData); + + /** Remove a listener for configuration changes. + @param xListener + The listener that is to be removed. + */ + void removeConfigurationChangeListener ( + [in] XConfigurationChangeListener xListener); + + /** With this method other objects can send events to all the registered + listeners. + */ + void notifyEvent ( + [in] ConfigurationChangeEvent aEvent); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XConfigurationControllerRequestQueue.idl b/offapi/com/sun/star/drawing/framework/XConfigurationControllerRequestQueue.idl new file mode 100644 index 0000000000..adb77ea5fc --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XConfigurationControllerRequestQueue.idl @@ -0,0 +1,60 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XConfigurationChangeRequest; + +/** The request queue of the configuration controller handles requests for + changes to the current configuration. + +

This interface allows callers to add requests to the back of the + queue and to determine whether the queue is empty. Using this interface + should normally not be necessary for anyone else than the + XConfigurationController. It may be removed in the future.

+*/ +interface XConfigurationControllerRequestQueue +{ + /** Return whether there are pending requests for configuration changes. + @return + Returns `TRUE` when there is at least one request object in the + queue that has not yet been processed. It returns `FALSE` when + the queue is empty. + */ + boolean hasPendingRequests (); + + /** Add a request for a configuration change to the request queue. +

This method should not be called from outside the drawing + framework. Other sub controllers of the drawing framework are typical + callers. They can add change requests that can not be made with the + requestResourceActivation() and + requestResourceDeactivation() methods.

+ @param xRequest + The configuration change represented by this request object must only + be committed to the configuration when the + com::sun::star::drawing::framework::XConfigurationChangeRequest::execute() + method of the xRequest object is called. + */ + void postChangeRequest ( + [in] XConfigurationChangeRequest xRequest); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XControllerManager.idl b/offapi/com/sun/star/drawing/framework/XControllerManager.idl new file mode 100644 index 0000000000..0d6543846f --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XControllerManager.idl @@ -0,0 +1,48 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XConfigurationController; +interface XModuleController; + +/** The XControllerManager gives access to the controllers of the drawing + framework. +

The XControllerManager interface is typically + implemented by the same object that implements + com::sun::star::frame::XController.

+*/ +interface XControllerManager +{ + /** Return the XConfigurationController object. + @return + The returned reference is never empty. + */ + XConfigurationController getConfigurationController (); + + /** Return the XModuleController object. + @return + The returned reference is never empty. + */ + XModuleController getModuleController (); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XModuleController.idl b/offapi/com/sun/star/drawing/framework/XModuleController.idl new file mode 100644 index 0000000000..8d9d9b3a9d --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XModuleController.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XView; + +/** The module controller is responsible for loading a module (ad-don, + plugin, whatever the name) when it is first used. +

For this there is a list in the sd::framework::ModuleController class.

+*/ +interface XModuleController +{ + /** When the specified resource is requested for the first time then + create a new instance of the associated factory service. + */ + void requestResource ([in] string sResourceTypeURL); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XPane.idl b/offapi/com/sun/star/drawing/framework/XPane.idl new file mode 100644 index 0000000000..1f81532571 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XPane.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +/** A pane is an abstraction of a window and is one of the resources managed + by the drawing framework. +

Apart from the area that displays a view a pane may contain other + parts like title, menu, closer button.

+

The URL prefix of panes is private:resource/floater

+*/ +interface XPane +{ + interface XResource; + + /** Return the com::sun::star::awt::XWindow of the + pane that is used to display a view. + */ + ::com::sun::star::awt::XWindow getWindow (); + + /** Return the com::sun::star::awt::XCanvas of the pane. The + com::sun::star::rendering::XCanvas object is expected to + be associated with the com::sun::star::awt::XWindow object returned by + getWindow(). + @return + When the com::sun::star::rendering::XCanvas + interface is not supported then an empty reference is returned. + */ + ::com::sun::star::rendering::XCanvas getCanvas (); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XPane2.idl b/offapi/com/sun/star/drawing/framework/XPane2.idl new file mode 100644 index 0000000000..d24b7e9f0a --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XPane2.idl @@ -0,0 +1,61 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { module framework { + +/** An extension of the XPane interface that adds support for + a) showing and hiding the windows that internally belong to the pane and + b) setting the accessibility object. + This is typically an optional interface. +*/ +interface XPane2 +{ + /** Return whether all windows that are used to implement the pane are + visible. + @return `TRUE` when all windows of the pane are visible. + */ + boolean isVisible (); + + /** Hide or show the pane. If there is more than one window used to + implement the pane then it is left to the implementation if one, + some, or all windows are hidden or shown as long as the pane becomes + hidden or visible. + @param bIsVisible + When `TRUE` then show the pane. Hide it otherwise. + */ + void setVisible ([in] boolean bIsVisible); + + /** Set the accessibility object for the pane. When there is more than + one window used to implement the pane then the given accessibility + object is usually set at the topmost window. However, the details + are implementation dependent. + @param xAccessible + May be an empty reference. + */ + void setAccessible ([in] ::com::sun::star::accessibility::XAccessible xAccessible); + + /** Return the accessibility object that is currently associated with + the windows that implement the pane. + */ + ::com::sun::star::accessibility::XAccessible getAccessible (); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XPaneBorderPainter.idl b/offapi/com/sun/star/drawing/framework/XPaneBorderPainter.idl new file mode 100644 index 0000000000..19f9cd7633 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XPaneBorderPainter.idl @@ -0,0 +1,142 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { module framework { + +/** Paint the border around a rectangular region, typically a pane. + +

Calling objects have to be able to derive inner bounding boxes of the + border from the outer ones and inner ones from outer ones. This + conversion and the painting of the border involves three rectangles. + The inner and outer bounding box of the border. This is a logical + bounding box which the paint methods may paint over. The center box is + the third rectangle. This is the actual border between outer and inner + background color or bitmap and it is used for placing the bitmaps that are used + paint the border. The inner sides and corners are places relative to + this center box, i.e. when not further offsets are given then the upper + left corner bitmap is painted with its lower right at the upper left of + the center box.

+*/ +interface XPaneBorderPainter +{ + /** Enlarge the given rectangle by the size of the specified part of the + border. This method can be used to convert an inner bounding box + into the center box or the outer bounding box. + @param sPaneBorderStyleName + The pane style defines the sizes of the border. + @param aRectangle + This rectangle will be converted into a larger one. This should + be the center box or the inner bounding box of the border. + @param eBorderType + The part of the border to add to the given rectangle. + Use INNER_BORDER to convert an inner bounding box into the + center box or TOTAL_BORDER to convert it into the outer bounding + box. OUTER_BORDER can be used to convert the center box into + the outer bounding box. + */ + ::com::sun::star::awt::Rectangle addBorder ( + [in] string sPaneBorderStyleName, + [in] ::com::sun::star::awt::Rectangle aRectangle, + [in] BorderType eBorderType); + + /** Shrink the given rectangle by the size of the specified part of the + border. This method can be used to convert an outer bounding box + into the center box or the inner bounding box. + @param sPaneBorderStyleName + The pane style defines the sizes of the border. + @param aRectangle + This rectangle will be converted into a smaller one that lies + inside it. It should be the center box or the outer bounding + box of the border. + @param eBorderType + The part of the border to remove from the given rectangle. + Use OUTER_BORDER to convert an outer bounding box into the + center box or TOTAL_BORDER to convert it into the inner bounding + box. INNER_BORDER can be used to convert the center box into + the inner bounding box. + */ + ::com::sun::star::awt::Rectangle removeBorder ( + [in] string sPaneBorderStyleName, + [in] ::com::sun::star::awt::Rectangle aRectangle, + [in] BorderType eBorderType); + + /** Paint the border around a pane. + @param sPaneBorderStyleName + The pane style to use for painting the border. + @param xCanvas + The canvas onto which the border is painted. + @param aOuterBorderRectangle + The outer bounding box of the border. Use addBorder to convert + the bounding box of a pane (the inner bounding box of the + border) into this outer bounding box of the border. + @param aRepaintArea + The area in which the border has to be repainted. The clip + rectangle. + @param sTitle + The pane title. Supply an empty string for panes without + title. It is the responsibility of the caller to supply a title + only for pane border styles that support a title. + */ + void paintBorder ( + [in] string sPaneBorderStyleName, + [in] ::com::sun::star::rendering::XCanvas xCanvas, + [in] ::com::sun::star::awt::Rectangle aOuterBorderRectangle, + [in] ::com::sun::star::awt::Rectangle aRepaintArea, + [in] string sTitle); + + /** Paint the border around a pane where the border includes a call out + that is anchored at the given point. Most arguments have the same + meaning as in the paintBorder(). + + @see paintBorder + + @param sPaneBorderStyleName + See description in #paintBorder. + @param xCanvas + See description in #paintBorder. + @param aOuterBorderRectangle + See description in #paintBorder. + @param aRepaintArea + See description in #paintBorder. + @param sTitle + See description in #paintBorder. + @param aCalloutAnchor + The anchor point of the call out. It is usually located outside + the border. + */ + void paintBorderWithCallout ( + [in] string sPaneBorderStyleName, + [in] ::com::sun::star::rendering::XCanvas xCanvas, + [in] ::com::sun::star::awt::Rectangle aOuterBorderRectangle, + [in] ::com::sun::star::awt::Rectangle aRepaintArea, + [in] string sTitle, + [in] ::com::sun::star::awt::Point aCalloutAnchor); + + /** Return the offset of a call out anchor with respect to the outer + border. This value is used when the call out is realized by a fixed + bitmap in order to determine the size and/or location of the outer + border for a given call out. + */ + ::com::sun::star::awt::Point getCalloutOffset ( + [in] string sPaneBorderStyleName); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XRelocatableResource.idl b/offapi/com/sun/star/drawing/framework/XRelocatableResource.idl new file mode 100644 index 0000000000..aac34c7c70 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XRelocatableResource.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XResource; + +/** An optional interface that is implemented by resources that are + relocatable to different anchors. +*/ +interface XRelocatableResource +{ + /** Replace the current anchor of the called resource with the given + one. + @param xNewAnchor + The new anchor. + @return + Returns `TRUE` when the relocation was successful. + */ + boolean relocateToAnchor ([in] XResource xNewAnchor); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XResource.idl b/offapi/com/sun/star/drawing/framework/XResource.idl new file mode 100644 index 0000000000..72fa0beb91 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XResource.idl @@ -0,0 +1,48 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XResourceId; + +/** Base interface that provides functionality shared by all resource types + of the drawing framework. +*/ +interface XResource +{ + /** Return an XResourceId object for the called resource. + The returned id unambiguously identifies the resource. + */ + XResourceId getResourceId (); + + /** Some resources must not be leafs, i.e. have to be anchor to at least + one other resource. Most panes are examples for this. Views on the + other hand are in most cases no anchors. So the typical pane will + return `TRUE` and the typical view will return `FALSE`. + + The return value is used to determine whether a resource has to be + deactivated when it has no children, either because none is + requested or because none can be created. + */ + boolean isAnchorOnly (); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XResourceFactory.idl b/offapi/com/sun/star/drawing/framework/XResourceFactory.idl new file mode 100644 index 0000000000..2ed4d8ee74 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XResourceFactory.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XResource; +interface XResourceId; + +/** Factory and possibly cache for creating and releasing resources. +

A resource factory is created and used by the + XConfigurationController object.

+

A factory may want to implement a cache to reuse previously released + resources.

+*/ +interface XResourceFactory +{ + /** Create a resource for the given XResourceId object. + @param xResourceId + The resource URL of this id specifies the type of resource to + create. The anchor can be used to obtain the associated object + from the configuration controller. For example, when a view is + created, then the new object can be initialized with the pane + that is its anchor. +

Valid values are those for which the factory has previously been + registered at the XConfigurationController

. + @return + Returns a resource object that has been just created or was + taken from a cache. When the requested resource can not be + created then an empty reference is returned. A later call may + be successful. This, for example, can be the case with SFX + based side panes. They are not available right after the + creation of a new application frame. + @throws InvalidArgumentException + when the given URL is not supported by the factory. + */ + XResource createResource ( + [in] XResourceId xResourceId) + raises ( ::com::sun::star::lang::IllegalArgumentException, + ::com::sun::star::lang::WrappedTargetException + ); + + /** Call this method to tell a factory that the given resource is no + longer in use. The factory can decide whether to destroy the + resource or to keep it in a cache in order to reuse it later. + @param xResource + The given resource has to be one created by the same factory. + @throws InvalidArgumentException + when the given pane was not created by the same factory. + */ + void releaseResource ([in] XResource xResource); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XResourceFactoryManager.idl b/offapi/com/sun/star/drawing/framework/XResourceFactoryManager.idl new file mode 100644 index 0000000000..86dfe2b039 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XResourceFactoryManager.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +interface XResourceId; +interface XResourceFactory; + +/** The XResourceFactoryManager is part of the configuration controller and + manages the set of registered resource factories. + + @see XConfigurationController + @see XResourceFactory +*/ +interface XResourceFactoryManager +{ + /** Register a new resource factory for the given URL. +

When one factory is responsible for more than one type of resource + then this method has to be called for each type. If this method is + called multiple times for the same URL then a previously registered + factory is removed for the URL.

+ @param sResourceURL + The URL of the resource that the factory can create. + @param xResourceFactory + The resource factory object. + */ + void addResourceFactory ( + [in] string sResourceURL, + [in] XResourceFactory xResourceFactory); + + /** Remove a resource factory for one type of resource. When the + factory has been registered for other URLs as well then it remains + registered for them. Use the + removeResourceFactoryForReference() to remove a + factory completely. + @param sResourceURL + The URL for which to remove the resource factory. + */ + void removeResourceFactoryForURL ( + [in] string sResourceURL); + + /** Remove a resource factory for all resource types it has been registered for. Use + removeResourceFactoryForURL() to remove a factory + just for one resource type and to leave it registered for others. + @param xResourceFactory + The resource factory object to remove. + */ + void removeResourceFactoryForReference ( + [in] XResourceFactory xResourceFactory); + + /** Return the resource factory that was previously registered for the + given resource type. This method is typically called by one of the + resource controllers. + @param sResourceURL + The URL of the resource type for which to return the resource + factory. + @return + When no resource factory was registered for the given resource + type then an empty reference is returned. + */ + XResourceFactory getResourceFactory ( + [in] string sResourceURL); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XResourceId.idl b/offapi/com/sun/star/drawing/framework/XResourceId.idl new file mode 100644 index 0000000000..f868a6f372 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XResourceId.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +/** A resource id uses a set of URLs to unambiguously specify a resource of + the drawing framework. +

Resources of the drawing framework are panes, views, tool bars, and + command groups. One URL describes the type of the actual resource. A + sequence of URLs (typically one, sometimes two) specifies its anchor, + the resource it is bound to. The anchor typically is a pane (for + views), or it is empty (for panes).

+

The resource URL may be empty. In this case the anchor is empty, + too. Such an empty resource id does not describe a resource but rather + the absence of one. Instead of an empty XResourceId object + an empty reference can be used in many places.

+

The resource URL may have arguments that are passed to the factory + method on its creation. Arguments are only available through the + getFullResourceURL(). The getResourceURL() method strips them away.

+*/ +interface XResourceId +{ + /** Return the URL of the resource. Arguments supplied on creation are + stripped away. Use getFullResourceURL() to access them. + */ + string getResourceURL (); + + /** Return a URL object of the resource URL that may contain arguments. + */ + com::sun::star::util::URL getFullResourceURL (); + + /** Return whether there is a non-empty anchor URL. When this method + returns `FALSE` then getAnchorURLs() will return an empty list. + */ + boolean hasAnchor (); + + /** Return a new XResourceId that represents the anchor resource. + */ + XResourceId getAnchor (); + + /** Return the, possibly empty, list of anchor URLs. The URLs are + ordered so that the one in position 0 is the direct anchor of the + resource, while the one in position i+1 is the direct anchor of the + one in position i. + */ + sequence getAnchorURLs (); + + /** Return the type prefix of the resource URL. This includes all up to + and including the second slash. + */ + string getResourceTypePrefix (); + + /** Compare the called XResourceId object with the given + one. +

The two resource ids A and B are compared so that if A +

The algorithm for this comparison is quite simple. It uses a + double lexicographic ordering. On the lower level individual URLs + are compared via the lexicographic order defined on strings. On the + higher level two resource ids are compared via a lexicographic order + defined on the URLS. So when there are two resource ids A1.A2 + (A1 being the anchor of A2) and B1.B2 then A1.A2 + @param xId + The resource id to which the called resource id is compared. + @return + Returns 0 when the called resource id is + equivalent to the given resource id. Returns -1 or + +1 when the two compared resource ids differ. + */ + short compareTo ( + [in] XResourceId xId); + + /** Return whether the anchor of the called resource id object + represents the same resource as the given object. +

Note that not only the anchor of the given object is taken into + account. The whole object, including the resource URL, is + interpreted as anchor resource.

+ @param xAnchorId + The resource id of the anchor. + @param eMode + This mode specifies how the called resource has to be bound to + the given anchor in order to have this function return `TRUE`. +

If eMode is DIRECT then the anchor of the called resource id + has to be identical to the given anchor. If eMode is + INDIRECT then the given anchor has to be a part + of the anchor of the called resource. + */ + boolean isBoundTo ( + [in] XResourceId xAnchorId, + [in] AnchorBindingMode eMode); + + /** Return whether the anchor of the called resource id object + represents the same resource as the given anchor URL. This is a + convenience variant of the isBoundTo() function + that can also be seen as an optimization for the case that the + anchor consists of exactly one URL. + @param AnchorURL + The resource URL of the anchor. + @param eMode + This mode specifies how the called resource has to be bound to + the given anchor in order to have this function return. See the + description of isBoundTo() for more + information. + */ + boolean isBoundToURL ( + [in] string AnchorURL, + [in] AnchorBindingMode eMode); + + /** Return a copy of the called resource id. The caller becomes the + owner of the new object. + */ + XResourceId clone (); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XTabBar.idl b/offapi/com/sun/star/drawing/framework/XTabBar.idl new file mode 100644 index 0000000000..3a943f02da --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XTabBar.idl @@ -0,0 +1,85 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { module framework { + +/** UI control for the selection of views in a pane. +

Every tab of a tab bar has, besides its localized title and help + text, the URL of a view. A possible alternative would be to use a + command URL instead of the view URL.

+

In the current Impress implementation a tab bar is only used for the + center pane to switch between views in the center pane. Tab bars can + make sense for other panes as well, i.e. for showing either the slide + sorter or the outline view in the left pane.

+

Tab bar buttons are identified by their resource id. Note that + because the resource anchors are all the same (the tab bar), it is the + resource URL that really identifies a button. There can not be two + buttons with the same resource id.

+

+

A better place for this interface (in an extended version) would be + com::sun::star::awt

+ @see TabBarButton +*/ +interface XTabBar +{ + /** Add a tab bar button to the right of another one. + @param aButton + The new tab bar button that is to be inserted. If a button with + the same resource id is already present than that is removed before the + new button is inserted. + @param aAnchor + The new button is inserted to the right of this button. When + its ResourceId is empty then the new button is inserted at the left + most position. + */ + void addTabBarButtonAfter ([in] TabBarButton aButton, [in] TabBarButton aAnchor); + + /** Add a tab bar button at the right most position. + @param aButton + The new tab bar button that is to be inserted. + */ + void appendTabBarButton ([in] TabBarButton aButton); + + /** Remove a tab bar button. + @param aButton + The tab bar button to remove. When there is no button with the + specified resource id then this call is silently ignored. + */ + void removeTabBarButton ([in] TabBarButton aButton); + + /** Test whether the specified button exists in the tab bar. + @param aButton + The tab bar button whose existence is tested. + @return + Returns `TRUE` when the button exists. + */ + boolean hasTabBarButton ([in] TabBarButton aButton); + + /** Return a sequence of all the tab bar buttons. +

Their order reflects the visible order in the tab bar.

+

This method can be used when + addTabBarButtonAfter() does not provide enough + control as to where to insert a new button.

+ */ + sequence getTabBarButtons (); +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XToolBar.idl b/offapi/com/sun/star/drawing/framework/XToolBar.idl new file mode 100644 index 0000000000..8ab4b4ad90 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XToolBar.idl @@ -0,0 +1,33 @@ +/* -*- 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 . + */ + +module com { module sun { module star { module drawing { module framework { + +/** Abstraction of tool bars used by the drawing framework. + @see XToolBarController + @see XToolBarFactory +*/ +interface XToolBar + : ::com::sun::star::drawing::framework::XResource +{ +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/drawing/framework/XView.idl b/offapi/com/sun/star/drawing/framework/XView.idl new file mode 100644 index 0000000000..49f3b814d4 --- /dev/null +++ b/offapi/com/sun/star/drawing/framework/XView.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 . + */ + +module com { module sun { module star { module drawing { module framework { + +/** A view in the drawing framework is any object that paints into a pane. +

Typical examples are the Impress views that show a graphical + representation of a document. But the task pane, which is primarily a + container of dialogs, is a view as well.

+

Luckily the drawing framework does not need to know much about what a + view is. It just needs to identify view objects and a typesafe way to + reference them.

+

The URL prefix of views is private:resource/view

+*/ +interface XView +{ + interface XResource; +}; + +}; }; }; }; }; // ::com::sun::star::drawing::framework + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3