LibreOffice Module slideshow (master) 1
slide.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
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/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
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 .
18 */
19
20#ifndef INCLUDED_SLIDESHOW_SOURCE_INC_SLIDE_HXX
21#define INCLUDED_SLIDESHOW_SOURCE_INC_SLIDE_HXX
22
23#include "unoviewcontainer.hxx"
24#include "slidebitmap.hxx"
25#include "shapemaps.hxx"
26
27#include <memory>
28
29namespace com::sun::star {
30 namespace drawing {
31 class XDrawPage;
32 class XDrawPagesSupplier;
33 }
34 namespace uno {
35 class XComponentContext;
36 }
37 namespace animations {
38 class XAnimationNode;
39 }
40}
41
42namespace basegfx
43{
44 class B2IVector;
45}
46
47/* Definition of Slide interface */
48
49namespace slideshow::internal
50 {
51 class RGBColor;
52 class ScreenUpdater;
53 typedef ::std::vector< ::cppcanvas::PolyPolygonSharedPtr> PolyPolygonVector;
54 class Slide
55 {
56 public:
57 // Showing
58
59
67 virtual void prefetch() = 0;
68
80 virtual void show( bool bSlideBackgroundPainted ) = 0;
81
87 virtual void hide() = 0;
88
89
90 // Queries
91
92
97 virtual basegfx::B2ISize getSlideSize() const = 0;
98
100 virtual css::uno::Reference< css::drawing::XDrawPage > getXDrawPage() const = 0;
101
103 virtual css::uno::Reference< css::animations::XAnimationNode > getXAnimationNode() const = 0;
104
107
109 virtual void drawPolygons() const = 0;
110
112 virtual bool isPaintOverlayActive() const = 0;
113
114 virtual void enablePaintOverlay() = 0;
115
116 virtual void update_settings( bool bUserPaintEnabled, RGBColor const& aUserPaintColor, double dUserPaintStrokeWidth ) = 0;
117
118 // Slide bitmaps
119
120
142 getCurrentSlideBitmap( const UnoViewSharedPtr& rView ) const = 0;
143
144 protected:
146 };
147
148 typedef ::std::shared_ptr< Slide > SlideSharedPtr;
149
150 class EventQueue;
151 class CursorManager;
152 class MediaFileManager;
153 class EventMultiplexer;
154 class ActivitiesQueue;
155 class UserEventQueue;
156 class RGBColor;
157
186 SlideSharedPtr createSlide( const css::uno::Reference< css::drawing::XDrawPage >& xDrawPage,
187 const css::uno::Reference< css::drawing::XDrawPagesSupplier >& xDrawPages,
188 const css::uno::Reference< css::animations::XAnimationNode >& xRootNode,
189 EventQueue& rEventQueue,
190 EventMultiplexer& rEventMultiplexer,
191 ScreenUpdater& rScreenUpdater,
192 ActivitiesQueue& rActivitiesQueue,
193 UserEventQueue& rUserEventQueue,
194 CursorManager& rCursorManager,
195 MediaFileManager& rMediaFileManager,
196 const UnoViewContainer& rViewContainer,
197 const css::uno::Reference< css::uno::XComponentContext >& xContext,
198 const ShapeEventListenerMap& rShapeListenerMap,
199 const ShapeCursorMap& rShapeCursorMap,
200 PolyPolygonVector&& rPolyPolygonVector,
201 RGBColor const& aUserPaintColor,
202 double dUserPaintStrokeWidth,
203 bool bUserPaintEnabled,
204 bool bIntrinsicAnimationsAllowed,
205 bool bDisableAnimationZOrder );
206}
207
208#endif // INCLUDED_SLIDESHOW_SOURCE_INC_SLIDE_HXX
209
210/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
This class handles the XSprite updates needed for animations, such as moves, scales etc.
This class multiplexes user-activated and slide-show global events.
This class handles events in a presentation.
Definition: eventqueue.hxx:41
RGB color space class.
Definition: rgbcolor.hxx:35
virtual PolyPolygonVector getPolygons()=0
Gets the slide Polygons.
virtual void update_settings(bool bUserPaintEnabled, RGBColor const &aUserPaintColor, double dUserPaintStrokeWidth)=0
virtual bool isPaintOverlayActive() const =0
Check if paint overlay is already active.
virtual void drawPolygons() const =0
Draw the slide Polygons.
virtual css::uno::Reference< css::drawing::XDrawPage > getXDrawPage() const =0
Gets the underlying API page.
virtual void enablePaintOverlay()=0
virtual basegfx::B2ISize getSlideSize() const =0
Query the size of this slide in user coordinates.
virtual SlideBitmapSharedPtr getCurrentSlideBitmap(const UnoViewSharedPtr &rView) const =0
Request bitmap for current slide appearance.
virtual css::uno::Reference< css::animations::XAnimationNode > getXAnimationNode() const =0
Gets the animation node.
virtual void hide()=0
Force-ends the slide.
virtual void prefetch()=0
Prepares to show slide.
virtual void show(bool bSlideBackgroundPainted)=0
Shows the slide on all registered views.
This class schedules user-activated events.
::std::vector< ::cppcanvas::PolyPolygonSharedPtr > PolyPolygonVector
::std::shared_ptr< SlideBitmap > SlideBitmapSharedPtr
Definition: slidebitmap.hxx:76
::std::map< css::uno::Reference< css::drawing::XShape >, sal_Int16 > ShapeCursorMap
Maps XShape to mouse cursor.
Definition: shapemaps.hxx:43
::std::map< css::uno::Reference< css::drawing::XShape >, std::shared_ptr< ::comphelper::OInterfaceContainerHelper3< css::presentation::XShapeEventListener > > > ShapeEventListenerMap
Maps XShape to shape listener.
Definition: shapemaps.hxx:39
SlideSharedPtr createSlide(const uno::Reference< drawing::XDrawPage > &xDrawPage, const uno::Reference< drawing::XDrawPagesSupplier > &xDrawPages, const uno::Reference< animations::XAnimationNode > &xRootNode, EventQueue &rEventQueue, EventMultiplexer &rEventMultiplexer, ScreenUpdater &rScreenUpdater, ActivitiesQueue &rActivitiesQueue, UserEventQueue &rUserEventQueue, CursorManager &rCursorManager, MediaFileManager &rMediaFileManager, const UnoViewContainer &rViewContainer, const uno::Reference< uno::XComponentContext > &xComponentContext, const ShapeEventListenerMap &rShapeListenerMap, const ShapeCursorMap &rShapeCursorMap, PolyPolygonVector &&rPolyPolygonVector, RGBColor const &rUserPaintColor, double dUserPaintStrokeWidth, bool bUserPaintEnabled, bool bIntrinsicAnimationsAllowed, bool bDisableAnimationZOrder)
Definition: slideimpl.cxx:1092
::std::shared_ptr< Slide > SlideSharedPtr
Definition: slide.hxx:148
std::shared_ptr< UnoView > UnoViewSharedPtr