Files
loongoffice/offapi/com/sun/star/rendering/XIntegerBitmap.idl
Rüdiger Timm 06c421fc0f INTEGRATION: CWS ooo19126 (1.2.56); FILE MERGED
2005/09/05 12:25:08 rt 1.2.56.1: #i54170# Change license header: remove SISSL
2005-09-08 02:00:36 +00:00

164 lines
6.7 KiB
Plaintext

/*************************************************************************
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: XIntegerBitmap.idl,v $
*
* $Revision: 1.3 $
*
* last change: $Author: rt $ $Date: 2005-09-08 03:00:06 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
*
*
* GNU Lesser General Public License Version 2.1
* =============================================
* Copyright 2005 by Sun Microsystems, Inc.
* 901 San Antonio Road, Palo Alto, CA 94303, USA
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1, as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*
************************************************************************/
#ifndef __com_sun_star_rendering_XIntegerBitmap_idl__
#define __com_sun_star_rendering_XIntegerBitmap_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_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_IntegerBitmapLayout_idl__
#include <com/sun/star/rendering/IntegerBitmapLayout.idl>
#endif
#ifndef __com_sun_star_rendering_XBitmap_idl__
#include <com/sun/star/rendering/XBitmap.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 {
interface XBitmapPalette;
/** This is a specialized interface for bitmaps having integer color
channels.
*/
interface XIntegerBitmap : XBitmap
{
/** Query the raw data of this bitmap.
Query the raw data of this bitmap, in the format as defined by
getMemoryLayout(). With the given rectangle, a subset of the
whole bitmap can be queried. If the internal data format's
pixel are not integer multiples of bytes (i.e. if one pixel
occupies less than a byte), the leftover content of the bytes
at the right of each scanline is filled with zero. When
querying subsets of the bitmap, the same scanline padding
takes place as when the whole bitmap is requested.
@throws VolatileContentDestroyedException
if the bitmap is volatile, and the content has been destroyed by the system.
*/
sequence<byte> getData( [in] ::com::sun::star::geometry::IntegerRectangle2D rect )
raises (com::sun::star::lang::IndexOutOfBoundsException,
VolatileContentDestroyedException);
//-------------------------------------------------------------------------
/** Set raw data of a bitmap.
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. If the internal data format's pixel are
not integer multiples of bytes (i.e. if one pixel occupies
less than a byte), the leftover content of the bytes at the
right of each scanline is ignored and left unchanged in the
bitmap. When setting subsets of the bitmap, the same scanline
padding takes place as when the whole bitmap is changed.<P>
*/
void setData( [in] sequence<byte> data, [in] IntegerBitmapLayout 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.
If the internal data format's pixel are not integer multiples
of bytes (i.e. if one pixel occupies less than a byte), the
color value is expected in the least significant bits of the
single byte given as the color.<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().
*/
void setPixel( [in] sequence<byte> color, [in] IntegerBitmapLayout bitmapLayout, [in] ::com::sun::star::geometry::IntegerPoint2D pos )
raises (com::sun::star::lang::IllegalArgumentException,
com::sun::star::lang::IndexOutOfBoundsException);
//-------------------------------------------------------------------------
/** Get a single pixel of the bitmap, returning its color
value.
If the internal data format's pixel are not integer multiples
of bytes (i.e. if one pixel occupies less than a byte), the
color value is returned in the least significant bits of the
single byte returned as the color.
@throws VolatileContentDestroyedException
if the bitmap is volatile, and the content has been destroyed by the system.
*/
sequence<byte> getPixel( [in] ::com::sun::star::geometry::IntegerPoint2D pos )
raises (com::sun::star::lang::IndexOutOfBoundsException,
VolatileContentDestroyedException);
//-------------------------------------------------------------------------
/** Query the associated palette for this bitmap.
Returns empty interface or interface with empty palette for
non-paletted bitmaps.
*/
XBitmapPalette getPalette();
//-------------------------------------------------------------------------
/** Query the memory layout for this bitmap
*/
IntegerBitmapLayout getMemoryLayout();
};
}; }; }; };
#endif