summaryrefslogtreecommitdiff
path: root/toolkit
diff options
context:
space:
mode:
authorAriel Constenla-Haile <arielch@apache.org>2012-12-06 12:28:11 +0000
committerCaolán McNamara <caolanm@redhat.com>2013-05-21 14:01:16 +0100
commitf858fa266d8b33ccc27bb6a91f1923b9ea9cdaaa (patch)
treea1591cd5dca88c16a3d22e9256162954ab9775ba /toolkit
parent5dd32f76a9c0f924e6a514e309e7661ad5537e86 (diff)
Related: #i121442# - Extend css::awt::XGraphic to draw images
A StatusbarController that draws its status bar item may need to draw a graphic representing the feature state. css::awt::XGraphics API should be extended to include VCL's OuptDevice::DrawImage (cherry picked from commit 3ca8e86d4489f023160d69ba621a819a89ab90d5) Conflicts: offapi/com/sun/star/awt/XGraphics.idl offapi/com/sun/star/awt/makefile.mk offapi/type_reference/types.rdb toolkit/inc/toolkit/awt/vclxgraphics.hxx toolkit/source/awt/vclxgraphics.cxx Change-Id: If2c37022e60e8a3c9fce51dac84f4a2af001b5c5
Diffstat (limited to 'toolkit')
-rw-r--r--toolkit/source/awt/vclxgraphics.cxx173
1 files changed, 129 insertions, 44 deletions
diff --git a/toolkit/source/awt/vclxgraphics.cxx b/toolkit/source/awt/vclxgraphics.cxx
index c3459dc3b86a..3e7461fdd305 100644
--- a/toolkit/source/awt/vclxgraphics.cxx
+++ b/toolkit/source/awt/vclxgraphics.cxx
@@ -20,6 +20,7 @@
#include <toolkit/awt/vclxgraphics.hxx>
#include <toolkit/awt/vclxdevice.hxx>
+#include <toolkit/awt/vclxfont.hxx>
#include <toolkit/helper/macros.hxx>
#include <toolkit/helper/vclunohelper.hxx>
#include <cppuhelper/typeprovider.hxx>
@@ -27,30 +28,32 @@
#include <vcl/svapp.hxx>
#include <vcl/outdev.hxx>
+#include <vcl/image.hxx>
#include <vcl/gradient.hxx>
#include <tools/debug.hxx>
+using namespace com::sun::star;
// ----------------------------------------------------
// class VCLXGraphics
// ----------------------------------------------------
-// ::com::sun::star::uno::XInterface
-::com::sun::star::uno::Any VCLXGraphics::queryInterface( const ::com::sun::star::uno::Type & rType ) throw(::com::sun::star::uno::RuntimeException)
+// uno::XInterface
+uno::Any VCLXGraphics::queryInterface( const uno::Type & rType ) throw(uno::RuntimeException)
{
- ::com::sun::star::uno::Any aRet = ::cppu::queryInterface( rType,
+ uno::Any aRet = ::cppu::queryInterface( rType,
(static_cast< ::com::sun::star::awt::XGraphics* >(this)),
(static_cast< ::com::sun::star::lang::XTypeProvider* >(this)),
(static_cast< ::com::sun::star::lang::XUnoTunnel* >(this)) );
return (aRet.hasValue() ? aRet : OWeakObject::queryInterface( rType ));
}
-// ::com::sun::star::lang::XUnoTunnel
+// lang::XUnoTunnel
IMPL_XUNOTUNNEL( VCLXGraphics )
-// ::com::sun::star::lang::XTypeProvider
+// lang::XTypeProvider
IMPL_XTYPEPROVIDER_START( VCLXGraphics )
- getCppuType( ( ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics>* ) NULL )
+ getCppuType( ( uno::Reference< awt::XGraphics>* ) NULL )
IMPL_XTYPEPROVIDER_END
VCLXGraphics::VCLXGraphics()
@@ -80,6 +83,7 @@ void VCLXGraphics::SetOutputDevice( OutputDevice* pOutDev )
{
mpOutputDevice = pOutDev;
mxDevice = NULL;
+ initAttrs();
}
void VCLXGraphics::Init( OutputDevice* pOutDev )
@@ -87,12 +91,7 @@ void VCLXGraphics::Init( OutputDevice* pOutDev )
DBG_ASSERT( !mpOutputDevice, "VCLXGraphics::Init already has pOutDev !" );
mpOutputDevice = pOutDev;
- maFont = mpOutputDevice->GetFont();
- maTextColor = COL_BLACK;
- maTextFillColor = COL_TRANSPARENT;
- maLineColor = COL_BLACK;
- maFillColor = COL_WHITE;
- meRasterOp = ROP_OVERPAINT;
+ initAttrs();
mpClipRegion = NULL;
// Register at OutputDevice
@@ -102,6 +101,19 @@ void VCLXGraphics::Init( OutputDevice* pOutDev )
pLst->push_back( this );
}
+void VCLXGraphics::initAttrs()
+{
+ if ( !mpOutputDevice )
+ return;
+
+ maFont = mpOutputDevice->GetFont();
+ maTextColor = mpOutputDevice->GetTextColor(); /* COL_BLACK */
+ maTextFillColor = mpOutputDevice->GetTextFillColor(); /* COL_TRANSPARENT */
+ maLineColor = mpOutputDevice->GetLineColor(); /* COL_BLACK */
+ maFillColor = mpOutputDevice->GetFillColor(); /* COL_WHITE */
+ meRasterOp = mpOutputDevice->GetRasterOp(); /* ROP_OVERPAINT */
+}
+
void VCLXGraphics::InitOutputDevice( sal_uInt16 nFlags )
{
if(mpOutputDevice)
@@ -136,7 +148,7 @@ void VCLXGraphics::InitOutputDevice( sal_uInt16 nFlags )
}
}
-::com::sun::star::uno::Reference< ::com::sun::star::awt::XDevice > VCLXGraphics::getDevice() throw(::com::sun::star::uno::RuntimeException)
+uno::Reference< awt::XDevice > VCLXGraphics::getDevice() throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -149,11 +161,11 @@ void VCLXGraphics::InitOutputDevice( sal_uInt16 nFlags )
return mxDevice;
}
-::com::sun::star::awt::SimpleFontMetric VCLXGraphics::getFontMetric() throw(::com::sun::star::uno::RuntimeException)
+awt::SimpleFontMetric VCLXGraphics::getFontMetric() throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
- ::com::sun::star::awt::SimpleFontMetric aM;
+ awt::SimpleFontMetric aM;
if( mpOutputDevice )
{
mpOutputDevice->SetFont( maFont );
@@ -162,56 +174,104 @@ void VCLXGraphics::InitOutputDevice( sal_uInt16 nFlags )
return aM;
}
-void VCLXGraphics::setFont( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont >& rxFont ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::setFont( const uno::Reference< awt::XFont >& rxFont ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
maFont = VCLUnoHelper::CreateFont( rxFont );
}
-void VCLXGraphics::selectFont( const ::com::sun::star::awt::FontDescriptor& rDescription ) throw(::com::sun::star::uno::RuntimeException)
+uno::Reference< awt::XFont > VCLXGraphics::getFont() throw(uno::RuntimeException)
+{
+ uno::Reference< awt::XFont > xFont;
+ uno::Reference< awt::XDevice > xDevice( getDevice() );
+
+ SolarMutexGuard aGuard;
+
+ if ( xDevice.is() )
+ {
+ VCLXFont *pFont = new VCLXFont;
+ pFont->Init( *xDevice.get(), maFont );
+ xFont.set( static_cast< ::cppu::OWeakObject* >( pFont ), uno::UNO_QUERY );
+ }
+
+ return xFont;
+}
+
+void VCLXGraphics::selectFont( const awt::FontDescriptor& rDescription ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
maFont = VCLUnoHelper::CreateFont( rDescription, Font() );
}
-void VCLXGraphics::setTextColor( sal_Int32 nColor ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::setTextColor( sal_Int32 nColor ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
maTextColor = Color( (sal_uInt32)nColor );
}
-void VCLXGraphics::setTextFillColor( sal_Int32 nColor ) throw(::com::sun::star::uno::RuntimeException)
+::sal_Int32 VCLXGraphics::getTextColor() throw(uno::RuntimeException)
+{
+ SolarMutexGuard aGuard;
+ return maTextColor.GetColor();
+}
+
+void VCLXGraphics::setTextFillColor( sal_Int32 nColor ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
maTextFillColor = Color( (sal_uInt32)nColor );
}
-void VCLXGraphics::setLineColor( sal_Int32 nColor ) throw(::com::sun::star::uno::RuntimeException)
+::sal_Int32 VCLXGraphics::getTextFillColor() throw(uno::RuntimeException)
+{
+ SolarMutexGuard aGuard;
+ return maTextFillColor.GetColor();
+}
+
+void VCLXGraphics::setLineColor( sal_Int32 nColor ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
maLineColor = Color( (sal_uInt32)nColor );
}
-void VCLXGraphics::setFillColor( sal_Int32 nColor ) throw(::com::sun::star::uno::RuntimeException)
+::sal_Int32 VCLXGraphics::getLineColor() throw(uno::RuntimeException)
+{
+ SolarMutexGuard aGuard;
+ return maLineColor.GetColor();
+}
+
+void VCLXGraphics::setFillColor( sal_Int32 nColor ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
maFillColor = Color( (sal_uInt32)nColor );
}
-void VCLXGraphics::setRasterOp( ::com::sun::star::awt::RasterOperation eROP ) throw(::com::sun::star::uno::RuntimeException)
+::sal_Int32 VCLXGraphics::getFillColor() throw(uno::RuntimeException)
+{
+ SolarMutexGuard aGuard;
+ return maFillColor.GetColor();
+}
+
+void VCLXGraphics::setRasterOp( awt::RasterOperation eROP ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
meRasterOp = (RasterOp)eROP;
}
-void VCLXGraphics::setClipRegion( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XRegion >& rxRegion ) throw(::com::sun::star::uno::RuntimeException)
+awt::RasterOperation VCLXGraphics::getRasterOp()
+throw(uno::RuntimeException)
+{
+ SolarMutexGuard aGuard;
+ return (awt::RasterOperation) meRasterOp;
+}
+
+void VCLXGraphics::setClipRegion( const uno::Reference< awt::XRegion >& rxRegion ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -222,7 +282,7 @@ void VCLXGraphics::setClipRegion( const ::com::sun::star::uno::Reference< ::com:
mpClipRegion = NULL;
}
-void VCLXGraphics::intersectClipRegion( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XRegion >& rxRegion ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::intersectClipRegion( const uno::Reference< awt::XRegion >& rxRegion ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -236,7 +296,7 @@ void VCLXGraphics::intersectClipRegion( const ::com::sun::star::uno::Reference<
}
}
-void VCLXGraphics::push( ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::push( ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -245,7 +305,7 @@ void VCLXGraphics::push( ) throw(::com::sun::star::uno::RuntimeException)
mpOutputDevice->Push();
}
-void VCLXGraphics::pop( ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::pop( ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -254,7 +314,20 @@ void VCLXGraphics::pop( ) throw(::com::sun::star::uno::RuntimeException)
mpOutputDevice->Pop();
}
-void VCLXGraphics::copy( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDevice >& rxSource, sal_Int32 nSourceX, sal_Int32 nSourceY, sal_Int32 nSourceWidth, sal_Int32 nSourceHeight, sal_Int32 nDestX, sal_Int32 nDestY, sal_Int32 nDestWidth, sal_Int32 nDestHeight ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::clear(
+ const awt::Rectangle& aRect )
+throw(uno::RuntimeException)
+{
+ SolarMutexGuard aGuard;
+
+ if( mpOutputDevice )
+ {
+ const ::Rectangle aVCLRect = VCLUnoHelper::ConvertToVCLRect( aRect );
+ mpOutputDevice->Erase( aVCLRect );
+ }
+}
+
+void VCLXGraphics::copy( const uno::Reference< awt::XDevice >& rxSource, sal_Int32 nSourceX, sal_Int32 nSourceY, sal_Int32 nSourceWidth, sal_Int32 nSourceHeight, sal_Int32 nDestX, sal_Int32 nDestY, sal_Int32 nDestWidth, sal_Int32 nDestHeight ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -271,14 +344,14 @@ void VCLXGraphics::copy( const ::com::sun::star::uno::Reference< ::com::sun::sta
}
}
-void VCLXGraphics::draw( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XDisplayBitmap >& rxBitmapHandle, sal_Int32 nSourceX, sal_Int32 nSourceY, sal_Int32 nSourceWidth, sal_Int32 nSourceHeight, sal_Int32 nDestX, sal_Int32 nDestY, sal_Int32 nDestWidth, sal_Int32 nDestHeight ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::draw( const uno::Reference< awt::XDisplayBitmap >& rxBitmapHandle, sal_Int32 nSourceX, sal_Int32 nSourceY, sal_Int32 nSourceWidth, sal_Int32 nSourceHeight, sal_Int32 nDestX, sal_Int32 nDestY, sal_Int32 nDestWidth, sal_Int32 nDestHeight ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
if( mpOutputDevice )
{
InitOutputDevice( INITOUTDEV_CLIPREGION|INITOUTDEV_RASTEROP);
- ::com::sun::star::uno::Reference< ::com::sun::star::awt::XBitmap > xBitmap( rxBitmapHandle, ::com::sun::star::uno::UNO_QUERY );
+ uno::Reference< awt::XBitmap > xBitmap( rxBitmapHandle, uno::UNO_QUERY );
BitmapEx aBmpEx = VCLUnoHelper::GetBitmap( xBitmap );
Point aPos(nDestX - nSourceX, nDestY - nSourceY);
@@ -303,7 +376,7 @@ void VCLXGraphics::draw( const ::com::sun::star::uno::Reference< ::com::sun::sta
}
}
-void VCLXGraphics::drawPixel( sal_Int32 x, sal_Int32 y ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::drawPixel( sal_Int32 x, sal_Int32 y ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -314,7 +387,7 @@ void VCLXGraphics::drawPixel( sal_Int32 x, sal_Int32 y ) throw(::com::sun::star:
}
}
-void VCLXGraphics::drawLine( sal_Int32 x1, sal_Int32 y1, sal_Int32 x2, sal_Int32 y2 ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::drawLine( sal_Int32 x1, sal_Int32 y1, sal_Int32 x2, sal_Int32 y2 ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -325,7 +398,7 @@ void VCLXGraphics::drawLine( sal_Int32 x1, sal_Int32 y1, sal_Int32 x2, sal_Int32
}
}
-void VCLXGraphics::drawRect( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::drawRect( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -336,7 +409,7 @@ void VCLXGraphics::drawRect( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int3
}
}
-void VCLXGraphics::drawRoundedRect( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, sal_Int32 nHorzRound, sal_Int32 nVertRound ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::drawRoundedRect( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, sal_Int32 nHorzRound, sal_Int32 nVertRound ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -347,7 +420,7 @@ void VCLXGraphics::drawRoundedRect( sal_Int32 x, sal_Int32 y, sal_Int32 width, s
}
}
-void VCLXGraphics::drawPolyLine( const ::com::sun::star::uno::Sequence< sal_Int32 >& DataX, const ::com::sun::star::uno::Sequence< sal_Int32 >& DataY ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::drawPolyLine( const uno::Sequence< sal_Int32 >& DataX, const uno::Sequence< sal_Int32 >& DataY ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -358,7 +431,7 @@ void VCLXGraphics::drawPolyLine( const ::com::sun::star::uno::Sequence< sal_Int3
}
}
-void VCLXGraphics::drawPolygon( const ::com::sun::star::uno::Sequence< sal_Int32 >& DataX, const ::com::sun::star::uno::Sequence< sal_Int32 >& DataY ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::drawPolygon( const uno::Sequence< sal_Int32 >& DataX, const uno::Sequence< sal_Int32 >& DataY ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -369,7 +442,7 @@ void VCLXGraphics::drawPolygon( const ::com::sun::star::uno::Sequence< sal_Int32
}
}
-void VCLXGraphics::drawPolyPolygon( const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< sal_Int32 > >& DataX, const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< sal_Int32 > >& DataY ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::drawPolyPolygon( const uno::Sequence< uno::Sequence< sal_Int32 > >& DataX, const uno::Sequence< uno::Sequence< sal_Int32 > >& DataY ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -385,7 +458,7 @@ void VCLXGraphics::drawPolyPolygon( const ::com::sun::star::uno::Sequence< ::com
}
}
-void VCLXGraphics::drawEllipse( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::drawEllipse( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -396,7 +469,7 @@ void VCLXGraphics::drawEllipse( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_I
}
}
-void VCLXGraphics::drawArc( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, sal_Int32 x1, sal_Int32 y1, sal_Int32 x2, sal_Int32 y2 ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::drawArc( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, sal_Int32 x1, sal_Int32 y1, sal_Int32 x2, sal_Int32 y2 ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -407,7 +480,7 @@ void VCLXGraphics::drawArc( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32
}
}
-void VCLXGraphics::drawPie( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, sal_Int32 x1, sal_Int32 y1, sal_Int32 x2, sal_Int32 y2 ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::drawPie( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, sal_Int32 x1, sal_Int32 y1, sal_Int32 x2, sal_Int32 y2 ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -418,7 +491,7 @@ void VCLXGraphics::drawPie( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32
}
}
-void VCLXGraphics::drawChord( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, sal_Int32 x1, sal_Int32 y1, sal_Int32 x2, sal_Int32 y2 ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::drawChord( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, sal_Int32 x1, sal_Int32 y1, sal_Int32 x2, sal_Int32 y2 ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -429,7 +502,7 @@ void VCLXGraphics::drawChord( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int
}
}
-void VCLXGraphics::drawGradient( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, const ::com::sun::star::awt::Gradient& rGradient ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::drawGradient( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, const awt::Gradient& rGradient ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -448,7 +521,7 @@ void VCLXGraphics::drawGradient( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_
}
}
-void VCLXGraphics::drawText( sal_Int32 x, sal_Int32 y, const OUString& rText ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::drawText( sal_Int32 x, sal_Int32 y, const OUString& rText ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -459,7 +532,7 @@ void VCLXGraphics::drawText( sal_Int32 x, sal_Int32 y, const OUString& rText ) t
}
}
-void VCLXGraphics::drawTextArray( sal_Int32 x, sal_Int32 y, const OUString& rText, const ::com::sun::star::uno::Sequence< sal_Int32 >& rLongs ) throw(::com::sun::star::uno::RuntimeException)
+void VCLXGraphics::drawTextArray( sal_Int32 x, sal_Int32 y, const OUString& rText, const uno::Sequence< sal_Int32 >& rLongs ) throw(uno::RuntimeException)
{
SolarMutexGuard aGuard;
@@ -471,6 +544,18 @@ void VCLXGraphics::drawTextArray( sal_Int32 x, sal_Int32 y, const OUString& rTex
}
+void VCLXGraphics::drawImage( sal_Int32 x, sal_Int32 y, sal_Int32 width, sal_Int32 height, sal_Int16 nStyle, const uno::Reference< graphic::XGraphic >& xGraphic ) throw(uno::RuntimeException)
+{
+ SolarMutexGuard aGuard;
-
+ if( mpOutputDevice && xGraphic.is() )
+ {
+ Image aImage( xGraphic );
+ if ( !!aImage )
+ {
+ InitOutputDevice( INITOUTDEV_CLIPREGION|INITOUTDEV_RASTEROP|INITOUTDEV_COLORS );
+ mpOutputDevice->DrawImage( Point( x, y ), Size( width, height ), aImage, nStyle );
+ }
+ }
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */