include/vcl/salctype.hxx | 8 - vcl/Library_vcl.mk | 1 vcl/inc/unx/salinst.h | 2 vcl/source/gdi/bmpconv.cxx | 209 ------------------------------- vcl/source/window/window.cxx | 15 -- vcl/unx/generic/dtrans/X11_selection.cxx | 34 ----- vcl/unx/generic/dtrans/X11_selection.hxx | 3 vcl/unx/generic/dtrans/X11_service.cxx | 52 ++----- vcl/unx/generic/dtrans/bmp.cxx | 87 ++++++------ vcl/unx/generic/dtrans/bmp.hxx | 20 -- 10 files changed, 74 insertions(+), 357 deletions(-)
New commits: commit 31144904919cf386f7ef6941a2932bc00497ed13 Author: Stephan Bergmann <[email protected]> Date: Thu Jul 11 13:22:02 2013 +0200 X11SalInstance::CreateClipboard is only ever used with the default $DISPLAY Change-Id: Id9a407b9ee4419fc6342931b249eb00e70addfad diff --git a/vcl/inc/unx/salinst.h b/vcl/inc/unx/salinst.h index 3f8d06e..afe8e84 100644 --- a/vcl/inc/unx/salinst.h +++ b/vcl/inc/unx/salinst.h @@ -39,7 +39,7 @@ class SalXLib; class VCLPLUG_GEN_PUBLIC X11SalInstance : public SalGenericInstance { private: - boost::unordered_map< OUString, boost::unordered_map< Atom, com::sun::star::uno::Reference< com::sun::star::datatransfer::clipboard::XClipboard > >, OUStringHash > m_aInstances; + boost::unordered_map< Atom, com::sun::star::uno::Reference< com::sun::star::datatransfer::clipboard::XClipboard > > m_aInstances; protected: SalXLib *mpXLib; diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index dc450e3..2125cda 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -8508,11 +8508,10 @@ uno::Reference< XClipboard > Window::GetPrimarySelection() uno::Reference< XComponentContext > xContext( comphelper::getProcessComponentContext() ); #if defined(UNX) && !defined(MACOSX) - // A hack, making the primary selection available as an instance of - // the SystemClipboard service on X11: - css::uno::Sequence<css::uno::Any> args(2); - args[0] <<= Application::GetDisplayConnection(); - args[1] <<= OUString("PRIMARY"); + // A hack, making the primary selection available as an instance + // of the SystemClipboard service on X11: + css::uno::Sequence<css::uno::Any> args(1); + args[0] <<= OUString("PRIMARY"); mpWindowImpl->mpFrameData->mxSelection.set( (xContext->getServiceManager()-> createInstanceWithArgumentsAndContext( diff --git a/vcl/unx/generic/dtrans/X11_service.cxx b/vcl/unx/generic/dtrans/X11_service.cxx index 2e8e0cd..59d7e45 100644 --- a/vcl/unx/generic/dtrans/X11_service.cxx +++ b/vcl/unx/generic/dtrans/X11_service.cxx @@ -61,47 +61,27 @@ Sequence< OUString > SAL_CALL x11::Xdnd_dropTarget_getSupportedServiceNames() css::uno::Reference< XInterface > X11SalInstance::CreateClipboard( const Sequence< Any >& arguments ) { - OUString aDisplayName; - Atom nSelection; - - // extract display name from connection argument. An exception is thrown - // by SelectionManager.initialize() if no display connection is given. - if( arguments.getLength() > 0 ) - { - css::uno::Reference< XDisplayConnection > xConn; - arguments.getConstArray()[0] >>= xConn; - - if( xConn.is() ) - { - Any aIdentifier = xConn->getIdentifier(); - aIdentifier >>= aDisplayName; - } + SelectionManager& rManager = SelectionManager::get(); + css::uno::Sequence<css::uno::Any> mgrArgs(1); + mgrArgs[0] <<= Application::GetDisplayConnection(); + rManager.initialize(mgrArgs); + + OUString sel; + if (arguments.getLength() == 0) { + sel = "CLIPBOARD"; + } else if (arguments.getLength() != 1 || !(arguments[0] >>= sel)) { + throw css::lang::IllegalArgumentException( + "bad X11SalInstance::CreateClipboard arguments", + css::uno::Reference<css::uno::XInterface>(), -1); } + Atom nSelection = rManager.getAtom(sel); - SelectionManager& rManager = SelectionManager::get( aDisplayName ); - rManager.initialize( arguments ); - - // check if any other selection than clipboard selection is specified - if( arguments.getLength() > 1 ) - { - OUString aSelectionName; - - arguments.getConstArray()[1] >>= aSelectionName; - nSelection = rManager.getAtom( aSelectionName ); - } - else - { - // default atom is clipboard selection - nSelection = rManager.getAtom( OUString("CLIPBOARD") ); - } - - ::boost::unordered_map< Atom, css::uno::Reference< XClipboard > >& rMap( m_aInstances[ aDisplayName ] ); - ::boost::unordered_map< Atom, css::uno::Reference< XClipboard > >::iterator it = rMap.find( nSelection ); - if( it != rMap.end() ) + ::boost::unordered_map< Atom, css::uno::Reference< XClipboard > >::iterator it = m_aInstances.find( nSelection ); + if( it != m_aInstances.end() ) return it->second; X11Clipboard* pClipboard = new X11Clipboard( rManager, nSelection ); - rMap[ nSelection ] = pClipboard; + m_aInstances[ nSelection ] = pClipboard; return static_cast<OWeakObject*>(pClipboard); } commit b100f3f06be2dd79c8145cdf487901bc5d71b332 Author: Stephan Bergmann <[email protected]> Date: Thu Jul 11 12:40:25 2013 +0200 Simplify support for bitmap depth conversion in X11 clipboard/dnd code ...I see no good reason to make the code from bmpconv.cxx available to vcl/unx/generic/dtrans/ in a complicated way via UNO, instead of calling it there directly. Change-Id: I4f2e53c4610e8e19c96e1230a5c5ef034aab80da diff --git a/include/vcl/salctype.hxx b/include/vcl/salctype.hxx index 4fbb65d..01e1035 100644 --- a/include/vcl/salctype.hxx +++ b/include/vcl/salctype.hxx @@ -20,8 +20,7 @@ #ifndef _SV_SALCTYPE_HXX #define _SV_SALCTYPE_HXX -#include <com/sun/star/script/XInvocation.hpp> -#include <com/sun/star/uno/Reference.hxx> +#include "sal/config.h" #include <vcl/graph.hxx> @@ -61,11 +60,6 @@ typedef sal_uLong (*SALGRFCVTPROC)( void* pInst, sal_uLong nInFormat, void* pInBuffer, sal_uLong nInBufSize, sal_uLong nOutFormat, void** ppOutBuffer ); -namespace vcl -{ -com::sun::star::uno::Reference< com::sun::star::script::XInvocation > createBmpConverter(); -} - #endif // _SV_SALCTYPE_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk index 6216d67..3c56c44 100644 --- a/vcl/Library_vcl.mk +++ b/vcl/Library_vcl.mk @@ -196,7 +196,6 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\ vcl/source/gdi/bmpacc2 \ vcl/source/gdi/bmpacc3 \ vcl/source/gdi/bmpacc \ - vcl/source/gdi/bmpconv \ vcl/source/gdi/bmpfast \ vcl/source/gdi/configsettings \ vcl/source/gdi/cvtgrf \ diff --git a/vcl/source/gdi/bmpconv.cxx b/vcl/source/gdi/bmpconv.cxx deleted file mode 100644 index 24bb159..0000000 --- a/vcl/source/gdi/bmpconv.cxx +++ /dev/null @@ -1,209 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * 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 . - */ - -#include "vcl/bitmap.hxx" -#include "vcl/svapp.hxx" -#include "vcl/salctype.hxx" -#include <osl/mutex.hxx> -#include "tools/stream.hxx" -#include "com/sun/star/script/XInvocation.hpp" -#include "com/sun/star/awt/XBitmap.hpp" -#include "cppuhelper/compbase1.hxx" -#include <vcl/dibtools.hxx> - -using namespace com::sun::star::uno; -using namespace com::sun::star::script; -using namespace com::sun::star::beans; -using namespace com::sun::star::reflection; -using namespace com::sun::star::awt; - - -namespace vcl { - -class BmpTransporter : - public cppu::WeakImplHelper1< com::sun::star::awt::XBitmap > -{ - Sequence<sal_Int8> m_aBM; - com::sun::star::awt::Size m_aSize; -public: - BmpTransporter( const Bitmap& rBM ); - virtual ~BmpTransporter(); - - virtual com::sun::star::awt::Size SAL_CALL getSize() throw(); - virtual Sequence< sal_Int8 > SAL_CALL getDIB() throw(); - virtual Sequence< sal_Int8 > SAL_CALL getMaskDIB() throw(); -}; - -class BmpConverter : - public cppu::WeakImplHelper1< com::sun::star::script::XInvocation > -{ -public: - BmpConverter(); - virtual ~BmpConverter(); - - virtual Reference< XIntrospectionAccess > SAL_CALL getIntrospection() throw(); - virtual void SAL_CALL setValue( const OUString& rProperty, const Any& rValue ) - throw( UnknownPropertyException ); - virtual Any SAL_CALL getValue( const OUString& rProperty ) - throw( UnknownPropertyException ); - virtual sal_Bool SAL_CALL hasMethod( const OUString& rName ) throw(); - virtual sal_Bool SAL_CALL hasProperty( const OUString& rProp ) throw(); - - virtual Any SAL_CALL invoke( const OUString& rFunction, - const Sequence< Any >& rParams, - Sequence< sal_Int16 >& rOutParamIndex, - Sequence< Any >& rOutParam - ) - throw( CannotConvertException, InvocationTargetException ); -}; - -} - -using namespace vcl; - -Reference< XInvocation > vcl::createBmpConverter() -{ - return static_cast<XInvocation*>(new BmpConverter()); -} - -BmpConverter::BmpConverter() -{ -} - -BmpConverter::~BmpConverter() -{ -} - -Reference< XIntrospectionAccess > SAL_CALL BmpConverter::getIntrospection() throw() -{ - return Reference< XIntrospectionAccess >(); -} - -void SAL_CALL BmpConverter::setValue( const OUString&, const Any& ) throw( UnknownPropertyException ) -{ - throw UnknownPropertyException(); -} - -Any SAL_CALL BmpConverter::getValue( const OUString& ) throw( UnknownPropertyException ) -{ - throw UnknownPropertyException(); -} - -sal_Bool SAL_CALL BmpConverter::hasMethod( const OUString& rName ) throw() -{ - return rName.equalsIgnoreAsciiCase( OUString("convert-bitmap-depth") ); -} - -sal_Bool SAL_CALL BmpConverter::hasProperty( const OUString& ) throw() -{ - return sal_False; -} - -Any SAL_CALL BmpConverter::invoke( - const OUString& rFunction, - const Sequence< Any >& rParams, - Sequence< sal_Int16 >&, - Sequence< Any >& ) - throw( CannotConvertException, InvocationTargetException ) -{ - Any aRet; - - if( rFunction.equalsIgnoreAsciiCase( OUString("convert-bitmap-depth") ) ) - { - Reference< XBitmap > xBM; - sal_uInt16 nTargetDepth = 0; - if( rParams.getLength() != 2 ) - throw CannotConvertException(); - - if( ! (rParams.getConstArray()[0] >>= xBM ) || - ! ( rParams.getConstArray()[1] >>= nTargetDepth ) ) - throw CannotConvertException(); - - Sequence< sal_Int8 > aDIB = xBM->getDIB(); - - // call into vcl not thread safe - SolarMutexGuard aGuard; - - SvMemoryStream aStream( aDIB.getArray(), aDIB.getLength(), STREAM_READ | STREAM_WRITE ); - Bitmap aBM; - - ReadDIB(aBM, aStream, true); - - if( nTargetDepth < 4 ) - nTargetDepth = 1; - else if( nTargetDepth < 8 ) - nTargetDepth = 4; - else if( nTargetDepth >8 && nTargetDepth < 24 ) - nTargetDepth = 24; - - if( aBM.GetBitCount() == 24 && nTargetDepth <= 8 ) - aBM.Dither( BMP_DITHER_FLOYD ); - - if( aBM.GetBitCount() != nTargetDepth ) - { - switch( nTargetDepth ) - { - case 1: aBM.Convert( BMP_CONVERSION_1BIT_THRESHOLD );break; - case 4: aBM.ReduceColors( BMP_CONVERSION_4BIT_COLORS );break; - case 8: aBM.ReduceColors( BMP_CONVERSION_8BIT_COLORS );break; - case 24: aBM.Convert( BMP_CONVERSION_24BIT );break; - } - } - xBM = new BmpTransporter( aBM ); - aRet <<= xBM; - } - else - throw InvocationTargetException(); - - return aRet; -} - -BmpTransporter::BmpTransporter( const Bitmap& rBM ) -{ - m_aSize.Width = rBM.GetSizePixel().Width(); - m_aSize.Height = rBM.GetSizePixel().Height(); - - SvMemoryStream aStream; - - WriteDIB(rBM, aStream, false, true); - - m_aBM = Sequence<sal_Int8>(static_cast<const sal_Int8*>(aStream.GetData()), - aStream.GetEndOfData()); -} - -BmpTransporter::~BmpTransporter() -{ -} - -com::sun::star::awt::Size SAL_CALL BmpTransporter::getSize() throw() -{ - return m_aSize; -} - -Sequence< sal_Int8 > SAL_CALL BmpTransporter::getDIB() throw() -{ - return m_aBM; -} - -Sequence< sal_Int8 > SAL_CALL BmpTransporter::getMaskDIB() throw() -{ - return Sequence< sal_Int8 >(); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx index a0de356..dc450e3 100644 --- a/vcl/source/window/window.cxx +++ b/vcl/source/window/window.cxx @@ -43,7 +43,6 @@ #include "vcl/wrkwin.hxx" #include "vcl/wall.hxx" #include "vcl/gradient.hxx" -#include "vcl/salctype.hxx" #include "vcl/button.hxx" #include "vcl/taskpanelist.hxx" #include "vcl/dialog.hxx" @@ -8423,16 +8422,12 @@ uno::Reference< XDragSource > Window::GetDragSource() aDragSourceAL[ 1 ] = makeAny( static_cast<sal_uInt64>( reinterpret_cast<sal_IntPtr>(pEnvData->pView) ) ); aDropTargetAL[ 0 ] = makeAny( static_cast<sal_uInt64>( reinterpret_cast<sal_IntPtr>(pEnvData->pView) ) ); #elif defined UNX - aDropTargetAL.realloc( 3 ); - aDragSourceAL.realloc( 3 ); aDragSourceSN = OUString("com.sun.star.datatransfer.dnd.X11DragSource"); aDropTargetSN = OUString("com.sun.star.datatransfer.dnd.X11DropTarget"); aDragSourceAL[ 0 ] = makeAny( Application::GetDisplayConnection() ); - aDragSourceAL[ 2 ] = makeAny( vcl::createBmpConverter() ); aDropTargetAL[ 0 ] = makeAny( Application::GetDisplayConnection() ); aDropTargetAL[ 1 ] = makeAny( (sal_Size)(pEnvData->aShellWindow) ); - aDropTargetAL[ 2 ] = makeAny( vcl::createBmpConverter() ); #endif if( !aDragSourceSN.isEmpty() ) mpWindowImpl->mpFrameData->mxDragSource.set( @@ -8515,10 +8510,9 @@ uno::Reference< XClipboard > Window::GetPrimarySelection() #if defined(UNX) && !defined(MACOSX) // A hack, making the primary selection available as an instance of // the SystemClipboard service on X11: - css::uno::Sequence<css::uno::Any> args(3); + css::uno::Sequence<css::uno::Any> args(2); args[0] <<= Application::GetDisplayConnection(); args[1] <<= OUString("PRIMARY"); - args[2] <<= vcl::createBmpConverter(); mpWindowImpl->mpFrameData->mxSelection.set( (xContext->getServiceManager()-> createInstanceWithArgumentsAndContext( diff --git a/vcl/unx/generic/dtrans/X11_selection.cxx b/vcl/unx/generic/dtrans/X11_selection.cxx index 871580f..53207ca 100644 --- a/vcl/unx/generic/dtrans/X11_selection.cxx +++ b/vcl/unx/generic/dtrans/X11_selection.cxx @@ -341,12 +341,6 @@ void SelectionManager::initialize( const Sequence< Any >& arguments ) throw (::c m_xDisplayConnection->addEventHandler( Any(), this, ~0 ); } - if( !m_xBitmapConverter.is() ) - { - if( arguments.getLength() > 2 ) - arguments.getConstArray()[2] >>= m_xBitmapConverter; - } - if( ! m_pDisplay ) { OUString aUDisplay; @@ -1496,32 +1490,12 @@ bool SelectionManager::sendData( SelectionAdaptor* pAdaptor, // the pixmap in another thread pPixmap = getPixmapHolder( selection ); // conversion succeeded, so aData contains image/bmp now - if( pPixmap->needsConversion( (const sal_uInt8*)aData.getConstArray() ) - && m_xBitmapConverter.is() ) + if( pPixmap->needsConversion( (const sal_uInt8*)aData.getConstArray() ) ) { -#if OSL_DEBUG_LEVEL > 1 - fprintf( stderr, "trying bitmap conversion\n" ); -#endif - css::uno::Reference<XBitmap> xBM( new BmpTransporter( aData ) ); - Sequence<Any> aArgs(2), aOutArgs; - Sequence<sal_Int16> aOutIndex; - aArgs.getArray()[0] = makeAny( xBM ); - aArgs.getArray()[1] = makeAny( (sal_uInt16)pPixmap->getDepth() ); + SAL_INFO( "vcl", "trying bitmap conversion" ); + int depth = pPixmap->getDepth(); aGuard.clear(); - try - { - Any aResult = - m_xBitmapConverter->invoke( OUString("convert-bitmap-depth"), - aArgs, aOutIndex, aOutArgs ); - if( aResult >>= xBM ) - aData = xBM->getDIB(); - } - catch(...) - { -#if OSL_DEBUG_LEVEL > 1 - fprintf( stderr, "exception in bitmap converter\n" ); -#endif - } + aData = convertBitmapDepth(aData, depth); aGuard.reset(); } // get pixmap again since clearing the guard could have invalidated diff --git a/vcl/unx/generic/dtrans/X11_selection.hxx b/vcl/unx/generic/dtrans/X11_selection.hxx index 84b6c0a..d7948f5 100644 --- a/vcl/unx/generic/dtrans/X11_selection.hxx +++ b/vcl/unx/generic/dtrans/X11_selection.hxx @@ -28,7 +28,6 @@ #include <com/sun/star/awt/XDisplayConnection.hpp> #include <com/sun/star/lang/XInitialization.hpp> #include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/script/XInvocation.hpp> #include <com/sun/star/frame/XDesktop2.hpp> #include <osl/thread.h> @@ -257,8 +256,6 @@ namespace x11 { com::sun::star::uno::Reference< ::com::sun::star::frame::XDesktop2 > m_xDesktop; com::sun::star::uno::Reference< ::com::sun::star::awt::XDisplayConnection > m_xDisplayConnection; - com::sun::star::uno::Reference< com::sun::star::script::XInvocation > - m_xBitmapConverter; sal_Int32 m_nSelectionTimeout; XLIB_Time m_nSelectionTimestamp; diff --git a/vcl/unx/generic/dtrans/bmp.cxx b/vcl/unx/generic/dtrans/bmp.cxx index e7d2d51..06c5748 100644 --- a/vcl/unx/generic/dtrans/bmp.cxx +++ b/vcl/unx/generic/dtrans/bmp.cxx @@ -26,12 +26,13 @@ #include <X11_selection.hxx> #include <unx/x11/xlimits.hxx> + #include <sal/macros.h> +#include <tools/stream.hxx> +#include <vcl/dibtools.hxx> +#include <vcl/svapp.hxx> using namespace x11; -using namespace com::sun::star::uno; -using namespace com::sun::star::script; -using namespace com::sun::star::awt; /* * helper functions @@ -65,45 +66,6 @@ inline sal_uInt16 readLE32( const sal_uInt8* pBuffer ) pBuffer[0]; } - -/* - * BmpTransporter - */ - -BmpTransporter::BmpTransporter( const Sequence<sal_Int8>& rBmp ) : - m_aBM( rBmp ) -{ - const sal_uInt8* pData = (const sal_uInt8*)rBmp.getConstArray(); - - if( pData[0] == 'B' || pData[1] == 'M' ) - { - pData = pData+14; - m_aSize.Width = readLE32( pData+4 ); - m_aSize.Height = readLE32( pData+8 ); - } - else - m_aSize.Width = m_aSize.Height = 0; -} - -BmpTransporter::~BmpTransporter() -{ -} - -com::sun::star::awt::Size SAL_CALL BmpTransporter::getSize() throw() -{ - return m_aSize; -} - -Sequence< sal_Int8 > SAL_CALL BmpTransporter::getDIB() throw() -{ - return m_aBM; -} - -Sequence< sal_Int8 > SAL_CALL BmpTransporter::getMaskDIB() throw() -{ - return Sequence< sal_Int8 >(); -} - /* * scanline helpers */ @@ -729,4 +691,45 @@ Pixmap PixmapHolder::setBitmapData( const sal_uInt8* pData ) return m_aPixmap; } +css::uno::Sequence<sal_Int8> x11::convertBitmapDepth( + css::uno::Sequence<sal_Int8> const & data, int depth) +{ + if (depth < 4) { + depth = 1; + } else if (depth < 8) { + depth = 4; + } else if (depth > 8 && depth < 24) { + depth = 24; + } + SolarMutexGuard g; + SvMemoryStream in( + const_cast<sal_Int8 *>(data.getConstArray()), data.getLength(), + STREAM_READ); + Bitmap bm; + ReadDIB(bm, in, true); + if (bm.GetBitCount() == 24 && depth <= 8) { + bm.Dither(BMP_DITHER_FLOYD); + } + if (bm.GetBitCount() != depth) { + switch (depth) { + case 1: + bm.Convert(BMP_CONVERSION_1BIT_THRESHOLD); + break; + case 4: + bm.ReduceColors(BMP_CONVERSION_4BIT_COLORS); + break; + case 8: + bm.ReduceColors(BMP_CONVERSION_8BIT_COLORS); + break; + case 24: + bm.Convert(BMP_CONVERSION_24BIT); + break; + } + } + SvMemoryStream out; + WriteDIB(bm, out, false, true); + return css::uno::Sequence<sal_Int8>( + static_cast<sal_Int8 const *>(out.GetData()), out.GetEndOfData()); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/unx/generic/dtrans/bmp.hxx b/vcl/unx/generic/dtrans/bmp.hxx index 13d159e..8fb9341 100644 --- a/vcl/unx/generic/dtrans/bmp.hxx +++ b/vcl/unx/generic/dtrans/bmp.hxx @@ -27,11 +27,8 @@ #include <X11/Xutil.h> #include <postx.h> +#include <com/sun/star/uno/Sequence.hxx> #include <sal/types.h> -#include <com/sun/star/awt/XBitmap.hpp> -#include <cppuhelper/compbase1.hxx> - - namespace x11 { @@ -78,19 +75,8 @@ public: int getDepth() const { return m_aInfo.depth; } }; -class BmpTransporter : - public cppu::WeakImplHelper1< com::sun::star::awt::XBitmap > -{ - com::sun::star::uno::Sequence<sal_Int8> m_aBM; - com::sun::star::awt::Size m_aSize; -public: - BmpTransporter( const com::sun::star::uno::Sequence<sal_Int8>& rBmp ); - virtual ~BmpTransporter(); - - virtual com::sun::star::awt::Size SAL_CALL getSize() throw(); - virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getDIB() throw(); - virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getMaskDIB() throw(); -}; +css::uno::Sequence<sal_Int8> convertBitmapDepth( + css::uno::Sequence<sal_Int8> const & data, int depth); } _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
