1d1766043SAndrew Rist/**************************************************************
2d1766043SAndrew Rist *
3d1766043SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4d1766043SAndrew Rist * or more contributor license agreements.  See the NOTICE file
5d1766043SAndrew Rist * distributed with this work for additional information
6d1766043SAndrew Rist * regarding copyright ownership.  The ASF licenses this file
7d1766043SAndrew Rist * to you under the Apache License, Version 2.0 (the
8d1766043SAndrew Rist * "License"); you may not use this file except in compliance
9d1766043SAndrew Rist * with the License.  You may obtain a copy of the License at
10d1766043SAndrew Rist *
11d1766043SAndrew Rist *   http://www.apache.org/licenses/LICENSE-2.0
12d1766043SAndrew Rist *
13d1766043SAndrew Rist * Unless required by applicable law or agreed to in writing,
14d1766043SAndrew Rist * software distributed under the License is distributed on an
15d1766043SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16d1766043SAndrew Rist * KIND, either express or implied.  See the License for the
17d1766043SAndrew Rist * specific language governing permissions and limitations
18d1766043SAndrew Rist * under the License.
19d1766043SAndrew Rist *
20d1766043SAndrew Rist *************************************************************/
21d1766043SAndrew Rist
22d1766043SAndrew Rist
23cdf0e10cSrcweir#ifndef __com_sun_star_presentation_XSlideShowView_idl__
24cdf0e10cSrcweir#define __com_sun_star_presentation_XSlideShowView_idl__
25cdf0e10cSrcweir
26cdf0e10cSrcweir#ifndef __com_sun_star_uno_XInterface_idl__
27cdf0e10cSrcweir#include <com/sun/star/uno/XInterface.idl>
28cdf0e10cSrcweir#endif
29cdf0e10cSrcweir#ifndef __com_sun_star_rendering_XSpriteCanvas_idl__
30cdf0e10cSrcweir#include <com/sun/star/rendering/XSpriteCanvas.idl>
31cdf0e10cSrcweir#endif
32cdf0e10cSrcweir#ifndef __com_sun_star_util_XModifyListener_idl__
33cdf0e10cSrcweir#include <com/sun/star/util/XModifyListener.idl>
34cdf0e10cSrcweir#endif
35cdf0e10cSrcweir#ifndef __com_sun_star_awt_XPaintListener_idl__
36cdf0e10cSrcweir#include <com/sun/star/awt/XPaintListener.idl>
37cdf0e10cSrcweir#endif
38cdf0e10cSrcweir#ifndef __com_sun_star_awt_XMouseListener_idl__
39cdf0e10cSrcweir#include <com/sun/star/awt/XMouseListener.idl>
40cdf0e10cSrcweir#endif
41cdf0e10cSrcweir#ifndef __com_sun_star_awt_XMouseMotionListener_idl__
42cdf0e10cSrcweir#include <com/sun/star/awt/XMouseMotionListener.idl>
43cdf0e10cSrcweir#endif
44cdf0e10cSrcweir#ifndef __com_sun_star_awt_Rectangle_idl__
45cdf0e10cSrcweir#include <com/sun/star/awt/Rectangle.idl>
46cdf0e10cSrcweir#endif
47cdf0e10cSrcweir
48cdf0e10cSrcweirmodule com {  module sun {  module star {  module presentation {
49cdf0e10cSrcweir
50cdf0e10cSrcweir/** View interface to display slideshow presentations on.<p>
51cdf0e10cSrcweir
52cdf0e10cSrcweir    This interface provides the necessary methods to enable an
53cdf0e10cSrcweir    XSlideShow interface to display a presentation. The slideshow can
54cdf0e10cSrcweir    be displayed simultaneously on multiple views<p>
55cdf0e10cSrcweir
5696af39f7SJürgen Schmidt    @since OpenOffice 2.4
57cdf0e10cSrcweir */
58cdf0e10cSrcweirpublished interface XSlideShowView : ::com::sun::star::uno::XInterface
59cdf0e10cSrcweir{
60cdf0e10cSrcweir    /** Get view canvas.<p>
61cdf0e10cSrcweir
62cdf0e10cSrcweir        This method gets the underlying XCanvas to display on this
63cdf0e10cSrcweir        view.<p>
64cdf0e10cSrcweir
65cdf0e10cSrcweir        @return XSpriteCanvas to display on. Must be valid, and the
66cdf0e10cSrcweir        same object, as long as this view is added to any slide show.
67cdf0e10cSrcweir     */
68cdf0e10cSrcweir    ::com::sun::star::rendering::XSpriteCanvas getCanvas();
69cdf0e10cSrcweir
70cdf0e10cSrcweir    /** This method clears the whole view area.
71cdf0e10cSrcweir
72cdf0e10cSrcweir        The slideshow uses this method to fully erase the view
73cdf0e10cSrcweir        content. Since the slideshow has no notion of view size, this
74cdf0e10cSrcweir        is the only reliable way to wholly clear the view.
75cdf0e10cSrcweir     */
76cdf0e10cSrcweir    void clear();
77cdf0e10cSrcweir
78cdf0e10cSrcweir    /** Query the current transformation matrix for this view.<p>
79cdf0e10cSrcweir
80cdf0e10cSrcweir            This method returns the transformation matrix of the
81cdf0e10cSrcweir            view. When notified via the transformation change listener,
82cdf0e10cSrcweir            the show will be displayed using the new transformation.<p>
83cdf0e10cSrcweir
84cdf0e10cSrcweir        @return the view transformation matrix. Note that the slide
85cdf0e10cSrcweir        show itself will paint all slides as one-by-one boxes, one
86cdf0e10cSrcweir        therefore has to at least provide a scaling at this matrix to
87cdf0e10cSrcweir        blow this up to the desired device pixel size (640 times 480,
88cdf0e10cSrcweir        or whatever size the output view has). Furthermore, the aspect
89cdf0e10cSrcweir        ratio of the scaling should match that of the slides
90cdf0e10cSrcweir        (otherwise, the slides will be scaled anisotrophically).
91cdf0e10cSrcweir     */
92cdf0e10cSrcweir    ::com::sun::star::geometry::AffineMatrix2D getTransformation();
93cdf0e10cSrcweir
94cdf0e10cSrcweir    /** Add a listener to get notified when the transformation matrix changes.<p>
95cdf0e10cSrcweir
96cdf0e10cSrcweir        This method registers a listener with the view, which will get
97*a893be29SPedro Giffuni        called every time the transformation matrix changes.<p>
98cdf0e10cSrcweir
99cdf0e10cSrcweir        @param xListener
100cdf0e10cSrcweir        Listener interface to call when the transformation matrix changes.
101cdf0e10cSrcweir     */
102cdf0e10cSrcweir    void addTransformationChangedListener( [in] ::com::sun::star::util::XModifyListener xListener );
103cdf0e10cSrcweir
104cdf0e10cSrcweir    /** Revoke a previously registered transformation matrix change listener.<p>
105cdf0e10cSrcweir
106cdf0e10cSrcweir        @param xListener
107cdf0e10cSrcweir        Listener interface to revoke from being called.
108cdf0e10cSrcweir     */
109cdf0e10cSrcweir    void removeTransformationChangedListener( [in] ::com::sun::star::util::XModifyListener xListener );
110cdf0e10cSrcweir
111cdf0e10cSrcweir    /** Add a listener to get notified when this view needs a repaint.<p>
112cdf0e10cSrcweir
113cdf0e10cSrcweir        This method registers a listener with the view, which will get
114*a893be29SPedro Giffuni        called every time the view needs an update of their screen
115cdf0e10cSrcweir        representation.<p>
116cdf0e10cSrcweir
117cdf0e10cSrcweir        @param xListener
118cdf0e10cSrcweir        Listener interface to call when the view needs a repaint.
119cdf0e10cSrcweir     */
120cdf0e10cSrcweir    void addPaintListener( [in] ::com::sun::star::awt::XPaintListener xListener );
121cdf0e10cSrcweir
122cdf0e10cSrcweir    /** Revoke a previously registered paint listener.<p>
123cdf0e10cSrcweir
124cdf0e10cSrcweir        @param xListener
125cdf0e10cSrcweir        Listener interface to revoke from being called.
126cdf0e10cSrcweir     */
127cdf0e10cSrcweir    void removePaintListener( [in] ::com::sun::star::awt::XPaintListener xListener );
128cdf0e10cSrcweir
129cdf0e10cSrcweir    /** Add a mouse listener to the view.<p>
130cdf0e10cSrcweir
131cdf0e10cSrcweir        This method registers a listener with the view, which will get
132*a893be29SPedro Giffuni        called every time the mouse is clicked on the view.<p>
133cdf0e10cSrcweir
134cdf0e10cSrcweir        @param xListener
135cdf0e10cSrcweir        Listener interface to call when the mouse is clicked on the view.
136cdf0e10cSrcweir     */
137cdf0e10cSrcweir    void addMouseListener( [in] com::sun::star::awt::XMouseListener xListener );
138cdf0e10cSrcweir
139cdf0e10cSrcweir    /** Revoke a previously registered mouse listener.<p>
140cdf0e10cSrcweir
141cdf0e10cSrcweir        @param xListener
142cdf0e10cSrcweir        Listener interface to revoke from being called.
143cdf0e10cSrcweir     */
144cdf0e10cSrcweir    void removeMouseListener( [in] com::sun::star::awt::XMouseListener xListener );
145cdf0e10cSrcweir
146cdf0e10cSrcweir    /** Add a mouse motion listener to the view.<p>
147cdf0e10cSrcweir
148cdf0e10cSrcweir        This method registers a listener with the view, which will get
149*a893be29SPedro Giffuni        called every time the mouse is moved on the view.<p>
150cdf0e10cSrcweir
151cdf0e10cSrcweir        @param xListener
152cdf0e10cSrcweir        Listener interface to call when the mouse is moved on the view.
153cdf0e10cSrcweir     */
154cdf0e10cSrcweir    void addMouseMotionListener( [in] com::sun::star::awt::XMouseMotionListener xListener );
155cdf0e10cSrcweir
156cdf0e10cSrcweir    /** Revoke a previously registered mouse move listener.<p>
157cdf0e10cSrcweir
158cdf0e10cSrcweir        @param xListener
159cdf0e10cSrcweir        Listener interface to revoke from being called.
160cdf0e10cSrcweir     */
161cdf0e10cSrcweir    void removeMouseMotionListener( [in] com::sun::star::awt::XMouseMotionListener xListener );
162cdf0e10cSrcweir
163cdf0e10cSrcweir    /** Change the mouse cursor currently in effect.<p>
164cdf0e10cSrcweir
165cdf0e10cSrcweir        This method changes the mouse cursor currently in effect, for
166cdf0e10cSrcweir        this view.<p>
167cdf0e10cSrcweir
168cdf0e10cSrcweir        @param nPointerShape
169cdf0e10cSrcweir        New mouse cursor shape to display for this view. Must be from
170cdf0e10cSrcweir        the ::com::sun::star::awt::SystemPointer constant group.
171cdf0e10cSrcweir     */
172cdf0e10cSrcweir    void setMouseCursor( [in] short nPointerShape );
173cdf0e10cSrcweir
174cdf0e10cSrcweir    /** Get rectangle defining area inside of canvas device which
175cdf0e10cSrcweir    this slideshow view uses.
176cdf0e10cSrcweir    */
177cdf0e10cSrcweir    ::com::sun::star::awt::Rectangle getCanvasArea();
178cdf0e10cSrcweir};
179cdf0e10cSrcweir
180cdf0e10cSrcweir}; }; }; };
181cdf0e10cSrcweir
182cdf0e10cSrcweir
183cdf0e10cSrcweir#endif
184