You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by al...@apache.org on 2013/01/10 18:28:42 UTC

svn commit: r1431512 [1/2] - in /openoffice/trunk/main: automation/source/server/ avmedia/source/win/ basic/source/runtime/ canvas/source/vcl/ chart2/source/controller/main/ drawinglayer/source/processor2d/ drawinglayer/source/tools/ dtrans/source/win3...

Author: alg
Date: Thu Jan 10 17:28:40 2013
New Revision: 1431512

URL: http://svn.apache.org/viewvc?rev=1431512&view=rev
Log:
#121504# Support for alpha channel in clipboard for all systems

Added:
    openoffice/trunk/main/vcl/inc/vcl/dibtools.hxx
      - copied unchanged from r1431306, openoffice/branches/alg/clibboard/main/vcl/inc/vcl/dibtools.hxx
    openoffice/trunk/main/vcl/source/gdi/dibtools.cxx
      - copied unchanged from r1431306, openoffice/branches/alg/clibboard/main/vcl/source/gdi/dibtools.cxx
Removed:
    openoffice/trunk/main/vcl/source/gdi/bitmap2.cxx
Modified:
    openoffice/trunk/main/automation/source/server/statemnt.cxx
    openoffice/trunk/main/avmedia/source/win/framegrabber.cxx
    openoffice/trunk/main/basic/source/runtime/methods.cxx
    openoffice/trunk/main/canvas/source/vcl/devicehelper.cxx
    openoffice/trunk/main/canvas/source/vcl/spritedevicehelper.cxx
    openoffice/trunk/main/chart2/source/controller/main/ChartController_Tools.cxx
    openoffice/trunk/main/chart2/source/controller/main/ChartTransferable.cxx
    openoffice/trunk/main/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx
    openoffice/trunk/main/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
    openoffice/trunk/main/drawinglayer/source/tools/converters.cxx
    openoffice/trunk/main/dtrans/source/win32/dtobj/DOTransferable.cxx
    openoffice/trunk/main/dtrans/source/win32/dtobj/FmtFilter.cxx
    openoffice/trunk/main/dtrans/source/win32/dtobj/FmtFilter.hxx
    openoffice/trunk/main/dtrans/source/win32/dtobj/XTDataObject.cxx
    openoffice/trunk/main/dtrans/source/win32/ftransl/ftransl.cxx
    openoffice/trunk/main/editeng/source/items/bulitem.cxx
    openoffice/trunk/main/extensions/source/scanner/sanedlg.cxx
    openoffice/trunk/main/external/gcc3_specific/makefile.mk
    openoffice/trunk/main/filter/source/graphicfilter/eos2met/eos2met.cxx
    openoffice/trunk/main/filter/source/graphicfilter/ios2met/ios2met.cxx
    openoffice/trunk/main/filter/source/msfilter/msdffimp.cxx
    openoffice/trunk/main/fpicker/source/office/iodlg.cxx
    openoffice/trunk/main/framework/source/fwe/classes/addonsoptions.cxx
    openoffice/trunk/main/framework/source/fwe/classes/imagewrapper.cxx
    openoffice/trunk/main/framework/source/fwe/helper/actiontriggerhelper.cxx
    openoffice/trunk/main/sc/source/filter/excel/xiescher.cxx
    openoffice/trunk/main/sc/source/ui/app/drwtrans.cxx
    openoffice/trunk/main/sc/source/ui/app/transobj.cxx
    openoffice/trunk/main/sc/source/ui/docshell/docsh.cxx
    openoffice/trunk/main/sc/source/ui/inc/viewfunc.hxx
    openoffice/trunk/main/sc/source/ui/view/viewfun3.cxx
    openoffice/trunk/main/sc/source/ui/view/viewfun5.cxx
    openoffice/trunk/main/sc/source/ui/view/viewfun7.cxx
    openoffice/trunk/main/sd/source/ui/app/sdxfer.cxx
    openoffice/trunk/main/sd/source/ui/unoidl/unopage.cxx
    openoffice/trunk/main/sd/source/ui/view/sdview3.cxx
    openoffice/trunk/main/sfx2/source/appl/fileobj.cxx
    openoffice/trunk/main/sfx2/source/appl/linkmgr2.cxx
    openoffice/trunk/main/sfx2/source/dialog/filedlghelper.cxx
    openoffice/trunk/main/sfx2/source/dialog/intro.cxx
    openoffice/trunk/main/sfx2/source/doc/docinf.cxx
    openoffice/trunk/main/sot/inc/sot/formats.hxx
    openoffice/trunk/main/sot/source/base/exchange.cxx
    openoffice/trunk/main/sot/source/base/formats.cxx
    openoffice/trunk/main/svtools/bmpmaker/bmpcore.cxx
    openoffice/trunk/main/svtools/bmpmaker/bmpsum.cxx
    openoffice/trunk/main/svtools/inc/svtools/transfer.hxx
    openoffice/trunk/main/svtools/source/filter/filter.cxx
    openoffice/trunk/main/svtools/source/filter/wmf/emfwr.cxx
    openoffice/trunk/main/svtools/source/filter/wmf/enhwmf.cxx
    openoffice/trunk/main/svtools/source/filter/wmf/winwmf.cxx
    openoffice/trunk/main/svtools/source/filter/wmf/wmfwr.cxx
    openoffice/trunk/main/svtools/source/graphic/graphic.cxx
    openoffice/trunk/main/svtools/source/graphic/provider.cxx
    openoffice/trunk/main/svtools/source/misc/transfer.cxx
    openoffice/trunk/main/svx/inc/svx/xoutbmp.hxx
    openoffice/trunk/main/svx/source/gallery2/galmisc.cxx
    openoffice/trunk/main/svx/source/gallery2/galobj.cxx
    openoffice/trunk/main/svx/source/sdr/overlay/overlaymanagerbuffered.cxx
    openoffice/trunk/main/svx/source/xoutdev/_xoutbmp.cxx
    openoffice/trunk/main/svx/source/xoutdev/xattrbmp.cxx
    openoffice/trunk/main/sw/source/core/view/viewsh.cxx
    openoffice/trunk/main/sw/source/filter/ww1/w1filter.cxx
    openoffice/trunk/main/sw/source/filter/ww8/ww8par.hxx
    openoffice/trunk/main/sw/source/ui/dochdl/swdtflvr.cxx
    openoffice/trunk/main/toolkit/source/awt/vclxbitmap.cxx
    openoffice/trunk/main/toolkit/source/helper/vclunohelper.cxx
    openoffice/trunk/main/vcl/Library_vcl.mk
    openoffice/trunk/main/vcl/Package_inc.mk
    openoffice/trunk/main/vcl/aqua/source/dtrans/DataFlavorMapping.cxx
    openoffice/trunk/main/vcl/aqua/source/dtrans/OSXTransferable.cxx
    openoffice/trunk/main/vcl/aqua/source/dtrans/PictToBmpFlt.cxx
    openoffice/trunk/main/vcl/aqua/source/dtrans/PictToBmpFlt.hxx
    openoffice/trunk/main/vcl/inc/vcl/alpha.hxx
    openoffice/trunk/main/vcl/inc/vcl/bitmap.hxx
    openoffice/trunk/main/vcl/inc/vcl/bitmapex.hxx
    openoffice/trunk/main/vcl/inc/vcl/pngwrite.hxx
    openoffice/trunk/main/vcl/inc/vcl/salbtype.hxx
    openoffice/trunk/main/vcl/inc/vcl/wall.hxx
    openoffice/trunk/main/vcl/source/gdi/animate.cxx
    openoffice/trunk/main/vcl/source/gdi/bitmapex.cxx
    openoffice/trunk/main/vcl/source/gdi/bmpacc2.cxx
    openoffice/trunk/main/vcl/source/gdi/bmpconv.cxx
    openoffice/trunk/main/vcl/source/gdi/cvtsvm.cxx
    openoffice/trunk/main/vcl/source/gdi/impgraph.cxx
    openoffice/trunk/main/vcl/source/gdi/impimagetree.cxx
    openoffice/trunk/main/vcl/source/gdi/metaact.cxx
    openoffice/trunk/main/vcl/source/gdi/pdfwriter_impl2.cxx
    openoffice/trunk/main/vcl/source/gdi/wall.cxx

Modified: openoffice/trunk/main/automation/source/server/statemnt.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/automation/source/server/statemnt.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/automation/source/server/statemnt.cxx (original)
+++ openoffice/trunk/main/automation/source/server/statemnt.cxx Thu Jan 10 17:28:40 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_automation.hxx"
 #include <com/sun/star/frame/XFramesSupplier.hpp>
@@ -31,39 +29,19 @@
 #include <comphelper/uieventslogger.hxx>
 
 #include <tools/wintypes.hxx>
-#ifndef _DIALOG_HXX //autogen
 #include <vcl/dialog.hxx>
-#endif
-#ifndef _BUTTON_HXX //autogen
 #include <vcl/button.hxx>
-#endif
 #include <vcl/menubtn.hxx>
 #include <svtools/svtreebx.hxx>
 #include <svtools/brwbox.hxx>
-#ifndef _MSGBOX_HXX //autogen
 #include <vcl/msgbox.hxx>
-#endif
-#ifndef _DOCKWIN_HXX //autogen
 #include <vcl/dockwin.hxx>
-#endif
-#ifndef _FLOATWIN_HXX //autogen
 #include <vcl/floatwin.hxx>
-#endif
-#ifndef _LSTBOX_HXX //autogen
 #include <vcl/lstbox.hxx>
-#endif
-#ifndef _COMBOBOX_HXX //autogen
 #include <vcl/combobox.hxx>
-#endif
-#ifndef _MOREBTN_HXX //autogen
 #include <vcl/morebtn.hxx>
-#endif
-#ifndef _FIELD_HXX //autogen
 #include <vcl/field.hxx>
-#endif
-#ifndef _TOOLBOX_HXX //autogen
 #include <vcl/toolbox.hxx>
-#endif
 #include <vcl/tabctrl.hxx>
 #include <vcl/tabpage.hxx>
 #include <vcl/menu.hxx>
@@ -81,7 +59,6 @@
 #include <svtools/table/tablecontrolinterface.hxx>
 #include <svl/poolitem.hxx>
 #include <svtools/extensionlistbox.hxx>
-// Hat keinen Includeschutz
 #include <svtools/svtdata.hxx>
 #include <tools/time.hxx>
 #include <svtools/stringtransfer.hxx>
@@ -89,40 +66,29 @@
 #include <tools/fsys.hxx>
 #include <svl/stritem.hxx>
 #include <svtools/ttprops.hxx>
-#ifndef _BASIC_TTRESHLP_HXX
 #include <basic/ttstrhlp.hxx>
-#endif
 #include <basic/dispdefs.hxx>
 #include <basic/sbuno.hxx>
 #include <vos/socket.hxx>
 #include <svl/pickerhistory.hxx>
 #include <com/sun/star/util/XCancellable.hpp>
