| /************************************************************** | 
 |  *  | 
 |  * Licensed to the Apache Software Foundation (ASF) under one | 
 |  * or more contributor license agreements.  See the NOTICE file | 
 |  * distributed with this work for additional information | 
 |  * regarding copyright ownership.  The ASF licenses this file | 
 |  * to you under the Apache License, Version 2.0 (the | 
 |  * "License"); you may not use this file except in compliance | 
 |  * with the License.  You may obtain a copy of the License at | 
 |  *  | 
 |  *   http://www.apache.org/licenses/LICENSE-2.0 | 
 |  *  | 
 |  * Unless required by applicable law or agreed to in writing, | 
 |  * software distributed under the License is distributed on an | 
 |  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
 |  * KIND, either express or implied.  See the License for the | 
 |  * specific language governing permissions and limitations | 
 |  * under the License. | 
 |  *  | 
 |  *************************************************************/ | 
 |  | 
 |  | 
 | #ifndef __com_sun_star_rendering_XIeeeDoubleBitmap_idl__ | 
 | #define __com_sun_star_rendering_XIeeeDoubleBitmap_idl__ | 
 |  | 
 | #ifndef __com_sun_star_lang_IllegalArgumentException_idl__ | 
 | #include <com/sun/star/lang/IllegalArgumentException.idl> | 
 | #endif  | 
 | #ifndef __com_sun_star_lang_IndexOutOfBoundsException_idl__ | 
 | #include <com/sun/star/lang/IndexOutOfBoundsException.idl> | 
 | #endif  | 
 | #ifndef __com_sun_star_rendering_FloatingPointBitmapLayout_idl__ | 
 | #include <com/sun/star/rendering/FloatingPointBitmapLayout.idl> | 
 | #endif | 
 | #ifndef __com_sun_star_geometry_IntegerPoint2D_idl__ | 
 | #include <com/sun/star/geometry/IntegerPoint2D.idl> | 
 | #endif | 
 | #ifndef __com_sun_star_geometry_IntegerRectangle2D_idl__ | 
 | #include <com/sun/star/geometry/IntegerRectangle2D.idl> | 
 | #endif | 
 | #ifndef __com_sun_star_rendering_XIeeeDoubleReadOnlyBitmap_idl__ | 
 | #include <com/sun/star/rendering/XIeeeDoubleReadOnlyBitmap.idl> | 
 | #endif | 
 | #ifndef __com_sun_star_rendering_VolatileContentDestroyedException_idl__ | 
 | #include <com/sun/star/rendering/VolatileContentDestroyedException.idl> | 
 | #endif | 
 |  | 
 |  | 
 | module com { module sun { module star { module rendering { | 
 |  | 
 | /** This is a specialized interface for bitmaps containing IEEE | 
 |     doubles for their color components.<p> | 
 |  */ | 
 | interface XIeeeDoubleBitmap : XIeeeDoubleReadOnlyBitmap | 
 | { | 
 | 	//------------------------------------------------------------------------- | 
 |  | 
 | 	/** Set raw data of a bitmap.<p> | 
 |  | 
 |     	Set raw data of a bitmap, in the format as defined by | 
 |     	getMemoryLayout(). With the given rectangle, a subset of the | 
 |     	bitmap can be changed. When setting subsets of the bitmap, the | 
 |     	same scanline padding takes place as when the whole bitmap is | 
 |     	changed.<p> | 
 |          | 
 |         When setting data on volatile bitmaps, always call isValid() | 
 |         before, and retrieve a new memory layout via | 
 |         getMemoryLayout(). At least under Windows, the memory layout | 
 |         can change for the same bitmap, if the user e.g. switches the | 
 |         screen resolution. Thus, this method will throw an | 
 |         IllegalArgumentException, if the memory layout changed between | 
 |         a call to getMemoryLayout() and setData().<p> | 
 |  | 
 |         @param data | 
 |         Data to set | 
 |          | 
 |         @param bitmapLayout | 
 |         Layout of the data to set. Must match this bitmap's current | 
 |         layout. | 
 |  | 
 |         @param rect | 
 |         Destination rectangle, within the bounds of the bitmap, to set | 
 |         the data in. | 
 |  | 
 |         @throws <type>com::sun::star::lang::IndexOutOfBoundsException</type> | 
 |         if parts of the given rectangle are outside the permissible | 
 |         bitmap area. | 
 |  | 
 |         @throws <type>com::sun::star::lang::IllegalArgumentException</type> | 
 |         if the given memory layout does not match this bitmap's | 
 |         layout, or if the given data sequence has too few or too much | 
 |         elements. | 
 | 	 */ | 
 | 	void						setData( [in] sequence<double> data, [in] FloatingPointBitmapLayout bitmapLayout, [in] ::com::sun::star::geometry::IntegerRectangle2D rect ) | 
 |         raises (com::sun::star::lang::IllegalArgumentException, | 
 |                 com::sun::star::lang::IndexOutOfBoundsException);  | 
 |  | 
 | 	//------------------------------------------------------------------------- | 
 |  | 
 | 	/** Set a single pixel of the bitmap with the given color | 
 | 		value.<p> | 
 |  | 
 |         When setting data on volatile bitmaps, always call isValid() | 
 |         before, and retrieve a new memory layout via | 
 |         getMemoryLayout(). At least under Windows, the memory layout | 
 |         can change for the same bitmap, if the user e.g. switches the | 
 |         screen resolution. Thus, this method will throw an | 
 |         IllegalArgumentException, if the memory layout changed between | 
 |         a call to getMemoryLayout() and setPixel().<p> | 
 |  | 
 |         @param color | 
 |         The color value(s) to set | 
 |  | 
 |         @param bitmapLayout | 
 |         Layout of the color elements to set. Must match this bitmap's | 
 |         current layout. | 
 |  | 
 |         @param pos | 
 |         Pixel position with the bounds of the bitmap to set. | 
 |  | 
 |         @throws <type>com::sun::star::lang::IndexOutOfBoundsException</type> | 
 |         if the given point is outside the permissible bitmap area. | 
 |  | 
 |         @throws <type>com::sun::star::lang::IllegalArgumentException</type> | 
 |         if the given memory layout does not match this bitmap's | 
 |         layout, or if the given data sequence has too few or too much | 
 |         elements. | 
 | 	 */ | 
 | 	void						setPixel( [in] sequence<double> color, [in] FloatingPointBitmapLayout bitmapLayout, [in] ::com::sun::star::geometry::IntegerPoint2D pos ) | 
 |         raises (com::sun::star::lang::IllegalArgumentException, | 
 |                 com::sun::star::lang::IndexOutOfBoundsException);  | 
 |  | 
 | }; | 
 |  | 
 | }; }; }; }; | 
 |  | 
 | #endif |