summaryrefslogtreecommitdiff
path: root/filter
diff options
context:
space:
mode:
authorArmin Le Grand <alg@apache.org>2012-05-10 09:29:55 +0000
committerCaolán McNamara <caolanm@redhat.com>2013-03-15 15:24:52 +0000
commitc97aec0d2276901c20634abe53867f739f420f50 (patch)
treedb775ba307edfffaa990a5d01361ae5c53c43f28 /filter
parentd2cccde341af33b72378f3e7b0e8dd9ff1cd5e65 (diff)
Related: #i119125# change XFillBitmapItem to work with GraphicObject
Completely changed XFillBitmapItem to work with GraphicObject, removed XOBitmap class, adapted all usages (also the pretty old 8x8 pixel editor). All Bitmap fill styles will now accept transparent bitmaps as fillings in all variations (tiled, etc.). LoadSave is no problem, ODF defines graphic as content for fill. Backward means that OOs before this change will use a white background of fill with transparent, same as the fallback all the time when using a transparent fill. This is also a preparation to e.g. offer SVG or Metafiles as fill style. Conflicts: cui/source/tabpages/backgrnd.cxx cui/source/tabpages/tparea.cxx cui/source/tabpages/tpbitmap.cxx filter/source/msfilter/msdffimp.cxx filter/source/msfilter/svdfppt.cxx sc/source/filter/excel/xiescher.cxx sd/source/ui/func/fupage.cxx svx/inc/svx/dlgctrl.hxx svx/inc/svx/xbitmap.hxx svx/inc/svx/xbtmpit.hxx svx/inc/svx/xtable.hxx svx/source/customshapes/EnhancedCustomShape2d.cxx svx/source/dialog/dlgctrl.cxx svx/source/svdraw/svdograf.cxx svx/source/tbxctrls/fillctrl.cxx svx/source/unodraw/XPropertyTable.cxx svx/source/xoutdev/xattrbmp.cxx svx/source/xoutdev/xtabbtmp.cxx Change-Id: Id838bfbacc863695d078fb3cf379d1c0cd951680
Diffstat (limited to 'filter')
-rw-r--r--filter/source/msfilter/msdffimp.cxx49
-rw-r--r--filter/source/msfilter/svdfppt.cxx10
2 files changed, 16 insertions, 43 deletions
diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx
index 3cb83e92e937..71b69149d2d7 100644
--- a/filter/source/msfilter/msdffimp.cxx
+++ b/filter/source/msfilter/msdffimp.cxx
@@ -1234,9 +1234,8 @@ void ApplyRectangularGradientAsBitmap( const SvxMSDffManager& rManager, SvStream
}
}
- XOBitmap aXBmp( aBitmap, XBITMAP_STRETCH );
- rSet.Put( XFillBmpTileItem( sal_False ) );
- rSet.Put( XFillBitmapItem( OUString(), aXBmp ) );
+ rSet.Put(XFillBmpTileItem(false));
+ rSet.Put(XFillBitmapItem(OUString(), Graphic(aBitmap)));
}
}
}
@@ -1370,54 +1369,30 @@ void DffPropertyReader::ApplyFillAttributes( SvStream& rIn, SfxItemSet& rSet, co
bOK = SeekToContent( DFF_Prop_fillBlip, rIn ) && rManager.GetBLIPDirect( rIn, aGraf, NULL );
if ( bOK )
{
- Bitmap aBmp( aGraf.GetBitmap() );
-
if ( eMSO_FillType == mso_fillPattern )
{
Color aCol1( COL_WHITE ), aCol2( COL_WHITE );
+
if ( IsProperty( DFF_Prop_fillColor ) )
aCol1 = rManager.MSO_CLR_ToColor( GetPropertyValue( DFF_Prop_fillColor ), DFF_Prop_fillColor );
+
if ( IsProperty( DFF_Prop_fillBackColor ) )
aCol2 = rManager.MSO_CLR_ToColor( GetPropertyValue( DFF_Prop_fillBackColor ), DFF_Prop_fillBackColor );
- XOBitmap aXOBitmap;
- aXOBitmap.SetBitmap( aBmp );
- aXOBitmap.SetBitmapType( XBITMAP_IMPORT );
-
- if( aBmp.GetSizePixel().Width() == 8 && aBmp.GetSizePixel().Height() == 8 && aBmp.GetColorCount() == 2)
- {
- aXOBitmap.Bitmap2Array();
- aXOBitmap.SetBitmapType( XBITMAP_8X8 );
- aXOBitmap.SetPixelSize( aBmp.GetSizePixel() );
-
- if( aXOBitmap.GetBackgroundColor() == COL_BLACK )
- {
- aXOBitmap.SetPixelColor( aCol1 );
- aXOBitmap.SetBackgroundColor( aCol2 );
- }
- else
- {
- aXOBitmap.SetPixelColor( aCol2 );
- aXOBitmap.SetBackgroundColor( aCol1 );
- }
- aXOBitmap.Array2Bitmap();
- }
- rSet.Put( XFillBitmapItem( OUString(), aXOBitmap ) );
+ rSet.Put(XFillBitmapItem(OUString(), aGraf));
}
else if ( eMSO_FillType == mso_fillTexture )
{
- XOBitmap aXBmp( aBmp, XBITMAP_STRETCH );
- rSet.Put( XFillBmpTileItem( sal_True ) );
- rSet.Put( XFillBitmapItem( OUString(), aXBmp ) );
- rSet.Put( XFillBmpSizeXItem( GetPropertyValue( DFF_Prop_fillWidth, 0 ) / 360 ) );
- rSet.Put( XFillBmpSizeYItem( GetPropertyValue( DFF_Prop_fillHeight, 0 ) / 360 ) );
- rSet.Put( XFillBmpSizeLogItem( sal_True ) );
+ rSet.Put(XFillBmpTileItem(true));
+ rSet.Put(XFillBitmapItem(OUString(), aGraf));
+ rSet.Put(XFillBmpSizeXItem(GetPropertyValue(DFF_Prop_fillWidth, 0) / 360));
+ rSet.Put(XFillBmpSizeYItem(GetPropertyValue(DFF_Prop_fillHeight, 0) / 360));
+ rSet.Put(XFillBmpSizeLogItem(true));
}
else
{
- XOBitmap aXBmp( aBmp, XBITMAP_STRETCH );
- rSet.Put( XFillBitmapItem( OUString(), aXBmp ) );
- rSet.Put( XFillBmpTileItem( sal_False ) );
+ rSet.Put(XFillBitmapItem(OUString(), aGraf));
+ rSet.Put(XFillBmpTileItem(false));
}
}
}
diff --git a/filter/source/msfilter/svdfppt.cxx b/filter/source/msfilter/svdfppt.cxx
index 113d91244062..44a0b5214264 100644
--- a/filter/source/msfilter/svdfppt.cxx
+++ b/filter/source/msfilter/svdfppt.cxx
@@ -7315,15 +7315,13 @@ void ApplyCellAttributes( const SdrObject* pObj, Reference< XCell >& xCell )
{
eFS = com::sun::star::drawing::FillStyle_BITMAP;
- XFillBitmapItem aXFillBitmapItem((const XFillBitmapItem&)pObj->GetMergedItem( XATTR_FILLBITMAP ));
- XOBitmap aLocalXOBitmap( aXFillBitmapItem.GetBitmapValue() );
+ const XFillBitmapItem aXFillBitmapItem((const XFillBitmapItem&)pObj->GetMergedItem( XATTR_FILLBITMAP ));
rtl::OUString aURL( RTL_CONSTASCII_USTRINGPARAM(UNO_NAME_GRAPHOBJ_URLPREFIX));
- aURL += rtl::OStringToOUString(
- aLocalXOBitmap.GetGraphicObject().GetUniqueID(),
+ aURL += OStringToOUString(
+ aXFillBitmapItem.GetGraphicObject().GetUniqueID(),
RTL_TEXTENCODING_ASCII_US);
- static const rtl::OUString sFillBitmapURL( String( RTL_CONSTASCII_USTRINGPARAM( "FillBitmapURL" ) ) );
- xPropSet->setPropertyValue( sFillBitmapURL, Any( aURL ) );
+ xPropSet->setPropertyValue( OUString("FillBitmapURL"), Any( aURL ) );
}
break;
case XFILL_NONE :