/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 License. * ************************************************************************/ #ifndef __com_sun_star_drawing_XPresenterHelper_idl__ #define __com_sun_star_drawing_XPresenterHelper_idl__ #include #include #include #include #include module com { module sun { module star { module drawing { /** This interface is a collection of functions that are necessary to implement larger parts of the presenter screen as extension. The methods of this interface give access to services that can, at the moment, only implemented in the Office core, not in an extension.

With time some, maybe all, methods can moved to other, better suited, interfaces.

*/ 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 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 the new window will be visible from the start, i.e. a window listener will not receive a windowShown signal. @param bEnableChildTransparentMode When the parent window is painted behind its child windows. This is one half of allowing child windows to be transparent. @param bEnableParentClip When 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 @param xUpdateWindow The window that belongs to the update canvas. May also be (is expected to b 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 */ ::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 @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 from a file or other accessible resource that can be located via a URL. @param sURL The URL of the bitmap. For a file URL the bitmap is loaded from the specified file. @param xCanvas The bitmap is created to be compatible, and possibly optimized, for this canvas. */ ::com::sun::star::rendering::XBitmap loadBitmap ( [in] string sURL, [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: */