1*d1766043SAndrew Rist/**************************************************************
2cdf0e10cSrcweir *
3*d1766043SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*d1766043SAndrew Rist * or more contributor license agreements.  See the NOTICE file
5*d1766043SAndrew Rist * distributed with this work for additional information
6*d1766043SAndrew Rist * regarding copyright ownership.  The ASF licenses this file
7*d1766043SAndrew Rist * to you under the Apache License, Version 2.0 (the
8*d1766043SAndrew Rist * "License"); you may not use this file except in compliance
9*d1766043SAndrew Rist * with the License.  You may obtain a copy of the License at
10*d1766043SAndrew Rist *
11*d1766043SAndrew Rist *   http://www.apache.org/licenses/LICENSE-2.0
12*d1766043SAndrew Rist *
13*d1766043SAndrew Rist * Unless required by applicable law or agreed to in writing,
14*d1766043SAndrew Rist * software distributed under the License is distributed on an
15*d1766043SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*d1766043SAndrew Rist * KIND, either express or implied.  See the License for the
17*d1766043SAndrew Rist * specific language governing permissions and limitations
18*d1766043SAndrew Rist * under the License.
19*d1766043SAndrew Rist *
20*d1766043SAndrew Rist *************************************************************/
21*d1766043SAndrew Rist
22*d1766043SAndrew Rist
23cdf0e10cSrcweir#ifndef __com_sun_star_awt_XImageConsumer_idl__
24cdf0e10cSrcweir#define __com_sun_star_awt_XImageConsumer_idl__
25cdf0e10cSrcweir
26cdf0e10cSrcweir#ifndef __com_sun_star_uno_XInterface_idl__
27cdf0e10cSrcweir#include <com/sun/star/uno/XInterface.idl>
28cdf0e10cSrcweir#endif
29cdf0e10cSrcweir
30cdf0e10cSrcweir//=============================================================================
31cdf0e10cSrcweir
32cdf0e10cSrcweir module com {  module sun {  module star {  module awt {
33cdf0e10cSrcweir
34cdf0e10cSrcweir published interface XImageProducer;
35cdf0e10cSrcweir
36cdf0e10cSrcweir//=============================================================================
37cdf0e10cSrcweir
38cdf0e10cSrcweir/** specifies a data sink for an image.
39cdf0e10cSrcweir
40cdf0e10cSrcweir    <p>An image consumer is a component which wants to display or just
41cdf0e10cSrcweir    receive an image from an image producer.</p>
42cdf0e10cSrcweir
43cdf0e10cSrcweir    @see XImageProducer
44cdf0e10cSrcweir */
45cdf0e10cSrcweirpublished interface XImageConsumer: com::sun::star::uno::XInterface
46cdf0e10cSrcweir{
47cdf0e10cSrcweir	//-------------------------------------------------------------------------
48cdf0e10cSrcweir
49cdf0e10cSrcweir	/** initializes the consumer with image dimensions.
50cdf0e10cSrcweir	 */
51cdf0e10cSrcweir	[oneway] void init( [in] long Width,
52cdf0e10cSrcweir			 [in] long Height );
53cdf0e10cSrcweir
54cdf0e10cSrcweir	//-------------------------------------------------------------------------
55cdf0e10cSrcweir
56cdf0e10cSrcweir	/** changes color model for next pixels
57cdf0e10cSrcweir		typically called once after initialization.
58cdf0e10cSrcweir	 */
59cdf0e10cSrcweir	[oneway] void setColorModel( [in] short BitCount,
60cdf0e10cSrcweir			 [in] sequence<long> RGBAPal,
61cdf0e10cSrcweir			 [in] long RedMask,
62cdf0e10cSrcweir			 [in] long GreenMask,
63cdf0e10cSrcweir			 [in] long BlueMask,
64cdf0e10cSrcweir			 [in] long AlphaMask );
65cdf0e10cSrcweir
66cdf0e10cSrcweir	//-------------------------------------------------------------------------
67cdf0e10cSrcweir
68cdf0e10cSrcweir	/** delivers a chunk of pixels as <atom>long</atom> values.
69cdf0e10cSrcweir
70cdf0e10cSrcweir		<p>The pixels of the image are delivered using one or more calls
71cdf0e10cSrcweir		to this method.  Each call specifies the location and size of the
72cdf0e10cSrcweir		rectangle of source pixels that are contained in the array of pixels.
73cdf0e10cSrcweir		The specified color model object should be used to convert
74cdf0e10cSrcweir		the pixels into their corresponding color and alpha components.  Pixel
75cdf0e10cSrcweir		(m,n) is stored in the pixels array at index (n * <var>nScanSize</var>
76cdf0e10cSrcweir		+ m + nOffset).</p>
77cdf0e10cSrcweir	 */
78cdf0e10cSrcweir	[oneway] void setPixelsByBytes( [in] long nX,
79cdf0e10cSrcweir			 [in] long nY,
80cdf0e10cSrcweir			 [in] long nWidth,
81cdf0e10cSrcweir			 [in] long nHeight,
82cdf0e10cSrcweir			 [in] sequence<byte> aProducerData,
83cdf0e10cSrcweir			 [in] long nOffset,
84cdf0e10cSrcweir			 [in] long nScanSize );
85cdf0e10cSrcweir
86cdf0e10cSrcweir	//-------------------------------------------------------------------------
87cdf0e10cSrcweir
88cdf0e10cSrcweir	/** delivers a chunk of pixels as <atom>byte</atom> values.
89cdf0e10cSrcweir
90cdf0e10cSrcweir		<p>The pixels of the image are delivered using one or more calls
91cdf0e10cSrcweir		to this method.  Each call specifies the location and size of the
92cdf0e10cSrcweir		rectangle of source pixels that are contained in the array of pixels.
93cdf0e10cSrcweir		The specified color model object should be used to convert
94cdf0e10cSrcweir		the pixels into their corresponding color and alpha components.  Pixel
95cdf0e10cSrcweir		(m,n) is stored in the pixels array at index (n * <var>nScanSize</var>
96cdf0e10cSrcweir		+ m + nOffset).</p>
97cdf0e10cSrcweir	 */
98cdf0e10cSrcweir	[oneway] void setPixelsByLongs( [in] long nX,
99cdf0e10cSrcweir			 [in] long nY,
100cdf0e10cSrcweir			 [in] long nWidth,
101cdf0e10cSrcweir			 [in] long nHeight,
102cdf0e10cSrcweir			 [in] sequence<long> aProducerData,
103cdf0e10cSrcweir			 [in] long nOffset,
104cdf0e10cSrcweir			 [in] long nScanSize );
105cdf0e10cSrcweir
106cdf0e10cSrcweir	//-------------------------------------------------------------------------
107cdf0e10cSrcweir
108cdf0e10cSrcweir	/** is called for the notification of the degree to which the
109cdf0e10cSrcweir		image is delivered.
110cdf0e10cSrcweir
111cdf0e10cSrcweir		<p>The complete method is called when the image producer
112cdf0e10cSrcweir		has finished delivering all of the pixels that the source image
113cdf0e10cSrcweir		contains, or when a single frame of a multi-frame animation has
114cdf0e10cSrcweir		been completed, or when an error in loading or producing the
115cdf0e10cSrcweir		image has occurred.  The image consumer should remove itself from the
116cdf0e10cSrcweir		list of consumers registered with the image producer
117cdf0e10cSrcweir		at this time, unless it is interested in successive frames.</p>
118cdf0e10cSrcweir	 */
119cdf0e10cSrcweir	[oneway] void complete( [in] long Status,
120cdf0e10cSrcweir			 [in] XImageProducer xProducer );
121cdf0e10cSrcweir
122cdf0e10cSrcweir};
123cdf0e10cSrcweir
124cdf0e10cSrcweir//=============================================================================
125cdf0e10cSrcweir
126cdf0e10cSrcweir}; }; }; };
127cdf0e10cSrcweir
128cdf0e10cSrcweir#endif
129