-
 #include <sot/storage.hxx>
 #include <sot/storinfo.hxx>
 #include "statemnt.hxx"
 #include "scmdstrm.hxx"
-
-#ifndef _RETSRTM_HXX
 #include "retstrm.hxx"
-#endif
-
 #if OSL_DEBUG_LEVEL > 1
 #include "editwin.hxx"
 #endif
 #include "rcontrol.hxx"
 #include <automation/communi.hxx>
 #include "testtool.hxx"
-
 #include "profiler.hxx"
-
 #include "recorder.hxx"
-
 #include "testtool.hrc"
 #include <basic/svtmsg.hrc>
-
 #include <algorithm>
-
+#include <vcl/dibtools.hxx>
 
 using namespace com::sun::star::frame;
 using namespace com::sun::star::uno;
@@ -3932,7 +3898,7 @@ sal_Bool StatementControl::HandleVisible
 
 				SvFileStream fOut;
 				fOut.Open(aString1,STREAM_STD_WRITE);
-				aBmp.Write(fOut);
+				WriteDIB(aBmp, fOut, true, true);
 				if ( fOut.GetError() )
 					ReportError( aUId, GEN_RES_STR1( S_ERROR_SAVING_IMAGE, UniString::CreateFromInt32( fOut.GetError() ) ) );
 				fOut.Close();

Modified: openoffice/trunk/main/avmedia/source/win/framegrabber.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/avmedia/source/win/framegrabber.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/avmedia/source/win/framegrabber.cxx (original)
+++ openoffice/trunk/main/avmedia/source/win/framegrabber.cxx Thu Jan 10 17:28:40 2013
@@ -47,6 +47,7 @@
 #include <tools/stream.hxx>
 #include <vcl/graph.hxx>
 #include <unotools/localfilehelper.hxx>
+#include <vcl/dibtools.hxx>
 
 #define AVMEDIA_WIN_FRAMEGRABBER_IMPLEMENTATIONNAME "com.sun.star.comp.avmedia.FrameGrabber_DirectX"
 #define AVMEDIA_WIN_FRAMEGRABBER_SERVICENAME "com.sun.star.media.FrameGrabber_DirectX"
@@ -191,7 +192,7 @@ uno::Reference< graphic::XGraphic > SAL_
                         SvMemoryStream  aMemStm( pBuffer, nSize, STREAM_READ | STREAM_WRITE );
                         Bitmap          aBmp;
                         
