diff options
Diffstat (limited to 'offapi/com/sun/star/drawing/XPresenterHelper.idl')
-rw-r--r-- | offapi/com/sun/star/drawing/XPresenterHelper.idl | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/offapi/com/sun/star/drawing/XPresenterHelper.idl b/offapi/com/sun/star/drawing/XPresenterHelper.idl new file mode 100644 index 000000000..eca5f12b1 --- /dev/null +++ b/offapi/com/sun/star/drawing/XPresenterHelper.idl @@ -0,0 +1,158 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ + +#ifndef __com_sun_star_drawing_XPresenterHelper_idl__ +#define __com_sun_star_drawing_XPresenterHelper_idl__ + +#include <com/sun/star/awt/XWindow.idl> +#include <com/sun/star/rendering/XCanvas.idl> +#include <com/sun/star/rendering/XSpriteCanvas.idl> +#include <com/sun/star/awt/Rectangle.idl> +#include <com/sun/star/drawing/CanvasFeature.idl> + +module com { module sun { module star { module drawing { + +/** This interface is a collection of functions that were necessary to + implement larger parts of the presenter screen as extension. The + methods of this interface give access to services that could only be + implemented in the Office core, not in an extension. + + <p>As the presenter screen is no extension any more, this hack can go again; + it just needs clean-up.</p> +*/ +interface XPresenterHelper +{ + /** Create a new window as child window of the given parent window. + @param xParentWindow + The parent window of the new window. + @param bCreateSystemChildWindow + When `TRUE` then the new window will be a system window that, + in the context of the presenter screen, can not be painted over + by other windows that lie behind it. + @param bInitiallyVisible + When `TRUE` the new window will be visible from the start, + i.e. a window listener will not receive a windowShown signal. + @param bEnableChildTransparentMode + When `TRUE` the parent window is painted behind its child + windows. This is one half of allowing child windows to be + transparent. + @param bEnableParentClip + When `TRUE` then the parent window is not clipped where its + child windows are painted. This is the other half of allowing + child windows to be transparent. + */ + ::com::sun::star::awt::XWindow createWindow ( + [in] ::com::sun::star::awt::XWindow xParentWindow, + [in] boolean bCreateSystemChildWindow, + [in] boolean bInitiallyVisible, + [in] boolean bEnableChildTransparentMode, + [in] boolean bEnableParentClip); + + /** Create a new canvas for the given window. The new canvas is a + wrapper around the given shared canvas. The wrapper only modifies + the origin in all output and clipping methods. + @param xUpdateCanvas + This canvas is used to call updateScreen() on. May be `NULL` + @param xUpdateWindow + The window that belongs to the update canvas. May also be + `NULL` (is expected to b `NULL` whenever xUpdateCanvas is.) + @param xSharedCanvas + The canvas that is shared by the wrapper. + @param xSharedWindow + The window of the shared canvas. This is used to determine the + proper offset. + @param xWindow + The canvas is created for this window. Must not be `NULL` + */ + ::com::sun::star::rendering::XCanvas createSharedCanvas ( + [in] ::com::sun::star::rendering::XSpriteCanvas xUpdateCanvas, + [in] ::com::sun::star::awt::XWindow xUpdateWindow, + [in] ::com::sun::star::rendering::XCanvas xSharedCanvas, + [in] ::com::sun::star::awt::XWindow xSharedWindow, + [in] ::com::sun::star::awt::XWindow xWindow); + + /** Create a new canvas for the given window. + @param xWindow + The canvas is created for this window. Must not be `NULL` + @param nRequestedCanvasFeatureList + List of requested features that the new canvas should (has to) + provide. Use only values from the CanvasFeature + constants group. + @param sOptionalCanvasServiceName + When an explicit service name is given then a new object of this + service is created. This service name lets the caller select a + specific canvas implementation, e.g. with or without hardware + acceleration. + */ + ::com::sun::star::rendering::XCanvas createCanvas ( + [in] ::com::sun::star::awt::XWindow xWindow, + [in] short nRequestedCanvasFeatureList, + [in] string sOptionalCanvasServiceName); + + /** Move the specified window to the top of its stacking order. As a + result the window will be painted over all its overlapping + siblings. + @param xWindow + This window will be moved to the top of its stacking order. + */ + void toTop ( + [in] ::com::sun::star::awt::XWindow xWindow); + + /** Load a bitmap with a given ID. + @param id + The ID of the bitmap. + @param xCanvas + The bitmap is created to be compatible, and possibly optimized, + for this canvas. + */ + ::com::sun::star::rendering::XBitmap loadBitmap ( + [in] string id, + [in] ::com::sun::star::rendering::XCanvas xCanvas); + + /** Capture the mouse so that no other window will receive mouse events. + Note that this is a potentially dangerous method. Not calling + releaseMouse eventually can lead to an unresponsive application. + @param xWindow + The window for which mouse events will be notified even when the + mouse pointer moves outside the window or over other windows. + */ + void captureMouse ( + [in] ::com::sun::star::awt::XWindow xWindow); + + /** Release a previously captured mouse. + @param xWindow + The window from which the mouse will be released. + */ + void releaseMouse ( + [in] ::com::sun::star::awt::XWindow xWindow); + + /** Return the bounding box of the given child window relative to the + direct or indirect parent window. + */ + com::sun::star::awt::Rectangle getWindowExtentsRelative ( + [in] ::com::sun::star::awt::XWindow xChildWindow, + [in] ::com::sun::star::awt::XWindow xParentWindow); +}; + + +}; }; }; }; // ::com::sun::star::drawing + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |