summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/drawing/XPresenterHelper.idl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--offapi/com/sun/star/drawing/XPresenterHelper.idl158
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: */