-                        if( aBmp.Read( aMemStm, false ) && !aBmp.IsEmpty() )
+                        if( ReadDIB(aBmp, aMemStm, false ) && !aBmp.IsEmpty() )
                         {
                             const Graphic aGraphic( aBmp );
                             xRet = aGraphic.GetXGraphic();

Modified: openoffice/trunk/main/basic/source/runtime/methods.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/basic/source/runtime/methods.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/basic/source/runtime/methods.cxx (original)
+++ openoffice/trunk/main/basic/source/runtime/methods.cxx Thu Jan 10 17:28:40 2013
@@ -19,17 +19,12 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_basic.hxx"
 
-
 #include <tools/date.hxx>
 #include <basic/sbxvar.hxx>
-#ifndef _VOS_PROCESS_HXX
 #include <vos/process.hxx>
-#endif
 #include <vcl/svapp.hxx>
 #include <vcl/settings.hxx>
 #include <vcl/sound.hxx>
@@ -44,6 +39,7 @@
 #include <unotools/ucbstreamhelper.hxx>
 #include <tools/wldcrd.hxx>
 #include <i18npool/lang.h>
+#include <vcl/dibtools.hxx>
 
 #include "runtime.hxx"
 #include "sbunoobj.hxx"
@@ -4189,8 +4185,8 @@ RTLFUNC(LoadPicture)
 	if( pStream != NULL )
 	{
 		Bitmap aBmp;
-		*pStream >> aBmp;
-		Graphic aGraphic( aBmp );
+        ReadDIB(aBmp, *pStream, true);
+		Graphic aGraphic(aBmp);
 
 		SbxObjectRef xRef = new SbStdPicture;
 		((SbStdPicture*)(SbxObject*)xRef)->SetGraphic( aGraphic );

Modified: openoffice/trunk/main/canvas/source/vcl/devicehelper.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/canvas/source/vcl/devicehelper.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/canvas/source/vcl/devicehelper.cxx (original)
+++ openoffice/trunk/main/canvas/source/vcl/devicehelper.cxx Thu Jan 10 17:28:40 2013
@@ -19,27 +19,24 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_canvas.hxx"
 
 #include <canvas/debug.hxx>
 #include <tools/diagnose_ex.h>
 #include <canvas/canvastools.hxx>
-
 #include <rtl/instance.hxx>
 #include <toolkit/helper/vclunohelper.hxx>
 #include <vcl/canvastools.hxx>
 #include <basegfx/tools/canvastools.hxx>
 #include <basegfx/tools/unopolypolygon.hxx>
+#include <vcl/dibtools.hxx>
 
 #include "devicehelper.hxx"
 #include "spritecanvas.hxx"
 #include "spritecanvashelper.hxx"
 #include "canvasbitmap.hxx"
 
-
 using namespace ::com::sun::star;
 
 namespace vclcanvas
@@ -227,8 +224,7 @@ namespace vclcanvas
             OutputDevice& rOutDev = mpOutDev->getOutDev();
             bool bOldMap( rOutDev.IsMapModeEnabled() );
             rOutDev.EnableMapMode( sal_False );
-            aStream << rOutDev.GetBitmap(aEmptyPoint,
-                                         rOutDev.GetOutputSizePixel());
+            WriteDIB(rOutDev.GetBitmap(aEmptyPoint, rOutDev.GetOutputSizePixel()), aStream, false, true);
             rOutDev.EnableMapMode( bOldMap );
 
             ++nFilePostfixCount;

Modified: openoffice/trunk/main/canvas/source/vcl/spritedevicehelper.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/canvas/source/vcl/spritedevicehelper.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/canvas/source/vcl/spritedevicehelper.cxx (original)
+++ openoffice/trunk/main/canvas/source/vcl/spritedevicehelper.cxx Thu Jan 10 17:28:40 2013
@@ -19,24 +19,21 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_canvas.hxx"
 
 #include <canvas/debug.hxx>
 #include <canvas/canvastools.hxx>
-
 #include <toolkit/helper/vclunohelper.hxx>
 #include <vcl/canvastools.hxx>
 #include <basegfx/tools/canvastools.hxx>
+#include <vcl/dibtools.hxx>
 
 #include "spritedevicehelper.hxx"
 #include "spritecanvas.hxx"
 #include "spritecanvashelper.hxx"
 #include "canvasbitmap.hxx"
 
-
 using namespace ::com::sun::star;
 
 namespace vclcanvas
@@ -144,8 +141,7 @@ namespace vclcanvas
                 
             const ::Point aEmptyPoint;
             mpBackBuffer->getOutDev().EnableMapMode( sal_False );
-            aStream << mpBackBuffer->getOutDev().GetBitmap(aEmptyPoint,
-                                                            mpBackBuffer->getOutDev().GetOutputSizePixel());
+            WriteDIB(mpBackBuffer->getOutDev().GetBitmap(aEmptyPoint, mpBackBuffer->getOutDev().GetOutputSizePixel()), aStream, false, true);
         }
 
         ++nFilePostfixCount;

Modified: openoffice/trunk/main/chart2/source/controller/main/ChartController_Tools.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/chart2/source/controller/main/ChartController_Tools.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/chart2/source/controller/main/ChartController_Tools.cxx (original)
+++ openoffice/trunk/main/chart2/source/controller/main/ChartController_Tools.cxx Thu Jan 10 17:28:40 2013
@@ -340,9 +340,9 @@ void ChartController::executeDispatch_Pa
             else if( aDataHelper.HasFormat( FORMAT_BITMAP ))
             {
                 // bitmap (non-graphic-manager)
-                Bitmap aBmp;
-                if( aDataHelper.GetBitmap( FORMAT_BITMAP, aBmp ))
-                    aGraphic = Graphic( aBmp );
+                BitmapEx aBmpEx;
+                if( aDataHelper.GetBitmapEx( FORMAT_BITMAP, aBmpEx ))
+                    aGraphic = Graphic( aBmpEx );
             }
             else if( aDataHelper.HasFormat( FORMAT_STRING ))
             {

Modified: openoffice/trunk/main/chart2/source/controller/main/ChartTransferable.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/chart2/source/controller/main/ChartTransferable.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/chart2/source/controller/main/ChartTransferable.cxx (original)
+++ openoffice/trunk/main/chart2/source/controller/main/ChartTransferable.cxx Thu Jan 10 17:28:40 2013
@@ -101,7 +101,7 @@ sal_Bool ChartTransferable::GetData( con
         else if( nFormat == FORMAT_BITMAP )
         {
             Graphic aGraphic( m_xMetaFileGraphic );
-            bResult = SetBitmap( aGraphic.GetBitmap(), rFlavor );
+            bResult = SetBitmapEx( aGraphic.GetBitmapEx(), rFlavor );
         }
     }
 

Modified: openoffice/trunk/main/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx (original)
+++ openoffice/trunk/main/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx Thu Jan 10 17:28:40 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_drawinglayer.hxx"
 
@@ -32,6 +30,7 @@
 #include <vcl/timer.hxx>
 #include <comphelper/broadcasthelper.hxx>
 #include <vcl/lazydelete.hxx>
+#include <vcl/dibtools.hxx>
 
 //////////////////////////////////////////////////////////////////////////////
 // buffered VDev usage
@@ -299,7 +298,7 @@ namespace drawinglayer
             if(bDoSaveForVisualControl)
             {
                 SvFileStream aNew((const String&)String(ByteString( "c:\\content.bmp" ), RTL_TEXTENCODING_UTF8), STREAM_WRITE|STREAM_TRUNC);
-                aNew << aContent;
+                WriteDIB(aContent, aNew, false, true);
             }
         
             if(mpAlpha)
@@ -310,7 +309,7 @@ namespace drawinglayer
                 if(bDoSaveForVisualControl)
                 {
                     SvFileStream aNew((const String&)String(ByteString( "c:\\transparence.bmp" ), RTL_TEXTENCODING_UTF8), STREAM_WRITE|STREAM_TRUNC);
-                    aNew << aAlphaMask.GetBitmap();
+                    WriteDIB(aAlphaMask.GetBitmap(), aNew, false, true);
                 }
 
                 mrOutDev.DrawBitmapEx(maDestPixel.TopLeft(), BitmapEx(aContent, aAlphaMask));
@@ -323,7 +322,7 @@ namespace drawinglayer
                 if(bDoSaveForVisualControl)
                 {
                     SvFileStream aNew((const String&)String(ByteString( "c:\\mask.bmp" ), RTL_TEXTENCODING_UTF8), STREAM_WRITE|STREAM_TRUNC);
-                    aNew << aMask;
+                    WriteDIB(aMask, aNew, false, true);
                 }
 
                 mrOutDev.DrawBitmapEx(maDestPixel.TopLeft(), BitmapEx(aContent, aMask));

Modified: openoffice/trunk/main/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx (original)
+++ openoffice/trunk/main/drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx Thu Jan 10 17:28:40 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_drawinglayer.hxx"
 
@@ -60,6 +58,7 @@
 #include <drawinglayer/primitive2d/pagepreviewprimitive2d.hxx>
 #include <drawinglayer/primitive2d/epsprimitive2d.hxx>
 #include <basegfx/polygon/b2dlinegeometry.hxx>
+#include <vcl/dibtools.hxx>
 
 //////////////////////////////////////////////////////////////////////////////
 // for PDFExtOutDevData Graphic support
@@ -2041,7 +2040,8 @@ namespace drawinglayer
 			                    if(bDoSaveForVisualControl)
 			                    {
 				                    SvFileStream aNew(String(ByteString( "c:\\test.bmp" ), RTL_TEXTENCODING_UTF8), STREAM_WRITE|STREAM_TRUNC);
-				                    aNew << aBmContent;
+
+                                    WriteDIB(aBmContent, aNew, false, true);
 			                    }
 #endif
 

Modified: openoffice/trunk/main/drawinglayer/source/tools/converters.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/drawinglayer/source/tools/converters.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/drawinglayer/source/tools/converters.cxx (original)
+++ openoffice/trunk/main/drawinglayer/source/tools/converters.cxx Thu Jan 10 17:28:40 2013
@@ -32,6 +32,7 @@
 
 #ifdef DBG_UTIL
 #include <tools/stream.hxx>
+#include <vcl/pngwrite.hxx>
 #endif
 
 //////////////////////////////////////////////////////////////////////////////
@@ -129,7 +130,8 @@ namespace drawinglayer
             if(bDoSaveForVisualControl)
             {
                 SvFileStream aNew((const String&)String(ByteString( "c:\\test.png" ), RTL_TEXTENCODING_UTF8), STREAM_WRITE|STREAM_TRUNC);
-                aNew << aRetval;
+                ::vcl::PNGWriter aPNGWriter(aRetval);
+                aPNGWriter.Write(aNew);
             }
 #endif
 

Modified: openoffice/trunk/main/dtrans/source/win32/dtobj/DOTransferable.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/dtrans/source/win32/dtobj/DOTransferable.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/dtrans/source/win32/dtobj/DOTransferable.cxx (original)
+++ openoffice/trunk/main/dtrans/source/win32/dtobj/DOTransferable.cxx Thu Jan 10 17:28:40 2013
@@ -358,10 +358,14 @@ CDOTransferable::ByteSequence_t SAL_CALL
 			clipDataToByteStream( aFormatEtc.getClipformat( ), stgmedium, byteStream );
 			
 			// format conversion if necessary
-			if ( CF_DIB == aFormatEtc.getClipformat() )
-				byteStream = WinDIBToOOBMP( byteStream );
-			else if ( CF_METAFILEPICT == aFormatEtc.getClipformat() )
-				byteStream = WinMFPictToOOMFPict( byteStream );			
+			if(CF_DIBV5 == aFormatEtc.getClipformat() || CF_DIB == aFormatEtc.getClipformat())
+            {
+				byteStream = WinDIBToOOBMP(byteStream);
+            }
+			else if(CF_METAFILEPICT == aFormatEtc.getClipformat())
+            {
+				byteStream = WinMFPictToOOMFPict(byteStream);
+            }
 		}
 
 		ReleaseStgMedium( &stgmedium );

Modified: openoffice/trunk/main/dtrans/source/win32/dtobj/FmtFilter.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/dtrans/source/win32/dtobj/FmtFilter.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/dtrans/source/win32/dtobj/FmtFilter.cxx (original)
+++ openoffice/trunk/main/dtrans/source/win32/dtobj/FmtFilter.cxx Thu Jan 10 17:28:40 2013
@@ -195,30 +195,33 @@ HENHMETAFILE SAL_CALL OOMFPictToWinENHMF
 
 Sequence< sal_Int8 > SAL_CALL WinDIBToOOBMP( const Sequence< sal_Int8 >& aWinDIB )
 {
-	OSL_ASSERT( aWinDIB.getLength( ) > sizeof( BITMAPINFOHEADER ) );
-	
-	Sequence< sal_Int8 > ooBmpStream;
+    OSL_ENSURE(aWinDIB.getLength() > sizeof(BITMAPINFOHEADER), "CF_DIBV5/CF_DIB too small (!)");
+    Sequence< sal_Int8 > ooBmpStream;
 
-	ooBmpStream.realloc( aWinDIB.getLength( ) + sizeof(BITMAPFILEHEADER) );
-		
-	const BITMAPINFOHEADER	*pBmpInfoHdr = (const BITMAPINFOHEADER*)aWinDIB.getConstArray();
-	BITMAPFILEHEADER		*pBmpFileHdr = reinterpret_cast< BITMAPFILEHEADER* >( ooBmpStream.getArray() );
-	DWORD					nOffset      = sizeof( BITMAPFILEHEADER ) + sizeof( BITMAPINFOHEADER );
-
-	rtl_copyMemory( pBmpFileHdr + 1, pBmpInfoHdr, aWinDIB.getLength( ) );
-
-	if( pBmpInfoHdr->biBitCount <= 8 )
-		nOffset += ( pBmpInfoHdr->biClrUsed ? pBmpInfoHdr->biClrUsed : ( 1 << pBmpInfoHdr->biBitCount ) ) << 2;
-	else if( ( BI_BITFIELDS == pBmpInfoHdr->biCompression ) && ( ( 16 == pBmpInfoHdr->biBitCount ) || ( 32 == pBmpInfoHdr->biBitCount ) ) )
-		nOffset += 12;
-		
-	pBmpFileHdr->bfType      = 'MB';
-	pBmpFileHdr->bfSize      = 0; // maybe: nMemSize + sizeof(BITMAPFILEHEADER)
-	pBmpFileHdr->bfReserved1 = 0;
-	pBmpFileHdr->bfReserved2 = 0;
-	pBmpFileHdr->bfOffBits   = nOffset;	
+    ooBmpStream.realloc(aWinDIB.getLength( ) + sizeof(BITMAPFILEHEADER));
+    const BITMAPINFOHEADER* pBmpInfoHdr = reinterpret_cast< const BITMAPINFOHEADER* >(aWinDIB.getConstArray());
+    BITMAPFILEHEADER* pBmpFileHdr = reinterpret_cast< BITMAPFILEHEADER* >(ooBmpStream.getArray());
+    const DWORD nSizeInfoOrV5(pBmpInfoHdr->biSize > sizeof(BITMAPINFOHEADER) ? sizeof(BITMAPV5HEADER) : sizeof(BITMAPINFOHEADER));
+    DWORD nOffset(sizeof(BITMAPFILEHEADER) + nSizeInfoOrV5);
 
-	return ooBmpStream;
+    rtl_copyMemory(pBmpFileHdr + 1, pBmpInfoHdr, aWinDIB.getLength());
+
+    if(pBmpInfoHdr->biBitCount <= 8)
+    {
+        nOffset += (pBmpInfoHdr->biClrUsed ? pBmpInfoHdr->biClrUsed : (1 << pBmpInfoHdr->biBitCount)) << 2;
+    }
+    else if((BI_BITFIELDS == pBmpInfoHdr->biCompression ) && ((16 == pBmpInfoHdr->biBitCount ) || (32 == pBmpInfoHdr->biBitCount )))
+    {
+        nOffset += 12;
+    }
+
+    pBmpFileHdr->bfType = 'MB';
+    pBmpFileHdr->bfSize = 0; // maybe: nMemSize + sizeof(BITMAPFILEHEADER)
+    pBmpFileHdr->bfReserved1 = 0;
+    pBmpFileHdr->bfReserved2 = 0;
+    pBmpFileHdr->bfOffBits = nOffset;	
+
+    return ooBmpStream;
 }
 
 //------------------------------------------------------------------------
@@ -227,9 +230,6 @@ Sequence< sal_Int8 > SAL_CALL WinDIBToOO
 
 Sequence< sal_Int8 > SAL_CALL OOBmpToWinDIB( Sequence< sal_Int8 >& aOOBmp )
 {
-	OSL_ASSERT( aOOBmp.getLength( ) > 
-		        ( sizeof( BITMAPFILEHEADER ) + sizeof( BITMAPINFOHEADER ) ) );
-
 	Sequence< sal_Int8 > winDIBStream( aOOBmp.getLength( ) - sizeof( BITMAPFILEHEADER ) );
 
 	rtl_copyMemory( winDIBStream.getArray( ), 

Modified: openoffice/trunk/main/dtrans/source/win32/dtobj/FmtFilter.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/dtrans/source/win32/dtobj/FmtFilter.hxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/dtrans/source/win32/dtobj/FmtFilter.hxx (original)
+++ openoffice/trunk/main/dtrans/source/win32/dtobj/FmtFilter.hxx Thu Jan 10 17:28:40 2013
@@ -70,6 +70,8 @@ com::sun::star::uno::Sequence< sal_Int8 
 /*------------------------------------------------------------------------
 	input:
 	aOOBmp - sequence of bytes containing a openoffice bitmap
+    May contain CF_DIBV5 or CF_DIB, but removing the BITMAPFILEHEADER
+    is always the same size
 ------------------------------------------------------------------------*/
 com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL OOBmpToWinDIB( com::sun::star::uno::Sequence< sal_Int8 >& aOOBmp );
 

Modified: openoffice/trunk/main/dtrans/source/win32/dtobj/XTDataObject.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/dtrans/source/win32/dtobj/XTDataObject.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/dtrans/source/win32/dtobj/XTDataObject.cxx (original)
+++ openoffice/trunk/main/dtrans/source/win32/dtobj/XTDataObject.cxx Thu Jan 10 17:28:40 2013
@@ -307,8 +307,22 @@ void SAL_CALL CXTDataObject::renderAnyDa
 		nRequiredMemSize = sizeof( sal_Int8 ) * clipDataStream.getLength( ) + 1;
 
 	// prepare data for transmision
-	if ( CF_DIB == fetc.cfFormat )
-		clipDataStream = OOBmpToWinDIB( clipDataStream );
+	if ( CF_DIBV5 == fetc.cfFormat || CF_DIB == fetc.cfFormat )
+    {
+#ifdef DBG_UTIL
+        if(CF_DIBV5 == fetc.cfFormat)
+        {
+            OSL_ENSURE(clipDataStream.getLength( ) > (sizeof(BITMAPFILEHEADER) + sizeof(BITMAPV5HEADER)), "Wrong size on CF_DIBV5 data (!)");
+        }
+        else // CF_DIB == fetc.cfFormat
+        {
+            OSL_ENSURE(clipDataStream.getLength( ) > (sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER)), "Wrong size on CF_DIB data (!)");
+        }
+#endif
+
+        // remove BITMAPFILEHEADER
+        clipDataStream = OOBmpToWinDIB( clipDataStream );
+    }
 
 	if ( CF_METAFILEPICT == fetc.cfFormat )
 	{

Modified: openoffice/trunk/main/dtrans/source/win32/ftransl/ftransl.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/dtrans/source/win32/ftransl/ftransl.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/dtrans/source/win32/ftransl/ftransl.cxx (original)
+++ openoffice/trunk/main/dtrans/source/win32/ftransl/ftransl.cxx Thu Jan 10 17:28:40 2013
@@ -276,6 +276,7 @@ void SAL_CALL CDataFormatTranslator::ini
     //SOT_FORMATSTR_ID_DIF
 	m_TranslTable.push_back(FormatEntry("application/x-openoffice-dif;windows_formatname=\"DIF\"", "DIF", "DIF", CF_DIF, CPPUTYPE_DEFAULT)); 
 	// SOT_FORMAT_BITMAP
+	m_TranslTable.push_back(FormatEntry("application/x-openoffice-bitmap;windows_formatname=\"Bitmap\"", "Bitmap", "Bitmap", CF_DIBV5, CPPUTYPE_DEFAULT));
 	m_TranslTable.push_back(FormatEntry("application/x-openoffice-bitmap;windows_formatname=\"Bitmap\"", "Bitmap", "Bitmap", CF_DIB, CPPUTYPE_DEFAULT));
 	m_TranslTable.push_back(FormatEntry("application/x-openoffice-bitmap;windows_formatname=\"Bitmap\"", "Bitmap", "Bitmap", CF_BITMAP, CPPUTYPE_DEFAULT));
 	// SOT_FORMAT_STRING	
@@ -507,6 +508,8 @@ void SAL_CALL CDataFormatTranslator::ini
 	m_TranslTable.push_back(FormatEntry("application/vnd.sun.xml.dialog", "Dialog 6.0", NULL, CF_INVALID, CPPUTYPE_DEFAULT));
 	//SOT_FORMATSTR_ID_BMP
 	m_TranslTable.push_back(FormatEntry("image/bmp", "Windows Bitmap", NULL, CF_INVALID, CPPUTYPE_DEFAULT));
+	//SOT_FORMATSTR_ID_PNG
+	m_TranslTable.push_back(FormatEntry("image/png", "PNG", NULL, CF_INVALID, CPPUTYPE_DEFAULT));
 	//SOT_FORMATSTR_ID_DUMMY3
 	m_TranslTable.push_back(FormatEntry("application/x-openoffice-dummy3;windows_formatname=\"SO_DUMMYFORMAT_3\"", "SO_DUMMYFORMAT_3", NULL, CF_INVALID, CPPUTYPE_DEFAULT));
 	//SOT_FORMATSTR_ID_DUMMY4

Modified: openoffice/trunk/main/editeng/source/items/bulitem.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/editeng/source/items/bulitem.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/editeng/source/items/bulitem.cxx (original)
+++ openoffice/trunk/main/editeng/source/items/bulitem.cxx Thu Jan 10 17:28:40 2013
@@ -19,22 +19,16 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_editeng.hxx"
 
-// include ---------------------------------------------------------------
 #include <tools/stream.hxx>
 #include <vcl/outdev.hxx>
-
 #define _SVX_BULITEM_CXX
-
 #include <editeng/bulitem.hxx>
 #include <editeng/editrids.hrc>
-
-// #90477#
 #include <tools/tenccvt.hxx>
+#include <vcl/dibtools.hxx>
 
 #define BULITEM_VERSION		((sal_uInt16)2)
 
@@ -190,8 +184,9 @@ SvxBulletItem::SvxBulletItem( SvStream& 
         // #69345# Errorcode beim Bitmap lesen ignorieren,
 		// siehe Kommentar #67581# in SvxBulletItem::Store()
 		sal_Bool bOldError = rStrm.GetError() ? sal_True : sal_False;
-		rStrm >> aBmp;
-		if ( !bOldError && rStrm.GetError() )
+        ReadDIB(aBmp, rStrm, true);
+
+        if ( !bOldError && rStrm.GetError() )
 		{
 			rStrm.ResetError();
 			// #71493# Keine Warnung: Das BulletItem interessiert seit 5.0 im Dateiformat nicht mehr.
@@ -395,7 +390,9 @@ SvStream& SvxBulletItem::Store( SvStream
 		const Bitmap aBmp( pGraphicObject->GetGraphic().GetBitmap() );
 		sal_uLong nBytes = aBmp.GetSizeBytes();
 		if ( nBytes < sal_uLong(0xFF00*nFac) )
-			rStrm << aBmp;
+        {
+            WriteDIB(aBmp, rStrm, false, true);
+        }
 
 		sal_uLong nEnd = rStrm.Tell();
 		// #67581# Item darf mit Overhead nicht mehr als 64K schreiben,

Modified: openoffice/trunk/main/extensions/source/scanner/sanedlg.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/extensions/source/scanner/sanedlg.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/extensions/source/scanner/sanedlg.cxx (original)
+++ openoffice/trunk/main/extensions/source/scanner/sanedlg.cxx Thu Jan 10 17:28:40 2013
@@ -19,20 +19,18 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_extensions.hxx"
 
 #include <stdio.h>
 #include <stdlib.h>
 #include <tools/config.hxx>
-
 #include <vcl/msgbox.hxx>
 #include <sanedlg.hxx>
 #include <sanedlg.hrc>
 #include <grid.hxx>
 #include <math.h>
+#include <vcl/dibtools.hxx>
 
 #define USE_SAVE_STATE
 #undef  SAVE_ALL_STATES
@@ -732,7 +730,7 @@ void SaneDlg::AcquirePreview()
 		fprintf( stderr, "Previewbitmapstream contains %d bytes\n", (int)aTransporter.getStream().Tell() );
 #endif
 		aTransporter.getStream().Seek( STREAM_SEEK_TO_BEGIN );
-		maPreviewBitmap.Read( aTransporter.getStream(), sal_True );
+        ReadDIB(maPreviewBitmap, aTransporter.getStream(), true);
 	}
 
 	SetAdjustedNumericalValue( "resolution", fResl );

Modified: openoffice/trunk/main/external/gcc3_specific/makefile.mk
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/external/gcc3_specific/makefile.mk?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/external/gcc3_specific/makefile.mk (original)
+++ openoffice/trunk/main/external/gcc3_specific/makefile.mk Thu Jan 10 17:28:40 2013
@@ -27,6 +27,8 @@ TARGET=gcc3_specific
 # ------------------------------------------------------------------
 
 
+.IF "$(BUILD_SPECIAL)"==""
+
 .IF "$(GUI)" == "WNT"
 
 .IF "$(COM)" == "GCC"
@@ -79,6 +81,7 @@ $(LB)$/libgcc_s.so.$(SHORTSTDC3) :
 .ENDIF 
 
 .ENDIF
+.ENDIF			# "$(BUILD_SPECIAL)"==""
 
 
 .INCLUDE: target.mk

Modified: openoffice/trunk/main/filter/source/graphicfilter/eos2met/eos2met.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/filter/source/graphicfilter/eos2met/eos2met.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/filter/source/graphicfilter/eos2met/eos2met.cxx (original)
+++ openoffice/trunk/main/filter/source/graphicfilter/eos2met/eos2met.cxx Thu Jan 10 17:28:40 2013
@@ -19,13 +19,10 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_filter.hxx"
 
 #include <svtools/fltcall.hxx>
-
 #include <math.h>
 #include <tools/stream.hxx>
 #include <tools/bigint.hxx>
@@ -42,6 +39,7 @@
 #include <vcl/msgbox.hxx>
 #include <svl/solar.hrc>
 #include <vcl/gdimetafiletools.hxx>
+#include <vcl/dibtools.hxx>
 
 // -----------------------------Feld-Typen-------------------------------
 
@@ -569,7 +567,7 @@ void METWriter::WriteImageObject(const B
 	WriteFieldId(nActBitmapId);
 
 	// Windows-BMP-Datei erzeugen:
-	aTemp << rBitmap;
+    WriteDIB(rBitmap, aTemp, false, true);
 
 	// Header der Windows-BMP-Datei einlesen:
 	aTemp.SetNumberFormatInt(NUMBERFORMAT_INT_LITTLEENDIAN);

Modified: openoffice/trunk/main/filter/source/graphicfilter/ios2met/ios2met.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/filter/source/graphicfilter/ios2met/ios2met.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/filter/source/graphicfilter/ios2met/ios2met.cxx (original)
+++ openoffice/trunk/main/filter/source/graphicfilter/ios2met/ios2met.cxx Thu Jan 10 17:28:40 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_filter.hxx"
 
@@ -29,7 +27,7 @@
 #include <vcl/virdev.hxx>
 #include <vcl/lineinfo.hxx>
 #include <svtools/fltcall.hxx>
-
+#include <vcl/dibtools.hxx>
 #include <math.h>
 
 // MT: NOOLDSV, someone should change the code...
@@ -2392,7 +2390,7 @@ void OS2METReader::ReadField(sal_uInt16 
 			}
 			pBitmapList->pBMP->Seek(0);
 
-			pBitmapList->aBitmap.Read( *( pBitmapList->pBMP ), sal_False );
+			ReadDIB(pBitmapList->aBitmap, *(pBitmapList->pBMP), false);
 
 			if (pBitmapList->pBMP->GetError()!=0) {
 				pOS2MET->SetError(SVSTREAM_FILEFORMAT_ERROR);

Modified: openoffice/trunk/main/filter/source/msfilter/msdffimp.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/filter/source/msfilter/msdffimp.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/filter/source/msfilter/msdffimp.cxx (original)
+++ openoffice/trunk/main/filter/source/msfilter/msdffimp.cxx Thu Jan 10 17:28:40 2013
@@ -140,6 +140,7 @@ using namespace vos;
 #include <com/sun/star/beans/PropertyValues.hpp>
 #include <com/sun/star/drawing/ProjectionMode.hpp>
 #include "svx/EnhancedCustomShape2d.hxx"
+#include <vcl/dibtools.hxx>
 
 using namespace ::com::sun::star    ;
 using namespace ::com::sun::star::drawing;
@@ -6650,7 +6651,7 @@ sal_Bool SvxMSDffManager::GetBLIPDirect(
 		if( ( nInst & 0xFFFE ) == 0x7A8 )
 		{	// DIBs direkt holen
 			Bitmap aNew;
-			if( aNew.Read( *pGrStream, sal_False ) )
+			if( ReadDIB(aNew, *pGrStream, false) )
 			{
 				rData = Graphic( aNew );
 				nRes = GRFILTER_OK;

Modified: openoffice/trunk/main/fpicker/source/office/iodlg.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/fpicker/source/office/iodlg.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/fpicker/source/office/iodlg.cxx (original)
+++ openoffice/trunk/main/fpicker/source/office/iodlg.cxx Thu Jan 10 17:28:40 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_fpicker.hxx"
 
@@ -97,6 +95,7 @@
 #include "fpinteraction.hxx"
 #include <osl/process.h>
 #include <comphelper/interaction.hxx>
+#include <vcl/dibtools.hxx>
 
 #include <algorithm>
 #include <functional>
@@ -3123,7 +3122,7 @@ void SvtFileDialog::setImage( sal_Int16 
         SvMemoryStream  aData( aBmpSequence.getArray(),
                                aBmpSequence.getLength(),
                                STREAM_READ );
-        aData >> aBmp;
+        ReadDIB(aBmp, aData, true);
 
         _pPrevBmp->SetBitmap( aBmp );
     }

Modified: openoffice/trunk/main/framework/source/fwe/classes/addonsoptions.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/framework/source/fwe/classes/addonsoptions.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/framework/source/fwe/classes/addonsoptions.cxx (original)
+++ openoffice/trunk/main/framework/source/fwe/classes/addonsoptions.cxx Thu Jan 10 17:28:40 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_framework.hxx"
 
@@ -44,7 +42,7 @@
 #include <comphelper/processfactory.hxx>
 #include <vcl/graph.hxx>
 #include <svtools/filter.hxx>
-
+#include <vcl/dibtools.hxx>
 #include <hash_map>
 #include <algorithm>
 #include <vector>
@@ -1785,7 +1783,7 @@ sal_Bool AddonsOptions_Impl::CreateImage
 		SvMemoryStream	aMemStream( rBitmapDataSeq.getArray(), rBitmapDataSeq.getLength(), STREAM_STD_READ );
 		BitmapEx 		aBitmapEx;
 
-        aMemStream >> aBitmapEx;
+        ReadDIBBitmapEx(aBitmapEx, aMemStream);
 
 		// Scale bitmap to fit the correct size for the menu/toolbar. Use best quality
 		if ( aBitmapEx.GetSizePixel() != aSize )

Modified: openoffice/trunk/main/framework/source/fwe/classes/imagewrapper.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/framework/source/fwe/classes/imagewrapper.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/framework/source/fwe/classes/imagewrapper.cxx (original)
+++ openoffice/trunk/main/framework/source/fwe/classes/imagewrapper.cxx Thu Jan 10 17:28:40 2013
@@ -31,6 +31,7 @@
 #include <vcl/bitmapex.hxx>
 #include <tools/stream.hxx>
 #include <cppuhelper/typeprovider.hxx>
+#include <vcl/dibtools.hxx>
 
 using namespace com::sun::star::lang;
 using namespace com::sun::star::uno;
@@ -78,7 +79,7 @@ Sequence< sal_Int8 > SAL_CALL ImageWrapp
 	vos::OGuard	aGuard( Application::GetSolarMutex() );
 
 	SvMemoryStream aMem;
-	aMem << m_aImage.GetBitmapEx().GetBitmap();
+    WriteDIB(m_aImage.GetBitmapEx().GetBitmap(), aMem, false, true);
 	return Sequence< sal_Int8 >( (sal_Int8*) aMem.GetData(), aMem.Tell() );
 }
 
@@ -90,13 +91,13 @@ Sequence< sal_Int8 > SAL_CALL ImageWrapp
 	if ( aBmpEx.IsAlpha() )
 	{
 		SvMemoryStream aMem;
-		aMem << aBmpEx.GetAlpha().GetBitmap();
+        WriteDIB(aBmpEx.GetAlpha().GetBitmap(), aMem, false, true);
 		return Sequence< sal_Int8 >( (sal_Int8*) aMem.GetData(), aMem.Tell() );
 	}
 	else if ( aBmpEx.IsTransparent() )
 	{
 		SvMemoryStream aMem;
-		aMem << aBmpEx.GetMask();
+        WriteDIB(aBmpEx.GetMask(), aMem, false, true);
 		return Sequence< sal_Int8 >( (sal_Int8*) aMem.GetData(), aMem.Tell() );
 	}
 

Modified: openoffice/trunk/main/framework/source/fwe/helper/actiontriggerhelper.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/framework/source/fwe/helper/actiontriggerhelper.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/framework/source/fwe/helper/actiontriggerhelper.cxx (original)
+++ openoffice/trunk/main/framework/source/fwe/helper/actiontriggerhelper.cxx Thu Jan 10 17:28:40 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_framework.hxx"
 #include <framework/actiontriggerhelper.hxx>
@@ -36,7 +34,7 @@
 #include <tools/stream.hxx>
 #include <cppuhelper/weak.hxx>
 #include <comphelper/processfactory.hxx>
-
+#include <vcl/dibtools.hxx>
 
 const sal_uInt16 START_ITEMID = 1000;
 
@@ -196,7 +194,7 @@ void InsertSubMenuItems( Menu* pSubMenu,
 									{
 										aDIBSeq = xBitmap->getDIB();
 										SvMemoryStream aMem( (void *)aDIBSeq.getConstArray(), aDIBSeq.getLength(), STREAM_READ );
-										aMem >> aBitmap;
+                                        ReadDIB(aBitmap, aMem, true);
 									}
 
 									aDIBSeq = xBitmap->getMaskDIB();
@@ -204,7 +202,7 @@ void InsertSubMenuItems( Menu* pSubMenu,
 									{
 										Bitmap aMaskBitmap;
 										SvMemoryStream aMem( (void *)aDIBSeq.getConstArray(), aDIBSeq.getLength(), STREAM_READ );
-										aMem >> aMaskBitmap;
+                                        ReadDIB(aMaskBitmap, aMem, true);
 										aImage = Image( aBitmap, aMaskBitmap );
 									}
 									else

Modified: openoffice/trunk/main/sc/source/filter/excel/xiescher.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/filter/excel/xiescher.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/filter/excel/xiescher.cxx (original)
+++ openoffice/trunk/main/sc/source/filter/excel/xiescher.cxx Thu Jan 10 17:28:40 2013
@@ -86,6 +86,7 @@
 #include <svx/xlinjoit.hxx>
 #include <svx/xlntrit.hxx>
 #include <svx/xbtmpit.hxx>
+#include <vcl/dibtools.hxx>
 
 #include "document.hxx"
 #include "drwlayer.hxx"
@@ -747,7 +748,7 @@ void XclImpDrawObjBase::ConvertFillStyle
                 aMemStrm << sal_uInt32( pnPattern[ nIdx ] ); // 32-bit little-endian
             aMemStrm.Seek( STREAM_SEEK_TO_BEGIN );
             Bitmap aBitmap;
-            aBitmap.Read( aMemStrm, sal_False );
+            ReadDIB(aBitmap, aMemStrm, false);
             rSdrObj.SetMergedItem(XFillStyleItem(XFILL_BITMAP));
             rSdrObj.SetMergedItem(XFillBitmapItem(EMPTY_STRING, Graphic(aBitmap)));
         }
@@ -3943,7 +3944,7 @@ void XclImpDrawing::ReadBmp( Graphic& rG
     // import the graphic from memory stream
     aMemStrm.Seek( STREAM_SEEK_TO_BEGIN );
     Bitmap aBitmap;
-    if( aBitmap.Read( aMemStrm, sal_False ) )   // read DIB without file header
+    if( ReadDIB(aBitmap, aMemStrm, false) )   // read DIB without file header
         rGraphic = aBitmap;
 }
 

Modified: openoffice/trunk/main/sc/source/ui/app/drwtrans.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/app/drwtrans.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/app/drwtrans.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/app/drwtrans.cxx Thu Jan 10 17:28:40 2013
@@ -437,7 +437,7 @@ sal_Bool ScDrawTransferObj::GetData( con
             if ( nFormat == SOT_FORMAT_GDIMETAFILE )
                 bOK = SetGDIMetaFile( aView.GetMarkedObjMetaFile(true), rFlavor );
             else
-                bOK = SetBitmap( aView.GetMarkedObjBitmapEx(true).GetBitmap(), rFlavor );
+                bOK = SetBitmapEx( aView.GetMarkedObjBitmapEx(true), rFlavor );
         }
         else if ( nFormat == SOT_FORMATSTR_ID_SVXB )
         {

Modified: openoffice/trunk/main/sc/source/ui/app/transobj.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/app/transobj.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/app/transobj.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/app/transobj.cxx Thu Jan 10 17:28:40 2013
@@ -342,7 +342,7 @@ sal_Bool ScTransferObj::GetData( const d
 
 			aVirtDev.SetMapMode( MapMode( MAP_PIXEL ) );
 			Bitmap aBmp = aVirtDev.GetBitmap( Point(), aVirtDev.GetOutputSize() );
-			bOK = SetBitmap( aBmp, rFlavor );
+			bOK = SetBitmapEx( aBmp, rFlavor );
 		}
 		else if ( nFormat == SOT_FORMAT_GDIMETAFILE )
 		{

Modified: openoffice/trunk/main/sc/source/ui/docshell/docsh.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/docshell/docsh.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/docshell/docsh.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/docshell/docsh.cxx Thu Jan 10 17:28:40 2013
@@ -2999,7 +2999,7 @@ bool ScDocShell::GetProtectionHash( /*ou
     return bRes;
 }    
 
-void ScDocShell::BeforeLoading( SfxMedium& rMedium, const ::rtl::OUString & rstrTypeName, const ::rtl::OUString & rstrFilterName )
+void ScDocShell::BeforeLoading( SfxMedium& /*rMedium*/, const ::rtl::OUString & rstrTypeName, const ::rtl::OUString & /*rstrFilterName*/ )
 {
     const sal_uInt8 nMediumFlag = GetMediumFlag<false>( rstrTypeName );
 
@@ -3012,7 +3012,7 @@ void ScDocShell::BeforeLoading( SfxMediu
     }
 }
 
-void ScDocShell::AfterLoading( SfxMedium& rMedium, const ::rtl::OUString & rstrTypeName, const ::rtl::OUString & rstrFilterName )
+void ScDocShell::AfterLoading( SfxMedium& /*rMedium*/, const ::rtl::OUString & rstrTypeName, const ::rtl::OUString & /*rstrFilterName*/ )
 {
     const sal_uInt8 nMediumFlag = GetMediumFlag<false>( rstrTypeName );
 

Modified: openoffice/trunk/main/sc/source/ui/inc/viewfunc.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/inc/viewfunc.hxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/inc/viewfunc.hxx (original)
+++ openoffice/trunk/main/sc/source/ui/inc/viewfunc.hxx Thu Jan 10 17:28:40 2013
@@ -139,7 +139,7 @@ public:
 
 	sal_Bool			PasteFile( const Point&, const String&, sal_Bool bLink=sal_False );
     sal_Bool            PasteObject( const Point&, const com::sun::star::uno::Reference < com::sun::star::embed::XEmbeddedObject >&, const Size* = NULL, const Graphic* = NULL, const ::rtl::OUString& = ::rtl::OUString(), sal_Int64 nAspect = ::com::sun::star::embed::Aspects::MSOLE_CONTENT );
-	sal_Bool			PasteBitmap( const Point&, const Bitmap& );
+	sal_Bool			PasteBitmapEx( const Point&, const BitmapEx& );
 	sal_Bool			PasteMetaFile( const Point&, const GDIMetaFile& );
 	sal_Bool			PasteGraphic( const Point& rPos, const Graphic& rGraphic,
 									const String& rFile, const String& rFilter );

Modified: openoffice/trunk/main/sc/source/ui/view/viewfun3.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/viewfun3.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/viewfun3.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/viewfun3.cxx Thu Jan 10 17:28:40 2013
@@ -845,9 +845,9 @@ sal_Bool ScViewFunc::PasteOnDrawObject( 
 		}
 		else if ( aDataHelper.HasFormat( SOT_FORMAT_BITMAP ) )
 		{
-			Bitmap aBmp;
-			if( aDataHelper.GetBitmap( FORMAT_BITMAP, aBmp ) )
-				bRet = ApplyGraphicToObject( pHitObj, Graphic(aBmp) );
+			BitmapEx aBmpEx;
+			if( aDataHelper.GetBitmapEx( FORMAT_BITMAP, aBmpEx ) )
+				bRet = ApplyGraphicToObject( pHitObj, Graphic(aBmpEx) );
 		}
 	}
 	else

Modified: openoffice/trunk/main/sc/source/ui/view/viewfun5.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/viewfun5.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/viewfun5.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/viewfun5.cxx Thu Jan 10 17:28:40 2013
@@ -457,9 +457,9 @@ sal_Bool ScViewFunc::PasteDataFormat( sa
 	}
 	else if (nFormatId == SOT_FORMAT_BITMAP)
 	{
-		Bitmap aBmp;
-		if( aDataHelper.GetBitmap( FORMAT_BITMAP, aBmp ) )
-			bRet = PasteBitmap( aPos, aBmp );
+		BitmapEx aBmpEx;
+		if( aDataHelper.GetBitmapEx( FORMAT_BITMAP, aBmpEx ) )
+			bRet = PasteBitmapEx( aPos, aBmpEx );
 	}
 	else if (nFormatId == SOT_FORMAT_GDIMETAFILE)
 	{

Modified: openoffice/trunk/main/sc/source/ui/view/viewfun7.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/viewfun7.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/viewfun7.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/viewfun7.cxx Thu Jan 10 17:28:40 2013
@@ -370,10 +370,10 @@ sal_Bool ScViewFunc::PasteObject( const 
 		return sal_False;
 }
 
-sal_Bool ScViewFunc::PasteBitmap( const Point& rPos, const Bitmap& rBmp )
+sal_Bool ScViewFunc::PasteBitmapEx( const Point& rPos, const BitmapEx& rBmpEx )
 {
 	String aEmpty;
-	Graphic aGraphic(rBmp);
+	Graphic aGraphic(rBmpEx);
 	return PasteGraphic( rPos, aGraphic, aEmpty, aEmpty );
 }
 

Modified: openoffice/trunk/main/sd/source/ui/app/sdxfer.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sd/source/ui/app/sdxfer.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sd/source/ui/app/sdxfer.cxx (original)
+++ openoffice/trunk/main/sd/source/ui/app/sdxfer.cxx Thu Jan 10 17:28:40 2013
@@ -548,10 +548,10 @@ sal_Bool SdTransferable::GetData( const 
 			if( mpSdViewIntern )
 				bOK = SetGDIMetaFile( mpSdViewIntern->GetMarkedObjMetaFile(true), rFlavor );
 		}
-		else if( nFormat == FORMAT_BITMAP )
+		else if( FORMAT_BITMAP == nFormat || SOT_FORMATSTR_ID_PNG == nFormat )
 		{
 			if( mpSdViewIntern )
-				bOK = SetBitmap( mpSdViewIntern->GetMarkedObjBitmapEx(true).GetBitmap(), rFlavor );
+				bOK = SetBitmapEx( mpSdViewIntern->GetMarkedObjBitmapEx(true), rFlavor );
 		}
 		else if( ( nFormat == FORMAT_STRING ) && mpBookmark )
 		{

Modified: openoffice/trunk/main/sd/source/ui/unoidl/unopage.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sd/source/ui/unoidl/unopage.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sd/source/ui/unoidl/unopage.cxx (original)
+++ openoffice/trunk/main/sd/source/ui/unoidl/unopage.cxx Thu Jan 10 17:28:40 2013
@@ -19,10 +19,9 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_sd.hxx"
+
 #include <com/sun/star/lang/DisposedException.hpp>
 #include <com/sun/star/presentation/ClickAction.hpp>
 #include <com/sun/star/presentation/FadeEffect.hpp>
@@ -59,7 +58,6 @@
 #include <rtl/uuid.h>
 #include <rtl/memory.h>
 #include <comphelper/serviceinfohelper.hxx>
-
 #include <comphelper/extract.hxx>
 #include <list>
 #include <svx/svditer.hxx>
@@ -81,6 +79,7 @@
 #include "unokywds.hxx"
 #include "unopback.hxx"
 #include "unohelp.hxx"
+#include <vcl/dibtools.hxx>
 
 using ::com::sun::star::animations::XAnimationNode;
 using ::com::sun::star::animations::XAnimationNodeSupplier;
@@ -1143,7 +1142,7 @@ Any SAL_CALL SdGenericDrawPage::getPrope
 																  aBitmap ) )
 					{
 						SvMemoryStream aMemStream;
-						aBitmap.GetBitmap().Write( aMemStream, sal_False, sal_False );
+						WriteDIB(aBitmap.GetBitmap(), aMemStream, false, false);
 						uno::Sequence<sal_Int8> aSeq( (sal_Int8*)aMemStream.GetData(), aMemStream.Tell() );
 						aAny <<= aSeq;
 					}

Modified: openoffice/trunk/main/sd/source/ui/view/sdview3.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sd/source/ui/view/sdview3.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sd/source/ui/view/sdview3.cxx (original)
+++ openoffice/trunk/main/sd/source/ui/view/sdview3.cxx Thu Jan 10 17:28:40 2013
@@ -1255,9 +1255,9 @@ sal_Bool View::InsertData( const Transfe
 	}
 	else if( ( !bLink || pPickObj ) && CHECK_FORMAT_TRANS( FORMAT_BITMAP ) )
 	{
-		Bitmap aBmp;
+		BitmapEx aBmpEx;
 
-		if( aDataHelper.GetBitmap( FORMAT_BITMAP, aBmp ) )
+		if( aDataHelper.GetBitmapEx( FORMAT_BITMAP, aBmpEx ) )
 		{
 			Point aInsertPos( rPos );
 
@@ -1278,10 +1278,10 @@ sal_Bool View::InsertData( const Transfe
 			}
 
 			// #90129# restrict movement to WorkArea
-			Size aImageMapSize(aBmp.GetPrefSize());
+			Size aImageMapSize(aBmpEx.GetPrefSize());
 			ImpCheckInsertPos(aInsertPos, aImageMapSize, GetWorkArea());
 
-			InsertGraphic( aBmp, mnAction, aInsertPos, NULL, pImageMap );
+			InsertGraphic( aBmpEx, mnAction, aInsertPos, NULL, pImageMap );
 			bReturn = sal_True;
 		}
 	}

Modified: openoffice/trunk/main/sfx2/source/appl/fileobj.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/source/appl/fileobj.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/source/appl/fileobj.cxx (original)
+++ openoffice/trunk/main/sfx2/source/appl/fileobj.cxx Thu Jan 10 17:28:40 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_sfx2.hxx"
 
@@ -47,6 +45,7 @@
 #include "sfx2/sfxresid.hxx"
 #include "fileobj.hxx"
 #include "app.hrc"
+#include <vcl/dibtools.hxx>
 
 namespace css = ::com::sun::star;
 
@@ -187,9 +186,16 @@ sal_Bool SvFileObject::GetData( ::com::s
 					break;
 
 				case  FORMAT_BITMAP:
-					if( !aGrf.GetBitmap().IsEmpty())
-						aMemStm << aGrf.GetBitmap();
-					break;
+                {
+                    const Bitmap aBitmap(aGrf.GetBitmap());
+
+                    if(!aBitmap.IsEmpty())
+                    {
+                        WriteDIB(aBitmap, aMemStm, false, true);
+                    }
+
+                    break;
+                }
 
 				default:
 					if( aGrf.GetGDIMetaFile().GetActionCount() )

Modified: openoffice/trunk/main/sfx2/source/appl/linkmgr2.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/source/appl/linkmgr2.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/source/appl/linkmgr2.cxx (original)
+++ openoffice/trunk/main/sfx2/source/appl/linkmgr2.cxx Thu Jan 10 17:28:40 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_sfx2.hxx"
 
@@ -42,6 +40,7 @@
 #include <unotools/localfilehelper.hxx>
 #include <i18npool/mslangid.hxx>
 #include <sfx2/request.hxx>
+#include <vcl/dibtools.hxx>
 
 #include "fileobj.hxx"
 #include "impldde.hxx"
@@ -479,7 +478,7 @@ sal_Bool LinkManager::GetGraphicFromAny(
 		case FORMAT_BITMAP:
 			{
 				Bitmap aBmp;
-				aMemStm >> aBmp;
+                ReadDIB(aBmp, aMemStm, true);
 				rGrf = aBmp;
 				bRet = sal_True;
 			}

Modified: openoffice/trunk/main/sfx2/source/dialog/filedlghelper.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/source/dialog/filedlghelper.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/source/dialog/filedlghelper.cxx (original)
+++ openoffice/trunk/main/sfx2/source/dialog/filedlghelper.cxx Thu Jan 10 17:28:40 2013
@@ -19,10 +19,9 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_sfx2.hxx"
+
 #include <sfx2/filedlghelper.hxx>
 #include <sal/types.h>
 #include <com/sun/star/lang/XInitialization.hpp>
@@ -95,6 +94,7 @@
 #include "filedlgimpl.hxx"
 #include <helpid.hrc>
 #include <sfxlocal.hrc>
+#include <vcl/dibtools.hxx>
 
 //-----------------------------------------------------------------------------
 
@@ -771,7 +771,7 @@ IMPL_LINK( FileDialogHelper_Impl, TimeOu
                 // and copy it into the Any
                 SvMemoryStream aData;
 
-                aData << aBmp;
+                WriteDIB(aBmp, aData, false, true);
 
                 const Sequence < sal_Int8 > aBuffer(
                     static_cast< const sal_Int8* >(aData.GetData()),

Modified: openoffice/trunk/main/sfx2/source/dialog/intro.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/source/dialog/intro.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/source/dialog/intro.cxx (original)
+++ openoffice/trunk/main/sfx2/source/dialog/intro.cxx Thu Jan 10 17:28:40 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_sfx2.hxx"
 
@@ -34,8 +32,8 @@
 #include <unotools/pathoptions.hxx>
 #include <unotools/configmgr.hxx>
 #include <com/sun/star/uno/Any.h>
-
 #include <sfx2/sfxuno.hxx>
+#include <vcl/dibtools.hxx>
 
 // -----------------------------------------------------------------------
 
@@ -76,8 +74,11 @@ IntroWindow_Impl::IntroWindow_Impl( cons
 	INetURLObject aObj( SvtPathOptions().GetModulePath(), INET_PROT_FILE );
 	aObj.insertName( aBmpFileName );
 	SvFileStream aStrm( aObj.PathToFileName(), STREAM_STD_READ );
-	if ( !aStrm.GetError() )
-		aStrm >> aIntroBmp;
+	
+    if ( !aStrm.GetError() )
+    {
+        ReadDIB(aIntroBmp, aStrm, true);
+    }
 
 	Init();
 }

Modified: openoffice/trunk/main/sfx2/source/doc/docinf.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sfx2/source/doc/docinf.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sfx2/source/doc/docinf.cxx (original)
+++ openoffice/trunk/main/sfx2/source/doc/docinf.cxx Thu Jan 10 17:28:40 2013
@@ -25,19 +25,17 @@
 #include "precompiled_sfx2.hxx"
 
 #include <sfx2/docinf.hxx>
-
 #include <com/sun/star/beans/PropertyAttribute.hpp>
 #include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/beans/XPropertyContainer.hpp>
 #include <com/sun/star/document/XDocumentProperties.hpp>
 #include <com/sun/star/uno/Exception.hpp>
-
 #include <rtl/ustring.hxx>
 #include <tools/debug.hxx>
 #include <comphelper/string.hxx>
 #include <sot/storage.hxx>
 #include <vcl/gdimtf.hxx>
-
+#include <vcl/dibtools.hxx>
 #include "oleprops.hxx"
 
 // ============================================================================
@@ -286,7 +284,7 @@ uno::Sequence<sal_uInt8> SFX2_DLLPUBLIC 
         SvMemoryStream aStream;
 // magic value 160 taken from GraphicHelper::getThumbnailFormatFromGDI_Impl()
         if( i_pThumb->CreateThumbnail( 160, aBitmap ) ) {
-            aBitmap.GetBitmap().Write( aStream, sal_False, sal_False );
+            WriteDIB(aBitmap.GetBitmap(), aStream, false, false);
 //            uno::Sequence<sal_uInt8> aSeq(aStream.GetSize()); // WRONG
             aStream.Seek(STREAM_SEEK_TO_END);
             uno::Sequence<sal_uInt8> aSeq(aStream.Tell());

Modified: openoffice/trunk/main/sot/inc/sot/formats.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sot/inc/sot/formats.hxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sot/inc/sot/formats.hxx (original)
+++ openoffice/trunk/main/sot/inc/sot/formats.hxx Thu Jan 10 17:28:40 2013
@@ -181,7 +181,8 @@
 #define SOT_FORMATSTR_ID_STARMATH_8_TEMPLATE    ((sal_uLong)138)
 #define SOT_FORMATSTR_ID_STARBASE_8             ((sal_uLong)139)
 #define SOT_FORMATSTR_ID_HC_GDIMETAFILE         ((sal_uLong)140)
-#define SOT_FORMATSTR_ID_USER_END               SOT_FORMATSTR_ID_HC_GDIMETAFILE
+#define SOT_FORMATSTR_ID_PNG                    ((sal_uLong)141)
+#define SOT_FORMATSTR_ID_USER_END               SOT_FORMATSTR_ID_PNG
 
 #endif // _SOT_FORMATS_HXX
 

Modified: openoffice/trunk/main/sot/source/base/exchange.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sot/source/base/exchange.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sot/source/base/exchange.cxx (original)
+++ openoffice/trunk/main/sot/source/base/exchange.cxx Thu Jan 10 17:28:40 2013
@@ -207,6 +207,7 @@ namespace
             /*138 SOT_FORMATSTR_ID_STARMATH_8_TEMPLATE*/            { MIMETYPE_OASIS_OPENDOCUMENT_FORMULA_TEMPLATE_ASCII, "Math 8 Template", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) },
             /*139 SOT_FORMATSTR_ID_STARBASE_8*/            { MIMETYPE_OASIS_OPENDOCUMENT_DATABASE_ASCII, "StarBase 8", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) },
             /*140 SOT_FORMAT_GDIMETAFILE*/					{ "application/x-openoffice-highcontrast-gdimetafile;windows_formatname=\"GDIMetaFile\"", "High Contrast GDIMetaFile", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) },
+            /*141 SOT_FORMATSTR_ID_PNG*/                    { "image/png", "Windows Bitmap", &::getCppuType( (const Sequence< sal_Int8 >*) 0 ) },
             };
 	    return &aInstance[0];
         }

Modified: openoffice/trunk/main/sot/source/base/formats.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sot/source/base/formats.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/sot/source/base/formats.cxx (original)
+++ openoffice/trunk/main/sot/source/base/formats.cxx Thu Jan 10 17:28:40 2013
@@ -1590,7 +1590,7 @@ sal_uInt16 SotExchange::GetExchangeActio
 
 				aVector.push_back( aFlavorEx );
 
-				if( ( SOT_FORMATSTR_ID_BMP == aFlavorEx.mnSotId ) &&
+				if( (( SOT_FORMATSTR_ID_BMP == aFlavorEx.mnSotId ) || (SOT_FORMATSTR_ID_PNG == aFlavorEx.mnSotId)) &&
 					!IsFormatSupported( aVector, SOT_FORMAT_BITMAP ) )
 				{
 					if( SotExchange::GetFormatDataFlavor( SOT_FORMAT_BITMAP, aFlavorEx ) )

Modified: openoffice/trunk/main/svtools/bmpmaker/bmpcore.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/bmpmaker/bmpcore.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/bmpmaker/bmpcore.cxx (original)
+++ openoffice/trunk/main/svtools/bmpmaker/bmpcore.cxx Thu Jan 10 17:28:40 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_svtools.hxx"
 
@@ -31,7 +29,7 @@
 #include <vcl/pngread.hxx>
 #include <vcl/pngwrite.hxx>
 #include "bmpcore.hxx"
-
+#include <vcl/dibtools.hxx>
 #include <vector>
 #include <algorithm>
 
@@ -188,7 +186,9 @@ void BmpCreator::ImplCreate( const ::std
                             aBmpEx = aPNGReader.Read();
                         }
                         else
-                            aIStm >> aBmpEx;
+                        {
+                            ReadDIBBitmapEx(aBmpEx, aIStm);
+                        }
 
                         if( pCollectStm && !aBmpEx.IsEmpty() )
                         {
@@ -293,7 +293,9 @@ void BmpCreator::ImplCreate( const ::std
                         aPNGWriter.Write( aOutStream );
                     }
                     else
-                        aOutStream << aTotalBmpEx;
+                    {
+                        WriteDIBBitmapEx(aTotalBmpEx, aOutStream);
+                    }
 
                     if( aOutStream.GetError()  )
 				        Message( String( RTL_CONSTASCII_USTRINGPARAM( "ERROR: Could not write to output file: " ) ).Append( aOutFileName ), EXIT_IOERROR );

Modified: openoffice/trunk/main/svtools/bmpmaker/bmpsum.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/bmpmaker/bmpsum.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/bmpmaker/bmpsum.cxx (original)
+++ openoffice/trunk/main/svtools/bmpmaker/bmpsum.cxx Thu Jan 10 17:28:40 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_svtools.hxx"
 
@@ -29,7 +27,6 @@
 #include <vector>
 #include <set>
 #include <map>
-
 #include <rtl/crc.h>
 #include <tools/stream.hxx>
 #include <tools/fsys.hxx>
@@ -37,7 +34,7 @@
 #include <vcl/bitmap.hxx>
 #include <vcl/bmpacc.hxx>
 #include <vcl/pngread.hxx>
-
+#include <vcl/dibtools.hxx>
 #include "svl/solar.hrc"
 
 #define EXIT_NOERROR        0x00000000
@@ -285,7 +282,7 @@ void BmpSum::ProcessFile( const String& 
     {
         BitmapEx aBmpEx;
 
-	    aIStm >> aBmpEx;
+        ReadDIBBitmapEx(aBmpEx, aIStm);
 
 	    if( !aBmpEx.IsEmpty() )
 	    {
@@ -385,7 +382,7 @@ void BmpSum::ProcessFileList( const Stri
             {
                 BitmapEx aBmpEx;
 
-	            aBmpStm >> aBmpEx;
+                ReadDIBBitmapEx(aBmpEx, aBmpStm);
 
 	            if( !aBmpEx.IsEmpty() )
 	                nCRC = GetCRC( aBmpEx );

Modified: openoffice/trunk/main/svtools/inc/svtools/transfer.hxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/inc/svtools/transfer.hxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/inc/svtools/transfer.hxx (original)
+++ openoffice/trunk/main/svtools/inc/svtools/transfer.hxx Thu Jan 10 17:28:40 2013
@@ -49,7 +49,7 @@
 // - Forward declarations -
 // ------------------------
 
-class Bitmap;
+class BitmapEx;
 class GDIMetaFile;
 class Graphic;
 class ImageMap;
@@ -257,7 +257,7 @@ protected:
 
 	sal_Bool		    SetAny( const ::com::sun::star::uno::Any& rAny, const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
 	sal_Bool		    SetString( const ::rtl::OUString& rString, const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
-	sal_Bool		    SetBitmap( const Bitmap& rBitmap, const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
+	sal_Bool		    SetBitmapEx( const BitmapEx& rBitmap, const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
 	sal_Bool		    SetGDIMetaFile( const GDIMetaFile& rMtf, const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
 	sal_Bool		    SetGraphic( const Graphic& rGraphic, const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
     sal_Bool            SetImageMap( const ImageMap& rIMap, const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
@@ -362,8 +362,8 @@ public:
 	sal_Bool					GetString( SotFormatStringId nFormat, ::rtl::OUString& rStr );
 	sal_Bool					GetString( const ::com::sun::star::datatransfer::DataFlavor& rFlavor, ::rtl::OUString& rStr );
 
-	sal_Bool					GetBitmap( SotFormatStringId nFormat, Bitmap& rBmp );
-	sal_Bool					GetBitmap( const ::com::sun::star::datatransfer::DataFlavor& rFlavor, Bitmap& rBmp );
+	sal_Bool					GetBitmapEx( SotFormatStringId nFormat, BitmapEx& rBmp );
+	sal_Bool					GetBitmapEx( const ::com::sun::star::datatransfer::DataFlavor& rFlavor, BitmapEx& rBmp );
 
 	sal_Bool					GetGDIMetaFile( SotFormatStringId nFormat, GDIMetaFile& rMtf );
 	sal_Bool					GetGDIMetaFile( const ::com::sun::star::datatransfer::DataFlavor& rFlavor, GDIMetaFile& rMtf );

Modified: openoffice/trunk/main/svtools/source/filter/filter.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/filter/filter.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/filter/filter.cxx (original)
+++ openoffice/trunk/main/svtools/source/filter/filter.cxx Thu Jan 10 17:28:40 2013
@@ -72,6 +72,7 @@
 #include <rtl/bootstrap.hxx>
 #include <rtl/instance.hxx>
 #include <vcl/metaact.hxx>
+#include <vcl/dibtools.hxx>
 
 #include "SvFilterOptionsDialog.hxx"
 
@@ -1932,7 +1933,7 @@ sal_uInt16 GraphicFilter::ExportGraphic(
 				ResMgr*		pResMgr = CREATERESMGR( svt );
                 sal_Bool    bRleCoding = aConfigItem.ReadBool( String( RTL_CONSTASCII_USTRINGPARAM( "RLE_Coding" ) ), sal_True );
 				// Wollen wir RLE-Kodiert speichern?
-				aBmp.Write( rOStm, bRleCoding );
+				WriteDIB(aBmp, rOStm, bRleCoding, true);
 				delete pResMgr;
 
 				if( rOStm.GetError() )

Modified: openoffice/trunk/main/svtools/source/filter/wmf/emfwr.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/filter/wmf/emfwr.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/filter/wmf/emfwr.cxx (original)
+++ openoffice/trunk/main/svtools/source/filter/wmf/emfwr.cxx Thu Jan 10 17:28:40 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_svtools.hxx"
 
@@ -29,6 +27,7 @@
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <basegfx/polygon/b2dpolypolygon.hxx>
 #include <vcl/lineinfo.hxx>
+#include <vcl/dibtools.hxx>
 
 // -----------
 // - Defines -
@@ -752,7 +751,7 @@ void EMFWriter::ImplWriteBmpRecord( cons
 		(*mpStm) << (sal_uInt32) 0 << ( ( ROP_XOR == maVDev.GetRasterOp() && WIN_SRCCOPY == nROP ) ? WIN_SRCINVERT : nROP );
 		ImplWriteSize( rSz );
 
-		rBmp.Write( aMemStm, sal_True, sal_False );
+		WriteDIB(rBmp, aMemStm, true, false);
 
 		sal_uInt32	nDIBSize = aMemStm.Tell(), nHeaderSize, nCompression, nColsUsed, nPalCount, nImageSize;
 		sal_uInt16	nBitCount;

Modified: openoffice/trunk/main/svtools/source/filter/wmf/enhwmf.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/filter/wmf/enhwmf.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/filter/wmf/enhwmf.cxx (original)
+++ openoffice/trunk/main/svtools/source/filter/wmf/enhwmf.cxx Thu Jan 10 17:28:40 2013
@@ -19,14 +19,13 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_svtools.hxx"
 
 #include "winmtf.hxx"
 #include <osl/endian.h>
 #include <basegfx/matrix/b2dhommatrix.hxx>
+#include <vcl/dibtools.hxx>
 
 //=========================== GDI-Array ===================================
 
@@ -871,8 +870,9 @@ sal_Bool EnhWMFReader::ReadEnhWMF()
 						pWMF->Seek( nStart + offBitsSrc );
 						pWMF->Read( pBuf + 14 + cbBmiSrc, cbBitsSrc );
 						aTmp.Seek( 0 );
-						aBitmap.Read( aTmp, sal_True );
-						// test if it is sensible to crop
+						ReadDIB(aBitmap, aTmp, true);
+						
+                        // test if it is sensible to crop
 						if ( ( cxSrc > 0 ) && ( cySrc > 0 ) && 
 							( xSrc >= 0 ) && ( ySrc >= 0 ) &&
                                 ( xSrc + static_cast< sal_Int32 >(cxSrc) <= static_cast< sal_Int32 >(aBitmap.GetSizePixel().Width()) ) &&
@@ -932,7 +932,7 @@ sal_Bool EnhWMFReader::ReadEnhWMF()
 						pWMF->Seek( nStart + offBitsSrc );
 						pWMF->Read( pBuf + 14 + cbBmiSrc, cbBitsSrc );
 						aTmp.Seek( 0 );
-						aBitmap.Read( aTmp, sal_True );
+						ReadDIB(aBitmap, aTmp, true);
 
 						// test if it is sensible to crop
 						if ( ( cxSrc > 0 ) && ( cySrc > 0 ) && 
@@ -986,7 +986,7 @@ sal_Bool EnhWMFReader::ReadEnhWMF()
 						pWMF->Seek( nStart + offBitsSrc );
 						pWMF->Read( pBuf + 14 + cbBmiSrc, cbBitsSrc );
 						aTmp.Seek( 0 );
-						aBitmap.Read( aTmp, sal_True );
+						ReadDIB(aBitmap, aTmp, true);
 
 						// test if it is sensible to crop
 						if ( ( cxSrc > 0 ) && ( cySrc > 0 ) && 
@@ -1307,7 +1307,7 @@ sal_Bool EnhWMFReader::ReadEnhWMF()
 					*pWMF >> nTmp32;
 				}
 
-				aBmp.Read( *pWMF, sal_False );
+				ReadDIB(aBmp, *pWMF, false);
 				pBmp = aBmp.AcquireReadAccess();
 				if ( pBmp )
 				{

Modified: openoffice/trunk/main/svtools/source/filter/wmf/winwmf.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/filter/wmf/winwmf.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/filter/wmf/winwmf.cxx (original)
+++ openoffice/trunk/main/svtools/source/filter/wmf/winwmf.cxx Thu Jan 10 17:28:40 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_svtools.hxx"
 
@@ -30,6 +28,7 @@
 #include <rtl/tencinfo.h>
 #include <osl/endian.h>
 #include <vcl/svapp.hxx>
+#include <vcl/dibtools.hxx>
 
 //====================== MS-Windows-defines ===============================
 
@@ -617,7 +616,7 @@ void WMFReader::ReadRecordParams( sal_uI
                 {
 				    Rectangle aDestRect( ReadYX(), aDestSize );
 				    if ( nWinROP != PATCOPY )
-					    aBmp.Read( *pWMF, sal_False );
+					    ReadDIB(aBmp, *pWMF, false);
 
                     // test if it is sensible to crop
                     if ( nSye && nSxe && 
@@ -642,7 +641,7 @@ void WMFReader::ReadRecordParams( sal_uI
 
 			*pWMF >> nFunction >> nFunction;
 
-			aBmp.Read( *pWMF, sal_False );
+			ReadDIB(aBmp, *pWMF, false);
 			pBmp = aBmp.AcquireReadAccess();
 			if ( pBmp )
 			{

Modified: openoffice/trunk/main/svtools/source/filter/wmf/wmfwr.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/filter/wmf/wmfwr.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/filter/wmf/wmfwr.cxx (original)
+++ openoffice/trunk/main/svtools/source/filter/wmf/wmfwr.cxx Thu Jan 10 17:28:40 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_svtools.hxx"
 
@@ -32,13 +30,11 @@
 #include <rtl/tencinfo.h>
 #include <tools/tenccvt.hxx>
 #include <osl/endian.h>
-#ifndef INCLUDED_I18NUTIL_UNICODE_HXX
 #include <i18nutil/unicode.hxx>	//unicode::getUnicodeScriptType
-#endif
-
 #include <vcl/metric.hxx>
 #include <basegfx/polygon/b2dpolygon.hxx>
 #include <basegfx/polygon/b2dpolypolygon.hxx>
+#include <vcl/dibtools.hxx>
 
 //====================== MS-Windows-defines ===============================
 
@@ -937,7 +933,9 @@ void WMFWriter::WMFRecord_StretchDIB( co
 	*pWMF << (long)0 << (long)0; // 8 bytes auffuellen (diese 8 bytes +
 								 // 14 bytes ueberfluessigen FILEHEADER
 								 // = 22 bytes Parameter)
-	*pWMF << rBitmap; // Bitmap schreiben
+    
+    // write bitmap
+    WriteDIB(rBitmap, *pWMF, false, true);
 
 	// Parameter schreiben:
 	nPosEnd=pWMF->Tell();

Modified: openoffice/trunk/main/svtools/source/graphic/graphic.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/graphic/graphic.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/graphic/graphic.cxx (original)
+++ openoffice/trunk/main/svtools/source/graphic/graphic.cxx Thu Jan 10 17:28:40 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_svtools.hxx"
 
@@ -31,6 +29,7 @@
 #include <com/sun/star/graphic/XGraphicTransformer.hpp>
 #include <vcl/graph.hxx>
 #include "graphic.hxx"
+#include <vcl/dibtools.hxx>
 
 using namespace com::sun::star;
 
@@ -249,7 +248,8 @@ uno::Sequence< ::sal_Int8 > SAL_CALL Gra
 	if( mpGraphic && ( mpGraphic->GetType() != GRAPHIC_NONE ) )
 	{
 		SvMemoryStream aMem;
-		aMem << mpGraphic->GetBitmapEx().GetBitmap();
+
+        WriteDIB(mpGraphic->GetBitmapEx().GetBitmap(), aMem, false, true);
 		return ::com::sun::star::uno::Sequence<sal_Int8>( (sal_Int8*) aMem.GetData(), aMem.Tell() );
 	}
 	else
@@ -267,7 +267,8 @@ uno::Sequence< ::sal_Int8 > SAL_CALL Gra
 	if( mpGraphic && ( mpGraphic->GetType() != GRAPHIC_NONE ) )
 	{
 		SvMemoryStream aMem;
-		aMem << mpGraphic->GetBitmapEx().GetMask();
+
+        WriteDIB(mpGraphic->GetBitmapEx().GetMask(), aMem, false, true);
 		return ::com::sun::star::uno::Sequence<sal_Int8>( (sal_Int8*) aMem.GetData(), aMem.Tell() );
 	}
 	else

Modified: openoffice/trunk/main/svtools/source/graphic/provider.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/svtools/source/graphic/provider.cxx?rev=1431512&r1=1431511&r2=1431512&view=diff
==============================================================================
--- openoffice/trunk/main/svtools/source/graphic/provider.cxx (original)
+++ openoffice/trunk/main/svtools/source/graphic/provider.cxx Thu Jan 10 17:28:40 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_svtools.hxx"
 
@@ -41,11 +39,11 @@
 #include <vcl/virdev.hxx>
 #include <com/sun/star/io/XStream.hpp>
 #include <com/sun/star/text/GraphicCrop.hpp>
-
 #include "descriptor.hxx"
 #include "graphic.hxx"
 #include <svtools/grfmgr.hxx>
 #include "provider.hxx"
+#include <vcl/dibtools.hxx>
 
 using namespace com::sun::star;
 
@@ -256,15 +254,16 @@ uno::Reference< ::graphic::XGraphic > Gr
     uno::Sequence< sal_Int8 > aMaskSeq( xBtm->getMaskDIB() );
     SvMemoryStream aBmpStream( aBmpSeq.getArray(), aBmpSeq.getLength(), STREAM_READ );
     Bitmap aBmp;
-    aBmpStream >> aBmp;
-    
     BitmapEx aBmpEx;
-    
+
+    ReadDIB(aBmp, aBmpStream, true);
+
     if( aMaskSeq.getLength() )
     {
         SvMemoryStream aMaskStream( aMaskSeq.getArray(), aMaskSeq.getLength(), STREAM_READ );
         Bitmap aMask;
-        aMaskStream >> aMask;
+
+        ReadDIB(aMask, aMaskStream, true);
         aBmpEx = BitmapEx( aBmp, aMask );
     }
     else