From 940b4d1848e8c70ab7642901a68594e8016caffc Mon Sep 17 00:00:00 2001
From: Daniel Baumann
+ One important instance of this service is available from the
+ Desktop object via the XDesktop interface.
+
+ This handler doesn't need any frame as target for loading components.
+ Content handler are registered for content types.
+ (See type/filter configuration of com::sun::star::document::TypeDetection
+ for further information) If generic load mechanism found such documents which
+ can be handled by a ContentHandler it will create and use it.
+
+ Base interface of XNotifyingDispatch is XDispatch
+ and can be called for requests if result isn't necessary for dispatch operation.
+
+ With this factory it's possible to
+
+
+
+ Such components can be loaded into a Frame inside a Desktop
+ environment. A controller is a richer component then a pure window, but full featured
+ components need a XModel interface too.
+
+ (see service com::sun::star::document::OfficeDocument for further information)
+
+ + @see com::sun::star::document::OfficeDocument + */ +published service Controller +{ + /** with this interface, components viewed in a Frame can serve + events (by supplying dispatches) + */ + interface XController; + + /** for certain functions which are useful at the UI + +
+ Mostly used by the Frame service, which contains this + controller object. There will be an interception mechanism for dispatches + available too. +
+ + @see XDispatch + @see XDispatchProviderInterception + */ + interface XDispatchProvider; + + /** this interface enables the controller to get interceptors registered that + change context menus or prevent them from being executed + ++ Don't mix it with XDispatchProviderInterception which + intercept calls of XDispatch::dispatch(). +
+ */ + [optional] interface com::sun::star::ui::XContextMenuInterception; + + /** makes it possible to intercept keyboard and mouse input. + */ + [optional] interface com::sun::star::awt::XUserInputInterception; + + /** makes it possible to access and change the selection in a view + */ + [optional] interface com::sun::star::view::XSelectionSupplier; + + /** makes it possible to work with clipboard data + */ + [optional] interface com::sun::star::datatransfer::XTransferableSupplier; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/Desktop.idl b/offapi/com/sun/star/frame/Desktop.idl new file mode 100644 index 000000000..2d6f18de7 --- /dev/null +++ b/offapi/com/sun/star/frame/Desktop.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_frame_Desktop_idl__ +#define __com_sun_star_frame_Desktop_idl__ + +#include+ For a normal dispatch calls all needed parameters are separated. + For optimized remote functionality XDispatch::queryDispatches() + it's necessary to pack these parameters in a flat structure which can be used + in a simple manner. +
+ + @see XDispatchProvider::queryDispatches() + */ +published struct DispatchDescriptor +{ + /** specifies the URL of the resource/function + ++ Must be a full parsed URL. Use service com::sun::star::util::URLTransformer + for that. +
+ + @see com::sun::star::util::URLTransformer + */ + com::sun::star::util::URL FeatureURL; + + /** name of the target frame + ++ Special targets (e.g. "_blank", "_self") or really existing target names can be used. +
+ + @see XDispatchProvider::queryDispatch() + */ + string FrameName; + + /** describes how the target frame is to be searched + ++ This optional parameter is used if FrameName isn't a special target only. +
+ + @see FrameSearchFlag + */ + long SearchFlags; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DispatchHelper.idl b/offapi/com/sun/star/frame/DispatchHelper.idl new file mode 100644 index 000000000..d35f9e498 --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchHelper.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_frame_DispatchHelper_idl__ +#define __com_sun_star_frame_DispatchHelper_idl__ + +#include+ Normally a complete dispatch is split into different parts: + - converting and parsing the URL + - searching for a valid dispatch object available on a dispatch provider + - dispatching of the URL and its parameters +
+ + @see DispatchProvider + @see XDispatchProvider + @see XDispatch + + @since OOo 1.1.2 + */ +published service DispatchHelper : XDispatchHelper; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DispatchInformation.idl b/offapi/com/sun/star/frame/DispatchInformation.idl new file mode 100644 index 000000000..7608849b3 --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchInformation.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_frame_DispatchInformation_idl__ +#define __com_sun_star_frame_DispatchInformation_idl__ + +#include+ @see CommandGroup +
+ */ + short GroupId; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DispatchProvider.idl b/offapi/com/sun/star/frame/DispatchProvider.idl new file mode 100644 index 000000000..b2c9bbe6f --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchProvider.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_frame_DispatchProvider_idl__ +#define __com_sun_star_frame_DispatchProvider_idl__ + +#include+ Such dispatch objects must be queried explicitly and used for + queried purposes only. They can handle requests with guaranteed + notifications (XNotifyingDispatch) or with possible + (but not guaranteed) notifications (XDispatch). +
+ + @see XNotifyingDispatch + @see XDispatch + @see XControlNotificationListener + */ +published service DispatchProvider +{ + /** provides handling of dispatches with defined result state + ++ Base interface of XNotifyingDispatch is XDispatch + and can be called for requests if result isn't necessary for dispatch operation. +
+ + @see XDispatch + */ + interface XDispatchProvider; + + /** provides dispatch interception + ++ It makes it possible to register an XDispatchProvider which + intercepts all requests of XDispatch to this instance. +
+ */ + [optional] interface XDispatchProviderInterception; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DispatchRecorder.idl b/offapi/com/sun/star/frame/DispatchRecorder.idl new file mode 100644 index 000000000..5eacc1579 --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchRecorder.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_frame_DispatchRecorder_idl__ +#define __com_sun_star_frame_DispatchRecorder_idl__ + +#include+ It records all necessary parameters of a call XDispatch::dispatch() + and generate code which can be executed at later time to run same operations + again. Which code will be generated depends from real implementation. So it's + possible to generate e.g. Java/Basic or may Perl code. + By using of a DispatchRecorderSupplier, which is available on + a property of a Frame::DispatchRecorderSupplier, it's possible to change such code generation + for further requests or disable it in general by setting this property to `NULL`. +
+ + @see DispatchRecorderSupplier + @see Frame::RecorderSupplier + + @since OOo 1.1.2 + */ +published service DispatchRecorder : XDispatchRecorder; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DispatchRecorderSupplier.idl b/offapi/com/sun/star/frame/DispatchRecorderSupplier.idl new file mode 100644 index 000000000..770736461 --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchRecorderSupplier.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_frame_DispatchRecorderSupplier_idl__ +#define __com_sun_star_frame_DispatchRecorderSupplier_idl__ + +#include+ This supplier regulate macro recording of XDispatch::dispatch() + calls. For that it encapsulates a reference to a DispatchRecorder. + Such recorder is used internally and can be used externally too. + A supplier will be available on a Frame if recording was enabled, + otherwise not. A frame supports a special property for that. + This modular concept of recorder, supplier and frame makes it possible to + implement local recording on one frame; global recording by using all currently + opened frames or only some of them; and so on. +
+ + @see DispatchRecorder + @see Frame + @since OOo 1.1.2 + */ +published service DispatchRecorderSupplier : XDispatchRecorderSupplier; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DispatchResultEvent.idl b/offapi/com/sun/star/frame/DispatchResultEvent.idl new file mode 100644 index 000000000..dcbd08ee0 --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchResultEvent.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_frame_DispatchResultEvent_idl__ +#define __com_sun_star_frame_DispatchResultEvent_idl__ + +#include+ The type of the result is dispatch action dependent. The member State + can be set to one of the values defined in DispatchResultState. + If State is set to DispatchResultState::FAILURE, Result may + specify the reason (or is empty). The type is also dispatch action dependent. + If State is set to DispatchResultState::DONTKNOW, Result is empty. +
+ + @see DispatchResultState +*/ +published struct DispatchResultEvent: com::sun::star::lang::EventObject +{ + /** describes state of dispatch + */ + short State; + + /** describes result for given State + */ + any Result; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DispatchResultState.idl b/offapi/com/sun/star/frame/DispatchResultState.idl new file mode 100644 index 000000000..e0658dd2e --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchResultState.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 . + */ + +#ifndef __com_sun_star_frame_DispatchResultState_idl__ +#define __com_sun_star_frame_DispatchResultState_idl__ + + +module com { module sun { module star { module frame { + +/** possible values for DispatchResultEvent + */ +published constants DispatchResultState +{ + /** indicates: dispatch failed + */ + const short FAILURE = 0; + + /** indicates: dispatch was successful + */ + const short SUCCESS = 1; + + /** indicates: result isn't defined + */ + const short DONTKNOW = 2; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DispatchStatement.idl b/offapi/com/sun/star/frame/DispatchStatement.idl new file mode 100644 index 000000000..64421ef46 --- /dev/null +++ b/offapi/com/sun/star/frame/DispatchStatement.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_frame_DispatchStatement_idl__ +#define __com_sun_star_frame_DispatchStatement_idl__ + +#include+ That means the URL parameter of a corresponding XDispatchProvider::queryDispatch() request. +
+ */ + string aCommand; + + + /** specifies the frame target + ++ That means the TargetFrameName parameter of a corresponding XDispatchProvider::queryDispatch() request. +
+ */ + string aTarget; + + /** specifies the dispatch command arguments + ++ That means the Arguments parameter of a corresponding XDispatch::dispatch() request. +
+ */ + sequence < com::sun::star::beans::PropertyValue > aArgs; + + /** specifies the optional search flags ++ That means the SearchFlags parameter of a corresponding XDispatchProvider::queryDispatch() request. +
+ */ + long nFlags; + + /** specifies if this statement should be recorded as commented out or not + + @see XDispatchRecorder::recordDispatchAsComment() + */ + boolean bIsComment; + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/DocumentTemplates.idl b/offapi/com/sun/star/frame/DocumentTemplates.idl new file mode 100644 index 000000000..d7a2109ec --- /dev/null +++ b/offapi/com/sun/star/frame/DocumentTemplates.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_frame_DocumentTemplates_idl__ +#define __com_sun_star_frame_DocumentTemplates_idl__ + +#include+ Interest code should listen for FrameActionEvent + too, to update own feature states and dispatch listener on + FrameAction::CONTEXT_CHANGED. +
+ */ + boolean Requery; + + /** contains the state of the feature in this dispatch. + +
+ This can be, for example, simply `TRUE` for a boolean feature like
+ underline on/off. Some simple types like string
or
+ `boolean` are useful here for generic UI elements, like
+ a checkmark in a menu.
+
+ Frames are the anchors for the office components and they are the component's link + to the outside world. They create a skeleton for the whole office API infrastructure + by building frame hierarchies. These hierarchies contains all currently loaded + documents and make it possible to walk during these trees. + A special service Desktop can(!) combine different of such trees + to a global one which life time will be controlled by it. +
+ + @see Desktop + */ +published service Frame : XFrame2; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/FrameAction.idl b/offapi/com/sun/star/frame/FrameAction.idl new file mode 100644 index 000000000..4f478132c --- /dev/null +++ b/offapi/com/sun/star/frame/FrameAction.idl @@ -0,0 +1,134 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.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_frame_FrameAction_idl__ +#define __com_sun_star_frame_FrameAction_idl__ + + + + module com { module sun { module star { module frame { + +/** these are the events which can happen to the components in frames + of the desktop + ++ Interest listener can get information about loaded/reloaded or unloaded + components into a Frame. +
+ + @see XFrame + @see XFrameActionListener + @see FrameActionEvent + */ +published enum FrameAction +{ + /** an event of this kind is broadcast whenever a component is + attached to a frame + ++ This is almost the same as the instantiation of the component + within that frame. The component is attached to the frame + immediately before this event is broadcast. +
+ + @see XFrame::setComponent() + */ + COMPONENT_ATTACHED, + + /** an event of this kind is broadcast whenever a component is + detaching from a frame + ++ This is quite the same as the destruction of the component + which was in that frame. At the moment when the event is broadcast + the component is still attached to the frame but in the next + moment it won't. +
+ + @see XFrame::setComponent() + */ + COMPONENT_DETACHING, + + /** an event of this kind is broadcast whenever a component is + attached to a new model. + ++ In this case the component remains the same but operates + on a new model component. +
+ */ + COMPONENT_REATTACHED, + + /** an event of this kind is broadcast whenever a component gets + activated + ++ Activations are broadcast from the top component which was + not active before, down to the inner most component. +
+ + @see XFrame::activate() + */ + FRAME_ACTIVATED, + + /** an event of this kind is broadcasted immediately before the + component is deactivated + ++ Deactivations are broadcast from the innermost component which + does not stay active up to the outer most component which does not + stay active. +
+ + @see XFrame::deactivate() + */ + FRAME_DEACTIVATING, + + /** an event of this kind is broadcast whenever a component changes + its internal context (i.e., the selection). + ++ If the activation status within a frame changes, this counts as + a context change too. +
+ + @see XFrame::contextChanged() + */ + CONTEXT_CHANGED, + + /** an event of this kind is broadcast by an active frame when it + is getting UI control (tool control). + + @see XFrame::activate() + */ + FRAME_UI_ACTIVATED, + + /** an event of this kind is broadcast by an active frame when it + is losing UI control (tool control). + + @see XFrame::deactivate() + */ + FRAME_UI_DEACTIVATING +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/FrameActionEvent.idl b/offapi/com/sun/star/frame/FrameActionEvent.idl new file mode 100644 index 000000000..c0359b9d4 --- /dev/null +++ b/offapi/com/sun/star/frame/FrameActionEvent.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_frame_FrameActionEvent_idl__ +#define __com_sun_star_frame_FrameActionEvent_idl__ + +#include+ If the control is visible and has a valid (loadable) component URL, + then the FrameControl::Frame property is set. + Normally this control can be used for preview functionality inside + any UI. +
+ */ +published service FrameControl +{ + /** the base service of all controls + */ + service com::sun::star::awt::UnoControl; + + /** contains the type of the component which is loaded into the frame, + or the document which implicitly specifies the type + */ + [property] string ComponentUrl; + + /** the frame held by this control + ++ The Frame is created if the control + is shown and the #ComponentUrl is set. +
+ */ + [property, readonly] string Frame; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/FrameLoader.idl b/offapi/com/sun/star/frame/FrameLoader.idl new file mode 100644 index 000000000..5bdbc17b8 --- /dev/null +++ b/offapi/com/sun/star/frame/FrameLoader.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_frame_FrameLoader_idl__ +#define __com_sun_star_frame_FrameLoader_idl__ + +#include+ Concrete implementations of this service register, for example, + for file name extensions or MIME types to load appropriate + components. The components loaded are at least Controller. + Instead of SynchronousFrameLoader this one use asynchronous + processes to load the component. +
+ + @see SynchronousFrameLoader + */ +published service FrameLoader +{ + /** support asynchronous loading of the component + */ + interface XFrameLoader; + + /** support initialization of loader with its own configuration! + ++ Concrete implementations should use it to get her own configuration data + directly after creation by the FrameLoaderFactory. + Otherwise they must use normal configuration API to do so. +
+ */ + [optional] interface com::sun::star::lang::XInitialization; + + /** provides access to the internal name of this frame loader + ++ The internal name is a part of his configuration and will be passed by + the FrameLoaderFactory after creation + if optional interface com::sun::star::lang::XInitialization + is supported. Value of function com::sun::star::container::XNamed::getName() + can be used on service FrameLoaderFactory to get further information about this loader. + Setting of this name by calling com::sun::star::container::XNamed::setName() + must be forwarded to same factory service. He should decide, if it's allowed or not. + The reason: prevent code against name ambiguities. +
+ */ + [optional] interface com::sun::star::container::XNamed; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/FrameLoaderFactory.idl b/offapi/com/sun/star/frame/FrameLoaderFactory.idl new file mode 100644 index 000000000..6efe90694 --- /dev/null +++ b/offapi/com/sun/star/frame/FrameLoaderFactory.idl @@ -0,0 +1,45 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.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_frame_FrameLoaderFactory_idl__ +#define __com_sun_star_frame_FrameLoaderFactory_idl__ + +#include+ With this factory it's possible to +
+ Such flags will be used on methods XFrame::findFrame(), + XDispatchProvider::queryDispatch() or + XComponentLoader::loadComponentFromURL() if no special target + frame name (e.g. "_blank", "_self") is used. +
+ + @see XFrame::findFrame() + @see XDispatchProvider::queryDispatch() + @see XComponentLoader::loadComponentFromURL() + */ +published constants FrameSearchFlag +{ + /** no longer supported + ++ Using of this flag will do nothing. Use right combination of other flags + instead of this one. +
+ + @deprecated + */ + const long AUTO = 0; + + /** allows search on the parent frames + */ + const long PARENT = 1; + + /** includes the start frame himself + */ + const long SELF = 2; + + /** includes all child frames of the start frame + ++ Note: That means all direct children and of course her children too. + Search doesn't stop at the next level inside the tree! +
+ */ + const long CHILDREN = 4; + + /** frame will be created if not found + */ + const long CREATE = 8; + + /** includes the direct siblings of the start frame + ++ Normally it's interpreted as search on the direct children of the parent + only. But in combination with e.g. the CHILDREN flag it can include all + children of it too. +
+ */ + const long SIBLINGS = 16; + + /** allow the search outside the current sub task tree of the whole possible frame tree + ++ If this flag isn't present, any search from bottom to top has to stop, if a top frame + will be reached. It doesn't influence a search from top to bottom. + But it can be used at the root of the frame tree to search on direct children of it only. + Because the direct children of the root node are the root's of the task sub trees, which + are top frames too. Instead of using the CHILDREN flag there, it's possible so to suppress + a deeper search so. +
+ */ + const long TASKS = 32; + + /** includes all frames except frames in other tasks sub trees + but doesn't create any new frame + */ + const long ALL = 23; + + /** searches in the whole hierarchy of frames + but doesn't create any new frame + */ + const long GLOBAL = 55; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/FramesContainer.idl b/offapi/com/sun/star/frame/FramesContainer.idl new file mode 100644 index 000000000..01265ad8d --- /dev/null +++ b/offapi/com/sun/star/frame/FramesContainer.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_frame_FramesContainer_idl__ +#define __com_sun_star_frame_FramesContainer_idl__ + +#include+ All elements in this container support the service frame. + Implementations of this service are available by interface + XFramesSupplier. +
+ + @see XFramesSupplier + */ +published service FramesContainer +{ + /** access to frame collection by reference + */ + interface XFrames; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/GlobalEventBroadcaster.idl b/offapi/com/sun/star/frame/GlobalEventBroadcaster.idl new file mode 100644 index 000000000..47fbc9e84 --- /dev/null +++ b/offapi/com/sun/star/frame/GlobalEventBroadcaster.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_frame_GlobalEventBroadcaster_idl__ +#define __com_sun_star_frame_GlobalEventBroadcaster_idl__ + +#include+ Layout management is the process of determining the size and position of + user interface elements. By default, each Frame has a layout + manager -- it performs layout management for the user interface elements + within the frame. User interface elements can provide size and alignment + hints to layout managers, but layout managers have the final decision on + the size and position of those user interface elements. +
+ + @since OOo 2.0 +*/ + +service LayoutManager : XLayoutManager2; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/LayoutManagerEvents.idl b/offapi/com/sun/star/frame/LayoutManagerEvents.idl new file mode 100644 index 000000000..1ce0f947b --- /dev/null +++ b/offapi/com/sun/star/frame/LayoutManagerEvents.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 . + */ +#ifndef __com_sun_star_frame_LayoutManagerEvents_idl__ +#define __com_sun_star_frame_LayoutManagerEvents_idl__ + + +module com { module sun { module star { module frame { + +/** provides information about layout manager events + +Events are provided only for notification + purposes only.
+ + @see com::sun::star::frame::LayoutManager + @see com::sun::star::frame::XLayoutManagerEventBroadcaster + + @since OOo 2.0 + */ +constants LayoutManagerEvents +{ + /** specifies that the layout manager processed a lock call, which + prevents it from doing layouts. + ++ This event sends the current lock count as additional + information. +
+ */ + const short LOCK = 0; + + /** specifies that the layout manager processed an unlock call, which + admit layouts when the lock count is zero. + ++ This event sends the current lock count as additional + information. +
+ */ + const short UNLOCK = 1; + + /** specifies that the layout manager refreshed the layout of + the frame. + ++ This event sends no additional information. +
+ */ + const short LAYOUT = 2; + + /** specifies that the layout manager container frame window + becomes visible. + ++ This event sends no additional information. +
+ */ + const short VISIBLE = 3; + + /** specifies that the layout manager container frame window + becomes invisible. + ++ This event sends no additional information. +
+ */ + const short INVISIBLE = 4; + + /** A merged menu bar has been set at the layout manager. + ++ This event sends no additional information. +
+ */ + const short MERGEDMENUBAR = 5; + + /** specifies that a certain user interface element has been made + visible + ++ This event sends the resource url of the newly visible user + interface element. +
+ */ + const short UIELEMENT_VISIBLE = 6; + + /** specifies that a certain user interface element has been made + invisible + ++ This event sends the resource url of the invisible user + interface element. +
+ */ + const short UIELEMENT_INVISIBLE = 7; +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/MediaTypeDetectionHelper.idl b/offapi/com/sun/star/frame/MediaTypeDetectionHelper.idl new file mode 100644 index 000000000..cf220eeb1 --- /dev/null +++ b/offapi/com/sun/star/frame/MediaTypeDetectionHelper.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_frame_MediaTypeDetectionHelper_idl__ +#define __com_sun_star_frame_MediaTypeDetectionHelper_idl__ + +#include+ Order of given and their returned corresponding strings is important. + Don't pack or optimize it. Every item of [in] list must match + to an item of [out] list. +
+ */ +published service MediaTypeDetectionHelper + : com::sun::star::util::XStringMapping; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/ModuleManager.idl b/offapi/com/sun/star/frame/ModuleManager.idl new file mode 100644 index 000000000..d6d449c64 --- /dev/null +++ b/offapi/com/sun/star/frame/ModuleManager.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_frame_ModuleManager_idl__ +#define __com_sun_star_frame_ModuleManager_idl__ + +#include+ Further it provides read access to the configuration + of office modules. +
+ + @since OOo 2.0 + */ + +service ModuleManager : XModuleManager2; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/OfficeFrameLoader.idl b/offapi/com/sun/star/frame/OfficeFrameLoader.idl new file mode 100644 index 000000000..67823eb41 --- /dev/null +++ b/offapi/com/sun/star/frame/OfficeFrameLoader.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_frame_OfficeFrameLoader_idl__ +#define __com_sun_star_frame_OfficeFrameLoader_idl__ + +#include
+ A pop-up menu controller is used to make special functions available to
+ users, which depend on runtime or context specific conditions.
+ A typical example for a pop-up menu controller can be a recent file list
+ implementation which provides a list of latest files that a user has
+ worked on. This list gets changes consistently during a work session.
+
+ A pop-up menu controller implementation gets initialized with a + com::sun::star::awt::XPopupMenu object. This assures + that a pop-up menu controller can be implemented with any UNO based + language. +
+ */ + interface com::sun::star::frame::XPopupMenuController; + + /** provides functions to initialize a pop-up menu controller with + specific data which are needed. + +
+ This interface should not directly used. A factory service is responsible to
+ initialize every controller correctly.
+
+ A pop-up menu controller needs at least two additional arguments
+ provided as com::sun::star::beans::PropertyValue:
+
+ A pop-up menu controller makes special functions available to users which + normally depend on the state of other data. This interface is used to + send this data to a controller implementation. +
+ */ + interface com::sun::star::frame::XStatusListener; + + /** used to query for commands supported by the pop-up menu controller to + execute them directly. + +
+ A pop-up menu controller provides special functions which should be
+ available by the normal dispatch API. This optional interface enables
+ pop-up menu controller to be normal dispatch providers.
+ Attention:
+ Po-pup menu controller functions must be specified using the following
+ the dispatch URL scheme: "vnd.sun.star.popup:" opaque_part [ "?" query ].
+
+ A pop-up menu controller resides in a menu which has a limited + life-time. For correct life-time handling a pop-up menu + controller should support this interface. +
+ + @since OOo 2.2 + */ + [optional] interface com::sun::star::lang::XComponent; +}; + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/PopupMenuControllerFactory.idl b/offapi/com/sun/star/frame/PopupMenuControllerFactory.idl new file mode 100644 index 000000000..009bb66a9 --- /dev/null +++ b/offapi/com/sun/star/frame/PopupMenuControllerFactory.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_frame_PopupMenuControllerFactory_idl__ +#define __com_sun_star_frame_PopupMenuControllerFactory_idl__ + +#include+ The generic dispatch mechanism on a Frame + search for such registered protocol handler and use it if it agrees with + the dispatched URL. +
+ +
+ Supported URLs must match follow format:
+ protocol scheme:protocol specific part
+ If a handler provides optional arguments ("?") or jump marks ("#") depends from his
+ definition and implementation. The generic dispatch provider will use registered
+ URL pattern to detect right handler.
+
+ Such asked handler can agree by returning itself or a special sub dispatch object, which + can handle the given URL. Of course he can disagree with it by returning an empty reference. +
+ */ + interface XDispatchProvider; + + /** initialize the new handler instance with some context information + ++ Sometimes it can be useful for a handler object, to know something about the + environment, in which it runs - especially the frame. For this case the generic + code (which uses the handler) will ask for this optional interface and use it, if it exist. + Following parameters are passed to the service: +
+ Please note: if this mechanism is used it seems not useful (nor possible) to implement a ProtocolHandler + as a singleton. Otherwise the implementation can't distinguish between different environments + and her corresponding dispatch requests. +
+ */ + [optional] interface ::com::sun::star::lang::XInitialization; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/SessionListener.idl b/offapi/com/sun/star/frame/SessionListener.idl new file mode 100644 index 000000000..d33859fd8 --- /dev/null +++ b/offapi/com/sun/star/frame/SessionListener.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_frame_SessionListener_idl__ +#define __com_sun_star_frame_SessionListener_idl__ + +#include
+ A generic status bar function is represented as a text field which
+ provides status information to the user. A status bar controller can be
+ added to a status bar and provides information or functions with a more
+ sophisticated user interface.
+ A typical example for a status bar controller is the zoom level chooser
+ within the statusbar. It provides an option to change the zoom level of
+ an application.
+
+
+ @see com::sun::star::frame::XDispatchProvider
+ @see com::sun::star::frame::XStatusbarController
+
+ @since OOo 2.0
+ */
+service StatusbarController : XStatusbarController
+{
+};
+
+}; }; }; };
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/offapi/com/sun/star/frame/StatusbarControllerFactory.idl b/offapi/com/sun/star/frame/StatusbarControllerFactory.idl
new file mode 100644
index 000000000..4f74f6d6c
--- /dev/null
+++ b/offapi/com/sun/star/frame/StatusbarControllerFactory.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_frame_StatusbarControllerFactory_idl__
+#define __com_sun_star_frame_StatusbarControllerFactory_idl__
+
+#include
+ Concrete implementations of this service register, for example,
+ for file name extensions or MIME types to load appropriate
+ components. The components loaded are at least Controller.
+ Instead of service FrameLoader this one use synchronous
+ processes to load the component.
+
+ Concrete implementations should use it to get her own configuration data
+ directly after creation by the FrameLoaderFactory.
+ Otherwise they must use normal configuration API to do so.
+
+ The internal name is a part of his configuration and will be passed by
+ the FrameLoaderFactory after creation
+ if optional interface com::sun::star::lang::XInitialization
+ is supported. Value of function com::sun::star::container::XNamed::getName() can be
+ used on service FrameLoaderFactory to get further information about this loader.
+ Setting of this name by calling com::sun::star::container::XNamed::setName() must be
+ forwarded to same factory service. He should decide, if it's allowed or not.
+ The reason: prevent code against name ambiguities.
+
+ Please use the service Frame instead of this deprecated Task. If it's
+ method XFrame.isTop() returns `TRUE`, it's the same
+ as a check for the Task service.
+
+ If a XTerminateListener use this exception for a veto against
+ the termination of the office, he will be the new "owner" of it.
+ After his own operation will be finished, he MUST try to terminate the
+ office again. Any other veto listener can intercept that again or office
+ will die really.
+
+ Since LibreOffice 5.3:
+ Throwing this exception will only prevent *termination*.
+ Exiting LibreOffice will close all the windows, but the process will keep running.
+
+ A generic toolbar function is represented as a button which has a state
+ (enabled,disabled and selected, not selected). A toolbar controller can
+ be added to a toolbar and provide information or functions within a more
+ sophisticated user interface.
+
+ @see com::sun::star::frame::XDispatchProvider
+
+ @since OOo 2.0
+ */
+
+service ToolbarController
+{
+ /** with this interface a component can receive events if a feature has
+ changed.
+
+
+ The toolbar controller implementation should register itself as a
+ listener when its com::sun::star::util::XUpdatable
+ interface has been called.
+
+ A toolbar controller instance is ready for use after this call has been made
+ the first time. The toolbar implementation guarantees that the controller's
+ item window has been added to the toolbar and its reference is held by it.
+
+ Mostly used by a toolbar implementation to forward information to and request
+ services from a toolbar controller component. This interface must be usable
+ after com::sun::star::lang::XInitialization::initialize()
+ has been called. The behavior of the interface is undefined if the controller
+ component hasn't been initialized.
+
+ Used by implementations that want to provide the toolbar button/sub-
+ toolbar function feature. A controller supporting this interface exchanges
+ the function of its own toolbar button, that opened the sub-toolbar, with
+ the one that has been selected on the sub-toolbar.
+
+ To create new documents, use "private:factory/scalc", "private:factory/swriter", etc.
+ Other special protocols (e.g. "slot:", ".uno") are not allowed and raise
+ a com::sun::star::lang::IllegalArgumentException.
+
+ If a frame with the specified name already exists, it is used, otherwise it
+ is created. There exist some special targets which never can be used
+ as real frame names:
+
+ Note: These flags are optional ones and will be used for non special
+ target names only.
+
+ For example, "ReadOnly" with a boolean value specifies whether
+ the document is opened read-only. "FilterName" specifies the
+ component type to create and the filter to use, for example:
+ "Text - CSV". For more information see
+ com::sun::star::document::MediaDescriptor.
+
+ This interface is a generic one and can be used to start further requests on
+ loaded document or control the lifetime of it (means dispose() it after using).
+ The real document service behind this interface can be one of follow three ones:
+
A typical example for toolbar controller
+ is the font chooser within the toolbar. It provides all available fonts in
+ a dropdown box and shows the current chosen font.
+
+
+ */
+ interface com::sun::star::lang::XInitialization;
+
+ /** used to notify an implementation that it needs to add its listener or remove
+ and add them again.
+
+
a com::sun::star::frame::XFrame
+ instance to which the toolbar controller belongs.
a string which specifies the command a
+ toolbar controller is bound.
a
+ com::sun::star::lang::XMultiServiceFactory
+ instance which can be used to create additional UNO services.
+
+
+ @param SearchFlags
+ use the values of FrameSearchFlag to specify
+ how to find the specified TargetFrameName
+
+
+
+ "_blank"
+ always creates a new frame
+
+
+ "_default"
+ special UI functionality
+
(e.g. detecting of already loaded documents, using of empty frames of creating of new top frames as fallback)
+
+ "_self", ""(!)
+ means frame himself
+
+
+ "_parent"
+ address direct parent of frame
+
+
+ "_top"
+ indicates top frame of current path in tree
+
+
+ "_beamer"
+ means special sub frame
+
+ `NULL`if it failed
+
+
+
+
+ Should be used for viewable components only. It is not allowed to dispose
+ it after use directly, because the frame containing the component is its owner.
+ Because the frame object is not accessible through the interface too,
+ only an interacting user can do this by closing the frame's window.
+
+ Should be used for real editable components which doesn't need a model.
+ It is not allowed to dispose it after use directly, because the frame
+ containing the component is its owner. Here the object can be disposed
+ by disposing the frame, that the XController::getFrame()
+ method of the controller returns. But for visible components the controller
+ should be asked for permission by calling XController::suspend() before.
+
+ A model that in general can be shared between several view/controller pairs,
+ does not have an explicit owner. Every view and also the component that
+ loaded the document may consider itself as an owner.
+ Simply calling com::sun::star::lang::XComponent::dispose() on this model may
+ cause problems, if some members of the "owner community" are currently
+ busy working on the model. These problems are handled by explicit closing
+ negotiations through the interface com::sun::star::util::XCloseable.
+ Direct dispose of the model is allowed only, if this special interface doesn't exist.
+
+ Listener can update his text values by calling XConfigManager::substituteVariables() + again. If KeyName specifies a group of keys, the listener gets one notify for each subkey. +
+ + @param KeyName + specifies variable about listener will be informed on changes + + @param Listener + listener which will be informed + + @see XConfigManager::removePropertyChangeListener() + + @deprecated + */ + void addPropertyChangeListener( + [in] string KeyName, + [in] com::sun::star::beans::XPropertyChangeListener Listener ); + + /** remove a registered listener + + @param KeyName + specifies variable on which listener was registered + + @param Listener + listener which will be deregistered + + @see XConfigManager::addPropertyChangeListener() + + @deprecated + */ + void removePropertyChangeListener( + [in] string KeyName, + [in] com::sun::star::beans::XPropertyChangeListener Listener); + + /** substitute variables (place holder) inside given parameter Text + ++ The value of Text is NOT changed. +
+ + @param Text + original value including variables + + @return + changed copy of Text without any variables + */ + string substituteVariables( [in] string Text ); + + /** was designed for additional functionality for interface com::sun::star::registry::XSimpleRegistry + and make no sense without that + @deprecated + */ + void flush(); + +}; //XConfigManager +}; //frame +}; //star +}; //sun +}; //com + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XControlNotificationListener.idl b/offapi/com/sun/star/frame/XControlNotificationListener.idl new file mode 100644 index 000000000..09eedf661 --- /dev/null +++ b/offapi/com/sun/star/frame/XControlNotificationListener.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_frame_XControlNotificationListener_idl__ +#define __com_sun_star_frame_XControlNotificationListener_idl__ + +#includeIf the controller is plugged into a frame, this window acts as the
+ frame's ComponentWindow
.
A view name is a logical name, which can be used to create views of the same + type. The name is meaningful only in conjunction with XModel2::createViewController() + - if it's passed there, a view/controller pair of the same type will be created.
+ */ + [readonly, attribute] string ViewControllerName; + + /** denotes the arguments used to create the instance. + +Usually, controllers are created via XModel2::createViewController(), where the
+ caller can pass not only a controller name, but also arguments parameterizing the to-be-created instance.
+ Those arguments used at creation time can subsequently be retrieved using the CreationArguments
+ member.
If the view is going to be resized/moved this method can be + used to get suggested object area. Pixels are used as units. +
+ + @return + suggestion for the resizing + */ + ::com::sun::star::awt::Rectangle queryBorderedArea( + [in] ::com::sun::star::awt::Rectangle aPreliminaryRectangle ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDesktop.idl b/offapi/com/sun/star/frame/XDesktop.idl new file mode 100644 index 000000000..b25fdcdaf --- /dev/null +++ b/offapi/com/sun/star/frame/XDesktop.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_frame_XDesktop_idl__ +#define __com_sun_star_frame_XDesktop_idl__ + +#include+ A desktop is an environment for components which can be viewed in + frames. Frames are like frames in HTML framesets. This does not imply + that a desktop can handle framesets; the frames may be top frames + only. +
+ + @see Desktop + */ +published interface XDesktop: com::sun::star::uno::XInterface +{ + /** tries to terminate the desktop. + ++ First, every terminate listener is called by his XTerminateListener::queryTermination() method. + Throwing of a TerminationVetoException can break the termination process and the listener how has + done that will be the new "controller" of the desktop lifetime. He should try to terminate it by himself after + his own processes will be finished. + If nobody disagree with the termination request, every listener will be called by his + XTerminateListener::notifyTermination() method. +
+ + @return + `TRUE` If all listeners agree with this request ++ The component is, by definition, the model of the control which + is loaded into a frame, or if no model exists, into the control + itself. + The service Components which is available from this + method is a collection of all components of the desktop which are open + within a frame of the desktop. +
+ + @returns + the collection of all components + + @see Components + */ + com::sun::star::container::XEnumerationAccess getComponents(); + + /** provides read access to the component inside the tree which has the UI focus + ++ Normally, the component is the model part of the + active component. If no model exists it is the active controller + (view) itself. +
+ + @returns + the component within the desktop environment which has the UI focus. + + @see XDesktop::getCurrentFrame() + */ + com::sun::star::lang::XComponent getCurrentComponent(); + + /** provides read access to the frame which contains the current component + + @returns + the frame of the component which has the + UI focus within this desktop environment + + @see XDesktop::getCurrentComponent() + */ + XFrame getCurrentFrame(); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDesktop2.idl b/offapi/com/sun/star/frame/XDesktop2.idl new file mode 100644 index 000000000..6fe69c862 --- /dev/null +++ b/offapi/com/sun/star/frame/XDesktop2.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_frame_XDesktop2_idl__ +#define __com_sun_star_frame_XDesktop2_idl__ + +#include
+ What kind of URLs a frame accepts in the calls to XDispatchProvider::queryDispatch(),
+ and how the returned dispatcher handles dispatches is completely implementation dependent
+ (though of course the restrictions of XDispatchProvider must be met).
+ Frame implementations may (optionally) support special targets in the call to
+ XDispatchProvider::queryDispatch().
+ Such special targets are passed as target frame name. They may, in addition,
+ require special frame search flags (see FrameSearchFlag), or,
+ in opposite, limit the set of allowed flags.
+ Common special targets include:
+
+ Registered objects can intercept, suppress or reroute dispatched URLs. + If they support another interface too (XInterceptorInfo) + it's possible to perform it by directly calling of right interceptor without + using list of all registered ones. +
+ */ + interface XDispatchProviderInterception; + + /** provides access to sub frames within this frame + */ + interface XFramesSupplier; + + /** regulate life time of desktop environment and support high level + access to components of sub frame tree + */ + interface XDesktop; + + /** supports simple API for loading components into the frame environment + */ + interface XComponentLoader; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDesktopTask.idl b/offapi/com/sun/star/frame/XDesktopTask.idl new file mode 100644 index 000000000..bdb6a937b --- /dev/null +++ b/offapi/com/sun/star/frame/XDesktopTask.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_frame_XDesktopTask_idl__ +#define __com_sun_star_frame_XDesktopTask_idl__ + +#include+ Each state change is to be broadcasted to all registered + status listeners. The first notification should be performed + synchronously from XDispatch::addStatusListener(); + if not, controls may flicker. State listener must be aware of this + synchronous notification. +
+ ++ The state consists of enabled/disabled and a short descriptive text + of the function (e.g. "undo insert character"). It is to be broadcasted + whenever this state changes or the control should re-get the value + for the URL it is connected to. Additionally, a context-switch-event + is to be broadcasted whenever the object may be out of scope, + to force the state listener to requery the XDispatch. +
+ + @see Frame + @see FeatureStateEvent + */ +published interface XDispatch: com::sun::star::uno::XInterface +{ + /** dispatches (executes) a URL + ++ It is only allowed to dispatch URLs for which this XDispatch + was explicitly queried. Additional arguments ("'#..." or "?...") are allowed. +
+ + @param URL + fully parsed URL describing the feature which should be dispatched (=executed) + + @param Arguments + optional arguments for this request + (see com::sun::star::document::MediaDescriptor) + They depend on the real implementation of the dispatch object. + + Controlling synchronous or asynchronous mode happens via + readonly boolean Flag SynchronMode + ++ By default, and absent any arguments, "SynchronMode" is + considered `FALSE` and the execution is performed + asynchronously (i.e. dispatch() returns immediately, and + the action is performed in the background). But when set + to `TRUE`, dispatch() processes the request synchronously + - this call will block until it has finished. +
+ + some code for a click-handler (Java) + @code{.java} + void myOnClick(String sURL,String sTargetFrame, + com.sun.star.beans.PropertyValue[] lArguments) + { + com.sun.star.util.URL[] aURL = new com.sun.star.util.URL[1]; + aURL[0] = new com.sun.star.util.URL(); + aURL[0].Complete = sURL; + + com.sun.star.util.XURLTransformer xParser = + (com.sun.star.util.XURLTransformer)UnoRuntime.queryInterface( + com.sun.star.util.XURLTransformer.class, + mxServiceManager.createInstance("com.sun.star.util.URLTransformer")); + + xParser.parseStrict(aURL); + + com.sun.star.frame.XDispatch xDispatcher = + mxFrame.queryDispatch(aURL[0], sTargetFrame, com.sun.star.frame.FrameSearchFlag.GLOBAL); + + if(xDispatcher!=null) + xDispatcher.dispatch(aURL[0], lArguments); + } + @endcode + */ + void dispatch( + [in] com::sun::star::util::URL URL, + [in] sequence+ It is only allowed to register URLs for which this XDispatch + was explicitly queried. Additional arguments ("#..." or "?...") will be ignored. +
+ Note: Notifications can't be guaranteed! This will be a part of interface XNotifyingDispatch. + + @param Control + listener that wishes to be informed + + @param URL + the URL (without additional arguments) the listener wishes to be registered for. + A listener can be registered for more than one URL at the same time. + + @see XStatusListener + @see XDispatch::removeStatusListener() + */ + void addStatusListener( + [in] XStatusListener Control, + [in] com::sun::star::util::URL URL); + + /** unregisters a listener from a control. + + @param Control + listener that wishes to be unregistered + + @param URL + URL the listener was registered for. + Additional arguments ("#..." or "?...") will be ignored. + + @see XStatusListener + @see XDispatch::addStatusListener() + */ + void removeStatusListener( + [in] XStatusListener Control, + [in] com::sun::star::util::URL URL); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDispatchHelper.idl b/offapi/com/sun/star/frame/XDispatchHelper.idl new file mode 100644 index 000000000..a51d6a8ef --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchHelper.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_frame_XDispatchHelper_idl__ +#define __com_sun_star_frame_XDispatchHelper_idl__ + +#include+ This interface can be used to retrieve additional information about + supported commands. This interface is normally used by configuration + implementations to retrieve all supported commands. + A dispatch information provider is normally supported by a + Frame service. +
+ + @see Frame + + @since OOo 2.0 + */ +published interface XDispatchInformationProvider: com::sun::star::uno::XInterface +{ + /** returns all supported command groups. + + @returns + a sequence of supported command groups. + + @see CommandGroup + */ + sequence < short > getSupportedCommandGroups(); + + /** returns additional information about supported commands of a + given command group. + + @param CommandGroup + specifies a command group. + + @returns + name and group name of every command supported. A group ID which is + not supported returns an empty com::sun::star::uno::Sequence. + */ + sequence < DispatchInformation > getConfigurableDispatchInformation( [in] short CommandGroup ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDispatchProvider.idl b/offapi/com/sun/star/frame/XDispatchProvider.idl new file mode 100644 index 000000000..4b3c806a4 --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchProvider.idl @@ -0,0 +1,87 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.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_frame_XDispatchProvider_idl__ +#define __com_sun_star_frame_XDispatchProvider_idl__ + +#include+ It's not allowed to pack it - because every request must match + to its real result. Means: don't delete `NULL` entries inside this list. +
+ */ + sequence< XDispatch > queryDispatches( + [in] sequence+ Note: Nobody can guarantee order of used interceptor objects if more than ones exist. + Later registered ones will be used at first. But it's possible to increase the chance + for that by providing the optional interface XInterceptorInfo. +
+ + @see XDispatchProvider + @see XDispatch + @see XInterceptorInfo + */ +published interface XDispatchProviderInterception: com::sun::star::uno::XInterface +{ + /** registers an XDispatchProviderInterceptor, which will become + the first interceptor in the chain of registered interceptors. + + @param Interceptor + the interceptor which wishes to be registered + + @see XDispatchProviderInterception::releaseDispatchProviderInterceptor() + */ + void registerDispatchProviderInterceptor( [in] XDispatchProviderInterceptor Interceptor ); + + /** removes an XDispatchProviderInterceptor which was previously registered + ++ The order of removals is arbitrary. It is not necessary to remove the last + registered interceptor first. +
+ + @param Interceptor + the interceptor which wishes to be unregistered + + @see XDispatchProviderInterception::registerDispatchProviderInterceptor() + */ + void releaseDispatchProviderInterceptor( [in] XDispatchProviderInterceptor Interceptor ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDispatchProviderInterceptor.idl b/offapi/com/sun/star/frame/XDispatchProviderInterceptor.idl new file mode 100644 index 000000000..00e717764 --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchProviderInterceptor.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 . + */ +#ifndef __com_sun_star_frame_XDispatchProviderInterceptor_idl__ +#define __com_sun_star_frame_XDispatchProviderInterceptor_idl__ + +#include+ Can be registered as an interceptor by using interface XDispatchProviderInterception. +
+ + @see XDispatchProviderInterception + */ +published interface XDispatchProviderInterceptor: XDispatchProvider +{ + /** access to the slave XDispatchProvider of this interceptor + + @returns + the slave of this interceptor + + @see XDispatchProviderInterceptor::setSlaveDispatchProvider() + */ + XDispatchProvider getSlaveDispatchProvider(); + + /** sets the slave XDispatchProvider to which calls to + XDispatchProvider::queryDispatch() can be forwarded + under control of this dispatch provider. + + @param NewDispatchProvider + the new slave of this interceptor + + @see XDispatchProviderInterceptor::getSlaveDispatchProvider() + */ + void setSlaveDispatchProvider( [in] XDispatchProvider NewDispatchProvider ); + + /** access to the master XDispatchProvider of this interceptor + + @returns + the master of this interceptor + + @see XDispatchProviderInterceptor::setMasterDispatchProvider() + */ + XDispatchProvider getMasterDispatchProvider(); + + /** sets the master XDispatchProvider, which may forward + calls to its XDispatchProvider::queryDispatch() + to this dispatch provider. + + @param NewSupplier + the master of this interceptor + + @see XDispatchProviderInterceptor::getMasterDispatchProvider() + */ + void setMasterDispatchProvider( [in] XDispatchProvider NewSupplier ); + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDispatchRecorder.idl b/offapi/com/sun/star/frame/XDispatchRecorder.idl new file mode 100644 index 000000000..8b0071fef --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchRecorder.idl @@ -0,0 +1,124 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.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_frame_XDispatchRecorder_idl__ +#define __com_sun_star_frame_XDispatchRecorder_idl__ + +#include+ With such recorder it will be possible to record requests of type + XDispatch by using additional interface + XRecordableDispatch. The result of that will be a + a script which can be used to start the dispatch at later time again. + Such recorder objects are available on a XDispatchRecorderSupplier + which is provided by the Frame service. +
+ + @see Frame + @see XDispatchRecorderSupplier + + @since OOo 1.1.2 + */ +published interface XDispatchRecorder: com::sun::star::uno::XInterface +{ + /** initializes the recorder by passing the frame for which all + macro statements shall be recorded + + @param Frame + it includes the document on which such requests shall be recorded + */ + void startRecording( [in] com::sun::star::frame::XFrame Frame ); + + /** stops the recording process + ++ Must be called in pairs with XDispatchRecorder::startRecording(). +
+ + @attention The recorder uses this method to control the lifetime of its internal + used macro buffer. It will be cleared here. So the macro must be fetched + before endRecording() is called. + + @see getRecordedMacro() + */ + void endRecording(); + + /** records a single dispatch call identified by its command URL + + @param URL + the full parsed command URL + + @param Arguments + optional arguments for the command URL ++ This way calls that failed on execution can be documented. +
+ + @param URL + the full parsed command URL + + @param Arguments + optional arguments for the command URL ++ This method must be used before endRecording() is called! + Otherwise the macro will be released. +
+ + @returns + the recorded data as a string which can be interpreted as a script + */ + string getRecordedMacro(); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XDispatchRecorderSupplier.idl b/offapi/com/sun/star/frame/XDispatchRecorderSupplier.idl new file mode 100644 index 000000000..611fef027 --- /dev/null +++ b/offapi/com/sun/star/frame/XDispatchRecorderSupplier.idl @@ -0,0 +1,110 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.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_frame_XDispatchRecorderSupplier_idl__ +#define __com_sun_star_frame_XDispatchRecorderSupplier_idl__ + +#include+ With a XDispatchRecorder it's possible to record calls + of XDispatch::dispatch(). The recorded data (may a script) + can be used to automate recorded dispatch and start it at later time again. + This supplier provides access to the recorder and supports some functionality + to work with the macro recording mechanism in an easy manner. +
+ + @see XDispatchRecorder + @since OOo 1.1.2 + */ +published interface XDispatchRecorderSupplier: com::sun::star::uno::XInterface +{ + /** set a dispatch recorder on this supplier + ++ Setting of a new recorder make it possible to change recording mode. + May there can exist different implementations of a recorder (e.g. to + generate Java, Basic or other formats). Changing between local recording + inside one Frame or global one by using more than ones can be + forced too. +
+ + @param Recorder + the new recorder for this supplier + */ + void setDispatchRecorder( [in] com::sun::star::frame::XDispatchRecorder Recorder ); + + /** provides access on the recorder of this supplier + ++ Returned recorder can be used to record dispatches manually or to get + recorded data for further using e.g. saving. He is internally used too + due to the method XDispatchRecorderSupplier::dispatchAndRecord(). +
+ + @returns + the dispatch recorder of this supplier + + @see XDispatchRecorder + */ + com::sun::star::frame::XDispatchRecorder getDispatchRecorder(); + + /** dispatch given URL and record it if recording is enabled + ++ Parameter Dispatcher is used internally to make the dispatch. + If recording isn't enabled it will be a normal XDispatch::dispatch() + call. Otherwise follow algorithm is used: +
+ Template information is saved as links to the original content + and organized in groups. This data should be persistent and can be + updated by calling special method XDocumentTemplates::update(). + A real implementation of this interface can do that on top of + a ucb content provider. Method XDocumentTemplates::getContent() + force that. +
+ */ +published interface XDocumentTemplates: com::sun::star::uno::XInterface +{ + /** provides access to the root of internal used hierarchy + ++ This content can be used for accessing the groups directly. +
+ + @return + the ucb content for template configuration + */ + com::sun::star::ucb::XContent getContent(); + + /** creates the template with the given name in the given group using the + data from the storable + + @param GroupName + specifies the group + + @param TemplateName + specifies the template + + @param Storable + specifies the target + + @return + `TRUE` if operation was successful ++ Because the templates are well known by links and not as direct content + they can be outdated. An update force actualization of that to find + wrong links. +
+ */ + void update(); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XExtendedFilterDetection.idl b/offapi/com/sun/star/frame/XExtendedFilterDetection.idl new file mode 100644 index 000000000..8da8b0308 --- /dev/null +++ b/offapi/com/sun/star/frame/XExtendedFilterDetection.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_frame_XExtendedFilterDetection_idl__ +#define __com_sun_star_frame_XExtendedFilterDetection_idl__ + +#include+ A frame can be (it's not a must!) a part of a frame tree. If not this frame won't be + accessible by using the API. This mode make sense for previews. + The root node of the tree can be a Desktop implementation. +
+ + @see Desktop + */ +published interface XFrame: com::sun::star::lang::XComponent +{ + /** is called to initialize the frame within a window - the container window. + ++ This window will be used as parent for the component window and to support + some UI relevant features of the frame service. + Note: Re-parenting mustn't supported by a real frame implementation! + It's designed for initializing - not for setting. +
+ +This frame will take over ownership of the window referred from + xWindow. Thus, the previous owner is not allowed to + dispose this window anymore.
+ + @param xWindow + the new container window + + @see XFrame::getContainerWindow() + */ + void initialize( [in] com::sun::star::awt::XWindow xWindow ); + + /** provides access to the container window of the frame. + ++ Normally this is used as the parent window of the + component window. +
+ + @return + the container window of this frame + + @see XFrame::initialize() + */ + com::sun::star::awt::XWindow getContainerWindow(); + + /** sets the frame container that created this frame. + ++ Only the creator is allowed to call this method. + But creator doesn't mean the implementation which creates this instance ... + it means the parent frame of the frame hierarchy. + Because; normally a frame should be created by using the API + and is necessary for searches inside the tree (e.g. XFrame::findFrame()) +
+ + @param Creator + the creator (parent) of this frame + + @see XFrame::getCreator() + */ + void setCreator( [in] XFramesSupplier Creator ); + + /** provides access to the creator (parent) of this frame + + @returns + the frame container that created and contains this frame. + + @see XFrame::setCreator() + */ + XFramesSupplier getCreator(); + + /** access to the name property of this frame + + @returns + the programmatic name of this frame. + + @see XFrame::setName() + */ + string getName(); + + /** sets the name of the frame. + ++ Normally the name of the frame is set initially (e.g. by the creator). + The name of a frame will be used for identifying it if a frame search was started. + These searches can be forced by: +
+ Frames may contain other frames (e.g., a frameset) and may + be contained in other frames. This hierarchy is searched with + this method. + First some special names are taken into account, i.e. "", + "_self", "_top", "_blank" etc. SearchFlags is ignored when + comparing these names with TargetFrameName; further steps are + controlled by SearchFlags. If allowed, the name of the frame + itself is compared with the desired one, and then ( again if allowed ) + the method is called for all children of the frame. Finally may be called + for the siblings and then for parent frame (if allowed). +
+ ++ List of special target names: +
""/"_self" | address the starting frame itself |
"_parent" | address the direct parent frame only |
"_top" | address the top frame of this subtree of the frametree |
"_blank" | creates a new top frame |
+ If no frame with the given name is found, a new top frame is + created; if this is allowed by a special flag FrameSearchFlag::CREATE. + The new frame also gets the desired name. +
+ + @param aTargetFrameName + identify ++ In general a top frame is the frame which is a direct child of + a task frame or which does not have a parent. Possible frame searches must + stop the search at such a frame unless the flag FrameSearchFlag::TASKS + is set. +
+ + @return + `TRUE` if frame supports top frame specification ++ At first the frame sets itself as the active frame of its + creator by calling XFramesSupplier::setActiveFrame(), + then it broadcasts a FrameActionEvent with + FrameAction::FRAME_ACTIVATED. The component within + this frame may listen to this event to grab the focus on activation; + for simple components this can be done by the FrameLoader. +
+ ++ Finally, most frames may grab the focus to one of its windows + or forward the activation to a sub-frame. +
+ + @see XFrame::deactivate() + @see XFrame::isActive() + */ + void activate(); + + /** is called by the creator frame when another sub-frame gets activated. + ++ At first the frame deactivates its active sub-frame, if any. + Then broadcasts a FrameActionEvent with + FrameAction::FRAME_DEACTIVATING. +
+ + @see XFrame::activate() + @see XFrame::isActive() + */ + void deactivate(); + + /** determines if the frame is active. + + @return + `TRUE` for active or UI active frames ++ A valid component window should be a child of the frame container window. +
+ + @param xController + the controller of the new component or `NULL` for release + ++ Simple components may implement a com::sun::star::awt::XWindow only. + In this case no controller must be given here. +
+ + @return + `TRUE`if setting of new component or release of an existing one was successfully ++ Note: Don't dispose this window - the frame is the owner of it. +
+ + @returns + the current visible component in this frame ++ Note: Don't dispose it - the frame is the owner of it. + Use XController::getFrame() to dispose + the frame after you the controller agreed with a + XController::suspend() call. +
+ + @returns + the current controller within this frame ++ According to a call to this interface, the frame calls + XFrameActionListener::frameAction() with + FrameAction::CONTEXT_CHANGED to all listeners which + are registered using XFrame::addFrameActionListener(). + For external controllers this event can be used to requery dispatches. + + @see XFrameEventListener + @see FrameAction + @see XFrame::addFrameActionListener() + */ + void contextChanged(); + + /** registers an event listener, which will be called when certain things + happen to the components within this frame or within sub-frames of this frame. + +
+ E.g., it is possible to determine instantiation/destruction and + activation/deactivation of components. +
+ + @param xListener + specifies the listener which will be informed + + @see XFrame::removeFrameActionListener() + */ + void addFrameActionListener( [in]XFrameActionListener xListener ); + + /** unregisters an event listener + + @param xListener + specifies the listener which won't be informed any longer + + @see XFrame::addFrameActionListener() + */ + void removeFrameActionListener( [in] XFrameActionListener xListener ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XFrame2.idl b/offapi/com/sun/star/frame/XFrame2.idl new file mode 100644 index 000000000..172908aa6 --- /dev/null +++ b/offapi/com/sun/star/frame/XFrame2.idl @@ -0,0 +1,145 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.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_frame_XFrame2_idl__ +#define __com_sun_star_frame_XFrame2_idl__ + +#include
+ What kind of URLs a frame accepts in the calls to XDispatchProvider::queryDispatch(),
+ and how the returned dispatcher handles dispatches is completely implementation dependent
+ (though of course the restrictions of XDispatchProvider must be met).
+ Frame implementations may (optionally) support special targets in the call to
+ XDispatchProvider::queryDispatch().
+ Such special targets are passed as target frame name. They may, in addition,
+ require special frame search flags (see FrameSearchFlag), or,
+ in opposite, limit the set of allowed flags.
+ Common special targets include:
+
+ Registered objects can intercept, suppress or reroute dispatched URLs. + If they support another interface too (XInterceptorInfo) + it's possible to perform it by directly calling of right interceptor without + using list of all registered ones. +
+ */ + interface XDispatchProviderInterception; + + /** Provides access to sub frames within this frame, + and via its XFrame sub-interface: Allows the component to be loaded and accessed + within the frame; it is the main connection to the + environment of the component. + */ + interface XFramesSupplier; // -> XFrame + + /** supplies access to com::sun::star::task::XStatusIndicator objects + for the component within the frame to show progresses + */ + interface com::sun::star::task::XStatusIndicatorFactory; + + /** if possible it sets/gets the UI title on/from the frame container window + ++ It depends from the type of the frame container window. If it is a system + task window all will be OK. Otherwise the title can't be set. + Setting/getting of the pure value of this property must be possible in every + case. Only showing on the UI can be fail. +
+ */ + [attribute] string Title; + + /** provides access to the dispatch recorder of the frame + ++ Such recorder can be used to record dispatch requests. + The supplier contains a dispatch recorder and provide the functionality + to use it for any dispatch object from outside which supports the interface + XDispatch. A supplier is available only, if recording was enabled. + That means: if someone wishes to enable recoding on a frame he must set + a supplier with a recorder object inside of it. Every user of dispatches + has to check then if such supplier is available at this frame property. + If value of this property is `NULL` he must call XDispatch::dispatch() + on the original dispatch object. If it's a valid value he must use the supplier + by calling his method XDispatchRecorderSupplier::dispatchAndRecord() + with the original dispatch object as argument. +
+ +
+ Note:
+ It's not recommended to cache an already gotten supplier. Because there exist
+ no possibility to check for enabled/disabled recording then.
+
+ E.g., you can receive events of instantiation/destruction and + activation/deactivation of components. +
+ + @see XFrame::addFrameActionListener() + @see XFrame::removeFrameActionListener() + */ +published interface XFrameActionListener: com::sun::star::lang::XEventListener +{ + /** is called whenever any action occurs to a component within a frame. + + @param Action + describes the detected frame action for which the listener can react + */ + void frameAction( [in] FrameActionEvent Action ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XFrameLoader.idl b/offapi/com/sun/star/frame/XFrameLoader.idl new file mode 100644 index 000000000..2059ea36c --- /dev/null +++ b/offapi/com/sun/star/frame/XFrameLoader.idl @@ -0,0 +1,87 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.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_frame_XFrameLoader_idl__ +#define __com_sun_star_frame_XFrameLoader_idl__ + +#include+ It's an asynchronous loading. For synchronous processes use XSynchronousFrameLoader + instead of this one. The generic load algorithm of the office supports both ones - but preferred + the synchronous interface. +
+ + @see XFrame + */ +published interface XFrameLoader: com::sun::star::uno::XInterface +{ + /** starts the loading of the specified resource into the specified Frame. + + @param Frame + specifies the loading target + + @param URL + describes the resource of loading component + Support of special protocols are implementation details + and depends from the environment. + + @param Arguments + optional arguments for loading + (see com::sun::star::document::MediaDescriptor for further information) + + @param Listener + this listener will be informed about success + + @see XLoadEventListener + */ + void load( + [in] XFrame Frame, + [in] string URL, + [in] sequence< com::sun::star::beans::PropertyValue > Arguments, + [in] XLoadEventListener Listener); + + /** cancels the loading process. + ++ After returning from this call, neither the frame nor the + load-event-listener specified in XFrameLoader::load() may be called back. + Because only the owner of this process who called load method + before can cancel this process. And he doesn't need any notification about that. + On the other hand - nobody then this owner himself can be registered as an + XLoadEventListener here. +
+ */ + void cancel(); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XFrameLoaderQuery.idl b/offapi/com/sun/star/frame/XFrameLoaderQuery.idl new file mode 100644 index 000000000..a76794d49 --- /dev/null +++ b/offapi/com/sun/star/frame/XFrameLoaderQuery.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_frame_XFrameLoaderQuery_idl__ +#define __com_sun_star_frame_XFrameLoaderQuery_idl__ + +#include+ Frames may contain other frames (by implementing an XFrames + interface) and may be contained in other frames. +
+ + @see XFrame + @see Frame + */ +published interface XFrames: com::sun::star::container::XIndexAccess +{ + /** appends the specified Frame to the list of sub-frames. + + @param xFrame + new frame for inserting into this container + */ + void append( [in] XFrame xFrame ); + + /** provides access to the list of all currently existing + frames inside this container and her sub frames + + @param nSearchFlags + use combinations of FrameSearchFlag to specify which + frames should be found + + @return + all frames of this container and all available frames of the whole frame tree + which match search parameter SearchFlags + */ + sequence< XFrame > queryFrames( [in] long nSearchFlags ); + + /** removes the frame from its container. + ++ Note: +
+ This may be the frame itself. The active frame is defined as + the frame which contains (recursively) the window with the focus. + If no window within the frame contains the focus, this method + returns the last frame which had the focus. If no containing + window ever had the focus, the first frame within this frame is + returned. +
+ + @returns + the Frame which is active within this frame. + */ + XFrame getActiveFrame(); + + /** is called on activation of a direct sub-frame. + ++ This method is only allowed to be called by a sub-frame according to + XFrame::activate() or XFramesSupplier::setActiveFrame(). + After this call XFramesSupplier::getActiveFrame() will return the + frame specified by Frame. +
+ ++ In general this method first calls the method XFramesSupplier::setActiveFrame() + at the creator frame with this as the current argument. Then it broadcasts + the FrameActionEvent FrameAction::FRAME_ACTIVATED. +
+ ++ Note: Given parameter Frame must already exist inside the container + (e.g., inserted by using XFrames::append()) +
+ + @param Frame + the new active child frame inside this container + */ + void setActiveFrame( [in] XFrame Frame ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XGlobalEventBroadcaster.idl b/offapi/com/sun/star/frame/XGlobalEventBroadcaster.idl new file mode 100644 index 000000000..cb42d0a87 --- /dev/null +++ b/offapi/com/sun/star/frame/XGlobalEventBroadcaster.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_frame_XGlobalEventBroadcaster_idl__ +#define __com_sun_star_frame_XGlobalEventBroadcaster_idl__ + +#include+ Frame can call right interceptor directly without calling all of registered ones. + Use it as an additional interface to XDispatchProviderInterceptor. + If any interceptor in list doesn't support this interface - these mechanism will be broken + and normal list of master-slave interceptor objects will be used from top to the bottom. +
+ + @see XDispatchProviderInterception + @see XDispatchProviderInterceptor + */ +published interface XInterceptorInfo: com::sun::star::uno::XInterface +{ + /** returns the URL list for interception. + ++ Wildcards inside the URLs are allowed to register the interceptor for + URLs too, which can have optional arguments (e.g. "..#.." or "..?.."). +
+ + @return + a list of URLs which are handled by this interceptor + */ + sequence< string > getInterceptedURLs(); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XLayoutManager.idl b/offapi/com/sun/star/frame/XLayoutManager.idl new file mode 100644 index 000000000..52c00df5f --- /dev/null +++ b/offapi/com/sun/star/frame/XLayoutManager.idl @@ -0,0 +1,479 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.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_frame_XLayoutManager_idl__ +#define __com_sun_star_frame_XLayoutManager_idl__ + +#include+ Every user interface element which is controlled by a layout manager has + a unique identifier called resource URL. + + A resource URL must meet the following syntax: + "private:resource/$type/$name". It is only allowed to use ASCII characters + for type and name. + + Currently the following user interface element types are defined: +
+ A layout manager needs a com::sun::star::frame::XFrame to be + able to work. Without a it no user interface elements can be created. +
+ */ + void attachFrame( [in] com::sun::star::frame::XFrame Frame ); + + /** resets the layout manager and remove all of its internal user interface + elements. + ++ This call should be handled with care as all user interface elements will + be destroyed and the layout manager is reset to a state after a + attachFrame() has been made. That means an attached frame + which has been set by attachFrame() is not released. + The layout manager itself calls reset after a component has been attached + or reattached to a frame. +
+ */ + void reset(); + + /** provides the current docking area size of the layout manager. + + @return + The com::sun::star::awt::Rectangle contains pixel values. The + members of com::sun::star::awt::Rectangle are filled as following: ++ A docking area acceptor retrieved by this method is owned by the layout manager. It is not + allowed to dispose this object, it will be destroyed on reference count! +
+ */ + com::sun::star::ui::XDockingAreaAcceptor getDockingAreaAcceptor(); + + /** sets a docking area acceptor that controls the border space of the frame's container window. + + @param xDockingAreaAcceptor + a docking area acceptor which controls the border space of frame's container window. + +
+ A docking area acceptor decides if the layout manager can use requested border space for
+ docking windows. If the acceptor denies the requested space the layout manager automatically
+ set all docked windows into floating state and will not use this space for docking.
+ After setting a docking area acceptor the object is owned by the layout manager. It is not
+ allowed to dispose this object, it will be destroyed on reference count!
+
+ If a user interface element should forced to the visible state + XLayoutManager::showElement() should be used. This function can be + used for context dependent elements which should respect the current visibility + state. +
+ */ + boolean requestElement( [in] string ResourceURL ); + + /** retrieves a user interface element which has been created before. + + @param ResourceURL + specifies which user interface element should be retrieved. A resource URL must meet the following + syntax: "private:resource/$type/$name". It is only allowed to use ASCII characters for type and + name. + ++ The layout manager instance is owner of the returned user interface element. That means that the life time of + the user interface element is controlled by the layout manager. It can be disposed at every time! +
+ */ + com::sun::star::ui::XUIElement getElement( [in] string ResourceURL ); + + /** retrieves all user interface elements which are currently instantiated. + + @return + a sequence of user interface elements providing com::sun::star::ui::XUIElement + interface. + ++ The layout manager instance is owner of the returned user interface elements. That means that the life time of + the user interface elements is controlled by the layout manager. They can be disposed at every time! +
+ */ + sequence< com::sun::star::ui::XUIElement > getElements(); + + /** shows a user interface element. + + @param ResourceURL + specifies which user interface element should be shown. 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 + returns `TRUE` if the user interface element has been shown, otherwise `FALSE` will be returned. + */ + boolean showElement( [in] string ResourceURL ); + + /** hides a user interface element. + + @param ResourceURL + specifies which user interface element should be hidden. 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 + returns `TRUE` if the user interface element has been hidden, otherwise `FALSE` will be returned. + */ + boolean hideElement( [in] string ResourceURL ); + + /** docks a window based user interface element to a specified docking area. + + @param ResourceURL + specifies which user interface element should be docked. 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 DockingArea + specifies on which docking area the window based user interface element should docked. + + @param Pos + specifies the position inside the docking area. + + @return + returns `TRUE` if the user interface element has been docked, otherwise `FALSE` will be returned. + + @see com::sun::star::ui::DockingArea + */ + boolean dockWindow( [in] string ResourceURL, [in] com::sun::star::ui::DockingArea DockingArea, [in] com::sun::star::awt::Point Pos ); + + /** docks all windows which are member of the provided user interface element type. + + @param nElementType + specifies which user interface element type should be docked. + + @return + returns `TRUE` if all user interface elements of the requested type could be + docked, otherwise `FALSE` will be returned. + + @see com::sun::star::ui::UIElementType + */ + boolean dockAllWindows( [in] short nElementType ); + + /** forces a window based user interface element to float. + + @param ResourceURL + specifies which user interface element should be float. 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 + returns `TRUE` if the user interface element has been docked, otherwise `FALSE` will be returned. + */ + boolean floatWindow( [in] string ResourceURL ); + + /** locks a window based user interface element if it's in a docked state. + + @param ResourceURL + specifies which user interface element should be locked. 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 + returns `TRUE` if the user interface element has been locked, otherwise `FALSE` will be returned. + */ + boolean lockWindow( [in] string ResourceURL ); + + /** unlocks a window based user interface element if it's in a docked state. + + @param ResourceURL + specifies which user interface element should be unlocked. 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 + returns `TRUE` if the user interface element has been unlocked, otherwise + `FALSE` will be returned. + */ + boolean unlockWindow( [in] string ResourceURL ); + + /** sets a new size for a window based user interface element. + + @param ResourceURL + specifies which user interface element should be resized. 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 Size + specifies the new size in pixel. + ++ It is up to the layout manager to decide if the user interface element can be resized. The new size can be retrieved + by calling getElementSize(). +
+ */ + void setElementSize( [in] string ResourceURL, [in] com::sun::star::awt::Size Size ); + + /** sets a new position for a window based user interface element. + + @param ResourceURL + specifies which user interface element should be moved. 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 Pos + specifies the new position in pixel. + ++ It is up to the layout manager to decide if the user interface element can be moved. The new position can be retrieved + by calling getElementPos(). +
+ */ + void setElementPos( [in] string ResourceURL, [in] com::sun::star::awt::Point Pos ); + + /** sets a new position and size for a window based user interface element. + + @param ResourceURL + specifies which user interface element should be moved and resized. 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 Pos + specifies the new position in pixel. + + @param Size + specifies the new position in pixel. + ++ It is up to the layout manager to decide if the user interface element can be moved and resized. The new position and size can + be retrieved by calling getElementPos() and getElementSize(). +
+ */ + void setElementPosSize( [in] string ResourceURL, [in] com::sun::star::awt::Point Pos, [in] com::sun::star::awt::Size Size ); + + /** retrieves the current visibility state of a window based user interface element. + + @param ResourceURL + specifies for which user interface element the visibility state should be retrieved. 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 the user interface element is visible, otherwise `FALSE`. + */ + boolean isElementVisible( [in] string ResourceURL ); + + /** retrieves the current floating state of a window based user interface element. + + @param ResourceURL + specifies for which user interface element the floating state should be retrieved. 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 the user interface element is floating, otherwise `FALSE`. + */ + boolean isElementFloating( [in] string ResourceURL ); + + /** retrieves the current docking state of a window based user interface element. + + @param ResourceURL + specifies for which user interface element the docking state should be retrieved. 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 the user interface element is docked, otherwise `FALSE`. + */ + boolean isElementDocked( [in] string ResourceURL ); + + /** retrieves the current lock state of a window based user interface element. + + @param ResourceURL + specifies for which user interface element the lock state should be retrieved. 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 the user interface element is locked, otherwise `FALSE`. + */ + boolean isElementLocked( [in] string ResourceURL ); + + /** retrieves the current size of a window based user interface element. + + @param ResourceURL + specifies for which user interface element the current size should be retrieved. 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 + the size in pixel of the user interface element. A non-window based user interface element provides a zero size. + */ + com::sun::star::awt::Size getElementSize( [in] string ResourceURL ); + + /** retrieves the current pixel position of a window based user interface element. + + @param ResourceURL + specifies for which user interface element the current position should be retrieved. 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 + the size in pixel of the user interface element. A non-window based user interface element provides a zero size. + */ + com::sun::star::awt::Point getElementPos( [in] string ResourceURL ); + + /** prohibit all layout updates until unlock is called again. + ++ This call can be used to speed up the creation process of several user interface elements. Otherwise the layout manager + would calculate the layout for every creation. +
+ */ + void lock(); + + /** permit layout updates again. + ++ This function should be called to permit layout updates. The layout manager starts to calculate the new layout after + this call. +
+ */ + void unlock(); + + /** forces a complete new layouting of all user interface elements. + */ + void doLayout(); + + /** sets the layout manager to invisible state and hides all user interface elements. + ++ A layout manager can be set to invisible state to force it to hide all of its + user interface elements. If another component wants to use the window for its + own user interface elements it can use this function. This function is normally + used to implement inplace editing. +
+ + @param Visible + provide `FALSE` to make layout manager invisible otherwise this must be + set to `TRUE`. + */ + void setVisible( [in] boolean Visible ); + + /** retrieves the visibility state of a layout manager. + ++ A layout manager can be set to invisible state to force it to hide all of its + user interface elements. If another component wants to use the window for its + own user interface elements it can use this function. This function is normally + used to implement inplace editing. +
+ + */ + boolean isVisible(); + +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XLayoutManager2.idl b/offapi/com/sun/star/frame/XLayoutManager2.idl new file mode 100644 index 000000000..2e926aeab --- /dev/null +++ b/offapi/com/sun/star/frame/XLayoutManager2.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_frame_XLayoutManager2_idl__ +#define __com_sun_star_frame_XLayoutManager2_idl__ + +#include+ E.g., you can receive events of instantiation/destruction and + activation/deactivation of a frame. +
+ + @see XFrame::addFrameActionListener() + @see XFrame::removeFrameActionListener() + */ + interface ::com::sun::star::frame::XFrameActionListener; + + /** notification interface to receive change messages of user interface + elements which are part of the layout manager. + ++ E.g., you can receive events of insertion/replacing and + removing of settings data of user interface elements. +
+ + @see com::sun::star::ui::XUIConfiguration + */ + interface ::com::sun::star::ui::XUIConfigurationListener; + + /** provides functions to merge menus for inplace editing of components + inside OpenOffice.org. + */ + interface ::com::sun::star::frame::XMenuBarMergingAcceptor; + + /** registers listeners that want to receive layout manager + events. + */ + interface ::com::sun::star::frame::XLayoutManagerEventBroadcaster; + +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XLayoutManagerEventBroadcaster.idl b/offapi/com/sun/star/frame/XLayoutManagerEventBroadcaster.idl new file mode 100644 index 000000000..09336dc02 --- /dev/null +++ b/offapi/com/sun/star/frame/XLayoutManagerEventBroadcaster.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_frame_XLayoutManagerEventBroadcaster_idl__ +#define __com_sun_star_frame_XLayoutManagerEventBroadcaster_idl__ + +#includeEvents are provided only for notification + purposes only. All operations are handled internally by the + layout manager component, so that GUI layout works properly + regardless of whether a component registers such a listener + or not.
+ + @see ::com::sun::star::frame::LayoutManager + @see ::com::sun::star::frame::LayoutManagerEvents + + @since OOo 2.0 + */ +interface XLayoutManagerListener : com::sun::star::lang::XEventListener +{ + /** is invoked when a layout manager has made a certain operation. + + @param aSource + reference to the layout manager which invoked the event. + + @param eLayoutEvent + identifies the layout event that has occurred. + + @param aInfo + provides additional information about the event. The type + of info depends on the event. + */ + void layoutEvent( [in] com::sun::star::lang::EventObject aSource, [in] short eLayoutEvent, [in] any aInfo ); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XLoadEventListener.idl b/offapi/com/sun/star/frame/XLoadEventListener.idl new file mode 100644 index 000000000..90992d953 --- /dev/null +++ b/offapi/com/sun/star/frame/XLoadEventListener.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_frame_XLoadEventListener_idl__ +#define __com_sun_star_frame_XLoadEventListener_idl__ + +#includeIn case an object supports the interface the object must be initialized + with either initNew() or load() call before any usage. In case the object + is already initialized the mentioned methods should throw DoubleInitializationException. +
+ + @since OOo 1.1.2 + */ +published interface XLoadable: com::sun::star::uno::XInterface +{ + /** creates a component from scratch + */ + void initNew() + raises( DoubleInitializationException, com::sun::star::io::IOException, com::sun::star::uno::Exception ); + + /** loads a component from a URL + @param lArguments + parameters for saving + (see com::sun::star::document::MediaDescriptor for further details) + the FileName parameter must be specified, other parameters are optional + */ + + void load( [in] sequence+ Returned objects must support the service specification of a FrameLoader + or SynchronousFrameLoader. (Note: last one will be preferred if both + are available) + They can be created by using of his internal name, which must be unambiguous every time, only. + To get this name use further specified interfaces of this factory for access on + the flat configuration. +
+ */ + interface com::sun::star::lang::XMultiServiceFactory; + + /** provides access to the whole frame loader configuration + +This interface supports an access to the internal configuration of all accessible loader objects. + The return value of com::sun::star::container::XNameAccess::getByName() + is a property sequence packed in an any. +
+Types | +[string] | +file types which loader is registered for | +
UIName | +[string] | +UI representable and localized name | +
+ This interface can be used to get sub sets of current configuration entries + which represent given search parameters. +
+ */ + interface com::sun::star::container::XContainerQuery; + +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XMenuBarAcceptor.idl b/offapi/com/sun/star/frame/XMenuBarAcceptor.idl new file mode 100644 index 000000000..c96402376 --- /dev/null +++ b/offapi/com/sun/star/frame/XMenuBarAcceptor.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_frame_XMenuBarAcceptor_idl__ +#define __com_sun_star_frame_XMenuBarAcceptor_idl__ + +#include+ This function is normally used to provide inplace editing where + functions from two application parts, container application and + embedded object, are available to the user simultaneously. A menu + bar which is set by this method has a higher priority than others + created by com::sun::star::frame::XLayoutManager + interface. Settings of a merged menu bar cannot be retrieved. +
+ + @see com::sun::star::ui::UIElementSettings + @see com::sun::star::frame::XDispatchProvider + @see com::sun::star::frame::XLayoutManager + */ + boolean setMergedMenuBar( + [in] ::com::sun::star::container::XIndexAccess xMergedMenuBar ); + + /** removes a previously set merged menu bar and sets a previously created + menu bar back. + */ + void removeMergedMenuBar(); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XModel.idl b/offapi/com/sun/star/frame/XModel.idl new file mode 100644 index 000000000..17bd7337f --- /dev/null +++ b/offapi/com/sun/star/frame/XModel.idl @@ -0,0 +1,202 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.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_frame_XModel_idl__ +#define __com_sun_star_frame_XModel_idl__ + +#include+ It is a representation of a resource in the sense that it was + created/loaded from the resource. The arguments are passed to the loader + to modify its behavior. An example for such an argument is "AsTemplate", + which loads the resource as a template for a new document. + (see com::sun::star::document::MediaDescriptor for further details) +
+ ++ Models can be controlled by controller components, which are usually + views of the model. + (see Controller for further details) +
+ ++ If there is at least one controller, there is by definition a + current controller. And if that controller supports the interface + com::sun::star::view::XSelectionSupplier, it has a current selection too. +
+ + @see com::sun::star::document::MediaDescriptor + @see Controller + @see com::sun::star::view::XSelectionSupplier + */ +published interface XModel: com::sun::star::lang::XComponent +{ + /** informs a model about its resource description. + + @param URL + specifies the resource + + @param Arguments + are optional arguments for that resource + (see com::sun::star::document::MediaDescriptor) + + @return + `TRUE` for success ++ The com::sun::star::lang::XComponent interface + of the controller must be used to recognize when it is deleted. +
+ + @param Controller + a new controller for this model + + @see XModel::disconnectController() + */ + void connectController( [in] XController Controller ); + + /** is called whenever an existing controller should be deregistered at this model. + ++ The com::sun::star::lang::XComponent interface + of the controller must be used to recognize when it is deleted. +
+ + @param Controller + the existing controller which should be deregistered + + @see XModel::connectController() + */ + void disconnectController( [in] XController Controller ); + + /** suspends some notifications to the controllers which are used + for display updates. + ++ The calls to XModel::lockControllers() and + XModel::unlockControllers() may be + nested and even overlapping, but they must be in pairs. While + there is at least one lock remaining, some notifications + for display updates are not broadcasted. +
+ */ + void lockControllers(); + + /** resumes the notifications which were suspended by + XModel::lockControllers(). + ++ The calls to XModel::lockControllers() and + XModel::unlockControllers() may be + nested and even overlapping, but they must be in pairs. While + there is at least one lock remaining, some notifications for + display updates are not broadcasted. +
+ */ + void unlockControllers(); + + /** determines if there is at least one lock remaining. + ++ While there is at least one lock remaining, some notifications + for display updates are not broadcasted to the controllers. +
+ + @return + `TRUE` if any lock exist ++ Please note: Because this interface will might be used inside + multi threaded environments those list can contain still disposed items + or it new added controller will be missing (if they were added after this + enumeration was created). +
+ + @returns + list of controller objects. + Enumeration can be empty but not NULL. + */ + com::sun::star::container::XEnumeration getControllers(); + + /** provides the available names of the factory to be used to create views. + +The names are usually logical view names. The following names have + a defined meaning, i.e. every concrete implementation which returns such + a name must ensure it has the same meaning, and if a concrete implementation + has a view with the given meaning, it must give it the name as defined here: +
Implementations of this interface might decide to support additional + view names, which then are documented in the respective service descriptions.
+ + @see createView + + @returns + a sequence of names of all supported views for this document. + */ + sequence< string > getAvailableViewControllerNames(); + + /** creates the default view instance for this model. + +Effectively, this method is equivalent to calling createView() with
+ the ViewName
being "Default"
.
The newly created controller must not be connected with the document and the + frame. That is, you should neither call XFrame::setComponent(), nor + XController::attachFrame(), nor XController::attachModel(), + nor XModel::connectController(), not XModel::setCurrentController(). + All of this is the responsibility of the caller, which will do it in the proper order.
+ + @param ViewName + classified name of instance + + @param Arguments + arguments used for creation + + @param Frame + used to place the new created view there + + @return the new view controller instance + + @throws ::com::sun::star::lang::IllegalArgumentException + if one of the given parameter was wrong + + @throws ::com::sun::star::uno::Exception + if creation of a new view failed by other reasons + */ + com::sun::star::frame::XController2 createViewController( [in] string ViewName , + [in] sequence< com::sun::star::beans::PropertyValue > Arguments , + [in] com::sun::star::frame::XFrame Frame ) + raises (com::sun::star::lang::IllegalArgumentException, + com::sun::star::uno::Exception ); + + /** Sets com::sun::star::document::MediaDescriptor properties + of the current model during runtime. + + @since LibreOffice 6.3 + + @param Arguments + Properties which should be set + Supported properties: ++ Normally an office module will be identified by its service name + in combination with a set of configuration data. + But sometimes whole existing office modules will be used as black box components + to implement a different office module on top of it. Patching a service name + is not possible. So this optional interface can be used to overwrite identification + of a module. +
+ + @see XModuleManager + + @since OOo 2.3 + */ +interface XModule : com::sun::star::uno::XInterface +{ + /** @param Identifier + a new "name" for this module. + */ + void setIdentifier([in] string Identifier); + + /** @return the module identifier. + */ + string getIdentifier(); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XModuleManager.idl b/offapi/com/sun/star/frame/XModuleManager.idl new file mode 100644 index 000000000..a5f782233 --- /dev/null +++ b/offapi/com/sun/star/frame/XModuleManager.idl @@ -0,0 +1,98 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.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_frame_XModuleManager_idl__ +#define __com_sun_star_frame_XModuleManager_idl__ + +#include+ Every module is referenced by a unique service name + (which is used inside configuration as set node name too) + and is further represented by a sequence of elements of type + com::sun::star::beans::PropertyValue. + A list of properties can be gotten from the configuration template + org.openoffice.Setup/Factory. +
+ */ + interface ::com::sun::star::container::XNameReplace; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XNotifyingDispatch.idl b/offapi/com/sun/star/frame/XNotifyingDispatch.idl new file mode 100644 index 000000000..416317022 --- /dev/null +++ b/offapi/com/sun/star/frame/XNotifyingDispatch.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_frame_XNotifyingDispatch_idl__ +#define __com_sun_star_frame_XNotifyingDispatch_idl__ + +#include+ A pop-up menu controller gets a com::sun::star::awt::XPopupMenu + from its parent menu implementation. The controller has to fill this pop-up + menu with a set of menu items and/or sub menus. The parent menu implementation + briefs the controller whenever the pop-up menu gets activated by a user. +
+ + @since OOo 2.0 +*/ +interface XPopupMenuController : com::sun::star::uno::XInterface +{ + /** provides a com::sun::star::awt::XPopupMenu to a + pop-up menu controller implementation. The controller must fill this + pop-up menu with its functions. + + @param PopupMenu + An empty pop-up menu that must be filled by the pop-up menu controller. + */ + void setPopupMenu( [in] com::sun::star::awt::XPopupMenu PopupMenu ); + + /** briefs the pop-up menu controller to update the contents of the provided + pop-up menu to reflect the current state. + +A controller should never update the pop-up menu structure on its + own to prevent performance problems. A better way would be that a controller + registers itself as status listener to for a command URL and immediately + deregister after that. Therefore status updates will not be send regularly + for a non visible pop-up menu. +
+ */ + void updatePopupMenu(); +}; + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XRecordableDispatch.idl b/offapi/com/sun/star/frame/XRecordableDispatch.idl new file mode 100644 index 000000000..211dacf63 --- /dev/null +++ b/offapi/com/sun/star/frame/XRecordableDispatch.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_frame_XRecordableDispatch_idl__ +#define __com_sun_star_frame_XRecordableDispatch_idl__ + +#include+ This interface can be implemented as an additional one beside an existing + XDispatch one to provide record functionality of dispatches. + Because it's an additional interface the status events are available there + and not at this interface. +
+ ++ But normally this interface mustn't be used directly. + If a dispatch object is well known and recording was enabled + on a XDispatchRecorderSupplier it's possible to use method + XDispatchRecorderSupplier::dispatchAndRecord() of it + to make dispatch and recording automatically. The interface XRecordableDispatch + is used transparently there. +
+ + @code{.java} + XDispatch xDispatcher = xFrame.queryDispatch(aURL,"",0); + XRecordableDispatch xRecordable = + (XRecordableDispatch)UnoRuntime.queryInterface( + XRecordableDispatch.class, + xDispatcher); + + xDispatcher.addStatusListener(this,aURL); + + if (xRecordable != null) + xRecordable.dispatchAndRecord(aURL,lArguments,xRecorder); + else + xDispatcher.dispatch(aURL,lArguments); + ... + xDispatcher.removeStatusListener(this,aURL); + @endcode + + @see XDispatchRecorderSupplier + @see XDispatch + + @since OOo 1.1.2 + */ +published interface XRecordableDispatch: com::sun::star::uno::XInterface +{ + /** dispatch and record it + + @param URL + full parsed URL which describe the feature which should be dispatched (executed) + + @param Arguments + optional arguments for this request + (see com::sun::star::document::MediaDescriptor for details) + + @param Recorder + object which can be used to record the request + (available on XDispatchRecorderSupplier::getDispatchRecorder()) + */ + void dispatchAndRecord( + [in] com::sun::star::util::URL URL, + [in] sequenceIf the listener desires to interact with the user + it must first issue a user interaction request and + only do so if interaction was granted
+ +When the save request is processed (with or without + user interaction) the listener must call + XSessionManagerClient::saveDone() + on the session manager client service object.
+ + @param bShutdown + `TRUE` if a shutdown is in progress, + `FALSE` if just a save point was requested + + @param bCancelable + `TRUE` if a shutdown in progress can be canceled by the listener, + `FALSE` else + +the listener may choose to ignore the saveDone() + event in case no real shutdown is in progress. He + still has to call + XSessionManagerClient::saveDone() + in that case.
+ + @see XSessionManagerClient + @see XSessionManagerClient::saveDone() + */ + void doSave( [in] boolean bShutdown, [in] boolean bCancelable ); + + /** approveInteraction is called when an outstanding + interaction request was processed by the session manager + + @param bInteractionGranted + If `FALSE` the listener must not interact with the user. + If `TRUE` the listener can interact with the user now. + After interaction the listener must call + XSessionManagerClient::interactionDone() + on the session manager client service object. + + @see XSessionManagerClient + @see XSessionManagerClient::interactionDone() + */ + void approveInteraction( [in] boolean bInteractionGranted ); + + /** shutdownCanceled is called when a shutdown was canceled by the user + The listener can cancel his saving operations. No + further interaction is necessary and further calls + on the session manager client service object will + be ignored. + */ + void shutdownCanceled(); + + /** returns true, if a session was restored + */ + boolean doRestore(); + }; + +}; }; }; }; + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XSessionManagerListener2.idl b/offapi/com/sun/star/frame/XSessionManagerListener2.idl new file mode 100644 index 000000000..e1245511b --- /dev/null +++ b/offapi/com/sun/star/frame/XSessionManagerListener2.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_frame_XSessionManagerListener2_idl__ +#define __com_sun_star_frame_XSessionManagerListener2_idl__ + +#include+ Nobody guarantee any notification. Use combination of XNotifyingDispatch + and XDispatchResultListener for that. +
+ + @see XDispatch + @see XNotifyingDispatch + @see XDispatchResultListener + */ +published interface XStatusListener: com::sun::star::lang::XEventListener +{ + /** is called when the status of the feature changes. + + @param State + provides information about changes of the requested feature + */ + void statusChanged( [in] FeatureStateEvent State ); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XStatusbarController.idl b/offapi/com/sun/star/frame/XStatusbarController.idl new file mode 100644 index 000000000..633e694d8 --- /dev/null +++ b/offapi/com/sun/star/frame/XStatusbarController.idl @@ -0,0 +1,213 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.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_frame_XStatusbarController_idl__ +#define __com_sun_star_frame_XStatusbarController_idl__ + +#include
+ A generic status bar field is represented as a simple text field. A status
+ bar controller can be added to a Statusbar and provide information or
+ functions with a more sophisticated user interface.
+ A typical example for status bar controller is a zoom chooser. It shows
+ the current zoom and provides general zoom levels on a pop-up menu
+ that can be activated by a mouse action for context menus.
+
+ + @see com::sun::star::frame::XDispatchProvider + + @since OOo 2.0 +*/ +interface XStatusbarController +{ + /** used to control the life-time of the component + + Used by a status bar implementation to control the life-time of + a status bar controller. The status bar is the only instance which + is allowed to dispose the component. + */ + interface com::sun::star::lang::XComponent; + + /** used to initialize a component with required arguments. + +
A status bar controller is initialized with five additional + arguments provided as a sequence of + com::sun::star::beans::PropertyValue:
+ +The status bar controller implementation should register itself as a + listener when its com::sun::star::util::XUpdatable + interface has been called.
+ */ + interface com::sun::star::frame::XStatusListener; + + /** used to notify an implementation that it needs to add its listener or + remove and add them again. + ++ A status bar controller instance is ready for use after this call has + been made the first time. The status bar implementation guarantees that + the controller's item window has been added to the status bar and its + reference is held by it. +
+ */ + interface com::sun::star::util::XUpdatable; + + /** is called by a status bar if the mouse position is within the controller + and a mouse button has been pressed. If the controller has captured the + mouse input this function is also called when the mouse position is not + within the controller. + + @param aMouseEvent + current information about the mouse pointer. + + @return + return `TRUE` if the event should not be processed and `FALSE` + if the event should be processed by the status bar. + */ + boolean mouseButtonDown( [in] ::com::sun::star::awt::MouseEvent aMouseEvent ); + + /** is called by a status bar if the mouse position is within the controller + and a mouse has been moved. If the controller has captured the + mouse input this function is also called when the mouse position is not + within the controller. + + @param aMouseEvent + current information about the mouse pointer. + + @return + return `TRUE` if the event should not be processed and `FALSE` + if the event should be processed by the status bar. + */ + boolean mouseMove( [in] ::com::sun::star::awt::MouseEvent aMouseEvent ); + + /** is called by a status bar if the mouse position is within the controller + and a mouse button has been released. If the controller has captured the + mouse input this function is also called when the mouse position is not + within the controller. + + @param aMouseEvent + current information about the mouse pointer. + + @return + return `TRUE` if the event should not be processed and `FALSE` + if the event should be processed by the status bar. + */ + boolean mouseButtonUp( [in] ::com::sun::star::awt::MouseEvent aMouseEvent ); + + /** is called by a status bar if a command event is available for a controller. + + @param aPos + the current mouse position in pixel. + + @param nCommand + describes which command has been invoked. ++ It is usually only useful for two cases: +
+Only objects which know their locations can be stored.
+ + @throws com::sun::star::io::IOException + if an IO error occurred during save operation + (may the location is unknown) + + @see XStorable::storeAsURL + @see XStorable::storeToURL + */ + void store() + raises( com::sun::star::io::IOException ); + + /** stores the object's persistent data to a URL and + makes this URL the new location of the object. + +This is the normal behavior for UI's "save-as" feature.
+ +The change of the location makes it necessary to store the document in + a format that the object can load. For this reason the implementation of + XStorable::storeAsURL() will throw an exception if a pure + export filter is used, it will accept only combined import/export filters. + For such filters the method XStorable::storeToURL() + must be used that does not change the location of the object.
+ + @param sURL + specifies the new location of this component + + @param lArguments + optional parameters for saving + (see com::sun::star::document::MediaDescriptor for further details) + + @throws com::sun::star::io::IOException + if an IO error occurred during save operation + (may the location is unknown) + + @see XStorable::store + @see XStorable::storeToURL + @see com::sun::star::document::MediaDescriptor + */ + void storeAsURL( + [in] string sURL, + [in] sequenceThis is the normal behavior for UI's export feature.
+ +This method accepts all kinds of export filters, not only combined + import/export filters because it implements an exporting capability, not a + persistence capability.
+ + @throws com::sun::star::io::IOException + if an IO error occurred during save operation + (may the location is unknown) + + @param sURL + specifies the location where to store the object + + @param lArguments + optional parameters for saving + (see com::sun::star::document::MediaDescriptor for further details) + + @see XStorable::store + @see XStorable::storeAsURL + @see com::sun::star::document::MediaDescriptor + */ + void storeToURL( + [in] string sURL, + [in] sequence+ Only objects which know their locations can be stored. +
+ ++ This is an extension of the XStorable::store(). + This method allows to specify some additional parameters for + storing process. +
+ + @param lArguments + optional parameters for saving, can take values from subset of + com::sun::star::document::MediaDescriptor + + @throws ::com::sun::star::lang::IllegalArgumentException + the optional parameters contain unacceptable for save entry + + @throws com::sun::star::io::IOException + if an IO error occurred during save operation + + @see XStorable::store + */ + void storeSelf( + [in] sequence+ This interface is normally used to implement the toolbar button/sub- + toolbar function feature. It exchanges the function of the toolbar + button, that opened the sub-toolbar, with the one that has been selected + on the sub-toolbar. +
+ + @see com::sun::star::frame::ToolbarController + + @since OOo 2.0 + */ +interface XSubToolbarController : com::sun::star::uno::XInterface +{ + /** if the controller features a sub-toolbar. + + @return + `TRUE` if the controller offers a sub toolbar, otherwise `FALSE`. + ++ Enables implementations to dynamically decide to support sub-toolbars + or not. +
+ */ + boolean opensSubToolbar(); + + /** provides the resource URL of the sub-toolbar this controller opens. + + @return + name of the sub-toolbar this controller offers. A empty string + will be interpreted as if this controller offers no sub-toolbar. + */ + string getSubToolbarName(); + + /** gets called to notify a controller that a sub-toolbar function has been + selected. + + @param aCommand + a string which identifies the function that has been selected by + a user. + */ + void functionSelected( [in] string aCommand ); + + /** gets called to notify a controller that it should set an image which + represents the current selected function. + ++ Only the controller instance is able to set the correct image for the + current function. A toolbar implementation will ask sub-toolbar + controllers to update their image whenever it has to update the images + of all its buttons. +
+ */ + void updateImage(); +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XSynchronousDispatch.idl b/offapi/com/sun/star/frame/XSynchronousDispatch.idl new file mode 100644 index 000000000..48b207bf7 --- /dev/null +++ b/offapi/com/sun/star/frame/XSynchronousDispatch.idl @@ -0,0 +1,59 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.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_frame_XSynchronousDispatch_idl__ +#define __com_sun_star_frame_XSynchronousDispatch_idl__ + +#include+ After getting a dispatch object as a result of a queryDispatch call, this interface can + be used to dispatch the URL synchronously and with a return value. +
+ + @param URL + full parsed URL which describe the feature which should be dispatched (executed) + + @param Arguments + optional arguments for this request + They depend on the real implementation of the dispatch object. + */ + any dispatchWithReturnValue( + [in] com::sun::star::util::URL URL, + [in] sequence+ Unlike the XFrameLoader interface, this loading will be synchronous. +
+ + @see XFrameLoader + */ +published interface XSynchronousFrameLoader: com::sun::star::uno::XInterface +{ + /** starts the loading of the specified resource into the specified Frame. + + @param Descriptor + describes the resource which should be loaded + It use a com::sun::star::document::MediaDescriptor for that. + + @param Frame + the target frame which should contain the new loaded component + + @return + `TRUE` if loading is successfully ++ No notifications (neither to the frame or the caller) must be notified. + Because it's a synchronous process this cancel call can be forced by + another thread the loader thread only. Method + XSynchronousFrameLoader::load() must return `FALSE` + then and caller of this method XSynchronousFrameLoader::cancel() + already knows the state ... +
+ */ + void cancel(); +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/frame/XTask.idl b/offapi/com/sun/star/frame/XTask.idl new file mode 100644 index 000000000..a5a3b8373 --- /dev/null +++ b/offapi/com/sun/star/frame/XTask.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_frame_XTask_idl__ +#define __com_sun_star_frame_XTask_idl__ + +#include