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