Version 5.2.6.1, tag libreoffice-5.2.6.1
[LibreOffice.git] / offapi / com / sun / star / drawing / XPresenterHelper.idl
blobeca5f12b170dacb7a7292394d1afc04a1dbe8378
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef __com_sun_star_drawing_XPresenterHelper_idl__
21 #define __com_sun_star_drawing_XPresenterHelper_idl__
23 #include <com/sun/star/awt/XWindow.idl>
24 #include <com/sun/star/rendering/XCanvas.idl>
25 #include <com/sun/star/rendering/XSpriteCanvas.idl>
26 #include <com/sun/star/awt/Rectangle.idl>
27 #include <com/sun/star/drawing/CanvasFeature.idl>
29 module com { module sun { module star { module drawing {
31 /** This interface is a collection of functions that were necessary to
32 implement larger parts of the presenter screen as extension. The
33 methods of this interface give access to services that could only be
34 implemented in the Office core, not in an extension.
36 <p>As the presenter screen is no extension any more, this hack can go again;
37 it just needs clean-up.</p>
39 interface XPresenterHelper
41 /** Create a new window as child window of the given parent window.
42 @param xParentWindow
43 The parent window of the new window.
44 @param bCreateSystemChildWindow
45 When `TRUE` then the new window will be a system window that,
46 in the context of the presenter screen, can not be painted over
47 by other windows that lie behind it.
48 @param bInitiallyVisible
49 When `TRUE` the new window will be visible from the start,
50 i.e. a window listener will not receive a windowShown signal.
51 @param bEnableChildTransparentMode
52 When `TRUE` the parent window is painted behind its child
53 windows. This is one half of allowing child windows to be
54 transparent.
55 @param bEnableParentClip
56 When `TRUE` then the parent window is not clipped where its
57 child windows are painted. This is the other half of allowing
58 child windows to be transparent.
60 ::com::sun::star::awt::XWindow createWindow (
61 [in] ::com::sun::star::awt::XWindow xParentWindow,
62 [in] boolean bCreateSystemChildWindow,
63 [in] boolean bInitiallyVisible,
64 [in] boolean bEnableChildTransparentMode,
65 [in] boolean bEnableParentClip);
67 /** Create a new canvas for the given window. The new canvas is a
68 wrapper around the given shared canvas. The wrapper only modifies
69 the origin in all output and clipping methods.
70 @param xUpdateCanvas
71 This canvas is used to call updateScreen() on. May be `NULL`
72 @param xUpdateWindow
73 The window that belongs to the update canvas. May also be
74 `NULL` (is expected to b `NULL` whenever xUpdateCanvas is.)
75 @param xSharedCanvas
76 The canvas that is shared by the wrapper.
77 @param xSharedWindow
78 The window of the shared canvas. This is used to determine the
79 proper offset.
80 @param xWindow
81 The canvas is created for this window. Must not be `NULL`
83 ::com::sun::star::rendering::XCanvas createSharedCanvas (
84 [in] ::com::sun::star::rendering::XSpriteCanvas xUpdateCanvas,
85 [in] ::com::sun::star::awt::XWindow xUpdateWindow,
86 [in] ::com::sun::star::rendering::XCanvas xSharedCanvas,
87 [in] ::com::sun::star::awt::XWindow xSharedWindow,
88 [in] ::com::sun::star::awt::XWindow xWindow);
90 /** Create a new canvas for the given window.
91 @param xWindow
92 The canvas is created for this window. Must not be `NULL`
93 @param nRequestedCanvasFeatureList
94 List of requested features that the new canvas should (has to)
95 provide. Use only values from the CanvasFeature
96 constants group.
97 @param sOptionalCanvasServiceName
98 When an explicit service name is given then a new object of this
99 service is created. This service name lets the caller select a
100 specific canvas implementation, e.g. with or without hardware
101 acceleration.
103 ::com::sun::star::rendering::XCanvas createCanvas (
104 [in] ::com::sun::star::awt::XWindow xWindow,
105 [in] short nRequestedCanvasFeatureList,
106 [in] string sOptionalCanvasServiceName);
108 /** Move the specified window to the top of its stacking order. As a
109 result the window will be painted over all its overlapping
110 siblings.
111 @param xWindow
112 This window will be moved to the top of its stacking order.
114 void toTop (
115 [in] ::com::sun::star::awt::XWindow xWindow);
117 /** Load a bitmap with a given ID.
118 @param id
119 The ID of the bitmap.
120 @param xCanvas
121 The bitmap is created to be compatible, and possibly optimized,
122 for this canvas.
124 ::com::sun::star::rendering::XBitmap loadBitmap (
125 [in] string id,
126 [in] ::com::sun::star::rendering::XCanvas xCanvas);
128 /** Capture the mouse so that no other window will receive mouse events.
129 Note that this is a potentially dangerous method. Not calling
130 releaseMouse eventually can lead to an unresponsive application.
131 @param xWindow
132 The window for which mouse events will be notified even when the
133 mouse pointer moves outside the window or over other windows.
135 void captureMouse (
136 [in] ::com::sun::star::awt::XWindow xWindow);
138 /** Release a previously captured mouse.
139 @param xWindow
140 The window from which the mouse will be released.
142 void releaseMouse (
143 [in] ::com::sun::star::awt::XWindow xWindow);
145 /** Return the bounding box of the given child window relative to the
146 direct or indirect parent window.
148 com::sun::star::awt::Rectangle getWindowExtentsRelative (
149 [in] ::com::sun::star::awt::XWindow xChildWindow,
150 [in] ::com::sun::star::awt::XWindow xParentWindow);
154 }; }; }; }; // ::com::sun::star::drawing
156 #endif
158 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */