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_rendering_XBitmapCanvas_idl__
24#define __com_sun_star_rendering_XBitmapCanvas_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_lang_IllegalArgumentException_idl__
30#include <com/sun/star/lang/IllegalArgumentException.idl>
31#endif
32#ifndef __com_sun_star_geometry_RealRectangle2D_idl__
33#include <com/sun/star/geometry/RealRectangle2D.idl>
34#endif
35#ifndef __com_sun_star_rendering_RenderState_idl__
36#include <com/sun/star/rendering/RenderState.idl>
37#endif
38#ifndef __com_sun_star_rendering_XCanvas_idl__
39#include <com/sun/star/rendering/XCanvas.idl>
40#endif
41#ifndef __com_sun_star_rendering_VolatileContentDestroyedException_idl__
42#include <com/sun/star/rendering/VolatileContentDestroyedException.idl>
43#endif
44
45
46module com { module sun { module star { module rendering {
47
48/** This is a specialization of the canvas interface for bitmapped
49    canvases.<p>
50
51    This interface is a specialization of the canvas interface for
52    bitmapped canvases, where additional methods for accessing and
53    moving of bitmap content are provided.<p>
54
55    @since OpenOffice 2.0
56 */
57published interface XBitmapCanvas : XCanvas
58{
59    /** This method copies a rectangular area from a place of one
60        canvas to a place on another.<p>
61
62        This method copies a rectangular area from a place of one
63        canvas to a place on another. Source and destination areas are
64        permitted to overlap. If the source view or render state has a
65        clipping set, the regions clipped away from the source
66        rectangle are regarded fully transparent for the copy
67        operation. The device color for both source and destination
68        render state is ignored, the compositing mode only for the
69        source render state.<p>
70
71        @param sourceCanvas
72        Canvas from which to copy the bitmap data. Can be identical to
73        the canvas this method is called on, but must be valid.
74
75        @param sourceRect
76        Rectangle from which to copy the bitmap data. This rectangle
77        is subject to both view and render transformation, before
78        being applied. Thus, on screen, it does not necessarily
79        resemble a rectangle any more. The rectangle must be
80        non-empty, see
81        <type scope="::com::sun::star::geometry">RealRectangle2D</type>
82        for details.
83
84        @param sourceViewState
85        The view state to apply to the source of this copy
86        operation. The view transformation must be non-singular.
87
88        @param sourceRenderState
89        The render state to apply to the source of this copy
90        operation. The render transformation must be non-singular, and
91        the compositing mode must be one of the
92        <type>CompositingOperation</type> values.
93
94        @param destRect
95        Rectangle into which to copy the bitmap data. This rectangle
96        is subject to both view and render transformation, before
97        being applied. Thus, on screen, it does not necessarily
98        resemble a rectangle any more. The rectangle must be
99        non-empty, see
100        <type scope="::com::sun::star::geometry">RealRectangle2D</type>
101        for details.
102
103        @param destViewState
104        The view state to apply to the destination of this copy
105        operation. The view transformation must be non-singular.
106
107        @param destRenderState
108
109        The render state to apply to the destination of this copy
110        operation. The render transformation must be non-singular, and
111        the compositing mode must be one of the
112        <type>CompositingOperation</type> values.
113
114        @throws <type>com::sun::star::lang::IllegalArgumentException</type>
115        if one of the parameters are not within the specified range.
116     */
117    void copyRect( [in] XBitmapCanvas sourceCanvas,
118                   [in] ::com::sun::star::geometry::RealRectangle2D sourceRect, [in] ViewState sourceViewState, [in] RenderState sourceRenderState,
119                   [in] ::com::sun::star::geometry::RealRectangle2D destRect, [in] ViewState destViewState, [in] RenderState destRenderState )
120        raises (com::sun::star::lang::IllegalArgumentException,
121                VolatileContentDestroyedException);
122
123};
124
125}; }; }; };
126
127#endif
128