summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cui/source/tabpages/backgrnd.cxx2
-rw-r--r--cui/source/tabpages/tparea.cxx16
-rw-r--r--cui/source/tabpages/tpbitmap.cxx237
-rw-r--r--cui/source/tabpages/tpline.cxx1
-rw-r--r--drawinglayer/inc/drawinglayer/attribute/sdrfillbitmapattribute.hxx6
-rw-r--r--drawinglayer/source/attribute/sdrfillbitmapattribute.cxx54
-rw-r--r--filter/source/msfilter/msdffimp.cxx49
-rw-r--r--filter/source/msfilter/svdfppt.cxx10
-rw-r--r--lotuswordpro/source/filter/lwpbackgroundstuff.cxx34
-rw-r--r--sc/source/filter/excel/xiescher.cxx13
-rw-r--r--sc/source/ui/view/viewfun7.cxx6
-rw-r--r--sd/source/core/drawdoc4.cxx2
-rw-r--r--sd/source/ui/func/fupage.cxx2
-rw-r--r--sd/source/ui/view/sdview4.cxx3
-rw-r--r--svx/Package_inc.mk1
-rw-r--r--svx/inc/svx/dlgctrl.hxx26
-rw-r--r--svx/inc/svx/xbitmap.hxx81
-rw-r--r--svx/inc/svx/xbtmpit.hxx27
-rw-r--r--svx/inc/svx/xenum.hxx3
-rw-r--r--svx/inc/svx/xfillit.hxx1
-rw-r--r--svx/inc/svx/xtable.hxx29
-rw-r--r--svx/source/customshapes/EnhancedCustomShape2d.cxx7
-rw-r--r--svx/source/customshapes/EnhancedCustomShape3d.cxx20
-rw-r--r--svx/source/dialog/dlgctrl.cxx225
-rw-r--r--svx/source/sdr/primitive2d/sdrattributecreator.cxx30
-rw-r--r--svx/source/svdraw/svdetc.cxx5
-rw-r--r--svx/source/svdraw/svdfmtf.cxx2
-rw-r--r--svx/source/svdraw/svdoashp.cxx33
-rw-r--r--svx/source/svdraw/svdograf.cxx6
-rw-r--r--svx/source/svdraw/svdoole2.cxx2
-rw-r--r--svx/source/tbxctrls/fillctrl.cxx9
-rw-r--r--svx/source/unodraw/XPropertyTable.cxx12
-rw-r--r--svx/source/unodraw/unobtabl.cxx3
-rw-r--r--svx/source/unodraw/unoshape.cxx2
-rw-r--r--svx/source/xoutdev/xattr.cxx8
-rw-r--r--svx/source/xoutdev/xattrbmp.cxx634
-rw-r--r--svx/source/xoutdev/xpool.cxx4
-rw-r--r--svx/source/xoutdev/xtabbtmp.cxx29
-rw-r--r--sw/source/core/frmedt/fecopy.cxx10
-rw-r--r--sw/source/filter/ww8/ww8graf.cxx23
40 files changed, 571 insertions, 1096 deletions
diff --git a/cui/source/tabpages/backgrnd.cxx b/cui/source/tabpages/backgrnd.cxx
index d84cf85117b3..930073fad779 100644
--- a/cui/source/tabpages/backgrnd.cxx
+++ b/cui/source/tabpages/backgrnd.cxx
@@ -53,6 +53,8 @@
#include <svx/xflgrit.hxx>
#include <svl/intitem.hxx>
#include <sfx2/request.hxx>
+#include <svtools/grfmgr.hxx>
+
using namespace ::com::sun::star;
// static ----------------------------------------------------------------
diff --git a/cui/source/tabpages/tparea.cxx b/cui/source/tabpages/tparea.cxx
index 952d6121bd2c..c6716c1798e6 100644
--- a/cui/source/tabpages/tparea.cxx
+++ b/cui/source/tabpages/tparea.cxx
@@ -1142,9 +1142,9 @@ sal_Bool SvxAreaTabPage::FillItemSet( SfxItemSet& rAttrs )
if( nPos != LISTBOX_ENTRY_NOTFOUND &&
nPos != aLbBitmap.GetSavedValue() )
{
- XOBitmap aXOBitmap = pBitmapList->GetBitmap( nPos )->GetXBitmap();
- String aString = aLbBitmap.GetSelectEntry();
- XFillBitmapItem aFillBitmapItem( aString, aXOBitmap );
+ const XBitmapEntry* pXBitmapEntry = pBitmapList->GetBitmap(nPos);
+ const String aString(aLbBitmap.GetSelectEntry());
+ const XFillBitmapItem aFillBitmapItem(aString, pXBitmapEntry->GetGraphicObject());
pOld = GetOldItem( rAttrs, XATTR_FILLBITMAP );
if ( !pOld || !( *(const XFillBitmapItem*)pOld == aFillBitmapItem ) )
{
@@ -2225,15 +2225,15 @@ IMPL_LINK_NOARG(SvxAreaTabPage, ModifyBitmapHdl_Impl)
if( _nPos != LISTBOX_ENTRY_NOTFOUND )
{
// fill ItemSet and pass it on to aCtlXRectPreview
- XBitmapEntry* pEntry = pBitmapList->GetBitmap( _nPos );
+ const XBitmapEntry* pEntry = pBitmapList->GetBitmap(_nPos);
- rXFSet.Put( XFillStyleItem( XFILL_BITMAP ) );
- rXFSet.Put( XFillBitmapItem( String(), pEntry->GetXBitmap() ) );
+ rXFSet.Put(XFillStyleItem(XFILL_BITMAP));
+ rXFSet.Put(XFillBitmapItem(String(), pEntry->GetGraphicObject()));
}
else if( SFX_ITEM_SET == rOutAttrs.GetItemState( GetWhich( XATTR_FILLBITMAP ), sal_True, &pPoolItem ) )
{
- rXFSet.Put( XFillStyleItem( XFILL_BITMAP ) );
- rXFSet.Put( XFillBitmapItem( String(), ( ( const XFillBitmapItem* ) pPoolItem )->GetBitmapValue() ) );
+ rXFSet.Put(XFillStyleItem(XFILL_BITMAP));
+ rXFSet.Put(XFillBitmapItem(String(), ((const XFillBitmapItem*)pPoolItem)->GetGraphicObject()));
}
else
rXFSet.Put( XFillStyleItem( XFILL_NONE ) );
diff --git a/cui/source/tabpages/tpbitmap.cxx b/cui/source/tabpages/tpbitmap.cxx
index 6a4b74b139f0..3ed60c3366a2 100644
--- a/cui/source/tabpages/tpbitmap.cxx
+++ b/cui/source/tabpages/tpbitmap.cxx
@@ -89,7 +89,7 @@ SvxBitmapTabPage::SvxBitmapTabPage
pXPool ( (XOutdevItemPool*) rInAttrs.GetPool() ),
aXFStyleItem ( XFILL_BITMAP ),
- aXBitmapItem ( String(), XOBitmap() ),
+ aXBitmapItem ( String(), Graphic() ),
aXFillAttr ( pXPool ),
rXFSet ( aXFillAttr.GetItemSet() )
{
@@ -237,32 +237,26 @@ sal_Bool SvxBitmapTabPage::FillItemSet( SfxItemSet& _rOutAttrs )
{
if( *pDlgType == 0 && *pbAreaTP == sal_False ) // area dialog
{
- if( *pPageType == PT_BITMAP )
+ if(PT_BITMAP == *pPageType)
{
- // CheckChanges_Impl(); <-- duplicate inquiry?
-
- XOBitmap aXOBitmap;
- String aString;
+ _rOutAttrs.Put(XFillStyleItem(XFILL_BITMAP));
sal_uInt16 nPos = aLbBitmaps.GetSelectEntryPos();
- if( nPos != LISTBOX_ENTRY_NOTFOUND )
+ if(LISTBOX_ENTRY_NOTFOUND != nPos)
{
- aXOBitmap = pBitmapList->GetBitmap( nPos )->GetXBitmap();
- aString = aLbBitmaps.GetSelectEntry();
+ const XBitmapEntry* pXBitmapEntry = pBitmapList->GetBitmap(nPos);
+ const String aString(aLbBitmaps.GetSelectEntry());
+ _rOutAttrs.Put(XFillBitmapItem(aString, pXBitmapEntry->GetGraphicObject()));
}
else
{
- aXOBitmap = aBitmapCtl.GetXBitmap();
-
- // #85339# if it's an array, force conversion to bitmap before using it.
- if(aXOBitmap.GetBitmapType() == XBITMAP_8X8)
- aXOBitmap.GetBitmap();
+ const BitmapEx aBitmapEx(aBitmapCtl.GetBitmapEx());
+ _rOutAttrs.Put(XFillBitmapItem(String(), Graphic(aBitmapEx)));
}
- _rOutAttrs.Put( XFillStyleItem( XFILL_BITMAP ) );
- _rOutAttrs.Put( XFillBitmapItem( aString, aXOBitmap ) );
}
}
+
return sal_True;
}
@@ -278,7 +272,7 @@ void SvxBitmapTabPage::Reset( const SfxItemSet& )
aBitmapCtl.SetBmpArray( aCtlPixel.GetBitmapPixelPtr() );
// get bitmap and display it
- XFillBitmapItem aBmpItem( (const String &) String(), aBitmapCtl.GetXBitmap() );
+ const XFillBitmapItem aBmpItem(OUString(), Graphic(aBitmapCtl.GetBitmapEx()));
rXFSet.Put( aBmpItem );
aCtlPreview.SetAttributes( aXFillAttr.GetItemSet() );
aCtlPreview.Invalidate();
@@ -313,145 +307,49 @@ SfxTabPage* SvxBitmapTabPage::Create( Window* pWindow,
IMPL_LINK_NOARG(SvxBitmapTabPage, ChangeBitmapHdl_Impl)
{
- XOBitmap* pXOBitmap = NULL;
- int nPos = aLbBitmaps.GetSelectEntryPos();
+ GraphicObject* pGraphicObject = 0;
+ int nPos(aLbBitmaps.GetSelectEntryPos());
- if( nPos != LISTBOX_ENTRY_NOTFOUND )
- pXOBitmap = new XOBitmap( ( (XBitmapEntry*) pBitmapList->GetBitmap( nPos ) )->GetXBitmap() );
+ if(LISTBOX_ENTRY_NOTFOUND != nPos)
+ {
+ pGraphicObject = new GraphicObject(pBitmapList->GetBitmap(nPos)->GetGraphicObject());
+ }
else
{
- const SfxPoolItem* pPoolItem = NULL;
- if( SFX_ITEM_SET == rOutAttrs.GetItemState( GetWhich( XATTR_FILLSTYLE ), sal_True, &pPoolItem ) )
+ const SfxPoolItem* pPoolItem = 0;
+
+ if(SFX_ITEM_SET == rOutAttrs.GetItemState(GetWhich(XATTR_FILLSTYLE), true, &pPoolItem))
{
- XFillStyle eXFS = (XFillStyle) ( ( const XFillStyleItem* ) pPoolItem )->GetValue();
- if( ( XFILL_BITMAP == eXFS ) &&
- ( SFX_ITEM_SET == rOutAttrs.GetItemState( GetWhich( XATTR_FILLBITMAP ), sal_True, &pPoolItem ) ) )
+ const XFillStyle eXFS((XFillStyle)((const XFillStyleItem*)pPoolItem)->GetValue());
+
+ if((XFILL_BITMAP == eXFS) && (SFX_ITEM_SET == rOutAttrs.GetItemState(GetWhich(XATTR_FILLBITMAP), true, &pPoolItem)))
{
- pXOBitmap = new XOBitmap( ( ( const XFillBitmapItem* ) pPoolItem )->GetBitmapValue() );
+ pGraphicObject = new GraphicObject(((const XFillBitmapItem*)pPoolItem)->GetGraphicObject());
}
}
- if( !pXOBitmap )
+
+ if(!pGraphicObject)
{
- aLbBitmaps.SelectEntryPos( 0 );
+ aLbBitmaps.SelectEntryPos(0);
nPos = aLbBitmaps.GetSelectEntryPos();
- if( nPos != LISTBOX_ENTRY_NOTFOUND )
- pXOBitmap = new XOBitmap( ( (XBitmapEntry*) pBitmapList->GetBitmap( nPos ) )->GetXBitmap() );
- }
- }
- if( pXOBitmap )
- {
- // #85339# try to convert bitmapped item to array item.
- if(pXOBitmap->GetBitmapType() == XBITMAP_IMPORT)
- {
- Bitmap aBitmap(pXOBitmap->GetBitmap());
- Size aSizePixel(aBitmap.GetSizePixel());
- if(8 == aSizePixel.Width() && 8 == aSizePixel.Height())
+ if(LISTBOX_ENTRY_NOTFOUND != nPos)
{
- sal_uInt16* pPixelArray = new sal_uInt16[64];
- sal_uInt32 nCol1(0xffffffff); // background
- sal_uInt32 nCol2(0xffffffff); // pixel
- BitmapReadAccess* pAccess = aBitmap.AcquireReadAccess();
- sal_Bool bValid(sal_True);
-
- if(pAccess)
- {
- for(sal_uInt32 a(0); bValid && a < 64; a++)
- {
- const BitmapColor aBmCol = pAccess->GetColor(a>>3, a%8);
- Color aRgbCol(aBmCol.GetRed(), aBmCol.GetGreen(), aBmCol.GetBlue());
- sal_uInt32 nColVal = aRgbCol.GetRGBColor();
-
- // test with nCol1
- if(nCol1 != nColVal)
- {
- if(0xffffffff == nCol1)
- {
- // nCol1 is used first time
- nCol1 = nColVal;
- pPixelArray[a] = 0;
- }
- else
- {
- // test with nCol2
- if(nCol2 != nColVal)
- {
- if(0xffffffff == nCol2)
- {
- // nCol2 used first time
- nCol2 = nColVal;
- pPixelArray[a] = 1;
- }
- else
- {
- // Third color detected
- bValid = sal_False;
- }
- }
- else
- {
- // color is pixel color
- pPixelArray[a] = 1;
- }
- }
- }
- else
- {
- // color is background color
- pPixelArray[a] = 0;
- }
- }
-
- // release ReadAccess
- aBitmap.ReleaseAccess(pAccess);
- }
- else
- {
- // no access -> no success
- bValid = sal_False;
- }
-
- if(bValid)
- {
- Color aCol1(nCol1);
- Color aCol2(nCol2);
-
- // no pixel color found? Use opposite od background color.
- if(0xffffffff == nCol2)
- {
- aCol2 = Color(
- 0xff - aCol1.GetRed(),
- 0xff - aCol1.GetGreen(),
- 0xff - aCol1.GetBlue());
- }
-
- // transformation did work, create a new Item
- delete pXOBitmap;
- pXOBitmap = new XOBitmap(pPixelArray, aCol2, aCol1);
- }
-
- // cleanup
- delete[] pPixelArray;
+ pGraphicObject = new GraphicObject(pBitmapList->GetBitmap(nPos)->GetGraphicObject());
}
}
+ }
+
+ if(pGraphicObject)
+ {
+ BitmapColor aBack;
+ BitmapColor aFront;
+ bool bIs8x8(isHistorical8x8(pGraphicObject->GetGraphic().GetBitmap(), aBack, aFront));
aLbColor.SetNoSelection();
aLbBackgroundColor.SetNoSelection();
- if( pXOBitmap->GetBitmapType() == XBITMAP_IMPORT )
- {
- aCtlPixel.Reset();
- aCtlPixel.SetPaintable( sal_False );
- aCtlPixel.Disable();
- aFtPixelEdit.Disable();
- aFtColor.Disable();
- aLbColor.Disable();
- aFtBackgroundColor.Disable();
- aLbBackgroundColor.Disable();
- aBtnModify.Disable();
- aBtnAdd.Disable();
- }
- else if( pXOBitmap->GetBitmapType() == XBITMAP_8X8 )
+ if(bIs8x8)
{
aCtlPixel.SetPaintable( sal_True );
aCtlPixel.Enable();
@@ -464,10 +362,10 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ChangeBitmapHdl_Impl)
aBtnAdd.Enable();
// setting the pixel control
- aCtlPixel.SetXBitmap( *pXOBitmap );
+ aCtlPixel.SetXBitmap(pGraphicObject->GetGraphic().GetBitmapEx());
- Color aPixelColor = pXOBitmap->GetPixelColor();
- Color aBackColor = pXOBitmap->GetBackgroundColor();
+ Color aPixelColor = aFront;
+ Color aBackColor = aBack;
aBitmapCtl.SetPixelColor( aPixelColor );
aBitmapCtl.SetBackgroundColor( aBackColor );
@@ -493,19 +391,34 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ChangeBitmapHdl_Impl)
aLbBackgroundColor.SelectEntry( aBackColor );
}
}
+ else
+ {
+ aCtlPixel.Reset();
+ aCtlPixel.SetPaintable( sal_False );
+ aCtlPixel.Disable();
+ aFtPixelEdit.Disable();
+ aFtColor.Disable();
+ aLbColor.Disable();
+ aFtBackgroundColor.Disable();
+ aLbBackgroundColor.Disable();
+ aBtnModify.Disable();
+ aBtnAdd.Disable();
+ }
+
aCtlPixel.Invalidate();
// display bitmap
- XFillBitmapItem aXBmpItem( (const String &) String(), *pXOBitmap );
+ const XFillBitmapItem aXBmpItem(String(), *pGraphicObject);
rXFSet.Put( aXBmpItem );
aCtlPreview.SetAttributes( aXFillAttr.GetItemSet() );
aCtlPreview.Invalidate();
bBmpChanged = sal_False;
- delete pXOBitmap;
+ delete pGraphicObject;
}
- return 0L;
+
+ return 0;
}
// -----------------------------------------------------------------------
@@ -624,21 +537,17 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickAddHdl_Impl)
XBitmapEntry* pEntry = 0;
if( aCtlPixel.IsEnabled() )
{
- XOBitmap aXOBitmap = aBitmapCtl.GetXBitmap();
+ const BitmapEx aBitmapEx(aBitmapCtl.GetBitmapEx());
- // #85339# if it's an array, force conversion to bitmap before using it.
- if(aXOBitmap.GetBitmapType() == XBITMAP_8X8)
- aXOBitmap.GetBitmap();
-
- pEntry = new XBitmapEntry( aXOBitmap, aName );
+ pEntry = new XBitmapEntry(Graphic(aBitmapEx), aName);
}
else // it must be a not existing imported bitmap
{
- const SfxPoolItem* pPoolItem = NULL;
- if( SFX_ITEM_SET == rOutAttrs.GetItemState( XATTR_FILLBITMAP, sal_True, &pPoolItem ) )
+ const SfxPoolItem* pPoolItem = 0;
+
+ if(SFX_ITEM_SET == rOutAttrs.GetItemState(XATTR_FILLBITMAP, true, &pPoolItem))
{
- XOBitmap aXOBitmap( ( ( const XFillBitmapItem* ) pPoolItem )->GetBitmapValue() );
- pEntry = new XBitmapEntry( aXOBitmap, aName );
+ pEntry = new XBitmapEntry(dynamic_cast< const XFillBitmapItem* >(pPoolItem)->GetGraphicObject(), aName);
}
}
@@ -746,9 +655,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickImportHdl_Impl)
if( !nError )
{
- Bitmap aBmp( aGraphic.GetBitmap() );
- XBitmapEntry* pEntry =
- new XBitmapEntry( XOBitmap( aBmp ), aName );
+ XBitmapEntry* pEntry = new XBitmapEntry( aGraphic, aName );
pBitmapList->Insert( pEntry );
aLbBitmaps.Append( pEntry );
@@ -819,13 +726,9 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ClickModifyHdl_Impl)
pEntry->SetName( aName );
- XOBitmap aXOBitmap = aBitmapCtl.GetXBitmap();
-
- // #85339# if it's an array, force conversion to bitmap before using it.
- if(aXOBitmap.GetBitmapType() == XBITMAP_8X8)
- aXOBitmap.GetBitmap();
+ const BitmapEx aBitmapEx(aBitmapCtl.GetBitmapEx());
- pEntry->SetXBitmap( aXOBitmap );
+ pEntry->SetGraphicObject(Graphic(aBitmapEx));
aLbBitmaps.Modify( pEntry, nPos );
aLbBitmaps.SelectEntryPos( nPos );
@@ -1043,7 +946,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ChangePixelColorHdl_Impl)
aBitmapCtl.SetPixelColor( aLbColor.GetSelectEntryColor() );
// get bitmap and display it
- rXFSet.Put( XFillBitmapItem( String(), aBitmapCtl.GetXBitmap() ) );
+ rXFSet.Put(XFillBitmapItem(String(), Graphic(aBitmapCtl.GetBitmapEx())));
aCtlPreview.SetAttributes( aXFillAttr.GetItemSet() );
aCtlPreview.Invalidate();
@@ -1062,7 +965,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ChangeBackgrndColorHdl_Impl)
aBitmapCtl.SetBackgroundColor( aLbBackgroundColor.GetSelectEntryColor() );
// get bitmap and display it
- rXFSet.Put( XFillBitmapItem( String(), aBitmapCtl.GetXBitmap() ) );
+ rXFSet.Put(XFillBitmapItem(String(), Graphic(aBitmapCtl.GetBitmapEx())));
aCtlPreview.SetAttributes( aXFillAttr.GetItemSet() );
aCtlPreview.Invalidate();
@@ -1080,7 +983,7 @@ void SvxBitmapTabPage::PointChanged( Window* pWindow, RECT_POINT )
aBitmapCtl.SetBmpArray( aCtlPixel.GetBitmapPixelPtr() );
// get bitmap and display it
- rXFSet.Put( XFillBitmapItem( String(), aBitmapCtl.GetXBitmap() ) );
+ rXFSet.Put(XFillBitmapItem(String(), Graphic(aBitmapCtl.GetBitmapEx())));
aCtlPreview.SetAttributes( aXFillAttr.GetItemSet() );
aCtlPreview.Invalidate();
diff --git a/cui/source/tabpages/tpline.cxx b/cui/source/tabpages/tpline.cxx
index 77a9a005a329..303647465959 100644
--- a/cui/source/tabpages/tpline.cxx
+++ b/cui/source/tabpages/tpline.cxx
@@ -48,7 +48,6 @@
#include <sfx2/objsh.hxx>
#include <editeng/brushitem.hxx>
#include <svx/gallery.hxx>
-#include <svx/xbitmap.hxx>
#include <unotools/localfilehelper.hxx>
#include "paragrph.hrc"
#include "sfx2/opengrf.hxx"
diff --git a/drawinglayer/inc/drawinglayer/attribute/sdrfillbitmapattribute.hxx b/drawinglayer/inc/drawinglayer/attribute/sdrfillbitmapattribute.hxx
index 3f04c869453c..602455ea075a 100644
--- a/drawinglayer/inc/drawinglayer/attribute/sdrfillbitmapattribute.hxx
+++ b/drawinglayer/inc/drawinglayer/attribute/sdrfillbitmapattribute.hxx
@@ -25,7 +25,7 @@
//////////////////////////////////////////////////////////////////////////////
// predefines
-class Bitmap;
+class BitmapEx;
namespace basegfx {
class B2DRange;
@@ -51,7 +51,7 @@ namespace drawinglayer
public:
/// constructors/assignmentoperator/destructor
SdrFillBitmapAttribute(
- const Bitmap& rBitmap,
+ const BitmapEx& rBitmapEx,
const basegfx::B2DVector& rSize,
const basegfx::B2DVector& rOffset,
const basegfx::B2DVector& rOffsetPosition,
@@ -71,7 +71,7 @@ namespace drawinglayer
bool operator==(const SdrFillBitmapAttribute& rCandidate) const;
// data read access
- const Bitmap& getBitmap() const;
+ const BitmapEx& getBitmapEx() const;
const basegfx::B2DVector& getSize() const;
const basegfx::B2DVector& getOffset() const;
const basegfx::B2DVector& getOffsetPosition() const;
diff --git a/drawinglayer/source/attribute/sdrfillbitmapattribute.cxx b/drawinglayer/source/attribute/sdrfillbitmapattribute.cxx
index 600777863bc8..5d86525c6d98 100644
--- a/drawinglayer/source/attribute/sdrfillbitmapattribute.cxx
+++ b/drawinglayer/source/attribute/sdrfillbitmapattribute.cxx
@@ -34,7 +34,7 @@ namespace drawinglayer
sal_uInt32 mnRefCount;
// data definitions
- Bitmap maBitmap;
+ BitmapEx maBitmapEx;
basegfx::B2DVector maSize;
basegfx::B2DVector maOffset;
basegfx::B2DVector maOffsetPosition;
@@ -46,7 +46,7 @@ namespace drawinglayer
unsigned mbLogSize : 1;
ImpSdrFillBitmapAttribute(
- const Bitmap& rBitmap,
+ const BitmapEx& rBitmapEx,
const basegfx::B2DVector& rSize,
const basegfx::B2DVector& rOffset,
const basegfx::B2DVector& rOffsetPosition,
@@ -55,7 +55,7 @@ namespace drawinglayer
bool bStretch,
bool bLogSize)
: mnRefCount(0),
- maBitmap(rBitmap),
+ maBitmapEx(rBitmapEx),
maSize(rSize),
maOffset(rOffset),
maOffsetPosition(rOffsetPosition),
@@ -67,7 +67,7 @@ namespace drawinglayer
}
// data read access
- const Bitmap& getBitmap() const { return maBitmap; }
+ const BitmapEx& getBitmapEx() const { return maBitmapEx; }
const basegfx::B2DVector& getSize() const { return maSize; }
const basegfx::B2DVector& getOffset() const { return maOffset; }
const basegfx::B2DVector& getOffsetPosition() const { return maOffsetPosition; }
@@ -78,7 +78,7 @@ namespace drawinglayer
bool operator==(const ImpSdrFillBitmapAttribute& rCandidate) const
{
- return (getBitmap() == rCandidate.getBitmap()
+ return (getBitmapEx() == rCandidate.getBitmapEx()
&& getSize() == rCandidate.getSize()
&& getOffset() == rCandidate.getOffset()
&& getOffsetPosition() == rCandidate.getOffsetPosition()
@@ -95,7 +95,7 @@ namespace drawinglayer
if(!pDefault)
{
pDefault = new ImpSdrFillBitmapAttribute(
- Bitmap(),
+ BitmapEx(),
basegfx::B2DVector(),
basegfx::B2DVector(),
basegfx::B2DVector(),
@@ -113,7 +113,7 @@ namespace drawinglayer
};
SdrFillBitmapAttribute::SdrFillBitmapAttribute(
- const Bitmap& rBitmap,
+ const BitmapEx& rBitmapEx,
const basegfx::B2DVector& rSize,
const basegfx::B2DVector& rOffset,
const basegfx::B2DVector& rOffsetPosition,
@@ -121,8 +121,16 @@ namespace drawinglayer
bool bTiling,
bool bStretch,
bool bLogSize)
- : mpSdrFillBitmapAttribute(new ImpSdrFillBitmapAttribute(
- rBitmap, rSize, rOffset, rOffsetPosition, rRectPoint, bTiling, bStretch, bLogSize))
+ : mpSdrFillBitmapAttribute(
+ new ImpSdrFillBitmapAttribute(
+ rBitmapEx,
+ rSize,
+ rOffset,
+ rOffsetPosition,
+ rRectPoint,
+ bTiling,
+ bStretch,
+ bLogSize))
{
}
@@ -190,9 +198,9 @@ namespace drawinglayer
return (*rCandidate.mpSdrFillBitmapAttribute == *mpSdrFillBitmapAttribute);
}
- const Bitmap& SdrFillBitmapAttribute::getBitmap() const
+ const BitmapEx& SdrFillBitmapAttribute::getBitmapEx() const
{
- return mpSdrFillBitmapAttribute->getBitmap();
+ return mpSdrFillBitmapAttribute->getBitmapEx();
}
const basegfx::B2DVector& SdrFillBitmapAttribute::getSize() const
@@ -228,8 +236,8 @@ namespace drawinglayer
FillBitmapAttribute SdrFillBitmapAttribute::getFillBitmapAttribute(const basegfx::B2DRange& rRange) const
{
// get logical size of bitmap (before expanding eventually)
- Bitmap aBitmap(getBitmap());
- const basegfx::B2DVector aLogicalSize(aBitmap.GetPrefSize().getWidth(), aBitmap.GetPrefSize().getHeight());
+ BitmapEx aBitmapEx(getBitmapEx());
+ const basegfx::B2DVector aLogicalSize(aBitmapEx.GetPrefSize().getWidth(), aBitmapEx.GetPrefSize().getHeight());
// get hor/ver shiftings and apply them eventually to the bitmap, but only
// when tiling is on
@@ -240,45 +248,45 @@ namespace drawinglayer
{
if(0.0 != getOffset().getX() || 0.0 != getOffset().getY())
{
- const sal_uInt32 nWidth(aBitmap.GetSizePixel().getWidth());
- const sal_uInt32 nHeight(aBitmap.GetSizePixel().getHeight());
+ const sal_uInt32 nWidth(aBitmapEx.GetSizePixel().getWidth());
+ const sal_uInt32 nHeight(aBitmapEx.GetSizePixel().getHeight());
if(0.0 != getOffset().getX())
{
bExpandHeight = true;
const sal_uInt32 nOffset(basegfx::fround(((double)nWidth * getOffset().getX()) / 100.0));
- aBitmap.Expand(0L, nHeight);
+ aBitmapEx.Expand(0L, nHeight);
const Size aSizeA(nOffset, nHeight);
const Rectangle aDstA(Point(0L, nHeight), aSizeA);
const Rectangle aSrcA(Point(nWidth - nOffset, 0L), aSizeA);
- aBitmap.CopyPixel(aDstA, aSrcA);
+ aBitmapEx.CopyPixel(aDstA, aSrcA);
const Size aSizeB(nWidth - nOffset, nHeight);
const Rectangle aDstB(Point(nOffset, nHeight), aSizeB);
const Rectangle aSrcB(Point(0L, 0L), aSizeB);
- aBitmap.CopyPixel(aDstB, aSrcB);
+ aBitmapEx.CopyPixel(aDstB, aSrcB);
}
else
{
bExpandWidth = true;
const sal_uInt32 nOffset(basegfx::fround(((double)nHeight * getOffset().getY()) / 100.0));
- aBitmap.Expand(nWidth, 0L);
+ aBitmapEx.Expand(nWidth, 0L);
const Size aSize(nWidth, nHeight);
const Rectangle aDst(Point(nWidth, 0L), aSize);
const Rectangle aSrc(Point(0L, 0L), aSize);
- aBitmap.CopyPixel(aDst, aSrc);
+ aBitmapEx.CopyPixel(aDst, aSrc);
const Size aSizeA(nWidth, nOffset);
const Rectangle aDstA(Point(0L, 0L), aSizeA);
const Rectangle aSrcA(Point(nWidth, nHeight - nOffset), aSizeA);
- aBitmap.CopyPixel(aDstA, aSrcA);
+ aBitmapEx.CopyPixel(aDstA, aSrcA);
const Size aSizeB(nWidth, nHeight - nOffset);
const Rectangle aDstB(Point(0L, nOffset), aSizeB);
const Rectangle aSrcB(Point(nWidth, 0L), aSizeB);
- aBitmap.CopyPixel(aDstB, aSrcB);
+ aBitmapEx.CopyPixel(aDstB, aSrcB);
}
}
}
@@ -379,7 +387,7 @@ namespace drawinglayer
aBitmapSize.setY(aBitmapSize.getY() / fRangeHeight);
}
- return FillBitmapAttribute(BitmapEx(aBitmap), aBitmapTopLeft, aBitmapSize, getTiling());
+ return FillBitmapAttribute(aBitmapEx, aBitmapTopLeft, aBitmapSize, getTiling());
}
} // end of namespace attribute
} // end of namespace drawinglayer
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 :
diff --git a/lotuswordpro/source/filter/lwpbackgroundstuff.cxx b/lotuswordpro/source/filter/lwpbackgroundstuff.cxx
index a38d41920235..0c8deba1ac7f 100644
--- a/lotuswordpro/source/filter/lwpbackgroundstuff.cxx
+++ b/lotuswordpro/source/filter/lwpbackgroundstuff.cxx
@@ -65,7 +65,6 @@
#include "tools/stream.hxx"
#include "vcl/bmpacc.hxx"
-#include "svx/xbitmap.hxx"
void LwpBackgroundStuff::Read(LwpObjectStream* pStrm)
@@ -129,38 +128,9 @@ XFBGImage* LwpBackgroundStuff::GetFillPattern()
pPttnArray = NULL;
}
- // create XOBitmap object from bitmap object
- XOBitmap aXOBitmap;
- aXOBitmap.SetBitmap( aBmp );
- aXOBitmap.Bitmap2Array();
- aXOBitmap.SetBitmapType( XBITMAP_8X8 );
-
- // set back/fore-ground colors
- if (m_aFillColor.IsValidColor() && m_aPatternColor.IsValidColor())
- {
- Color aBackColor(static_cast<sal_uInt8>(m_aFillColor.GetRed()),
- static_cast<sal_uInt8>(m_aFillColor.GetGreen()),
- static_cast<sal_uInt8>(m_aFillColor.GetBlue()));
- Color aForeColor(static_cast<sal_uInt8>(m_aPatternColor.GetRed()),
- static_cast<sal_uInt8>(m_aPatternColor.GetGreen()),
- static_cast<sal_uInt8>(m_aPatternColor.GetBlue()));
-
- if( aXOBitmap.GetBackgroundColor() == COL_BLACK )
- {
- aXOBitmap.SetPixelColor( aBackColor );
- aXOBitmap.SetBackgroundColor( aForeColor );
- }
- else
- {
- aXOBitmap.SetPixelColor( aForeColor );
- aXOBitmap.SetBackgroundColor( aBackColor );
- }
- }
-
- // transfer image data from XOBitmap->SvStream->BYTE-Array
+ // transfer image data from Bitmap->SvStream->BYTE-Array
SvMemoryStream aPicMemStream;
- aXOBitmap.Array2Bitmap();
- aXOBitmap.GetBitmap().Write(aPicMemStream);
+ aBmp.Write(aPicMemStream);
sal_uInt32 nSize = aPicMemStream.GetEndOfData();
sal_uInt8* pImageBuff = new sal_uInt8 [nSize];
memcpy(pImageBuff, aPicMemStream.GetData(), nSize);
diff --git a/sc/source/filter/excel/xiescher.cxx b/sc/source/filter/excel/xiescher.cxx
index b4a131617286..b51f7b203c4c 100644
--- a/sc/source/filter/excel/xiescher.cxx
+++ b/sc/source/filter/excel/xiescher.cxx
@@ -670,16 +670,9 @@ void XclImpDrawObjBase::ConvertFillStyle( SdrObject& rSdrObj, const XclObjFillDa
aMemStrm << sal_uInt32( pnPattern[ nIdx ] ); // 32-bit little-endian
aMemStrm.Seek( STREAM_SEEK_TO_BEGIN );
Bitmap aBitmap;
- aBitmap.Read( aMemStrm, false );
- XOBitmap aXOBitmap( aBitmap );
- aXOBitmap.Bitmap2Array();
- aXOBitmap.SetBitmapType( XBITMAP_8X8 );
- if( aXOBitmap.GetBackgroundColor().GetColor() == COL_BLACK )
- ::std::swap( aPattColor, aBackColor );
- aXOBitmap.SetPixelColor( aPattColor );
- aXOBitmap.SetBackgroundColor( aBackColor );
- rSdrObj.SetMergedItem( XFillStyleItem( XFILL_BITMAP ) );
- rSdrObj.SetMergedItem( XFillBitmapItem( EMPTY_STRING, aXOBitmap ) );
+ aBitmap.Read( aMemStrm, sal_False );
+ rSdrObj.SetMergedItem(XFillStyleItem(XFILL_BITMAP));
+ rSdrObj.SetMergedItem(XFillBitmapItem(EMPTY_STRING, Graphic(aBitmap)));
}
}
}
diff --git a/sc/source/ui/view/viewfun7.cxx b/sc/source/ui/view/viewfun7.cxx
index e85878959820..a93edc6707cb 100644
--- a/sc/source/ui/view/viewfun7.cxx
+++ b/sc/source/ui/view/viewfun7.cxx
@@ -26,7 +26,6 @@
#include <svx/svdpage.hxx>
#include <svx/svdpagv.hxx>
#include <svx/svdundo.hxx>
-#include <svx/xbitmap.hxx>
#include <svx/xbtmpit.hxx>
#include <svx/xoutbmp.hxx>
#include <sfx2/objsh.hxx>
@@ -452,15 +451,12 @@ sal_Bool ScViewFunc::ApplyGraphicToObject( SdrObject* pPickObj, const Graphic& r
/******************************************************************
* Object gets filled with the graphic
******************************************************************/
- //pScDrawView->BegUndo(ScGlobal::GetRscString(STR_UNDO_DRAGDROP));
pScDrawView->AddUndo(new SdrUndoAttrObj(*pPickObj));
- //pScDrawView->EndUndo();
- XOBitmap aXOBitmap( rGraphic.GetBitmap() );
SfxItemSet aSet( pScDrawView->GetModel()->GetItemPool(),
XATTR_FILLSTYLE, XATTR_FILLBITMAP );
aSet.Put(XFillStyleItem(XFILL_BITMAP));
- aSet.Put(XFillBitmapItem(String(), aXOBitmap));
+ aSet.Put(XFillBitmapItem(String(), rGraphic));
pPickObj->SetMergedItemSetAndBroadcast(aSet);
diff --git a/sd/source/core/drawdoc4.cxx b/sd/source/core/drawdoc4.cxx
index 35b0de63a7ae..0a7dc0287b7e 100644
--- a/sd/source/core/drawdoc4.cxx
+++ b/sd/source/core/drawdoc4.cxx
@@ -169,7 +169,7 @@ void SdDrawDocument::CreateLayoutTemplates()
Color aNullColor( COL_WHITE );
Bitmap aNullBmp( aNullSize, 8 );
aNullBmp.Erase( aNullColor );
- rISet.Put(XFillBitmapItem(pPool,aNullBmp));
+ rISet.Put(XFillBitmapItem(pPool, Graphic(aNullBmp)));
// Shadow attributes (Drawing Engine)
rISet.Put(SdrShadowItem(sal_False));
diff --git a/sd/source/ui/func/fupage.cxx b/sd/source/ui/func/fupage.cxx
index 31a1e889b9ed..ae49182c2205 100644
--- a/sd/source/ui/func/fupage.cxx
+++ b/sd/source/ui/func/fupage.cxx
@@ -294,7 +294,7 @@ const SfxItemSet* FuPage::ExecuteDialog( Window* pParent )
// MigrateItemSet makes sure the XFillBitmapItem will have a unique name
SfxItemSet aMigrateSet( mpDoc->GetPool(), XATTR_FILLBITMAP, XATTR_FILLBITMAP );
- aMigrateSet.Put( XFillBitmapItem( rtl::OUString("background") , XOBitmap(aGraphic) ) );
+ aMigrateSet.Put(XFillBitmapItem(OUString("background"), aGraphic));
mpDoc->MigrateItemSet( &aMigrateSet, pTempSet.get(), NULL );
pTempSet->Put( XFillBmpStretchItem( sal_True ));
diff --git a/sd/source/ui/view/sdview4.cxx b/sd/source/ui/view/sdview4.cxx
index b54b56c8f7e8..f9fdabb2edef 100644
--- a/sd/source/ui/view/sdview4.cxx
+++ b/sd/source/ui/view/sdview4.cxx
@@ -155,10 +155,9 @@ SdrGrafObj* View::InsertGraphic( const Graphic& rGraphic, sal_Int8& rAction,
EndUndo();
}
- XOBitmap aXOBitmap( rGraphic.GetBitmap() );
SfxItemSet aSet(mpDocSh->GetPool(), XATTR_FILLSTYLE, XATTR_FILLBITMAP);
aSet.Put(XFillStyleItem(XFILL_BITMAP));
- aSet.Put(XFillBitmapItem(&mpDocSh->GetPool(), aXOBitmap));
+ aSet.Put(XFillBitmapItem(&mpDocSh->GetPool(), rGraphic));
pPickObj->SetMergedItemSetAndBroadcast(aSet);
}
}
diff --git a/svx/Package_inc.mk b/svx/Package_inc.mk
index e1deeab9ecd4..048c5d1a30fc 100644
--- a/svx/Package_inc.mk
+++ b/svx/Package_inc.mk
@@ -471,7 +471,6 @@ $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sxmsitm.hxx,svx/sxmsitm.hxx))
$(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdtaditm.hxx,svx/sdtaditm.hxx))
$(eval $(call gb_Package_add_file,svx_inc,inc/svx/svdotext.hxx,svx/svdotext.hxx))
$(eval $(call gb_Package_add_file,svx_inc,inc/svx/chrtitem.hxx,svx/chrtitem.hxx))
-$(eval $(call gb_Package_add_file,svx_inc,inc/svx/xbitmap.hxx,svx/xbitmap.hxx))
$(eval $(call gb_Package_add_file,svx_inc,inc/svx/sxallitm.hxx,svx/sxallitm.hxx))
$(eval $(call gb_Package_add_file,svx_inc,inc/svx/dlgutil.hxx,svx/dlgutil.hxx))
$(eval $(call gb_Package_add_file,svx_inc,inc/svx/unopage.hxx,svx/unopage.hxx))
diff --git a/svx/inc/svx/dlgctrl.hxx b/svx/inc/svx/dlgctrl.hxx
index 7aecada36c5c..7297bd559bb5 100644
--- a/svx/inc/svx/dlgctrl.hxx
+++ b/svx/inc/svx/dlgctrl.hxx
@@ -146,7 +146,7 @@ public:
SvxBitmapCtl( Window* pParent, const Size& rSize );
~SvxBitmapCtl();
- XOBitmap GetXBitmap();
+ BitmapEx GetBitmapEx();
void SetBmpArray( const sal_uInt16* pPixel ) { pBmpArray = pPixel; }
void SetLines( sal_uInt16 nLns ) { nLines = nLns; }
@@ -182,7 +182,7 @@ public:
virtual void Paint( const Rectangle& rRect );
virtual void MouseButtonDown( const MouseEvent& rMEvt );
- void SetXBitmap( const XOBitmap& rXOBitmap );
+ void SetXBitmap( const BitmapEx& rBitmapEx );
void SetPixelColor( const Color& rCol ) { aPixelColor = rCol; }
void SetBackgroundColor( const Color& rCol ) { aBackgroundColor = rCol; }
@@ -253,20 +253,20 @@ public:
class SVX_DLLPUBLIC BitmapLB : public ListBox
{
public:
- BitmapLB( Window* pParent, ResId Id, sal_Bool bUserDraw = sal_True );
+ BitmapLB(Window* pParent, ResId Id, bool bUserDraw = true);
- virtual void Fill( const XBitmapListRef &pList );
- virtual void UserDraw( const UserDrawEvent& rUDEvt );
+ virtual void Fill(const XBitmapListRef &pList);
+ virtual void UserDraw(const UserDrawEvent& rUDEvt);
- void Append( XBitmapEntry* pEntry, Bitmap* pBmp = NULL );
- void Modify( XBitmapEntry* pEntry, sal_uInt16 nPos, Bitmap* pBmp = NULL );
+ void Append(XBitmapEntry* pEntry, BitmapEx* pBmpEx = NULL);
+ void Modify(XBitmapEntry* pEntry, sal_uInt16 nPos, BitmapEx* pBmpEx = NULL);
private:
- VirtualDevice aVD;
- Bitmap aBitmap;
+ VirtualDevice maVD;
+ BitmapEx maBitmapEx;
XBitmapListRef mpList;
- sal_Bool mbUserDraw;
+ bool mbUserDraw;
SVX_DLLPRIVATE void SetVirtualDevice();
};
@@ -276,13 +276,13 @@ private:
class FillAttrLB : public ColorListBox
{
private:
- VirtualDevice aVD;
- Bitmap aBitmap;
+ VirtualDevice maVD;
+ BitmapEx maBitmapEx;
void SetVirtualDevice();
public:
- FillAttrLB( Window* pParent, WinBits aWB );
+ FillAttrLB( Window* pParent, WinBits aWB );
virtual void Fill( const XColorListRef &pList );
virtual void Fill( const XHatchListRef &pList );
diff --git a/svx/inc/svx/xbitmap.hxx b/svx/inc/svx/xbitmap.hxx
deleted file mode 100644
index cc0741ddea96..000000000000
--- a/svx/inc/svx/xbitmap.hxx
+++ /dev/null
@@ -1,81 +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 .
- */
-
-#ifndef _SVX_XBITMAP_HXX
-#define _SVX_XBITMAP_HXX
-
-#include <tools/color.hxx>
-#include <vcl/bitmap.hxx>
-#include <svtools/grfmgr.hxx>
-#include <svx/xenum.hxx>
-#include "svx/svxdllapi.h"
-
-//---------------
-// class XOBitmap
-//---------------
-
-class SVX_DLLPUBLIC XOBitmap
-{
-protected:
- XBitmapType eType;
- XBitmapStyle eStyle;
- GraphicObject aGraphicObject;
- sal_uInt16* pPixelArray;
- Size aArraySize;
- Color aPixelColor;
- Color aBckgrColor;
- sal_Bool bGraphicDirty;
-
-public:
- XOBitmap();
- XOBitmap( const GraphicObject& rGraphicObject, XBitmapStyle eStyle = XBITMAP_TILE );
- XOBitmap( const Bitmap& rBitmap, XBitmapStyle eStyle = XBITMAP_TILE );
- XOBitmap( const sal_uInt16* pArray, const Color& aPixelColor,
- const Color& aBckgrColor, const Size& rSize = Size( 8, 8 ),
- XBitmapStyle eStyle = XBITMAP_TILE );
- XOBitmap( const XOBitmap& rXBmp );
- ~XOBitmap();
-
- XOBitmap& operator=( const XOBitmap& rXOBitmap );
- int operator==( const XOBitmap& rXOBitmap ) const;
-
- void Bitmap2Array();
- void Array2Bitmap();
-
- void SetGraphicObject( const GraphicObject& rObj ) { aGraphicObject = rObj; bGraphicDirty = sal_False; }
- void SetBitmap( const Bitmap& rBmp ) { aGraphicObject = GraphicObject( Graphic( rBmp ) ); bGraphicDirty = sal_False; }
- void SetBitmapType( XBitmapType eNewType ) { eType = eNewType; }
- void SetBitmapStyle( XBitmapStyle eNewStyle ) { eStyle = eNewStyle; }
- void SetPixelArray( const sal_uInt16* pArray );
- void SetPixelSize( const Size& rSize ) { aArraySize = rSize; bGraphicDirty = sal_True; }
- void SetPixelColor( const Color& rColor ) { aPixelColor = rColor; bGraphicDirty = sal_True; }
- void SetBackgroundColor( const Color& rColor ) { aBckgrColor = rColor; bGraphicDirty = sal_True; }
-
- XBitmapType GetBitmapType() const { return eType; }
- XBitmapStyle GetBitmapStyle() const { return eStyle; }
- const GraphicObject& GetGraphicObject() const;
- Bitmap GetBitmap() const;
- sal_uInt16* GetPixelArray() const { return pPixelArray; }
- Color GetPixelColor() const { return aPixelColor; }
- Color GetBackgroundColor() const { return aBckgrColor; }
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/inc/svx/xbtmpit.hxx b/svx/inc/svx/xbtmpit.hxx
index 6b8cab68dece..d30e2fd5001f 100644
--- a/svx/inc/svx/xbtmpit.hxx
+++ b/svx/inc/svx/xbtmpit.hxx
@@ -20,25 +20,32 @@
#ifndef _SVX_XBTMPIT_HXX
#define _SVX_XBTMPIT_HXX
-#include "svx/svxdllapi.h"
-
-#include <svx/xbitmap.hxx>
+#include <svx/svxdllapi.h>
#include <svx/xit.hxx>
+#include <svtools/grfmgr.hxx>
class SdrModel;
+class BitmapColor;
+
+//////////////////////////////////////////////////////////////////////////////
+// helper to construct historical 8x8 bitmaps with two colors
-//----------------------
+Bitmap SVX_DLLPUBLIC createHistorical8x8FromArray(const sal_uInt16* pArray, Color aColorPix, Color aColorBack);
+bool SVX_DLLPUBLIC isHistorical8x8(const BitmapEx& rBitmapEx, BitmapColor& o_rBack, BitmapColor& o_rFront);
+
+//////////////////////////////////////////////////////////////////////////////
// class XFillBitmapItem
-//----------------------
+
class SVX_DLLPUBLIC XFillBitmapItem : public NameOrIndex
{
- XOBitmap aXOBitmap;
+private:
+ GraphicObject maGraphicObject;
public:
TYPEINFO();
XFillBitmapItem() : NameOrIndex(XATTR_FILLBITMAP, -1 ) {}
- XFillBitmapItem( const String& rName, const XOBitmap& rTheBitmap );
- XFillBitmapItem( SfxItemPool* pPool, const XOBitmap& rTheBitmap );
+ XFillBitmapItem(const String& rName, const GraphicObject& rGraphicObject);
+ XFillBitmapItem(SfxItemPool* pPool, const GraphicObject& rGraphicObject);
XFillBitmapItem( const XFillBitmapItem& rItem );
XFillBitmapItem( SvStream& rIn, sal_uInt16 nVer = 0 );
@@ -56,8 +63,8 @@ public:
SfxMapUnit ePresMetric,
OUString &rText, const IntlWrapper * = 0 ) const;
- const XOBitmap& GetBitmapValue() const; // GetValue -> GetBitmapValue
- void SetBitmapValue( const XOBitmap& rNew ) { aXOBitmap = rNew; Detach(); } // SetValue -> SetBitmapValue
+ const GraphicObject& GetGraphicObject() const;
+ void SetGraphicObject(const GraphicObject& rGraphicObject);
static sal_Bool CompareValueFunc( const NameOrIndex* p1, const NameOrIndex* p2 );
XFillBitmapItem* checkForUniqueItem( SdrModel* pModel ) const;
diff --git a/svx/inc/svx/xenum.hxx b/svx/inc/svx/xenum.hxx
index 8e14e5829dee..1f483273894d 100644
--- a/svx/inc/svx/xenum.hxx
+++ b/svx/inc/svx/xenum.hxx
@@ -45,9 +45,6 @@ enum XFormTextStdForm { XFTFORM_NONE = 0, XFTFORM_TOPCIRC, XFTFORM_BOTCIRC,
XFTFORM_BOTARC, XFTFORM_LFTARC, XFTFORM_RGTARC,
XFTFORM_BUTTON1, XFTFORM_BUTTON2,
XFTFORM_BUTTON3, XFTFORM_BUTTON4};
-enum XBitmapStyle { XBITMAP_TILE, XBITMAP_STRETCH };
-enum XBitmapType { XBITMAP_IMPORT, XBITMAP_8X8, XBITMAP_NONE,
- XBITMAP_16X16 };
#endif // _XENUM_HXX
diff --git a/svx/inc/svx/xfillit.hxx b/svx/inc/svx/xfillit.hxx
index 056647a1b67c..b0270a9d3aa9 100644
--- a/svx/inc/svx/xfillit.hxx
+++ b/svx/inc/svx/xfillit.hxx
@@ -31,7 +31,6 @@
#include <svx/xsflclit.hxx>
#include <svx/xflgrit.hxx>
#include <svx/xflhtit.hxx>
-#include <svx/xbitmap.hxx>
#include <svx/xbtmpit.hxx>
#include <svx/xflftrit.hxx>
diff --git a/svx/inc/svx/xtable.hxx b/svx/inc/svx/xtable.hxx
index af184fc46835..7ccf526b6e66 100644
--- a/svx/inc/svx/xtable.hxx
+++ b/svx/inc/svx/xtable.hxx
@@ -24,7 +24,6 @@
#include <svx/xdash.hxx>
#include <svx/xhatch.hxx>
#include <svx/xgrad.hxx>
-#include <svx/xbitmap.hxx>
#include <svx/xflasit.hxx>
#include <svx/xlnasit.hxx>
@@ -38,6 +37,7 @@
#include <com/sun/star/embed/XStorage.hpp>
#include <basegfx/polygon/b2dpolypolygon.hxx>
#include <com/sun/star/container/XNameContainer.hpp>
+#include <svtools/grfmgr.hxx>
class Color;
class Bitmap;
@@ -170,14 +170,31 @@ public:
class XBitmapEntry : public XPropertyEntry
{
- XOBitmap aXOBitmap;
+private:
+ GraphicObject maGraphicObject;
public:
- XBitmapEntry( const XOBitmap& rXOBitmap, const String& rName ):
- XPropertyEntry( rName ), aXOBitmap( rXOBitmap ) {}
+ XBitmapEntry(const GraphicObject& rGraphicObject, const String& rName)
+ : XPropertyEntry(rName),
+ maGraphicObject(rGraphicObject)
+ {
+ }
+
+ XBitmapEntry(const XBitmapEntry& rOther)
+ : XPropertyEntry(rOther),
+ maGraphicObject(rOther.maGraphicObject)
+ {
+ }
+
+ const GraphicObject& GetGraphicObject() const
+ {
+ return maGraphicObject;
+ }
- void SetXBitmap(const XOBitmap& rXOBitmap) { aXOBitmap = rXOBitmap; }
- XOBitmap& GetXBitmap() { return aXOBitmap; }
+ void SetGraphicObject(const GraphicObject& rGraphicObject)
+ {
+ maGraphicObject = rGraphicObject;
+ }
};
// --------------------
diff --git a/svx/source/customshapes/EnhancedCustomShape2d.cxx b/svx/source/customshapes/EnhancedCustomShape2d.cxx
index e83a1838eb92..41c963b22beb 100644
--- a/svx/source/customshapes/EnhancedCustomShape2d.cxx
+++ b/svx/source/customshapes/EnhancedCustomShape2d.cxx
@@ -43,7 +43,6 @@
#include <svx/xflhtit.hxx>
#include <svx/xbtmpit.hxx>
#include <svx/xgrad.hxx>
-#include <svx/xbitmap.hxx>
#include <svx/xhatch.hxx>
#include <com/sun/star/awt/Size.hpp>
#include <com/sun/star/drawing/EnhancedCustomShapeParameterType.hpp>
@@ -2108,15 +2107,17 @@ void EnhancedCustomShape2d::AdaptObjColor(SdrPathObj& rObj, const SfxItemSet& rC
}
case XFILL_BITMAP:
{
- Bitmap aBitmap(((const XFillBitmapItem&)rObj.GetMergedItem(XATTR_FILLBITMAP)).GetBitmapValue().GetBitmap());
if ( nColorCount || rObj.GetBrightness() != 1.0 )
{
+ Bitmap aBitmap(((const XFillBitmapItem&)rObj.GetMergedItem(XATTR_FILLBITMAP)).GetGraphicObject().GetGraphic().GetBitmapEx().GetBitmap());
+
aBitmap.Adjust(
static_cast< short > ( GetLuminanceChange(
std::min(nColorIndex, nColorCount-1))));
+
+ rObj.SetMergedItem(XFillBitmapItem(String(), Graphic(aBitmap)));
}
- rObj.SetMergedItem( XFillBitmapItem( String(), aBitmap ) );
break;
}
}
diff --git a/svx/source/customshapes/EnhancedCustomShape3d.cxx b/svx/source/customshapes/EnhancedCustomShape3d.cxx
index f1dc1d1d68ce..e6885a39166b 100644
--- a/svx/source/customshapes/EnhancedCustomShape3d.cxx
+++ b/svx/source/customshapes/EnhancedCustomShape3d.cxx
@@ -405,13 +405,12 @@ SdrObject* EnhancedCustomShape3d::Create3DObject( const SdrObject* pShape2d, con
aPlaceholderObjectList.push_back( p3DObj );
else if ( bUseTwoFillStyles )
{
- Bitmap aFillBmp;
+ BitmapEx aFillBmp;
sal_Bool bFillBmpTile = ((XFillBmpTileItem&)p3DObj->GetMergedItem( XATTR_FILLBMP_TILE )).GetValue();
if ( bFillBmpTile )
{
- const XFillBitmapItem& rBmpItm = (XFillBitmapItem&)p3DObj->GetMergedItem( XATTR_FILLBITMAP );
- const XOBitmap& rXOBmp = rBmpItm.GetBitmapValue();
- aFillBmp = rXOBmp.GetBitmap();
+ const XFillBitmapItem& rBmpItm = (XFillBitmapItem&)p3DObj->GetMergedItem(XATTR_FILLBITMAP);
+ aFillBmp = rBmpItm.GetGraphicObject().GetGraphic().GetBitmapEx();
Size aLogicalSize = aFillBmp.GetPrefSize();
if ( aFillBmp.GetPrefMapMode() == MAP_PIXEL )
aLogicalSize = Application::GetDefaultDevice()->PixelToLogic( aLogicalSize, MAP_100TH_MM );
@@ -421,15 +420,14 @@ SdrObject* EnhancedCustomShape3d::Create3DObject( const SdrObject* pShape2d, con
aLogicalSize.Height() *= 5;
aFillBmp.SetPrefSize( aLogicalSize );
aFillBmp.SetPrefMapMode( MAP_100TH_MM );
- p3DObj->SetMergedItem( XFillBitmapItem( String(), aFillBmp ) );
+ p3DObj->SetMergedItem(XFillBitmapItem(String(), Graphic(aFillBmp)));
}
else
{
if ( aSnapRect != aBoundRect )
{
- const XFillBitmapItem& rBmpItm = (XFillBitmapItem&)p3DObj->GetMergedItem( XATTR_FILLBITMAP );
- const XOBitmap& rXOBmp = rBmpItm.GetBitmapValue();
- aFillBmp = rXOBmp.GetBitmap();
+ const XFillBitmapItem& rBmpItm = (XFillBitmapItem&)p3DObj->GetMergedItem(XATTR_FILLBITMAP);
+ aFillBmp = rBmpItm.GetGraphicObject().GetGraphic().GetBitmapEx();
Size aBmpSize( aFillBmp.GetSizePixel() );
double fXScale = (double)aBoundRect.GetWidth() / (double)aSnapRect.GetWidth();
double fYScale = (double)aBoundRect.GetHeight() / (double)aSnapRect.GetHeight();
@@ -440,7 +438,7 @@ SdrObject* EnhancedCustomShape3d::Create3DObject( const SdrObject* pShape2d, con
(sal_Int32)( aBmpSize.Height() * fYScale ) );
Rectangle aCropRect( aPt, aSize );
aFillBmp.Crop( aCropRect );
- p3DObj->SetMergedItem( XFillBitmapItem( String(), aFillBmp ) );
+ p3DObj->SetMergedItem(XFillBitmapItem(String(), Graphic(aFillBmp)));
}
}
pScene->Insert3DObj( p3DObj );
@@ -462,7 +460,9 @@ SdrObject* EnhancedCustomShape3d::Create3DObject( const SdrObject* pShape2d, con
p3DObj->NbcSetTransform( aFrontTransform );
if ( ( eFillStyle == XFILL_BITMAP ) && !aFillBmp.IsEmpty() )
- p3DObj->SetMergedItem( XFillBitmapItem( String(), aFillBmp ) );
+ {
+ p3DObj->SetMergedItem(XFillBitmapItem(String(), Graphic(aFillBmp)));
+ }
}
else if ( eFillStyle == XFILL_NONE )
{
diff --git a/svx/source/dialog/dlgctrl.cxx b/svx/source/dialog/dlgctrl.cxx
index cbb2a1f86fa8..e35724641dee 100644
--- a/svx/source/dialog/dlgctrl.cxx
+++ b/svx/source/dialog/dlgctrl.cxx
@@ -23,9 +23,8 @@
#include <svx/xtable.hxx>
#include <svx/xpool.hxx>
-
#include <svx/dialogs.hrc>
-#include "accessibility.hrc"
+#include <accessibility.hrc>
#include <svx/dlgctrl.hxx>
#include <svx/dialmgr.hxx>
#include <tools/poly.hxx>
@@ -33,18 +32,18 @@
#include <vcl/gradient.hxx>
#include <vcl/hatch.hxx>
#include <svtools/colorcfg.hxx>
-
-#include "svxrectctaccessiblecontext.hxx"
+#include <svxrectctaccessiblecontext.hxx>
#include <com/sun/star/lang/XUnoTunnel.hpp>
#include <basegfx/point/b2dpoint.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
#include <svx/svdorect.hxx>
-
#include <svx/svdmodel.hxx>
#include <svx/svdopath.hxx>
#include <svx/sdr/contact/objectcontactofobjlistpainter.hxx>
#include <svx/sdr/contact/displayinfo.hxx>
-#include "linectrl.hrc"
+#include <linectrl.hrc>
+#include <vcl/bmpacc.hxx>
+#include <svx/xbtmpit.hxx>
#define OUTPUT_DRAWMODE_COLOR (DRAWMODE_DEFAULT)
#define OUTPUT_DRAWMODE_CONTRAST (DRAWMODE_SETTINGSLINE | DRAWMODE_SETTINGSFILL | DRAWMODE_SETTINGSTEXT | DRAWMODE_SETTINGSGRADIENT)
@@ -847,17 +846,34 @@ void SvxPixelCtl::Paint( const Rectangle& )
}
}
-void SvxPixelCtl::SetXBitmap( const XOBitmap& rXBmp )
+void SvxPixelCtl::SetXBitmap( const BitmapEx& rBitmapEx )
{
- if( rXBmp.GetBitmapType() == XBITMAP_8X8 )
+ BitmapColor aBack;
+ BitmapColor aFront;
+
+ if(isHistorical8x8(rBitmapEx, aBack, aFront))
{
- aPixelColor = rXBmp.GetPixelColor();
- aBackgroundColor = rXBmp.GetBackgroundColor();
+ Bitmap aBitmap(rBitmapEx.GetBitmap());
+ BitmapReadAccess* pRead = aBitmap.AcquireReadAccess();
+
+ aBackgroundColor = aBack;
+ aPixelColor = aFront;
+
+ for(sal_uInt16 i(0); i < nSquares; i++)
+ {
+ const BitmapColor aColor(pRead->GetColor(i/8, i%8));
- sal_uInt16* pArray = rXBmp.GetPixelArray();
+ if(aColor == aBack)
+ {
+ *( pPixel + i ) = 0;
+ }
+ else
+ {
+ *( pPixel + i ) = 1;
+ }
+ }
- for( sal_uInt16 i = 0; i < nSquares; i++ )
- *( pPixel + i ) = *( pArray + i );
+ aBitmap.ReleaseAccess(pRead);
}
}
@@ -883,11 +899,11 @@ SvxBitmapCtl::~SvxBitmapCtl()
// BitmapCtl: Returns the Bitmap
-XOBitmap SvxBitmapCtl::GetXBitmap()
+BitmapEx SvxBitmapCtl::GetBitmapEx()
{
- XOBitmap aXOBitmap( pBmpArray, aPixelColor, aBackgroundColor );
+ const Bitmap aRetval(createHistorical8x8FromArray(pBmpArray, aPixelColor, aBackgroundColor));
- return( aXOBitmap );
+ return BitmapEx(aRetval);
}
extern "C" SAL_DLLPUBLIC_EXPORT Window* SAL_CALL makeColorLB(Window *pParent, VclBuilder::stringmap &)
@@ -1236,34 +1252,35 @@ void FillAttrLB::Fill( const XGradientListRef &pList )
// BitmapLB Constructor
-BitmapLB::BitmapLB( Window* pParent, ResId Id, sal_Bool bUserDraw /*= sal_True*/ )
-: ListBox( pParent, Id ),
- mpList( NULL ),
- mbUserDraw( bUserDraw )
+BitmapLB::BitmapLB(Window* pParent, ResId Id, bool bUserDraw /*= false*/ )
+: ListBox(pParent, Id),
+ maVD(),
+ maBitmapEx(),
+ mpList(NULL),
+ mbUserDraw(bUserDraw)
{
- aVD.SetOutputSizePixel( Size( 32, 16 ) );
- EnableUserDraw( mbUserDraw );
+ maVD.SetOutputSizePixel(Size(32, 16));
+ EnableUserDraw(mbUserDraw);
}
/************************************************************************/
void BitmapLB::SetVirtualDevice()
{
- if( aBitmap.GetSizePixel().Width() > 8 ||
- aBitmap.GetSizePixel().Height() > 8 )
+ if(maBitmapEx.GetSizePixel().Width() > 8 || maBitmapEx.GetSizePixel().Height() > 8)
{
- aVD.DrawBitmap( Point( 0, 0 ), Size( 32, 16 ), aBitmap );
+ maVD.DrawBitmapEx(Point(0, 0), Size(32, 16), maBitmapEx);
}
else
{
- aVD.DrawBitmap( Point( 0, 0 ), aBitmap );
- aVD.DrawBitmap( Point( 8, 0 ), aBitmap );
- aVD.DrawBitmap( Point( 16, 0 ), aBitmap );
- aVD.DrawBitmap( Point( 24, 0 ), aBitmap );
- aVD.DrawBitmap( Point( 0, 8 ), aBitmap );
- aVD.DrawBitmap( Point( 8, 8 ), aBitmap );
- aVD.DrawBitmap( Point( 16, 8 ), aBitmap );
- aVD.DrawBitmap( Point( 24, 8 ), aBitmap );
+ maVD.DrawBitmapEx(Point(0, 0), maBitmapEx);
+ maVD.DrawBitmapEx(Point(8, 0), maBitmapEx);
+ maVD.DrawBitmapEx(Point(16, 0), maBitmapEx);
+ maVD.DrawBitmapEx(Point(24, 0), maBitmapEx);
+ maVD.DrawBitmapEx(Point(0, 8), maBitmapEx);
+ maVD.DrawBitmapEx(Point(8, 8), maBitmapEx);
+ maVD.DrawBitmapEx(Point(16, 8), maBitmapEx);
+ maVD.DrawBitmapEx(Point(24, 8), maBitmapEx);
}
}
@@ -1273,135 +1290,133 @@ void BitmapLB::Fill( const XBitmapListRef &pList )
{
mpList = pList;
XBitmapEntry* pEntry;
- long nCount = pList->Count();
+ const long nCount(pList->Count());
- SetUpdateMode( sal_False );
+ SetUpdateMode(false);
- if( mbUserDraw )
+ if(mbUserDraw)
{
- for( long i = 0; i < nCount; i++ )
- InsertEntry( pList->GetBitmap( i )->GetName() );
+ for(long i(0); i < nCount; i++)
+ {
+ InsertEntry(pList->GetBitmap(i)->GetName());
+ }
}
else
{
- for( long i = 0; i < nCount; i++ )
+ for(long i(0); i < nCount; i++)
{
- pEntry = pList->GetBitmap( i );
- aBitmap = pEntry->GetXBitmap().GetBitmap();
-
+ pEntry = pList->GetBitmap(i);
+ maBitmapEx = pEntry->GetGraphicObject().GetGraphic().GetBitmapEx();
SetVirtualDevice();
-
- InsertEntry( pEntry->GetName(), aVD.GetBitmap( Point( 0, 2 ), Size( 32, 12 ) ) );
+ InsertEntry(pEntry->GetName(), maVD.GetBitmap(Point(0, 2), Size(32, 12)));
}
}
- SetUpdateMode( sal_True );
+ SetUpdateMode(true);
}
-void BitmapLB::UserDraw( const UserDrawEvent& rUDEvt )
+void BitmapLB::UserDraw(const UserDrawEvent& rUDEvt)
{
- if( mpList != NULL )
+ if (mpList != NULL)
{
// Draw bitmap
const Rectangle& rDrawRect = rUDEvt.GetRect();
- Rectangle aRect( rDrawRect.Left()+1, rDrawRect.Top()+1, rDrawRect.Left()+33, rDrawRect.Bottom()-1 );
+ const Rectangle aRect(rDrawRect.Left() + 1, rDrawRect.Top() + 1, rDrawRect.Left() + 33, rDrawRect.Bottom() - 1);
+ const sal_Int32 nId(rUDEvt.GetItemId());
- sal_Int32 nId = rUDEvt.GetItemId();
- if( nId >= 0 && nId <= mpList->Count() )
+ if(nId >= 0 && nId <= mpList->Count())
{
- Rectangle aClipRect( rDrawRect.Left()+1, rDrawRect.Top()+1, rDrawRect.Right()-1, rDrawRect.Bottom()-1 );
-
+ const Rectangle aClipRect(rDrawRect.Left() + 1, rDrawRect.Top() + 1, rDrawRect.Right() - 1, rDrawRect.Bottom() - 1);
OutputDevice* pDevice = rUDEvt.GetDevice();
- pDevice->SetClipRegion( Region( aClipRect ) );
-
- aBitmap = mpList->GetBitmap( nId )->GetXBitmap().GetBitmap();
-
+ pDevice->SetClipRegion(Region(aClipRect));
+ maBitmapEx = mpList->GetBitmap(nId)->GetGraphicObject().GetGraphic().GetBitmapEx();
long nPosBaseX = aRect.Left();
long nPosBaseY = aRect.Top();
- if( aBitmap.GetSizePixel().Width() > 8 ||
- aBitmap.GetSizePixel().Height() > 8 )
+ if(maBitmapEx.GetSizePixel().Width() > 8 || maBitmapEx.GetSizePixel().Height() > 8)
{
- pDevice->DrawBitmap( Point( nPosBaseX, nPosBaseY ), Size( 32, 16 ), aBitmap );
+ pDevice->DrawBitmapEx(Point(nPosBaseX, nPosBaseY), Size(32, 16), maBitmapEx);
}
else
{
- pDevice->DrawBitmap( Point( nPosBaseX+ 0, nPosBaseY+0 ), aBitmap );
- pDevice->DrawBitmap( Point( nPosBaseX+ 8, nPosBaseY+0 ), aBitmap );
- pDevice->DrawBitmap( Point( nPosBaseX+16, nPosBaseY+0 ), aBitmap );
- pDevice->DrawBitmap( Point( nPosBaseX+24, nPosBaseY+0 ), aBitmap );
- pDevice->DrawBitmap( Point( nPosBaseX+ 0, nPosBaseY+8 ), aBitmap );
- pDevice->DrawBitmap( Point( nPosBaseX+ 8, nPosBaseY+8 ), aBitmap );
- pDevice->DrawBitmap( Point( nPosBaseX+16, nPosBaseY+8 ), aBitmap );
- pDevice->DrawBitmap( Point( nPosBaseX+24, nPosBaseY+8 ), aBitmap );
+ pDevice->DrawBitmapEx(Point(nPosBaseX+ 0, nPosBaseY+0 ), maBitmapEx);
+ pDevice->DrawBitmapEx(Point(nPosBaseX+ 8, nPosBaseY+0 ), maBitmapEx);
+ pDevice->DrawBitmapEx(Point(nPosBaseX+16, nPosBaseY+0 ), maBitmapEx);
+ pDevice->DrawBitmapEx(Point(nPosBaseX+24, nPosBaseY+0 ), maBitmapEx);
+ pDevice->DrawBitmapEx(Point(nPosBaseX+ 0, nPosBaseY+8 ), maBitmapEx);
+ pDevice->DrawBitmapEx(Point(nPosBaseX+ 8, nPosBaseY+8 ), maBitmapEx);
+ pDevice->DrawBitmapEx(Point(nPosBaseX+16, nPosBaseY+8 ), maBitmapEx);
+ pDevice->DrawBitmapEx(Point(nPosBaseX+24, nPosBaseY+8 ), maBitmapEx);
}
pDevice->SetClipRegion();
// Draw name
- pDevice->DrawText( Point( aRect.Right()+7, aRect.Top()-1 ), mpList->GetBitmap( nId )->GetName() );
+ pDevice->DrawText(Point(aRect.Right() + 7, aRect.Top() - 1), mpList->GetBitmap(nId)->GetName());
}
}
}
/************************************************************************/
-void BitmapLB::Append( XBitmapEntry* pEntry, Bitmap* pBmp )
+void BitmapLB::Append(XBitmapEntry* pEntry, BitmapEx* pBmpEx)
{
- if( pBmp )
+ if(pBmpEx)
{
- aBitmap = pEntry->GetXBitmap().GetBitmap();
+ maBitmapEx = pEntry->GetGraphicObject().GetGraphic().GetBitmapEx();
SetVirtualDevice();
- InsertEntry( pEntry->GetName(), aVD.GetBitmap( Point( 0, 2 ), Size( 32, 12 ) ) );
+ InsertEntry(pEntry->GetName(), maVD.GetBitmap(Point(0, 2), Size(32, 12)));
}
else
- InsertEntry( pEntry->GetName() );
+ {
+ InsertEntry(pEntry->GetName());
+ }
}
/************************************************************************/
-void BitmapLB::Modify( XBitmapEntry* pEntry, sal_uInt16 nPos, Bitmap* pBmp )
+void BitmapLB::Modify(XBitmapEntry* pEntry, sal_uInt16 nPos, BitmapEx* pBmpEx)
{
- RemoveEntry( nPos );
+ RemoveEntry(nPos);
- if( pBmp )
+ if(pBmpEx)
{
- aBitmap = pEntry->GetXBitmap().GetBitmap();
+ maBitmapEx = pEntry->GetGraphicObject().GetGraphic().GetBitmapEx();
SetVirtualDevice();
-
- InsertEntry( pEntry->GetName(), aVD.GetBitmap( Point( 0, 2 ), Size( 32, 12 ) ), nPos );
+ InsertEntry(pEntry->GetName(), maVD.GetBitmap(Point(0, 2), Size(32, 12)), nPos);
}
else
- InsertEntry( pEntry->GetName() );
+ {
+ InsertEntry(pEntry->GetName());
+ }
}
-// FillAttrLB Constructor
-
-FillAttrLB::FillAttrLB( Window* pParent, WinBits aWB ) :
- ColorListBox( pParent, aWB )
+FillAttrLB::FillAttrLB(Window* pParent, WinBits aWB)
+: ColorListBox(pParent, aWB)
{
- aVD.SetOutputSizePixel( Size( 32, 16 ) );
+ maVD.SetOutputSizePixel(Size(32, 16));
}
/************************************************************************/
void FillAttrLB::SetVirtualDevice()
{
- if( aBitmap.GetSizePixel().Width() > 8 ||
- aBitmap.GetSizePixel().Height() > 8 )
+ maVD.Erase();
+
+ if(maBitmapEx.GetSizePixel().Width() > 8 || maBitmapEx.GetSizePixel().Height() > 8)
{
- aVD.DrawBitmap( Point( 0, 0 ), Size( 32, 16 ), aBitmap );
+ maVD.DrawBitmapEx(Point(0, 0), Size(32, 16), maBitmapEx);
}
else
{
- aVD.DrawBitmap( Point( 0, 0 ), aBitmap );
- aVD.DrawBitmap( Point( 8, 0 ), aBitmap );
- aVD.DrawBitmap( Point( 16, 0 ), aBitmap );
- aVD.DrawBitmap( Point( 24, 0 ), aBitmap );
- aVD.DrawBitmap( Point( 0, 8 ), aBitmap );
- aVD.DrawBitmap( Point( 8, 8 ), aBitmap );
- aVD.DrawBitmap( Point( 16, 8 ), aBitmap );
- aVD.DrawBitmap( Point( 24, 8 ), aBitmap );
+ maVD.DrawBitmapEx(Point(0, 0), maBitmapEx);
+ maVD.DrawBitmapEx(Point(8, 0), maBitmapEx);
+ maVD.DrawBitmapEx(Point(16, 0), maBitmapEx);
+ maVD.DrawBitmapEx(Point(24, 0), maBitmapEx);
+ maVD.DrawBitmapEx(Point(0, 8), maBitmapEx);
+ maVD.DrawBitmapEx(Point(8, 8), maBitmapEx);
+ maVD.DrawBitmapEx(Point(16, 8), maBitmapEx);
+ maVD.DrawBitmapEx(Point(24, 8), maBitmapEx);
}
}
@@ -1409,23 +1424,21 @@ void FillAttrLB::SetVirtualDevice()
void FillAttrLB::Fill( const XBitmapListRef &pList )
{
- long nCount = pList->Count();
+ const long nCount(pList->Count());
XBitmapEntry* pEntry;
- ListBox::SetUpdateMode( sal_False );
- for( long i = 0; i < nCount; i++ )
+ ListBox::SetUpdateMode(false);
+
+ for(long i(0); i < nCount; i++)
{
pEntry = pList->GetBitmap( i );
- aBitmap = pEntry->GetXBitmap().GetBitmap();
-
+ maBitmapEx = pEntry->GetGraphicObject().GetGraphic().GetBitmapEx();
SetVirtualDevice();
-
- ListBox::InsertEntry( pEntry->GetName(), aVD.GetBitmap( Point( 0, 2 ), Size( 32, 12 ) ) );
+ ListBox::InsertEntry(pEntry->GetName(), maVD.GetBitmap(Point(0, 2), Size(32, 12)));
}
- ListBox::SetUpdateMode( sal_True );
-}
-// Fills the listbox (provisional) with strings
+ ListBox::SetUpdateMode(true);
+}
void FillTypeLB::Fill()
{
diff --git a/svx/source/sdr/primitive2d/sdrattributecreator.cxx b/svx/source/sdr/primitive2d/sdrattributecreator.cxx
index 3fd7b44fc8ca..273db74e60c7 100644
--- a/svx/source/sdr/primitive2d/sdrattributecreator.cxx
+++ b/svx/source/sdr/primitive2d/sdrattributecreator.cxx
@@ -586,42 +586,42 @@ namespace drawinglayer
attribute::SdrFillBitmapAttribute createNewSdrFillBitmapAttribute(const SfxItemSet& rSet)
{
- Bitmap aBitmap((((const XFillBitmapItem&)(rSet.Get(XATTR_FILLBITMAP))).GetBitmapValue()).GetBitmap());
+ BitmapEx aBitmapEx(((const XFillBitmapItem&)(rSet.Get(XATTR_FILLBITMAP))).GetGraphicObject().GetGraphic().GetBitmapEx());
// make sure it's not empty, use default instead
- if(aBitmap.IsEmpty())
+ if(aBitmapEx.IsEmpty())
{
// #i118485# Add PrefMapMode and PrefSize to avoid mini-tiling and
// expensive primitive processing in this case. Use 10x10 cm
- aBitmap = Bitmap(Size(4,4), 8);
- aBitmap.SetPrefMapMode(MapMode(MAP_100TH_MM));
- aBitmap.SetPrefSize(Size(10000.0, 10000.0));
+ aBitmapEx = Bitmap(Size(4,4), 8);
+ aBitmapEx.SetPrefMapMode(MapMode(MAP_100TH_MM));
+ aBitmapEx.SetPrefSize(Size(10000.0, 10000.0));
}
// if there is no logical size, create a size from pixel size and set MapMode accordingly
- if(0L == aBitmap.GetPrefSize().Width() || 0L == aBitmap.GetPrefSize().Height())
+ if(0L == aBitmapEx.GetPrefSize().Width() || 0L == aBitmapEx.GetPrefSize().Height())
{
- aBitmap.SetPrefSize(aBitmap.GetSizePixel());
- aBitmap.SetPrefMapMode(MAP_PIXEL);
+ aBitmapEx.SetPrefSize(aBitmapEx.GetSizePixel());
+ aBitmapEx.SetPrefMapMode(MAP_PIXEL);
}
// convert size and MapMode to destination logical size and MapMode. The created
// bitmap must have a valid logical size (PrefSize)
const MapUnit aDestinationMapUnit((MapUnit)rSet.GetPool()->GetMetric(0));
- if(aBitmap.GetPrefMapMode() != aDestinationMapUnit)
+ if(aBitmapEx.GetPrefMapMode() != aDestinationMapUnit)
{
// #i100360# for MAP_PIXEL, LogicToLogic will not work properly,
// so fallback to Application::GetDefaultDevice()
- if(MAP_PIXEL == aBitmap.GetPrefMapMode().GetMapUnit())
+ if(MAP_PIXEL == aBitmapEx.GetPrefMapMode().GetMapUnit())
{
- aBitmap.SetPrefSize(Application::GetDefaultDevice()->PixelToLogic(
- aBitmap.GetPrefSize(), aDestinationMapUnit));
+ aBitmapEx.SetPrefSize(Application::GetDefaultDevice()->PixelToLogic(
+ aBitmapEx.GetPrefSize(), aDestinationMapUnit));
}
else
{
- aBitmap.SetPrefSize(OutputDevice::LogicToLogic(
- aBitmap.GetPrefSize(), aBitmap.GetPrefMapMode(), aDestinationMapUnit));
+ aBitmapEx.SetPrefSize(OutputDevice::LogicToLogic(
+ aBitmapEx.GetPrefSize(), aBitmapEx.GetPrefMapMode(), aDestinationMapUnit));
}
}
@@ -637,7 +637,7 @@ namespace drawinglayer
(double)((const SfxUInt16Item&) (rSet.Get(XATTR_FILLBMP_POSOFFSETY))).GetValue());
return attribute::SdrFillBitmapAttribute(
- aBitmap,
+ aBitmapEx,
aSize,
aOffset,
aOffsetPosition,
diff --git a/svx/source/svdraw/svdetc.cxx b/svx/source/svdraw/svdetc.cxx
index 5d184ebdb81e..9fd5624086ec 100644
--- a/svx/source/svdraw/svdetc.cxx
+++ b/svx/source/svdraw/svdetc.cxx
@@ -321,11 +321,10 @@ bool GetDraftFillColor(const SfxItemSet& rSet, Color& rCol)
}
case XFILL_BITMAP:
{
- const Bitmap& rBitmap = ((XFillBitmapItem&)rSet.Get(XATTR_FILLBITMAP)).GetBitmapValue().GetBitmap();
- const Size aSize(rBitmap.GetSizePixel());
+ Bitmap aBitmap(((XFillBitmapItem&)rSet.Get(XATTR_FILLBITMAP)).GetGraphicObject().GetGraphic().GetBitmapEx().GetBitmap());
+ const Size aSize(aBitmap.GetSizePixel());
const sal_uInt32 nWidth = aSize.Width();
const sal_uInt32 nHeight = aSize.Height();
- Bitmap aBitmap(rBitmap);
BitmapReadAccess* pAccess = aBitmap.AcquireReadAccess();
if(pAccess && nWidth > 0 && nHeight > 0)
diff --git a/svx/source/svdraw/svdfmtf.cxx b/svx/source/svdraw/svdfmtf.cxx
index 1d9b94840f31..93c2f32ded3d 100644
--- a/svx/source/svdraw/svdfmtf.cxx
+++ b/svx/source/svdraw/svdfmtf.cxx
@@ -442,7 +442,7 @@ void ImpSdrGDIMetaFileImport::InsertObj(SdrObject* pObj, sal_Bool bScale)
Size(ceil(aPixel.getWidth()), ceil(aPixel.getHeight())));
pObj->SetMergedItem(XFillStyleItem(XFILL_BITMAP));
- pObj->SetMergedItem(XFillBitmapItem(String(), aClippedBitmap.GetBitmap()));
+ pObj->SetMergedItem(XFillBitmapItem(String(), Graphic(aClippedBitmap)));
}
}
}
diff --git a/svx/source/svdraw/svdoashp.cxx b/svx/source/svdraw/svdoashp.cxx
index 380a0db6f194..078108167e69 100644
--- a/svx/source/svdraw/svdoashp.cxx
+++ b/svx/source/svdraw/svdoashp.cxx
@@ -343,15 +343,17 @@ SdrObject* ImpCreateShadowObjectClone(const SdrObject& rOriginal, const SfxItemS
// bitmap and transparency like shadow
if(bBitmapFillUsed)
{
- XOBitmap aFillBitmap(((XFillBitmapItem&)(rOriginalSet.Get(XATTR_FILLBITMAP))).GetBitmapValue());
- Bitmap aSourceBitmap(aFillBitmap.GetBitmap());
- BitmapReadAccess* pReadAccess = aSourceBitmap.AcquireReadAccess();
+ GraphicObject aGraphicObject(((XFillBitmapItem&)(rOriginalSet.Get(XATTR_FILLBITMAP))).GetGraphicObject());
+ const BitmapEx aBitmapEx(aGraphicObject.GetGraphic().GetBitmapEx());
+ Bitmap aBitmap(aBitmapEx.GetBitmap());
- if(!aSourceBitmap.IsEmpty())
+ if(!aBitmap.IsEmpty())
{
+ BitmapReadAccess* pReadAccess = aBitmap.AcquireReadAccess();
+
if(pReadAccess)
{
- Bitmap aDestBitmap(aSourceBitmap.GetSizePixel(), 24L);
+ Bitmap aDestBitmap(aBitmap.GetSizePixel(), 24L);
BitmapWriteAccess* pWriteAccess = aDestBitmap.AcquireWriteAccess();
if(pWriteAccess)
@@ -370,14 +372,29 @@ SdrObject* ImpCreateShadowObjectClone(const SdrObject& rOriginal, const SfxItemS
}
aDestBitmap.ReleaseAccess(pWriteAccess);
- aFillBitmap.SetBitmap(aDestBitmap);
}
- aSourceBitmap.ReleaseAccess(pReadAccess);
+ aBitmap.ReleaseAccess(pReadAccess);
+
+ if(aBitmapEx.IsTransparent())
+ {
+ if(aBitmapEx.IsAlpha())
+ {
+ aGraphicObject.SetGraphic(Graphic(BitmapEx(aDestBitmap, aBitmapEx.GetAlpha())));
+ }
+ else
+ {
+ aGraphicObject.SetGraphic(Graphic(BitmapEx(aDestBitmap, aBitmapEx.GetMask())));
+ }
+ }
+ else
+ {
+ aGraphicObject.SetGraphic(Graphic(aDestBitmap));
+ }
}
}
- aTempSet.Put(XFillBitmapItem(aTempSet.GetPool(), aFillBitmap));
+ aTempSet.Put(XFillBitmapItem(aTempSet.GetPool(), aGraphicObject));
aTempSet.Put(XFillTransparenceItem(nShadowTransparence));
}
diff --git a/svx/source/svdraw/svdograf.cxx b/svx/source/svdraw/svdograf.cxx
index 91775be362f4..abf9f860a51e 100644
--- a/svx/source/svdraw/svdograf.cxx
+++ b/svx/source/svdraw/svdograf.cxx
@@ -47,7 +47,6 @@
#include <svx/svdview.hxx>
#include <svx/svdograf.hxx>
#include <svx/svdogrp.hxx>
-#include <svx/xbitmap.hxx>
#include <svx/xbtmpit.hxx>
#include <svx/xflbmtit.hxx>
#include <svx/svdundo.hxx>
@@ -1216,9 +1215,8 @@ SdrObject* SdrGrafObj::DoConvertToPolyObj(sal_Bool bBezier, bool bAddText ) cons
SfxItemSet aSet(GetObjectItemSet());
aSet.Put(XFillStyleItem(XFILL_BITMAP));
- Bitmap aBitmap( GetTransformedGraphic().GetBitmap() );
- XOBitmap aXBmp(aBitmap, XBITMAP_STRETCH);
- aSet.Put(XFillBitmapItem(String(), aXBmp));
+ const BitmapEx aBitmapEx(GetTransformedGraphic().GetBitmapEx());
+ aSet.Put(XFillBitmapItem(OUString(), Graphic(aBitmapEx)));
aSet.Put(XFillBmpTileItem(false));
pRetval->SetMergedItemSet(aSet);
diff --git a/svx/source/svdraw/svdoole2.cxx b/svx/source/svdraw/svdoole2.cxx
index 98bd1ec64116..d3b409025d61 100644
--- a/svx/source/svdraw/svdoole2.cxx
+++ b/svx/source/svdraw/svdoole2.cxx
@@ -1338,7 +1338,7 @@ SdrObject* SdrOle2Obj::createSdrGrafObjReplacement(bool bAddText, bool /* bUseHC
// bitmap fill
pClone->SetMergedItem(XFillStyleItem(XFILL_BITMAP));
- pClone->SetMergedItem(XFillBitmapItem(String(), GetEmtyOLEReplacementBitmap()));
+ pClone->SetMergedItem(XFillBitmapItem(String(), Graphic(GetEmtyOLEReplacementBitmap())));
pClone->SetMergedItem(XFillBmpTileItem(false));
pClone->SetMergedItem(XFillBmpStretchItem(false));
diff --git a/svx/source/tbxctrls/fillctrl.cxx b/svx/source/tbxctrls/fillctrl.cxx
index 9403c103fe16..877958250369 100644
--- a/svx/source/tbxctrls/fillctrl.cxx
+++ b/svx/source/tbxctrls/fillctrl.cxx
@@ -413,7 +413,7 @@ void SvxFillToolBoxControl::Update( const SfxPoolItem* pState )
aTmpStr += aString;
aTmpStr += TMP_STR_END;
- XBitmapEntry* pEntry = new XBitmapEntry( pBitmapItem->GetBitmapValue(), aTmpStr );
+ XBitmapEntry* pEntry = new XBitmapEntry(pBitmapItem->GetGraphicObject(), aTmpStr);
XBitmapListRef xBitmapList =
XPropertyList::CreatePropertyList(XBITMAP_LIST,
rtl::OUString("TmpList"))->AsBitmapList();
@@ -766,14 +766,13 @@ IMPL_LINK( FillControl, SelectFillAttrHdl, ListBox *, pBox )
if ( nPos < aItem.GetBitmapList()->Count() ) // kein temp. Eintrag ?
{
- XOBitmap aXOBitmap = aItem.GetBitmapList()->GetBitmap( nPos )->GetXBitmap();
- XFillBitmapItem aXFillBitmapItem( pLbFillAttr->GetSelectEntry(), aXOBitmap );
+ const XBitmapEntry* pXBitmapEntry = aItem.GetBitmapList()->GetBitmap(nPos);
+ const XFillBitmapItem aXFillBitmapItem(pLbFillAttr->GetSelectEntry(), pXBitmapEntry->GetGraphicObject());
aArgs[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "FillBitmap" ));
aXFillBitmapItem.QueryValue( a );
aArgs[0].Value = a;
- ((SvxFillToolBoxControl*)GetData())->Dispatch( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ".uno:FillBitmap" )),
- aArgs );
+ ((SvxFillToolBoxControl*)GetData())->Dispatch(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".uno:FillBitmap")), aArgs);
}
}
}
diff --git a/svx/source/unodraw/XPropertyTable.cxx b/svx/source/unodraw/XPropertyTable.cxx
index d64271462faf..c6b9063930b4 100644
--- a/svx/source/unodraw/XPropertyTable.cxx
+++ b/svx/source/unodraw/XPropertyTable.cxx
@@ -669,9 +669,8 @@ uno::Reference< uno::XInterface > SAL_CALL SvxUnoXBitmapTable_createInstance( XP
uno::Any SvxUnoXBitmapTable::getAny( const XPropertyEntry* pEntry ) const throw()
{
OUString aURL( RTL_CONSTASCII_USTRINGPARAM(UNO_NAME_GRAPHOBJ_URLPREFIX));
- aURL += OStringToOUString(
- ((XBitmapEntry*)pEntry)->GetXBitmap().GetGraphicObject().GetUniqueID(),
- RTL_TEXTENCODING_ASCII_US);
+ const GraphicObject& rGraphicObject(((XBitmapEntry*)pEntry)->GetGraphicObject());
+ aURL += OStringToOUString(rGraphicObject.GetUniqueID(), RTL_TEXTENCODING_ASCII_US);
uno::Any aAny;
aAny <<= aURL;
@@ -684,11 +683,10 @@ XPropertyEntry* SvxUnoXBitmapTable::getEntry( const OUString& rName, const uno::
if(!(rAny >>= aURL))
return NULL;
- GraphicObject aGrafObj( GraphicObject::CreateGraphicObjectFromURL( aURL ) );
- XOBitmap aBMP( aGrafObj );
+ const GraphicObject aGrafObj(GraphicObject::CreateGraphicObjectFromURL(aURL));
+ const String aName(rName);
- const String aName( rName );
- return new XBitmapEntry( aBMP, aName );
+ return new XBitmapEntry(aGrafObj, aName);
}
// XElementAccess
diff --git a/svx/source/unodraw/unobtabl.cxx b/svx/source/unodraw/unobtabl.cxx
index 7051d1bc5331..bc8e7dff52ff 100644
--- a/svx/source/unodraw/unobtabl.cxx
+++ b/svx/source/unodraw/unobtabl.cxx
@@ -69,7 +69,8 @@ bool SvxUnoBitmapTable::isValid( const NameOrIndex* pItem ) const
const XFillBitmapItem* pBitmapItem = dynamic_cast< const XFillBitmapItem* >( pItem );
if( pBitmapItem )
{
- const GraphicObject& rGraphic = pBitmapItem->GetBitmapValue().GetGraphicObject();
+ const Graphic& rGraphic = pBitmapItem->GetGraphicObject().GetGraphic();
+
return rGraphic.GetSizeBytes() > 0;
}
}
diff --git a/svx/source/unodraw/unoshape.cxx b/svx/source/unodraw/unoshape.cxx
index 23b9046c4fc3..1193242b98bf 100644
--- a/svx/source/unodraw/unoshape.cxx
+++ b/svx/source/unodraw/unoshape.cxx
@@ -1506,7 +1506,7 @@ sal_Bool SAL_CALL SvxShape::SetFillAttribute( sal_Int32 nWID, const ::rtl::OUStr
XFillBitmapItem aBmpItem;
aBmpItem.SetWhich( XATTR_FILLBITMAP );
aBmpItem.SetName( rName );
- aBmpItem.SetBitmapValue( pEntry->GetXBitmap() );
+ aBmpItem.SetGraphicObject(pEntry->GetGraphicObject());
rSet.Put( aBmpItem );
break;
}
diff --git a/svx/source/xoutdev/xattr.cxx b/svx/source/xoutdev/xattr.cxx
index 26bc642aaaca..9a607cb01884 100644
--- a/svx/source/xoutdev/xattr.cxx
+++ b/svx/source/xoutdev/xattr.cxx
@@ -241,9 +241,13 @@ String NameOrIndex::CheckNamedItem( const NameOrIndex* pCheckItem, const sal_uIn
switch( nWhich )
{
case XATTR_FILLBITMAP:
- bFound = (((XFillBitmapItem*)pCheckItem)->GetBitmapValue().GetGraphicObject().GetUniqueID() ==
- ((XBitmapEntry*)pEntry)->GetXBitmap().GetGraphicObject().GetUniqueID());
+ {
+ const GraphicObject& rGraphicObjectA(((XFillBitmapItem*)pCheckItem)->GetGraphicObject());
+ const GraphicObject& rGraphicObjectB(((XBitmapEntry*)pEntry)->GetGraphicObject());
+
+ bFound = (rGraphicObjectA == rGraphicObjectB);
break;
+ }
case XATTR_LINEDASH:
bFound = (((XLineDashItem*)pCheckItem)->GetDashValue() == ((XDashEntry*)pEntry) ->GetDash());
break;
diff --git a/svx/source/xoutdev/xattrbmp.cxx b/svx/source/xoutdev/xattrbmp.cxx
index ad524bbe7b37..27a3dd238365 100644
--- a/svx/source/xoutdev/xattrbmp.cxx
+++ b/svx/source/xoutdev/xattrbmp.cxx
@@ -26,567 +26,250 @@
#include <toolkit/unohlp.hxx>
#include <svl/style.hxx>
#include <editeng/memberids.hrc>
-
#include <svx/dialogs.hrc>
#include "svx/xattr.hxx"
#include <svx/xtable.hxx>
#include <svx/xdef.hxx>
#include <svx/unomid.hxx>
#include <editeng/unoprnms.hxx>
-
-#include "svx/unoapi.hxx"
+#include <svx/unoapi.hxx>
#include <svx/svdmodel.hxx>
#include <com/sun/star/beans/PropertyValue.hpp>
+#include <vcl/salbtype.hxx>
+#include <vcl/bmpacc.hxx>
using namespace ::com::sun::star;
-// ---------------
-// class XOBitmap
-// ---------------
-
-/*************************************************************************
-|*
-|* XOBitmap::XOBitmap()
-|*
-*************************************************************************/
-
-XOBitmap::XOBitmap() :
- eType ( XBITMAP_NONE ),
- eStyle ( XBITMAP_STRETCH ),
- pPixelArray ( NULL ),
- bGraphicDirty ( sal_False )
-{
-}
+// -----------------------
+// class XFillBitmapItem
+// -----------------------
+TYPEINIT1_AUTOFACTORY(XFillBitmapItem, NameOrIndex);
-/*************************************************************************
-|*
-|* XOBitmap::XOBitmap( Bitmap aBitmap, XBitmapStyle eStyle = XBITMAP_TILE )
-|*
-*************************************************************************/
-
-XOBitmap::XOBitmap( const Bitmap& rBmp, XBitmapStyle eInStyle ) :
- eType ( XBITMAP_IMPORT ),
- eStyle ( eInStyle ),
- aGraphicObject ( rBmp ),
- pPixelArray ( NULL ),
- bGraphicDirty ( sal_False )
-{
-}
+//////////////////////////////////////////////////////////////////////////////
-/*************************************************************************
-|*
-|* XOBitmap::XOBitmap( Bitmap aBitmap, XBitmapStyle eStyle = XBITMAP_TILE )
-|*
-*************************************************************************/
-
-XOBitmap::XOBitmap( const GraphicObject& rGraphicObject, XBitmapStyle eInStyle ) :
- eType ( XBITMAP_IMPORT ),
- eStyle ( eInStyle ),
- aGraphicObject ( rGraphicObject ),
- pPixelArray ( NULL ),
- bGraphicDirty ( sal_False )
+XFillBitmapItem::XFillBitmapItem(const XubString& rName, const GraphicObject& rGraphicObject)
+: NameOrIndex(XATTR_FILLBITMAP, rName),
+ maGraphicObject(rGraphicObject)
{
}
-/*************************************************************************
-|*
-|* XOBitmap::XOBitmap( sal_uInt16* pArray, const Color& aPixelColor,
-|* const Color& aBckgrColor, const Size& rSize = Size( 8, 8 ),
-|* XBitmapStyle eStyle = XBITMAP_TILE )
-|*
-*************************************************************************/
-
-XOBitmap::XOBitmap( const sal_uInt16* pArray, const Color& rPixelColor,
- const Color& rBckgrColor, const Size& rSize,
- XBitmapStyle eInStyle ) :
- eStyle ( eInStyle ),
- pPixelArray ( NULL ),
- aArraySize ( rSize ),
- aPixelColor ( rPixelColor ),
- aBckgrColor ( rBckgrColor ),
- bGraphicDirty ( sal_True )
+//////////////////////////////////////////////////////////////////////////////
+XFillBitmapItem::XFillBitmapItem(const XFillBitmapItem& rItem)
+: NameOrIndex(rItem),
+ maGraphicObject(rItem.maGraphicObject)
{
- if( aArraySize.Width() == 8 && aArraySize.Height() == 8 )
- {
- eType = XBITMAP_8X8;
- pPixelArray = new sal_uInt16[ 64 ];
-
- for( sal_uInt16 i = 0; i < 64; i++ )
- *( pPixelArray + i ) = *( pArray + i );
- }
- else
- {
- DBG_ASSERT( 0, "Nicht unterstuetzte Bitmapgroesse" );
- }
}
-/*************************************************************************
-|*
-|* XOBitmap::XOBitmap( const XOBitmap& rXBmp )
-|*
-*************************************************************************/
+//////////////////////////////////////////////////////////////////////////////
-XOBitmap::XOBitmap( const XOBitmap& rXBmp ) :
- pPixelArray ( NULL )
+Bitmap createHistorical8x8FromArray(const sal_uInt16* pArray, Color aColorPix, Color aColorBack)
{
- eType = rXBmp.eType;
- eStyle = rXBmp.eStyle;
- aGraphicObject = rXBmp.aGraphicObject;
- aArraySize = rXBmp.aArraySize;
- aPixelColor = rXBmp.aPixelColor;
- aBckgrColor = rXBmp.aBckgrColor;
- bGraphicDirty = rXBmp.bGraphicDirty;
-
- if( rXBmp.pPixelArray )
- {
- if( eType == XBITMAP_8X8 )
- {
- pPixelArray = new sal_uInt16[ 64 ];
+ BitmapPalette aPalette(2);
- for( sal_uInt16 i = 0; i < 64; i++ )
- *( pPixelArray + i ) = *( rXBmp.pPixelArray + i );
- }
- }
-}
+ aPalette[0] = BitmapColor(aColorBack);
+ aPalette[1] = BitmapColor(aColorPix);
-/*************************************************************************
-|*
-|* XOBitmap::XOBitmap( Bitmap aBitmap, XBitmapStyle eStyle = XBITMAP_TILE )
-|*
-*************************************************************************/
+ Bitmap aBitmap(Size(8, 8), 1, &aPalette);
+ BitmapWriteAccess* pContent = aBitmap.AcquireWriteAccess();
-XOBitmap::~XOBitmap()
-{
- if( pPixelArray )
- delete []pPixelArray;
-}
-
-/*************************************************************************
-|*
-|* XOBitmap& XOBitmap::operator=( const XOBitmap& rXBmp )
-|*
-*************************************************************************/
-
-XOBitmap& XOBitmap::operator=( const XOBitmap& rXBmp )
-{
- eType = rXBmp.eType;
- eStyle = rXBmp.eStyle;
- aGraphicObject = rXBmp.aGraphicObject;
- aArraySize = rXBmp.aArraySize;
- aPixelColor = rXBmp.aPixelColor;
- aBckgrColor = rXBmp.aBckgrColor;
- bGraphicDirty = rXBmp.bGraphicDirty;
-
- if( rXBmp.pPixelArray )
+ if(pContent)
{
- if( eType == XBITMAP_8X8 )
+ for(sal_uInt16 a(0); a < 8; a++)
{
- pPixelArray = new sal_uInt16[ 64 ];
-
- for( sal_uInt16 i = 0; i < 64; i++ )
- *( pPixelArray + i ) = *( rXBmp.pPixelArray + i );
+ for(sal_uInt16 b(0); b < 8; b++)
+ {
+ if(pArray[(a * 8) + b])
+ {
+ pContent->SetPixel(b, a, sal_uInt8(1));
+ }
+ else
+ {
+ pContent->SetPixel(b, a, sal_uInt8(0));
+ }
+ }
}
- }
- return( *this );
-}
-
-/*************************************************************************
-|*
-|* int XOBitmap::operator==( const XOBitmap& rXOBitmap ) const
-|*
-*************************************************************************/
-int XOBitmap::operator==( const XOBitmap& rXOBitmap ) const
-{
- if( eType != rXOBitmap.eType ||
- eStyle != rXOBitmap.eStyle ||
- aGraphicObject != rXOBitmap.aGraphicObject ||
- aArraySize != rXOBitmap.aArraySize ||
- aPixelColor != rXOBitmap.aPixelColor ||
- aBckgrColor != rXOBitmap.aBckgrColor ||
- bGraphicDirty != rXOBitmap.bGraphicDirty )
- {
- return( sal_False );
+ aBitmap.ReleaseAccess(pContent);
}
- if( pPixelArray && rXOBitmap.pPixelArray )
- {
- sal_uInt16 nCount = (sal_uInt16) ( aArraySize.Width() * aArraySize.Height() );
- for( sal_uInt16 i = 0; i < nCount; i++ )
- {
- if( *( pPixelArray + i ) != *( rXOBitmap.pPixelArray + i ) )
- return( sal_False );
- }
- }
- return( sal_True );
+ return aBitmap;
}
-/*************************************************************************
-|*
-|* void SetPixelArray( const sal_uInt16* pArray )
-|*
-*************************************************************************/
+//////////////////////////////////////////////////////////////////////////////
-void XOBitmap::SetPixelArray( const sal_uInt16* pArray )
+bool SVX_DLLPUBLIC isHistorical8x8(const BitmapEx& rBitmapEx, BitmapColor& o_rBack, BitmapColor& o_rFront)
{
- if( eType == XBITMAP_8X8 )
+ if(!rBitmapEx.IsTransparent())
{
- if( pPixelArray )
- delete []pPixelArray;
-
- pPixelArray = new sal_uInt16[ 64 ];
-
- for( sal_uInt16 i = 0; i < 64; i++ )
- *( pPixelArray + i ) = *( pArray + i );
-
- bGraphicDirty = sal_True;
- }
- else
- {
- DBG_ASSERT( 0, "Nicht unterstuetzter Bitmaptyp" );
- }
-}
+ Bitmap aBitmap(rBitmapEx.GetBitmap());
-/*************************************************************************
-|*
-|* Bitmap XOBitmap::GetBitmap()
-|*
-*************************************************************************/
-
-Bitmap XOBitmap::GetBitmap() const
-{
- return GetGraphicObject().GetGraphic().GetBitmap();
-}
-
-/*************************************************************************
-|*
-|* Bitmap XOBitmap::GetGraphicObject()
-|*
-*************************************************************************/
-
-const GraphicObject& XOBitmap::GetGraphicObject() const
-{
- if( bGraphicDirty )
- ( (XOBitmap*) this )->Array2Bitmap();
-
- return aGraphicObject;
-}
-
-/*************************************************************************
-|*
-|* void XOBitmap::Bitmap2Array()
-|*
-|* Beschreibung Umwandlung der Bitmap in Array, Hinter- u.
-|* Vordergrundfarbe
-|*
-*************************************************************************/
-
-void XOBitmap::Bitmap2Array()
-{
- VirtualDevice aVD;
- sal_Bool bPixelColor = sal_False;
- const Bitmap aBitmap( GetBitmap() );
- const sal_uInt16 nLines = 8; // von Type abhaengig
-
- if( !pPixelArray )
- pPixelArray = new sal_uInt16[ nLines * nLines ];
-
- aVD.SetOutputSizePixel( aBitmap.GetSizePixel() );
- aVD.DrawBitmap( Point(), aBitmap );
- aPixelColor = aBckgrColor = aVD.GetPixel( Point() );
-
- // Aufbau des Arrays und Ermittlung der Vorder-, bzw.
- // Hintergrundfarbe
- for( sal_uInt16 i = 0; i < nLines; i++ )
- {
- for( sal_uInt16 j = 0; j < nLines; j++ )
+ if(8 == aBitmap.GetSizePixel().Width() && 8 == aBitmap.GetSizePixel().Height())
{
- if ( aVD.GetPixel( Point( j, i ) ) == aBckgrColor )
- *( pPixelArray + j + i * nLines ) = 0;
- else
+ if(2 == aBitmap.GetColorCount())
{
- *( pPixelArray + j + i * nLines ) = 1;
- if( !bPixelColor )
- {
- aPixelColor = aVD.GetPixel( Point( j, i ) );
- bPixelColor = sal_True;
- }
- }
- }
- }
-}
-
-/*************************************************************************
-|*
-|* void XOBitmap::Array2Bitmap()
-|*
-|* Beschreibung Umwandlung des Arrays, Hinter- u.
-|* Vordergrundfarbe in eine Bitmap
-|*
-*************************************************************************/
+ BitmapReadAccess* pRead = aBitmap.AcquireReadAccess();
-void XOBitmap::Array2Bitmap()
-{
- VirtualDevice aVD;
- sal_uInt16 nLines = 8; // von Type abhaengig
-
- if( !pPixelArray )
- return;
+ if(pRead)
+ {
+ if(pRead->HasPalette() && 2 == pRead->GetPaletteEntryCount())
+ {
+ const BitmapPalette& rPalette = pRead->GetPalette();
- aVD.SetOutputSizePixel( Size( nLines, nLines ) );
+ o_rBack = rPalette[1];
+ o_rFront = rPalette[0];
- // Aufbau der Bitmap
- for( sal_uInt16 i = 0; i < nLines; i++ )
- {
- for( sal_uInt16 j = 0; j < nLines; j++ )
- {
- if( *( pPixelArray + j + i * nLines ) == 0 )
- aVD.DrawPixel( Point( j, i ), aBckgrColor );
- else
- aVD.DrawPixel( Point( j, i ), aPixelColor );
+ return true;
+ }
+ }
+ }
}
}
- aGraphicObject = GraphicObject( aVD.GetBitmap( Point(), Size( nLines, nLines ) ) );
- bGraphicDirty = sal_False;
-}
-
-// -----------------------
-// class XFillBitmapItem
-// -----------------------
-TYPEINIT1_AUTOFACTORY(XFillBitmapItem, NameOrIndex);
-
-/*************************************************************************
-|*
-|* XFillBitmapItem::XFillBitmapItem(const XubString& rName,
-|* const Bitmap& rTheBitmap)
-|*
-*************************************************************************/
-
-XFillBitmapItem::XFillBitmapItem(const XubString& rName,
- const XOBitmap& rTheBitmap) :
- NameOrIndex( XATTR_FILLBITMAP, rName ),
- aXOBitmap( rTheBitmap )
-{
+ return false;
}
-/*************************************************************************
-|*
-|* XFillBitmapItem::XFillBitmapItem(const XFillBitmapItem& rItem)
-|*
-*************************************************************************/
+//////////////////////////////////////////////////////////////////////////////
-XFillBitmapItem::XFillBitmapItem(const XFillBitmapItem& rItem) :
- NameOrIndex( rItem ),
- aXOBitmap( rItem.aXOBitmap )
+XFillBitmapItem::XFillBitmapItem(SvStream& rIn, sal_uInt16 nVer)
+: NameOrIndex(XATTR_FILLBITMAP, rIn)
{
-}
-
-/*************************************************************************
-|*
-|* XFillBitmapItem::XFillBitmapItem(SvStream& rIn)
-|*
-*************************************************************************/
-
-XFillBitmapItem::XFillBitmapItem( SvStream& rIn, sal_uInt16 nVer ) :
- NameOrIndex( XATTR_FILLBITMAP, rIn )
-{
- if( nVer == 0 )
+ if (!IsIndex())
{
- if (!IsIndex())
+ if(0 == nVer)
{
// Behandlung der alten Bitmaps
Bitmap aBmp;
rIn >> aBmp;
-
- aXOBitmap.SetBitmap( aBmp );
- aXOBitmap.SetBitmapStyle( XBITMAP_TILE );
-
- if( aBmp.GetSizePixel().Width() == 8 &&
- aBmp.GetSizePixel().Height() == 8 )
- {
- aXOBitmap.SetBitmapType( XBITMAP_8X8 );
- aXOBitmap.Bitmap2Array();
- }
- else
- aXOBitmap.SetBitmapType( XBITMAP_IMPORT );
+ maGraphicObject = Graphic(aBmp);
}
- }
- else if( nVer == 1 )
- {
- if (!IsIndex())
+ else if(1 == nVer)
{
+ enum XBitmapType
+ {
+ XBITMAP_IMPORT,
+ XBITMAP_8X8
+ };
+
sal_Int16 iTmp;
- rIn >> iTmp;
- aXOBitmap.SetBitmapStyle( (XBitmapStyle) iTmp );
- rIn >> iTmp;
- aXOBitmap.SetBitmapType( (XBitmapType) iTmp );
- if( aXOBitmap.GetBitmapType() == XBITMAP_IMPORT )
+ rIn >> iTmp; // former XBitmapStyle
+ rIn >> iTmp; // former XBitmapType
+
+ if(XBITMAP_IMPORT == iTmp)
{
Bitmap aBmp;
+
rIn >> aBmp;
- aXOBitmap.SetBitmap( aBmp );
+ maGraphicObject = Graphic(aBmp);
}
- else if( aXOBitmap.GetBitmapType() == XBITMAP_8X8 )
+ else if(XBITMAP_8X8 == iTmp)
{
- sal_uInt16* pArray = new sal_uInt16[ 64 ];
- Color aColor;
+ sal_uInt16 aArray[64];
+
+ for(sal_uInt16 i(0); i < 64; i++)
+ {
+ rIn >> aArray[i];
+ }
+
+ Color aColorPix;
+ Color aColorBack;
- for( sal_uInt16 i = 0; i < 64; i++ )
- rIn >> *( pArray + i );
- aXOBitmap.SetPixelArray( pArray );
+ rIn >> aColorPix;
+ rIn >> aColorBack;
- rIn >> aColor;
- aXOBitmap.SetPixelColor( aColor );
- rIn >> aColor;
- aXOBitmap.SetBackgroundColor( aColor );
+ const Bitmap aBitmap(createHistorical8x8FromArray(aArray, aColorPix, aColorBack));
- delete []pArray;
+ maGraphicObject = Graphic(aBitmap);
}
}
- }
+ else if(2 == nVer)
+ {
+ BitmapEx aBmpEx;
- // #81908# force bitmap to exist
- aXOBitmap.GetBitmap();
+ rIn >> aBmpEx;
+ maGraphicObject = Graphic(aBmpEx);
+ }
+ }
}
-//*************************************************************************
+//////////////////////////////////////////////////////////////////////////////
-XFillBitmapItem::XFillBitmapItem( SfxItemPool* /*pPool*/, const XOBitmap& rTheBitmap )
-: NameOrIndex( XATTR_FILLBITMAP, -1 ),
- aXOBitmap( rTheBitmap )
+XFillBitmapItem::XFillBitmapItem(SfxItemPool* /*pPool*/, const GraphicObject& rGraphicObject)
+: NameOrIndex( XATTR_FILLBITMAP, -1),
+ maGraphicObject(rGraphicObject)
{
}
-/*************************************************************************
-|*
-|* XFillBitmapItem::Clone(SfxItemPool* pPool) const
-|*
-*************************************************************************/
+//////////////////////////////////////////////////////////////////////////////
SfxPoolItem* XFillBitmapItem::Clone(SfxItemPool* /*pPool*/) const
{
return new XFillBitmapItem(*this);
}
-/*************************************************************************
-|*
-|* int XFillBitmapItem::operator==(const SfxPoolItem& rItem) const
-|*
-*************************************************************************/
+//////////////////////////////////////////////////////////////////////////////
int XFillBitmapItem::operator==(const SfxPoolItem& rItem) const
{
- return ( NameOrIndex::operator==(rItem) &&
- aXOBitmap == ((const XFillBitmapItem&) rItem).aXOBitmap );
+ return (NameOrIndex::operator==(rItem)
+ && maGraphicObject == ((const XFillBitmapItem&)rItem).maGraphicObject);
}
-/*************************************************************************
-|*
-|* SfxPoolItem* XFillBitmapItem::Create(SvStream& rIn, sal_uInt16 nVer) const
-|*
-*************************************************************************/
+//////////////////////////////////////////////////////////////////////////////
SfxPoolItem* XFillBitmapItem::Create(SvStream& rIn, sal_uInt16 nVer) const
{
return new XFillBitmapItem( rIn, nVer );
}
-/*************************************************************************
-|*
-|* SfxPoolItem* XFillBitmapItem::Store(SvStream& rOut) const
-|*
-*************************************************************************/
+//////////////////////////////////////////////////////////////////////////////
SvStream& XFillBitmapItem::Store( SvStream& rOut, sal_uInt16 nItemVersion ) const
{
- NameOrIndex::Store( rOut, nItemVersion );
+ NameOrIndex::Store(rOut, nItemVersion);
- if (!IsIndex())
+ if(!IsIndex())
{
- rOut << (sal_Int16) aXOBitmap.GetBitmapStyle();
- if( !aXOBitmap.GetBitmap() )
- rOut << (sal_Int16) XBITMAP_NONE;
- else
- {
- rOut << (sal_Int16) aXOBitmap.GetBitmapType();
- if( aXOBitmap.GetBitmapType() == XBITMAP_IMPORT )
- {
- const sal_uInt16 nOldComprMode = rOut.GetCompressMode();
- sal_uInt16 nNewComprMode = nOldComprMode;
-
- if( rOut.GetVersion() >= SOFFICE_FILEFORMAT_50 )
- nNewComprMode |= COMPRESSMODE_ZBITMAP;
- else
- nNewComprMode &= ~COMPRESSMODE_ZBITMAP;
-
- rOut.SetCompressMode( nNewComprMode );
- rOut << aXOBitmap.GetBitmap();
- rOut.SetCompressMode( nOldComprMode );
- }
- else if( aXOBitmap.GetBitmapType() == XBITMAP_8X8 )
- {
- sal_uInt16* pArray = aXOBitmap.GetPixelArray();
- for( sal_uInt16 i = 0; i < 64; i++ )
- rOut << (sal_uInt16) *( pArray + i );
-
- rOut << aXOBitmap.GetPixelColor();
- rOut << aXOBitmap.GetBackgroundColor();
- }
- }
+ rOut << maGraphicObject.GetGraphic().GetBitmapEx();
}
return rOut;
}
-/*************************************************************************
-|*
-|* const Bitmap& XFillBitmapItem::GetValue(const XBitmapTable* pTable) const
-|*
-*************************************************************************/
+//////////////////////////////////////////////////////////////////////////////
-const XOBitmap& XFillBitmapItem::GetBitmapValue(
-// const XBitmapTable* pTable
-) const // GetValue -> GetBitmapValue
+const GraphicObject& XFillBitmapItem::GetGraphicObject() const
{
-// Note: we never pass pTable to this method which means that it's NULL. Thus, this code would
-// fail if the Item was a list. I'm guessing that it can't be an Index or the caller makes sure
-// it's not an Index before calling. Either way, I'm just going to return the Bitmap to keep it
-// from failing. This could use some more research. (Joe P. 2011-08-24)
-// if (!IsIndex())
-// return aXOBitmap;
-// else
-// return pTable->GetBitmap(GetIndex())->GetXBitmap();
- return aXOBitmap;
+ return maGraphicObject;
}
+//////////////////////////////////////////////////////////////////////////////
+
+void XFillBitmapItem::SetGraphicObject(const GraphicObject& rGraphicObject)
+{
+ maGraphicObject = rGraphicObject;
+}
-/*************************************************************************
-|*
-|* sal_uInt16 XFillBitmapItem::GetVersion() const
-|*
-*************************************************************************/
+//////////////////////////////////////////////////////////////////////////////
-sal_uInt16 XFillBitmapItem::GetVersion( sal_uInt16 /*nFileFormatVersion*/) const
+sal_uInt16 XFillBitmapItem::GetVersion(sal_uInt16 /*nFileFormatVersion*/) const
{
- // 2. Version
- return( 1 );
+ // version three
+ return(2);
}
-//------------------------------------------------------------------------
+//////////////////////////////////////////////////////////////////////////////
-SfxItemPresentation XFillBitmapItem::GetPresentation
-(
+SfxItemPresentation XFillBitmapItem::GetPresentation(
SfxItemPresentation ePres,
- SfxMapUnit /*eCoreUnit*/,
- SfxMapUnit /*ePresUnit*/,
- OUString& rText, const IntlWrapper *
-) const
+ SfxMapUnit /*eCoreUnit*/,
+ SfxMapUnit /*ePresUnit*/,
+ OUString& rText,
+ const IntlWrapper*) const
{
- switch ( ePres )
+ switch (ePres)
{
case SFX_ITEM_PRESENTATION_NONE:
rText = OUString();
@@ -600,11 +283,10 @@ SfxItemPresentation XFillBitmapItem::GetPresentation
}
}
-//------------------------------------------------------------------------
+//////////////////////////////////////////////////////////////////////////////
-bool XFillBitmapItem::QueryValue( ::com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId ) const
+bool XFillBitmapItem::QueryValue(::com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId) const
{
-// sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
nMemberId &= ~CONVERT_TWIPS;
// needed for MID_NAME
@@ -627,21 +309,16 @@ bool XFillBitmapItem::QueryValue( ::com::sun::star::uno::Any& rVal, sal_uInt8 nM
if( nMemberId == MID_GRAFURL ||
nMemberId == 0 )
{
- XOBitmap aLocalXOBitmap( GetBitmapValue() );
aURL = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
UNO_NAME_GRAPHOBJ_URLPREFIX));
aURL += ::rtl::OStringToOUString(
- aLocalXOBitmap.GetGraphicObject().GetUniqueID(),
+ GetGraphicObject().GetUniqueID(),
RTL_TEXTENCODING_ASCII_US);
}
if( nMemberId == MID_BITMAP ||
nMemberId == 0 )
{
- XOBitmap aLocalXOBitmap( GetBitmapValue() );
- Bitmap aBmp( aLocalXOBitmap.GetBitmap() );
- BitmapEx aBmpEx( aBmp );
-
- xBmp.set( VCLUnoHelper::CreateBitmap( aBmpEx ) );
+ xBmp.set(VCLUnoHelper::CreateBitmap(GetGraphicObject().GetGraphic().GetBitmapEx()));
}
if( nMemberId == MID_NAME )
@@ -669,11 +346,10 @@ bool XFillBitmapItem::QueryValue( ::com::sun::star::uno::Any& rVal, sal_uInt8 nM
return true;
}
-//------------------------------------------------------------------------
+//////////////////////////////////////////////////////////////////////////////
bool XFillBitmapItem::PutValue( const ::com::sun::star::uno::Any& rVal, sal_uInt8 nMemberId )
{
-// sal_Bool bConvert = 0!=(nMemberId&CONVERT_TWIPS);
nMemberId &= ~CONVERT_TWIPS;
::rtl::OUString aName;
@@ -719,47 +395,35 @@ bool XFillBitmapItem::PutValue( const ::com::sun::star::uno::Any& rVal, sal_uInt
}
if( bSetURL )
{
- GraphicObject aGrafObj( GraphicObject::CreateGraphicObjectFromURL( aURL ) );
- XOBitmap aBMP( aGrafObj );
- SetBitmapValue( aBMP );
+ maGraphicObject = GraphicObject::CreateGraphicObjectFromURL(aURL);
}
if( bSetBitmap )
{
- Bitmap aInput;
- if ( xBmp.is() )
- {
- BitmapEx aInputEx( VCLUnoHelper::GetBitmap( xBmp ) );
- aInput = aInputEx.GetBitmap();
- }
- else if ( xGraphic.is() )
+ if(xBmp.is())
{
- Graphic aGraphic( xGraphic );
- aInput = aGraphic.GetBitmap();
+ maGraphicObject = Graphic(VCLUnoHelper::GetBitmap(xBmp));
}
-
- // note: aXOBitmap is the member bitmap
- aXOBitmap.SetBitmap( aInput );
- aXOBitmap.SetBitmapType(XBITMAP_IMPORT);
-
- if(aInput.GetSizePixel().Width() == 8
- && aInput.GetSizePixel().Height() == 8
- && aInput.GetColorCount() == 2)
+ else if(xGraphic.is())
{
- aXOBitmap.Bitmap2Array();
- aXOBitmap.SetBitmapType(XBITMAP_8X8);
- aXOBitmap.SetPixelSize(aInput.GetSizePixel());
+ maGraphicObject = Graphic(xGraphic);
}
}
return (bSetName || bSetURL || bSetBitmap);
}
+//////////////////////////////////////////////////////////////////////////////
+
sal_Bool XFillBitmapItem::CompareValueFunc( const NameOrIndex* p1, const NameOrIndex* p2 )
{
- return ((XFillBitmapItem*)p1)->GetBitmapValue().GetGraphicObject().GetUniqueID() ==
- ((XFillBitmapItem*)p2)->GetBitmapValue().GetGraphicObject().GetUniqueID();
+ const GraphicObject& aGraphicObjectA(((XFillBitmapItem*)p1)->GetGraphicObject());
+ const GraphicObject& aGraphicObjectB(((XFillBitmapItem*)p2)->GetGraphicObject());
+
+ return aGraphicObjectA == aGraphicObjectB;
}
+//////////////////////////////////////////////////////////////////////////////
+
XFillBitmapItem* XFillBitmapItem::checkForUniqueItem( SdrModel* pModel ) const
{
if( pModel )
@@ -772,7 +436,9 @@ XFillBitmapItem* XFillBitmapItem::checkForUniqueItem( SdrModel* pModel ) const
// if the given name is not valid, replace it!
if( aUniqueName != GetName() )
- return new XFillBitmapItem( aUniqueName, aXOBitmap );
+ {
+ return new XFillBitmapItem(aUniqueName, maGraphicObject);
+ }
}
return (XFillBitmapItem*)this;
diff --git a/svx/source/xoutdev/xpool.cxx b/svx/source/xoutdev/xpool.cxx
index 9b577b186bfd..5a04d3c38c3c 100644
--- a/svx/source/xoutdev/xpool.cxx
+++ b/svx/source/xoutdev/xpool.cxx
@@ -39,7 +39,7 @@ XOutdevItemPool::XOutdevItemPool(
{
// prepare some defaults
const XubString aNullStr;
- const Bitmap aNullBmp;
+ const Graphic aNullGraphic;
const basegfx::B2DPolyPolygon aNullPol;
const Color aNullLineCol(RGB_Color(COL_BLACK));
const Color aNullFillCol(RGB_COLORDATA( 153, 204, 255 ));
@@ -85,7 +85,7 @@ XOutdevItemPool::XOutdevItemPool(
mppLocalPoolDefaults[XATTR_FILLCOLOR -XATTR_START] = new XFillColorItem (aNullStr,aNullFillCol);
mppLocalPoolDefaults[XATTR_FILLGRADIENT -XATTR_START] = new XFillGradientItem(aNullGrad);
mppLocalPoolDefaults[XATTR_FILLHATCH -XATTR_START] = new XFillHatchItem (this,aNullHatch);
- mppLocalPoolDefaults[XATTR_FILLBITMAP -XATTR_START] = new XFillBitmapItem (this,aNullBmp);
+ mppLocalPoolDefaults[XATTR_FILLBITMAP -XATTR_START] = new XFillBitmapItem (this, aNullGraphic);
mppLocalPoolDefaults[XATTR_FILLTRANSPARENCE -XATTR_START] = new XFillTransparenceItem;
mppLocalPoolDefaults[XATTR_GRADIENTSTEPCOUNT -XATTR_START] = new XGradientStepCountItem;
mppLocalPoolDefaults[XATTR_FILLBMP_TILE -XATTR_START] = new XFillBmpTileItem;
diff --git a/svx/source/xoutdev/xtabbtmp.cxx b/svx/source/xoutdev/xtabbtmp.cxx
index 891f793eb8d5..a3657018472d 100644
--- a/svx/source/xoutdev/xtabbtmp.cxx
+++ b/svx/source/xoutdev/xtabbtmp.cxx
@@ -27,6 +27,7 @@
#include <svx/dialmgr.hxx>
#include <svx/xtable.hxx>
#include <svx/xpool.hxx>
+#include <svx/xbtmpit.hxx>
using namespace com::sun::star;
@@ -48,7 +49,6 @@ uno::Reference< container::XNameContainer > XBitmapList::createInstance()
sal_Bool XBitmapList::Create()
{
- // Array der Bitmap
//-----------------------
// 00 01 02 03 04 05 06 07
// 08 09 10 11 12 13 14 15
@@ -58,31 +58,38 @@ sal_Bool XBitmapList::Create()
// 40 41 42 43 44 45 46 47
// 48 49 50 51 52 53 54 55
// 56 57 58 59 60 61 62 63
+ String aStr(SVX_RES(RID_SVXSTR_BITMAP));
+ sal_uInt16 aArray[64];
+ Bitmap aBitmap;
+ const xub_StrLen nLen(aStr.Len() - 1);
- String aStr( SVX_RES( RID_SVXSTR_BITMAP ) );
- Color aColWhite( RGB_Color( COL_WHITE ) );
- xub_StrLen nLen;
- sal_uInt16 aArray[64];
+ memset(aArray, 0, sizeof(aArray));
- memset( aArray, 0, sizeof( aArray ) );
+ // white/white bitmap
aStr.AppendAscii(" 1");
- nLen = aStr.Len() - 1;
- Insert( new XBitmapEntry( XOBitmap( aArray, aColWhite, aColWhite ), aStr ) );
+ aBitmap = createHistorical8x8FromArray(aArray, RGB_Color(COL_WHITE), RGB_Color(COL_WHITE));
+ Insert(new XBitmapEntry(Graphic(aBitmap), aStr));
+ // black/white bitmap
aArray[ 0] = 1; aArray[ 9] = 1; aArray[18] = 1; aArray[27] = 1;
aArray[36] = 1; aArray[45] = 1; aArray[54] = 1; aArray[63] = 1;
aStr.SetChar(nLen, sal_Unicode('2'));
- Insert( new XBitmapEntry( XOBitmap( aArray, RGB_Color( COL_BLACK ), aColWhite ), aStr ) );
+ aBitmap = createHistorical8x8FromArray(aArray, RGB_Color(COL_BLACK), RGB_Color(COL_WHITE));
+ Insert(new XBitmapEntry(Graphic(aBitmap), aStr));
+ // lightred/white bitmap
aArray[ 7] = 1; aArray[14] = 1; aArray[21] = 1; aArray[28] = 1;
aArray[35] = 1; aArray[42] = 1; aArray[49] = 1; aArray[56] = 1;
aStr.SetChar(nLen, sal_Unicode('3'));
- Insert( new XBitmapEntry( XOBitmap( aArray, RGB_Color( COL_LIGHTRED ), aColWhite ), aStr ) );
+ aBitmap = createHistorical8x8FromArray(aArray, RGB_Color(COL_LIGHTRED), RGB_Color(COL_WHITE));
+ Insert(new XBitmapEntry(Graphic(aBitmap), aStr));
+ // lightblue/white bitmap
aArray[24] = 1; aArray[25] = 1; aArray[26] = 1;
aArray[29] = 1; aArray[30] = 1; aArray[31] = 1;
aStr.SetChar(nLen, sal_Unicode('4'));
- Insert( new XBitmapEntry( XOBitmap( aArray, RGB_Color( COL_LIGHTBLUE ), aColWhite ), aStr ) );
+ aBitmap = createHistorical8x8FromArray(aArray, RGB_Color(COL_LIGHTBLUE), RGB_Color(COL_WHITE));
+ Insert(new XBitmapEntry(Graphic(aBitmap), aStr));
return sal_True;
}
diff --git a/sw/source/core/frmedt/fecopy.cxx b/sw/source/core/frmedt/fecopy.cxx
index 48bb0f8f6bdd..0bedb7389015 100644
--- a/sw/source/core/frmedt/fecopy.cxx
+++ b/sw/source/core/frmedt/fecopy.cxx
@@ -1524,11 +1524,11 @@ sal_Bool SwFEShell::Paste( const Graphic &rGrf )
if( bRet )
{
- XOBitmap aXOBitmap( rGrf.GetBitmap() );
- SfxItemSet aSet( GetAttrPool(), XATTR_FILLSTYLE, XATTR_FILLBITMAP );
- aSet.Put( XFillStyleItem( XFILL_BITMAP ));
- aSet.Put( XFillBitmapItem( aEmptyStr, aXOBitmap ));
- pView->SetAttributes( aSet, sal_False );
+ SfxItemSet aSet(GetAttrPool(), XATTR_FILLSTYLE, XATTR_FILLBITMAP);
+
+ aSet.Put(XFillStyleItem(XFILL_BITMAP));
+ aSet.Put(XFillBitmapItem(aEmptyStr, rGrf));
+ pView->SetAttributes(aSet, false);
}
return bRet;
}
diff --git a/sw/source/filter/ww8/ww8graf.cxx b/sw/source/filter/ww8/ww8graf.cxx
index 599b1acf3dd7..21b705875c8d 100644
--- a/sw/source/filter/ww8/ww8graf.cxx
+++ b/sw/source/filter/ww8/ww8graf.cxx
@@ -1803,28 +1803,19 @@ void SwWW8ImplReader::MatchSdrItemsIntoFlySet( SdrObject* pSdrObj,
break;
case XFILL_BITMAP:
{
- const Graphic aGraphic(
- static_cast< XFillBitmapItem const & >(
- rOldSet.Get(XATTR_FILLBITMAP)).
- GetBitmapValue().GetBitmap());
- bool bTile = WW8ITEMVALUE(rOldSet, XATTR_FILLBMP_TILE,
- SfxBoolItem) ? true: false;
- GraphicObject aGrfObj(aGraphic);
+ GraphicObject aGrfObj(static_cast< XFillBitmapItem const & >(rOldSet.Get(XATTR_FILLBITMAP)).GetGraphicObject());
+ const bool bTile(WW8ITEMVALUE(rOldSet, XATTR_FILLBMP_TILE, SfxBoolItem) ? true: false);
- aBrushItem.SetGraphicObject(aGrfObj);
-
- if (bBrushItemOk) //has trans
+ if(bBrushItemOk) //has trans
{
- GraphicObject *pGraphicObject =
- const_cast<GraphicObject *>
- (aBrushItem.GetGraphicObject());
- GraphicAttr aAttr(pGraphicObject->GetAttr());
+ GraphicAttr aAttr(aGrfObj.GetAttr());
+
aAttr.SetTransparency(nTrans);
- pGraphicObject->SetAttr(aAttr);
+ aGrfObj.SetAttr(aAttr);
}
+ aBrushItem.SetGraphicObject(aGrfObj);
aBrushItem.SetGraphicPos(bTile ? GPOS_TILED : GPOS_AREA);
-
bBrushItemOk = true;
}
break;