You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by st...@apache.org on 2013/02/01 09:46:35 UTC
svn commit: r1441343 [32/35] - in /openoffice/branches/ia2: ./
ext_libraries/apr-util/ ext_libraries/apr/ ext_sources/
extras/l10n/source/ast/ extras/l10n/source/da/ extras/l10n/source/eu/
extras/l10n/source/gd/ extras/l10n/source/ko/ extras/l10n/sourc...
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/fixed.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/fixed.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/fixed.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/fixed.hxx Fri Feb 1 08:46:00 2013
@@ -58,9 +58,9 @@ protected:
GetCanonicalTextColor( const StyleSettings& _rStyle ) const;
public:
- FixedText( Window* pParent, WinBits nStyle = 0 );
- FixedText( Window* pParent, const ResId& rResId );
- FixedText( Window* pParent, const ResId& rResId, bool bDisableAccessibleLabelForRelation );
+ explicit FixedText( Window* pParent, WinBits nStyle = 0 );
+ explicit FixedText( Window* pParent, const ResId& );
+ explicit FixedText( Window* pParent, const ResId&, bool bDisableAccessibleLabelForRelation );
virtual void Paint( const Rectangle& rRect );
virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags );
@@ -95,8 +95,8 @@ protected:
GetCanonicalTextColor( const StyleSettings& _rStyle ) const;
public:
- FixedLine( Window* pParent, WinBits nStyle = WB_HORZ );
- FixedLine( Window* pParent, const ResId& rResId );
+ explicit FixedLine( Window* pParent, WinBits nStyle = WB_HORZ );
+ explicit FixedLine( Window* pParent, const ResId& );
virtual void Paint( const Rectangle& rRect );
virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags );
@@ -129,9 +129,9 @@ protected:
SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId );
public:
- FixedBitmap( Window* pParent, WinBits nStyle = 0 );
- FixedBitmap( Window* pParent, const ResId& rResId );
- ~FixedBitmap();
+ explicit FixedBitmap( Window* pParent, WinBits nStyle = 0 );
+ explicit FixedBitmap( Window* pParent, const ResId& );
+ virtual ~FixedBitmap();
virtual void Paint( const Rectangle& rRect );
virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags );
@@ -170,9 +170,9 @@ protected:
SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId );
public:
- FixedImage( Window* pParent, WinBits nStyle = 0 );
- FixedImage( Window* pParent, const ResId& rResId );
- ~FixedImage();
+ explicit FixedImage( Window* pParent, WinBits nStyle = 0 );
+ explicit FixedImage( Window* pParent, const ResId& );
+ virtual ~FixedImage();
virtual void Paint( const Rectangle& rRect );
virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags );
@@ -193,3 +193,4 @@ public:
};
#endif // _SV_FIXED_HXX
+
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/floatwin.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/floatwin.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/floatwin.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/floatwin.hxx Fri Feb 1 08:46:00 2013
@@ -121,9 +121,9 @@ public:
//#endif
public:
- FloatingWindow( Window* pParent, WinBits nStyle = WB_STDFLOATWIN );
- FloatingWindow( Window* pParent, const ResId& rResId );
- ~FloatingWindow();
+ explicit FloatingWindow( Window* pParent, WinBits nStyle = WB_STDFLOATWIN );
+ explicit FloatingWindow( Window* pParent, const ResId& );
+ virtual ~FloatingWindow();
virtual long Notify( NotifyEvent& rNEvt );
virtual void StateChanged( StateChangedType nType );
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/fontmanager.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/fontmanager.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/fontmanager.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/fontmanager.hxx Fri Feb 1 08:46:00 2013
@@ -290,7 +290,7 @@ class VCL_PLUGIN_PUBLIC PrintFontManager
std::map< sal_Unicode, sal_Int32 > m_aEncodingVector;
std::map< sal_Unicode, rtl::OString > m_aNonEncoded;
- PrintFont( fonttype::type eType );
+ explicit PrintFont( fonttype::type eType );
virtual ~PrintFont();
virtual bool queryMetricPage( int nPage, utl::MultiAtomProvider* pProvider ) = 0;
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/group.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/group.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/group.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/group.hxx Fri Feb 1 08:46:00 2013
@@ -50,8 +50,8 @@ private:
GetCanonicalTextColor( const StyleSettings& _rStyle ) const;
public:
- GroupBox( Window* pParent, WinBits nStyle = 0 );
- GroupBox( Window* pParent, const ResId& rResId );
+ explicit GroupBox( Window* pParent, WinBits nStyle = 0 );
+ explicit GroupBox( Window* pParent, const ResId& );
virtual void Paint( const Rectangle& rRect );
virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags );
@@ -61,3 +61,4 @@ public:
};
#endif // _SV_GROUP_HXX
+
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/lstbox.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/lstbox.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/lstbox.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/lstbox.hxx Fri Feb 1 08:46:00 2013
@@ -82,9 +82,9 @@ protected:
virtual void FillLayoutData() const;
public:
- ListBox( Window* pParent, WinBits nStyle = WB_BORDER );
- ListBox( Window* pParent, const ResId& rResId );
- ~ListBox();
+ explicit ListBox( Window* pParent, WinBits nStyle = WB_BORDER );
+ explicit ListBox( Window* pParent, const ResId& );
+ virtual ~ListBox();
virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags );
virtual void Resize();
@@ -260,8 +260,9 @@ private:
sal_uInt16 GetSavedValue();
public:
- MultiListBox( Window* pParent, WinBits nStyle = 0 );
- MultiListBox( Window* pParent, const ResId& rResId );
+ explicit MultiListBox( Window* pParent, WinBits nStyle = 0 );
+ explicit MultiListBox( Window* pParent, const ResId& );
};
#endif // _SV_LSTBOX_HXX
+
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/menu.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/menu.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/menu.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/menu.hxx Fri Feb 1 08:46:00 2013
@@ -104,7 +104,7 @@ struct ImplMenuDelData
ImplMenuDelData* mpNext;
const Menu* mpMenu;
- ImplMenuDelData( const Menu* pMenu );
+ explicit ImplMenuDelData( const Menu* );
~ImplMenuDelData();
bool isDeleted() const { return mpMenu == 0; }
@@ -203,7 +203,7 @@ public:
SAL_DLLPRIVATE Menu* ImplGetStartedFrom() const;
Menu();
- Menu( sal_Bool bMenuBar );
+ explicit Menu( sal_Bool bMenuBar );
SAL_DLLPRIVATE Window* ImplGetWindow() const { return pWindow; }
@@ -422,9 +422,9 @@ class VCL_DLLPUBLIC MenuBar : public Men
public:
MenuBar();
- MenuBar( const ResId& rResId );
+ explicit MenuBar( const ResId& );
MenuBar( const MenuBar& rMenu );
- ~MenuBar();
+ virtual ~MenuBar();
MenuBar& operator =( const MenuBar& rMenu );
@@ -512,8 +512,8 @@ protected:
public:
PopupMenu();
PopupMenu( const PopupMenu& rMenu );
- PopupMenu( const ResId& rResId );
- ~PopupMenu();
+ explicit PopupMenu( const ResId& );
+ virtual ~PopupMenu();
void SetText( const XubString& rTitle ) { aTitleText = rTitle; }
const XubString& GetText() const { return aTitleText; }
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/menubtn.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/menubtn.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/menubtn.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/menubtn.hxx Fri Feb 1 08:46:00 2013
@@ -67,9 +67,9 @@ protected:
SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId );
public:
- MenuButton( Window* pParent, WinBits nStyle = 0 );
- MenuButton( Window* pParent, const ResId& rResId );
- ~MenuButton();
+ explicit MenuButton( Window* pParent, WinBits nStyle = 0 );
+ explicit MenuButton( Window* pParent, const ResId& );
+ virtual ~MenuButton();
virtual void MouseButtonDown( const MouseEvent& rMEvt );
virtual void KeyInput( const KeyEvent& rKEvt );
@@ -92,3 +92,4 @@ public:
};
#endif // _SV_MENUBTN_HXX
+
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/metaact.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/metaact.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/metaact.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/metaact.hxx Fri Feb 1 08:46:00 2013
@@ -159,7 +159,7 @@ protected:
public:
MetaAction();
- MetaAction( sal_uInt16 nType );
+ explicit MetaAction( sal_uInt16 nType );
virtual void Execute( OutputDevice* pOut );
@@ -221,7 +221,7 @@ private:
public:
DECL_META_ACTION( Point, META_POINT_ACTION )
- MetaPointAction( const Point& rPt );
+ explicit MetaPointAction( const Point& );
virtual void Move( long nHorzMove, long nVertMove );
virtual void Scale( double fScaleX, double fScaleY );
@@ -272,7 +272,7 @@ private:
public:
DECL_META_ACTION( Rect, META_RECT_ACTION )
- MetaRectAction( const Rectangle& rRect );
+ explicit MetaRectAction( const Rectangle& );
virtual void Move( long nHorzMove, long nVertMove );
virtual void Scale( double fScaleX, double fScaleY );
@@ -323,7 +323,7 @@ private:
public:
DECL_META_ACTION( Ellipse, META_ELLIPSE_ACTION )
- MetaEllipseAction( const Rectangle& rRect );
+ explicit MetaEllipseAction( const Rectangle& );
virtual void Move( long nHorzMove, long nVertMove );
virtual void Scale( double fScaleX, double fScaleY );
@@ -431,8 +431,8 @@ private:
public:
DECL_META_ACTION( PolyLine, META_POLYLINE_ACTION )
- MetaPolyLineAction( const Polygon& rPoly );
- MetaPolyLineAction( const Polygon& rPoly, const LineInfo& rLineInfo );
+ explicit MetaPolyLineAction( const Polygon& );
+ explicit MetaPolyLineAction( const Polygon&, const LineInfo& );
virtual void Move( long nHorzMove, long nVertMove );
virtual void Scale( double fScaleX, double fScaleY );
@@ -456,7 +456,7 @@ private:
public:
DECL_META_ACTION( Polygon, META_POLYGON_ACTION )
- MetaPolygonAction( const Polygon& rPoly );
+ explicit MetaPolygonAction( const Polygon& );
virtual void Move( long nHorzMove, long nVertMove );
virtual void Scale( double fScaleX, double fScaleY );
@@ -479,7 +479,7 @@ private:
public:
DECL_META_ACTION( PolyPolygon, META_POLYPOLYGON_ACTION )
- MetaPolyPolygonAction( const PolyPolygon& rPolyPoly );
+ explicit MetaPolyPolygonAction( const PolyPolygon& );
virtual void Move( long nHorzMove, long nVertMove );
virtual void Scale( double fScaleX, double fScaleY );
@@ -1065,7 +1065,7 @@ private:
public:
DECL_META_ACTION( ISectRectClipRegion, META_ISECTRECTCLIPREGION_ACTION )
- MetaISectRectClipRegionAction( const Rectangle& rRect );
+ explicit MetaISectRectClipRegionAction( const Rectangle& );
virtual void Move( long nHorzMove, long nVertMove );
virtual void Scale( double fScaleX, double fScaleY );
@@ -1088,7 +1088,7 @@ private:
public:
DECL_META_ACTION( ISectRegionClipRegion, META_ISECTREGIONCLIPREGION_ACTION )
- MetaISectRegionClipRegionAction( const Region& rRegion );
+ explicit MetaISectRegionClipRegionAction( const Region& );
virtual void Move( long nHorzMove, long nVertMove );
virtual void Scale( double fScaleX, double fScaleY );
@@ -1179,7 +1179,7 @@ private:
public:
DECL_META_ACTION( TextColor, META_TEXTCOLOR_ACTION )
- MetaTextColorAction( const Color& rColor );
+ explicit MetaTextColorAction( const Color& );
const Color& GetColor() const { return maColor; }
};
@@ -1265,7 +1265,7 @@ private:
public:
DECL_META_ACTION( TextAlign, META_TEXTALIGN_ACTION )
- MetaTextAlignAction( TextAlign aAlign );
+ explicit MetaTextAlignAction( TextAlign eAlign );
TextAlign GetTextAlign() const { return maAlign; }
};
@@ -1285,7 +1285,7 @@ private:
public:
DECL_META_ACTION( MapMode, META_MAPMODE_ACTION )
- MetaMapModeAction( const MapMode& rMapMode );
+ explicit MetaMapModeAction( const MapMode& );
virtual void Scale( double fScaleX, double fScaleY );
@@ -1307,7 +1307,7 @@ private:
public:
DECL_META_ACTION( Font, META_FONT_ACTION )
- MetaFontAction( const Font& rFont );
+ explicit MetaFontAction( const Font& );
virtual void Scale( double fScaleX, double fScaleY );
@@ -1329,7 +1329,7 @@ private:
public:
DECL_META_ACTION( Push, META_PUSH_ACTION )
- MetaPushAction( sal_uInt16 nFlags );
+ explicit MetaPushAction( sal_uInt16 nFlags );
sal_uInt16 GetFlags() const { return mnFlags; }
};
@@ -1360,7 +1360,7 @@ private:
public:
DECL_META_ACTION( RasterOp, META_RASTEROP_ACTION )
- MetaRasterOpAction( RasterOp eRasterOp );
+ explicit MetaRasterOpAction( RasterOp eRasterOp );
RasterOp GetRasterOp() const { return meRasterOp; }
};
@@ -1489,13 +1489,13 @@ private:
virtual sal_Bool Compare( const MetaAction& ) const;
protected:
- ~MetaCommentAction();
+ virtual ~MetaCommentAction();
public:
- MetaCommentAction( sal_Int32 nValue = 0L );
- MetaCommentAction( const MetaCommentAction& rAct );
- MetaCommentAction( const ByteString& rComment, sal_Int32 nValue = 0L, const sal_uInt8* pData = NULL, sal_uInt32 nDataSize = 0UL );
- MetaCommentAction( const sal_uInt8* pData, sal_uInt32 nDataSize );
+ explicit MetaCommentAction( sal_Int32 nValue = 0L );
+ explicit MetaCommentAction( const MetaCommentAction& );
+ explicit MetaCommentAction( const ByteString& rComment, sal_Int32 nValue = 0L, const sal_uInt8* pData = NULL, sal_uInt32 nDataSize = 0UL );
+ explicit MetaCommentAction( const sal_uInt8* pData, sal_uInt32 nDataSize );
virtual void Move( long nHorzMove, long nVertMove );
virtual void Scale( double fScaleX, double fScaleY );
@@ -1525,7 +1525,7 @@ private:
public:
DECL_META_ACTION( LayoutMode, META_LAYOUTMODE_ACTION )
- MetaLayoutModeAction( sal_uInt32 nLayoutMode );
+ explicit MetaLayoutModeAction( sal_uInt32 nLayoutMode );
sal_uInt32 GetLayoutMode() const { return mnLayoutMode; }
};
@@ -1544,9 +1544,10 @@ private:
public:
DECL_META_ACTION( TextLanguage, META_TEXTLANGUAGE_ACTION )
- MetaTextLanguageAction( LanguageType );
+ explicit MetaTextLanguageAction( LanguageType );
LanguageType GetTextLanguage() const { return meTextLanguage; }
};
#endif // _SV_METAACT_HXX
+
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/morebtn.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/morebtn.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/morebtn.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/morebtn.hxx Fri Feb 1 08:46:00 2013
@@ -54,9 +54,9 @@ protected:
SAL_DLLPRIVATE void ImplLoadRes( const ResId& rResId );
public:
- MoreButton( Window* pParent, WinBits nStyle = 0 );
- MoreButton( Window* pParent, const ResId& rResId );
- ~MoreButton();
+ explicit MoreButton( Window* pParent, WinBits nStyle = 0 );
+ explicit MoreButton( Window* pParent, const ResId& );
+ virtual ~MoreButton();
void Click();
@@ -89,3 +89,4 @@ inline void MoreButton::SetState( sal_Bo
}
#endif // _SV_MOREBTN_HXX
+
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/outdev.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/outdev.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/outdev.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/outdev.hxx Fri Feb 1 08:46:00 2013
@@ -77,6 +77,7 @@ class SalLayout;
class ImplLayoutArgs;
class ImplFontAttributes;
class VirtualDevice;
+struct SalTwoRect;
namespace com {
namespace sun {
@@ -355,27 +356,29 @@ private:
Point maRefPoint;
sal_uInt16 mnAntialiasing;
LanguageType meTextLanguage;
- mutable sal_Bool mbMap:1,
- mbMapIsDefault:1,
- mbClipRegion:1,
- mbBackground:1,
- mbOutput:1,
- mbDevOutput:1,
- mbOutputClipped:1,
- mbLineColor:1,
- mbFillColor:1,
- mbInitLineColor:1,
- mbInitFillColor:1,
- mbInitFont:1,
- mbInitTextColor:1,
- mbInitClipRegion:1,
- mbClipRegionSet:1,
- mbKerning:1,
- mbNewFont:1,
- mbTextLines:1,
- mbTextSpecial:1,
- mbRefPoint:1,
- mbEnableRTL:1;
+
+ /// bitfield
+ mutable bool mbMap : 1;
+ mutable bool mbMapIsDefault : 1;
+ mutable bool mbClipRegion : 1;
+ mutable bool mbBackground : 1;
+ mutable bool mbOutput : 1;
+ mutable bool mbDevOutput : 1;
+ mutable bool mbOutputClipped : 1;
+ mutable bool mbLineColor : 1;
+ mutable bool mbFillColor : 1;
+ mutable bool mbInitLineColor : 1;
+ mutable bool mbInitFillColor : 1;
+ mutable bool mbInitFont : 1;
+ mutable bool mbInitTextColor : 1;
+ mutable bool mbInitClipRegion : 1;
+ mutable bool mbClipRegionSet : 1;
+ mutable bool mbKerning : 1;
+ mutable bool mbNewFont : 1;
+ mutable bool mbTextLines : 1;
+ mutable bool mbTextSpecial : 1;
+ mutable bool mbRefPoint : 1;
+ mutable bool mbEnableRTL : 1;
public:
SAL_DLLPRIVATE sal_Int32 ImplGetDPIX() const { return mnDPIX; }
@@ -482,7 +485,7 @@ public:
SAL_DLLPRIVATE void ImplDrawGradientWallpaper( long nX, long nY, long nWidth, long nHeight, const Wallpaper& rWallpaper );
SAL_DLLPRIVATE void ImplDraw2ColorFrame( const Rectangle& rRect, const Color& rLeftTopColor, const Color& rRightBottomColor );
- SAL_DLLPRIVATE void ImplDrawOutDevDirect( const OutputDevice* pSrcDev, void* pPosAry );
+ SAL_DLLPRIVATE void ImplDrawOutDevDirect( const OutputDevice* pSrcDev, SalTwoRect& rPosAry );
SAL_DLLPRIVATE void ImplDrawBitmap( const Point& rDestPt, const Size& rDestSize,
const Point& rSrcPtPixel, const Size& rSrcSizePixel,
const Bitmap& rBitmap, const sal_uLong nAction );
@@ -772,6 +775,20 @@ public:
const Point& rSrcPtPixel, const Size& rSrcSizePixel,
const BitmapEx& rBitmapEx );
+ /** Draw BitampEx transformed
+
+ @param rTransformation
+ The transformation describing the target positioning of the given bitmap. Transforming
+ the unit object coordinates (0, 0, 1, 1) with this matrix is the transformation to
+ discrete coordinates
+
+ @param rBitmapEx
+ The BitmapEx to be painted
+ */
+ void DrawTransformedBitmapEx(
+ const basegfx::B2DHomMatrix& rTransformation,
+ const BitmapEx& rBitmapEx);
+
void DrawMask( const Point& rDestPt,
const Bitmap& rBitmap, const Color& rMaskColor );
void DrawMask( const Point& rDestPt, const Size& rDestSize,
@@ -820,6 +837,14 @@ public:
bool DrawEPS( const Point& rPt, const Size& rSz,
const GfxLink& rGfxLink, GDIMetaFile* pSubst = NULL );
+ /// Fill the given rectangle with checkered rectangles of size nLen x nLen using the colors aStart and aEnd
+ void DrawCheckered(
+ const Point& rPos,
+ const Size& rSize,
+ sal_uInt32 nLen = 8,
+ Color aStart = Color(COL_WHITE),
+ Color aEnd = Color(COL_BLACK));
+
Color GetPixel( const Point& rPt ) const;
Color* GetPixel( const Polygon& rPts ) const;
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/pngread.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/pngread.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/pngread.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/pngread.hxx Fri Feb 1 08:46:00 2013
@@ -44,7 +44,7 @@ namespace vcl
/* the PNG chunks are read within the c'tor, so the stream will
be positioned at the end of the PNG */
- PNGReader( SvStream& rStm );
+ explicit PNGReader( SvStream& rStm );
~PNGReader();
/* an empty preview size hint (=default) will read the whole image
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/pngwrite.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/pngwrite.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/pngwrite.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/pngwrite.hxx Fri Feb 1 08:46:00 2013
@@ -44,7 +44,7 @@ namespace vcl
public:
- PNGWriter( const BitmapEx& BmpEx,
+ explicit PNGWriter( const BitmapEx&,
const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >* pFilterData = NULL );
~PNGWriter();
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/salbtype.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/salbtype.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/salbtype.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/salbtype.hxx Fri Feb 1 08:46:00 2013
@@ -255,6 +255,7 @@ public:
inline void SetColorFor24Bit( const BitmapColor& rColor, HPBYTE pPixel ) const;
inline void GetColorFor32Bit( BitmapColor& rColor, ConstHPBYTE pPixel ) const;
+ inline void GetColorAndAlphaFor32Bit( BitmapColor& rColor, sal_uInt8& rAlpha, ConstHPBYTE pPixel ) const;
inline void SetColorFor32Bit( const BitmapColor& rColor, HPBYTE pPixel ) const;
};
@@ -281,8 +282,9 @@ struct VCL_DLLPUBLIC BitmapBuffer
// - StretchAndConvert -
// ---------------------
-VCL_DLLPUBLIC BitmapBuffer* StretchAndConvert( const BitmapBuffer& rSrcBuffer, const SalTwoRect& rTwoRect,
- sal_uLong nDstBitmapFormat, BitmapPalette* pDstPal = NULL, ColorMask* pDstMask = NULL );
+VCL_DLLPUBLIC BitmapBuffer* StretchAndConvert(
+ const BitmapBuffer& rSrcBuffer, const SalTwoRect& rTwoRect,
+ sal_uLong nDstBitmapFormat, const BitmapPalette* pDstPal = NULL, const ColorMask* pDstMask = NULL );
// ------------------------------------------------------------------
@@ -880,6 +882,21 @@ inline void ColorMask::GetColorFor32Bit(
// ------------------------------------------------------------------
+inline void ColorMask::GetColorAndAlphaFor32Bit( BitmapColor& rColor, sal_uInt8& rAlpha, ConstHPBYTE pPixel ) const
+{
+#ifdef OSL_BIGENDIAN
+ const sal_uInt32 nVal = (sal_uInt32) pPixel[ 0 ] | ( (sal_uInt32) pPixel[ 1 ] << 8UL ) |
+ ( (sal_uInt32) pPixel[ 2 ] << 16UL ) | ( (sal_uInt32) pPixel[ 3 ] << 24UL );
+#else
+ const sal_uInt32 nVal = *(sal_uInt32*) pPixel;
+#endif
+ rAlpha = (sal_uInt8)(nVal >> 24);
+
+ MASK_TO_COLOR( nVal, mnRMask, mnGMask, mnBMask, mnRShift, mnGShift, mnBShift, rColor );
+}
+
+// ------------------------------------------------------------------
+
inline void ColorMask::SetColorFor32Bit( const BitmapColor& rColor, HPBYTE pPixel ) const
{
#ifdef OSL_BIGENDIAN
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/scrbar.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/scrbar.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/scrbar.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/scrbar.hxx Fri Feb 1 08:46:00 2013
@@ -93,9 +93,9 @@ private:
DECL_DLLPRIVATE_LINK( ImplAutoTimerHdl, AutoTimer* );
public:
- ScrollBar( Window* pParent, WinBits nStyle = WB_VERT );
- ScrollBar( Window* pParent, const ResId& rResId );
- ~ScrollBar();
+ explicit ScrollBar( Window* pParent, WinBits nStyle = WB_VERT );
+ explicit ScrollBar( Window* pParent, const ResId& );
+ virtual ~ScrollBar();
virtual void MouseButtonDown( const MouseEvent& rMEvt );
virtual void Tracking( const TrackingEvent& rTEvt );
@@ -156,11 +156,12 @@ private:
SAL_DLLPRIVATE void ImplInitSettings();
public:
- ScrollBarBox( Window* pParent, WinBits nStyle = 0 );
- ScrollBarBox( Window* pParent, const ResId& rResId );
+ explicit ScrollBarBox( Window* pParent, WinBits nStyle = 0 );
+ explicit ScrollBarBox( Window* pParent, const ResId& );
virtual void StateChanged( StateChangedType nType );
virtual void DataChanged( const DataChangedEvent& rDCEvt );
};
#endif // _SV_SCRBAR_HXX
+
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/spin.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/spin.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/spin.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/spin.hxx Fri Feb 1 08:46:00 2013
@@ -60,9 +60,9 @@ private:
DECL_DLLPRIVATE_LINK( ImplTimeout, Timer* );
public:
- SpinButton( Window* pParent, WinBits nStyle = 0 );
- SpinButton( Window* pParent, const ResId& rResId );
- ~SpinButton();
+ explicit SpinButton( Window* pParent, WinBits nStyle = 0 );
+ explicit SpinButton( Window* pParent, const ResId& );
+ virtual ~SpinButton();
virtual void Up();
virtual void Down();
@@ -111,3 +111,4 @@ private:
};
#endif // _SV_SPIN_HXX
+
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/spinfld.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/spinfld.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/spinfld.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/spinfld.hxx Fri Feb 1 08:46:00 2013
@@ -63,7 +63,7 @@ private:
SAL_DLLPRIVATE void ImplCalcButtonAreas( OutputDevice* pDev, const Size& rOutSz, Rectangle& rDDArea, Rectangle& rSpinUpArea, Rectangle& rSpinDownArea );
protected:
- SpinField( WindowType nTyp );
+ explicit SpinField( WindowType nTyp );
virtual long Notify( NotifyEvent& rNEvt );
virtual void Command( const CommandEvent& rCEvt );
@@ -73,9 +73,9 @@ protected:
virtual void FillLayoutData() const;
Rectangle * ImplFindPartRect( const Point& rPt );
public:
- SpinField( Window* pParent, WinBits nWinStyle = 0 );
- SpinField( Window* pParent, const ResId& rResId );
- ~SpinField();
+ explicit SpinField( Window* pParent, WinBits nWinStyle = 0 );
+ explicit SpinField( Window* pParent, const ResId& );
+ virtual ~SpinField();
virtual sal_Bool ShowDropDown( sal_Bool bShow );
@@ -109,3 +109,4 @@ public:
};
#endif // _SV_SPINFLD_HXX
+
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/split.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/split.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/split.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/split.hxx Fri Feb 1 08:46:00 2013
@@ -70,9 +70,9 @@ protected:
SAL_DLLPRIVATE void ImplInit( Window* pParent, WinBits nWinStyle );
public:
- Splitter( Window* pParent, WinBits nStyle = WB_VSCROLL );
- Splitter( Window* pParent, const ResId& rResId );
- ~Splitter();
+ explicit Splitter( Window* pParent, WinBits nStyle = WB_VSCROLL );
+ explicit Splitter( Window* pParent, const ResId& );
+ virtual ~Splitter();
virtual void StartSplit();
virtual void EndSplit();
@@ -120,3 +120,4 @@ public:
};
#endif // _SV_SPLIT_HXX
+
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/svapp.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/svapp.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/svapp.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/svapp.hxx Fri Feb 1 08:46:00 2013
@@ -542,6 +542,7 @@ private:
VCL_DLLPUBLIC bool TestBridgeRegistered();
VCL_DLLPUBLIC bool IsBridgeRegistered();
+VCL_DLLPUBLIC bool RegAccBridge();
#endif
//-----IAccessibility2 Implementation 2009
#endif // _APP_HXX
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/syschild.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/syschild.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/syschild.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/syschild.hxx Fri Feb 1 08:46:00 2013
@@ -47,11 +47,11 @@ private:
SAL_DLLPRIVATE SystemChildWindow & operator= (const SystemChildWindow &);
public:
- SystemChildWindow( Window* pParent, WinBits nStyle = 0 );
+ explicit SystemChildWindow( Window* pParent, WinBits nStyle = 0 );
// create a SystemChildWindow using the given SystemWindowData
- SystemChildWindow( Window* pParent, WinBits nStyle, SystemWindowData *pData, sal_Bool bShow = sal_True );
- SystemChildWindow( Window* pParent, const ResId& rResId );
- ~SystemChildWindow();
+ explicit SystemChildWindow( Window* pParent, WinBits nStyle, SystemWindowData* pData, sal_Bool bShow = sal_True );
+ explicit SystemChildWindow( Window* pParent, const ResId& );
+ virtual ~SystemChildWindow();
const SystemEnvData* GetSystemData() const;
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/tabpage.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/tabpage.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/tabpage.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/tabpage.hxx Fri Feb 1 08:46:00 2013
@@ -40,8 +40,8 @@ private:
SAL_DLLPRIVATE void ImplInitSettings();
public:
- TabPage( Window* pParent, WinBits nStyle = 0 );
- TabPage( Window* pParent, const ResId& rResId );
+ explicit TabPage( Window* pParent, WinBits nStyle = 0 );
+ explicit TabPage( Window* pParent, const ResId& );
virtual void Paint( const Rectangle& rRect );
virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, sal_uLong nFlags );
@@ -56,3 +56,4 @@ public:
};
#endif // _SV_TABPAGE_HXX
+
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/virdev.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/virdev.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/virdev.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/virdev.hxx Fri Feb 1 08:46:00 2013
@@ -68,8 +68,8 @@ private:
SAL_DLLPRIVATE bool ForceZeroExtleadBug() const
{ return ((meRefDevMode & REFDEV_FORCE_ZERO_EXTLEAD) != 0); }
public:
- VirtualDevice( sal_uInt16 nBitCount = 0 );
- VirtualDevice( const OutputDevice& rCompDev,
+ explicit VirtualDevice( sal_uInt16 nBitCount = 0 );
+ explicit VirtualDevice( const OutputDevice& rCompDev,
sal_uInt16 nBitCount = 0 );
/** Create a virtual device with alpha channel
@@ -94,7 +94,7 @@ public:
Any rendering will happen directly on the context and not on any intermediate bitmap.
Note: This might not be suported on all platforms !
*/
- VirtualDevice( const SystemGraphicsData *pData, sal_uInt16 nBitCount );
+ explicit VirtualDevice( const SystemGraphicsData *pData, sal_uInt16 nBitCount );
virtual ~VirtualDevice();
@@ -123,3 +123,4 @@ private:
};
#endif // _SV_VIRDEV_HXX
+
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/wall.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/wall.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/wall.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/wall.hxx Fri Feb 1 08:46:00 2013
@@ -97,7 +97,7 @@ public:
Wallpaper();
Wallpaper( const Wallpaper& rWallpaper );
Wallpaper( const Color& rColor );
- Wallpaper( const BitmapEx& rBmpEx );
+ explicit Wallpaper( const BitmapEx& rBmpEx );
Wallpaper( const Gradient& rGradient );
~Wallpaper();
Modified: openoffice/branches/ia2/main/vcl/inc/vcl/wrkwin.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/vcl/wrkwin.hxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/vcl/wrkwin.hxx (original)
+++ openoffice/branches/ia2/main/vcl/inc/vcl/wrkwin.hxx Fri Feb 1 08:46:00 2013
@@ -67,11 +67,11 @@ protected:
SAL_DLLPRIVATE void ImplSetFrameState( sal_uLong aFrameState );
public:
- WorkWindow( Window* pParent, const ResId& rResId );
- WorkWindow( Window* pParent, WinBits nStyle = WB_STDWORK );
- WorkWindow( Window* pParent, const ::com::sun::star::uno::Any& aSystemWorkWindowToken, WinBits nStyle = WB_STDWORK );
- WorkWindow( SystemParentData* pParent ); // Not in the REMOTE-Version
- ~WorkWindow();
+ explicit WorkWindow( Window* pParent, const ResId& );
+ explicit WorkWindow( Window* pParent, WinBits nStyle = WB_STDWORK );
+ explicit WorkWindow( Window* pParent, const ::com::sun::star::uno::Any& aSystemWorkWindowToken, WinBits nStyle = WB_STDWORK );
+ explicit WorkWindow( SystemParentData* pParent ); // Not in the REMOTE-Version
+ virtual ~WorkWindow();
virtual sal_Bool Close();
@@ -102,3 +102,4 @@ public:
};
#endif // _SV_WRKWIN_HXX
+
Modified: openoffice/branches/ia2/main/vcl/inc/win/salbmp.h
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/win/salbmp.h?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/win/salbmp.h (original)
+++ openoffice/branches/ia2/main/vcl/inc/win/salbmp.h Fri Feb 1 08:46:00 2013
@@ -27,6 +27,7 @@
#include <tools/gen.hxx>
#include <win/wincomp.hxx>
#include <salbmp.hxx>
+#include <boost/shared_ptr.hpp>
// --------------
// - SalBitmap -
@@ -36,24 +37,38 @@ struct BitmapBuffer;
class BitmapColor;
class BitmapPalette;
class SalGraphics;
+namespace Gdiplus { class Bitmap; }
+typedef boost::shared_ptr< Gdiplus::Bitmap > GdiPlusBmpPtr;
class WinSalBitmap : public SalBitmap
{
private:
+ friend class GdiPlusBuffer; // allow buffer to remove maGdiPlusBitmap eventually
Size maSize;
HGLOBAL mhDIB;
HBITMAP mhDDB;
- sal_uInt16 mnBitCount;
+
+ // the buffered evtl. used Gdiplus::Bitmap instance. It is managed by
+ // GdiPlusBuffer. To make this safe, it is only handed out as shared
+ // pointer; the GdiPlusBuffer may delete the local instance
+ GdiPlusBmpPtr maGdiPlusBitmap;
+
+ sal_uInt16 mnBitCount;
+
+ Gdiplus::Bitmap* ImplCreateGdiPlusBitmap(const WinSalBitmap& rAlphaSource);
+ Gdiplus::Bitmap* ImplCreateGdiPlusBitmap();
public:
HGLOBAL ImplGethDIB() const { return mhDIB; }
HBITMAP ImplGethDDB() const { return mhDDB; }
+
+ GdiPlusBmpPtr ImplGetGdiPlusBitmap(const WinSalBitmap* pAlphaSource = 0) const;
static HGLOBAL ImplCreateDIB( const Size& rSize, sal_uInt16 nBitCount, const BitmapPalette& rPal );
static HANDLE ImplCopyDIBOrDDB( HANDLE hHdl, bool bDIB );
- static sal_uInt16 ImplGetDIBColorCount( HGLOBAL hDIB );
+ static sal_uInt16 ImplGetDIBColorCount( HGLOBAL hDIB );
static void ImplDecodeRLEBuffer( const BYTE* pSrcBuf, BYTE* pDstBuf,
const Size& rSizePixel, bool bRLE4 );
Modified: openoffice/branches/ia2/main/vcl/inc/win/salgdi.h
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/win/salgdi.h?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/win/salgdi.h (original)
+++ openoffice/branches/ia2/main/vcl/inc/win/salgdi.h Fri Feb 1 08:46:00 2013
@@ -128,8 +128,14 @@ public:
class WinSalGraphics : public SalGraphics
{
+private:
+ HDC mhLocalDC; // HDC
+
+public:
+ HDC getHDC() { return mhLocalDC; }
+ void setHDC(HDC aNew) { mhLocalDC = aNew; }
+
public:
- HDC mhDC; // HDC
HWND mhWnd; // Window-Handle, when Window-Graphics
HFONT mhFonts[ MAX_FALLBACK ]; // Font + Fallbacks
const ImplWinFontData* mpWinFontData[ MAX_FALLBACK ]; // pointer to the most recent font face
@@ -155,15 +161,17 @@ public:
KERNINGPAIR* mpFontKernPairs; // Kerning Pairs of the current Font
sal_uIntPtr mnFontKernPairCount;// Number of Kerning Pairs of the current Font
int mnPenWidth; // Linienbreite
- sal_Bool mbStockPen; // is Pen a stockpen
- sal_Bool mbStockBrush; // is Brush a stcokbrush
- sal_Bool mbPen; // is Pen (FALSE == NULL_PEN)
- sal_Bool mbBrush; // is Brush (FALSE == NULL_BRUSH)
- sal_Bool mbPrinter; // is Printer
- sal_Bool mbVirDev; // is VirDev
- sal_Bool mbWindow; // is Window
- sal_Bool mbScreen; // is Screen compatible
- bool mbXORMode; // _every_ output with RasterOp XOR
+
+ /// bitfield
+ bool mbStockPen : 1; // is Pen a stockpen
+ bool mbStockBrush : 1; // is Brush a stcokbrush
+ bool mbPen : 1; // is Pen (FALSE == NULL_PEN)
+ bool mbBrush : 1; // is Brush (FALSE == NULL_BRUSH)
+ bool mbPrinter : 1; // is Printer
+ bool mbVirDev : 1; // is VirDev
+ bool mbWindow : 1; // is Window
+ bool mbScreen : 1; // is Screen compatible
+ bool mbXORMode : 1; // _every_ output with RasterOp XOR
// remember RGB values for SetLineColor/SetFillColor
SalColor maLineColor;
@@ -202,15 +210,15 @@ protected:
// CopyBits and DrawBitmap --> RasterOp and ClipRegion
// CopyBits() --> pSrcGraphics == NULL, then CopyBits on same Graphics
- virtual void copyBits( const SalTwoRect* pPosAry, SalGraphics* pSrcGraphics );
- virtual void drawBitmap( const SalTwoRect* pPosAry, const SalBitmap& rSalBitmap );
- virtual void drawBitmap( const SalTwoRect* pPosAry,
+ virtual void copyBits( const SalTwoRect& rPosAry, SalGraphics* pSrcGraphics );
+ virtual void drawBitmap( const SalTwoRect& rPosAry, const SalBitmap& rSalBitmap );
+ virtual void drawBitmap( const SalTwoRect& rPosAry,
const SalBitmap& rSalBitmap,
SalColor nTransparentColor );
- virtual void drawBitmap( const SalTwoRect* pPosAry,
+ virtual void drawBitmap( const SalTwoRect& rPosAry,
const SalBitmap& rSalBitmap,
const SalBitmap& rTransparentBitmap );
- virtual void drawMask( const SalTwoRect* pPosAry,
+ virtual void drawMask( const SalTwoRect& rPosAry,
const SalBitmap& rSalBitmap,
SalColor nMaskColor );
@@ -239,8 +247,18 @@ protected:
virtual bool drawAlphaBitmap( const SalTwoRect&,
const SalBitmap& rSourceBitmap,
const SalBitmap& rAlphaBitmap );
+ virtual bool drawTransformedBitmap(
+ const basegfx::B2DPoint& rNull,
+ const basegfx::B2DPoint& rX,
+ const basegfx::B2DPoint& rY,
+ const SalBitmap& rSourceBitmap,
+ const SalBitmap* pAlphaBitmap);
virtual bool drawAlphaRect( long nX, long nY, long nWidth, long nHeight, sal_uInt8 nTransparency );
+private:
+ // local helpers
+ bool tryDrawBitmapGdiPlus(const SalTwoRect& rTR, const SalBitmap& rSrcBitmap);
+
public:
// public SalGraphics methods, the interface to teh independent vcl part
Modified: openoffice/branches/ia2/main/vcl/inc/win/salvd.h
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/inc/win/salvd.h?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/inc/win/salvd.h (original)
+++ openoffice/branches/ia2/main/vcl/inc/win/salvd.h Fri Feb 1 08:46:00 2013
@@ -34,8 +34,14 @@ class WinSalGraphics;
class WinSalVirtualDevice : public SalVirtualDevice
{
+private:
+ HDC mhLocalDC; // HDC or 0 for Cache Device
+
+public:
+ HDC getHDC() { return mhLocalDC; }
+ void setHDC(HDC aNew) { mhLocalDC = aNew; }
+
public:
- HDC mhDC; // HDC or 0 for Cache Device
HBITMAP mhBmp; // Memory Bitmap
HBITMAP mhDefBmp; // Default Bitmap
WinSalGraphics* mpGraphics; // current VirDev graphics
Modified: openoffice/branches/ia2/main/vcl/os2/source/gdi/salgdi2.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/os2/source/gdi/salgdi2.cxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/os2/source/gdi/salgdi2.cxx (original)
+++ openoffice/branches/ia2/main/vcl/os2/source/gdi/salgdi2.cxx Fri Feb 1 08:46:00 2013
@@ -51,7 +51,7 @@ bool Os2SalGraphics::supportsOperation(
}
-void Os2SalGraphics::copyBits( const SalTwoRect* pPosAry, SalGraphics* pSrcGraphics )
+void Os2SalGraphics::copyBits( const SalTwoRect& rPosAry, SalGraphics* pSrcGraphics )
{
HPS hSrcPS;
POINTL thePoints[4];
@@ -71,22 +71,22 @@ void Os2SalGraphics::copyBits( const Sal
}
// lower-left corner of target
- thePoints[0].x = pPosAry->mnDestX;
- thePoints[0].y = TY( pPosAry->mnDestY + pPosAry->mnDestHeight - 1 );
+ thePoints[0].x = rPosAry.mnDestX;
+ thePoints[0].y = TY( rPosAry.mnDestY + rPosAry.mnDestHeight - 1 );
// upper-right corner of target
- thePoints[1].x = pPosAry->mnDestX + pPosAry->mnDestWidth;
- thePoints[1].y = TY( pPosAry->mnDestY - 1 );
+ thePoints[1].x = rPosAry.mnDestX + rPosAry.mnDestWidth;
+ thePoints[1].y = TY( rPosAry.mnDestY - 1 );
// lower-left corner of source
- thePoints[2].x = pPosAry->mnSrcX;
- thePoints[2].y = nSrcHeight - ( pPosAry->mnSrcY + pPosAry->mnSrcHeight );
+ thePoints[2].x = rPosAry.mnSrcX;
+ thePoints[2].y = nSrcHeight - ( rPosAry.mnSrcY + rPosAry.mnSrcHeight );
- if ( ( pPosAry->mnDestWidth != pPosAry->mnSrcWidth ) || ( pPosAry->mnDestHeight != pPosAry->mnSrcHeight ) )
+ if ( ( rPosAry.mnDestWidth != rPosAry.mnSrcWidth ) || ( rPosAry.mnDestHeight != rPosAry.mnSrcHeight ) )
{
// upper-right corner of Source
- thePoints[3].x = pPosAry->mnSrcX + pPosAry->mnSrcWidth;
- thePoints[3].y = nSrcHeight - pPosAry->mnSrcY + pPosAry->mnSrcHeight;
+ thePoints[3].x = rPosAry.mnSrcX + rPosAry.mnSrcWidth;
+ thePoints[3].y = nSrcHeight - rPosAry.mnSrcY + rPosAry.mnSrcHeight;
GpiBitBlt( mhPS, hSrcPS, 4, thePoints,
mbXORMode ? ROP_SRCINVERT : ROP_SRCCOPY, BBO_IGNORE );
@@ -275,7 +275,7 @@ void Os2SalGraphics::copyArea( long nDes
// -----------------------------------------------------------------------
void ImplDrawBitmap( HPS hPS, long nScreenHeight,
- const SalTwoRect* pPosAry, const Os2SalBitmap& rSalBitmap,
+ const SalTwoRect& rPosAry, const Os2SalBitmap& rSalBitmap,
PM_BOOL bPrinter, int nDrawMode )
{
if( hPS )
@@ -305,15 +305,15 @@ void ImplDrawBitmap( HPS hPS, long nScre
long nInfoSize = *(ULONG*) pBI + rSalBitmap.ImplGetDIBColorCount( hDrawDIB ) * sizeof( RGB2 );
PM_BYTE* pBits = (PM_BYTE*) pBI + nInfoSize;
- pts[0].x = pPosAry->mnDestX;
- pts[0].y = nScreenHeight - pPosAry->mnDestY - pPosAry->mnDestHeight;
- pts[1].x = pPosAry->mnDestX + pPosAry->mnDestWidth - 1;
- pts[1].y = nScreenHeight - pPosAry->mnDestY - 1;
-
- pts[2].x = pPosAry->mnSrcX;
- pts[2].y = nHeight - ( pPosAry->mnSrcY + pPosAry->mnSrcHeight );
- pts[3].x = pPosAry->mnSrcX + pPosAry->mnSrcWidth;
- pts[3].y = nHeight - pPosAry->mnSrcY;
+ pts[0].x = rPosAry.mnDestX;
+ pts[0].y = nScreenHeight - rPosAry.mnDestY - rPosAry.mnDestHeight;
+ pts[1].x = rPosAry.mnDestX + rPosAry.mnDestWidth - 1;
+ pts[1].y = nScreenHeight - rPosAry.mnDestY - 1;
+
+ pts[2].x = rPosAry.mnSrcX;
+ pts[2].y = nHeight - ( rPosAry.mnSrcY + rPosAry.mnSrcHeight );
+ pts[3].x = rPosAry.mnSrcX + rPosAry.mnSrcWidth;
+ pts[3].y = nHeight - rPosAry.mnSrcY;
// if we've got a 1Bit DIB, we create a 4Bit substitute
if( ( pBIH->cBitCount == 1 ) && !hSubst )
@@ -400,15 +400,15 @@ void ImplDrawBitmap( HPS hPS, long nScre
{
POINTL pts[ 4 ];
- pts[0].x = pPosAry->mnDestX;
- pts[0].y = nScreenHeight - pPosAry->mnDestY - pPosAry->mnDestHeight;
- pts[1].x = pPosAry->mnDestX + pPosAry->mnDestWidth - 1;
- pts[1].y = nScreenHeight - pPosAry->mnDestY - 1;
-
- pts[2].x = pPosAry->mnSrcX;
- pts[2].y = rSalBitmap.GetSize().Height() - ( pPosAry->mnSrcY + pPosAry->mnSrcHeight );
- pts[3].x = pPosAry->mnSrcX + pPosAry->mnSrcWidth;
- pts[3].y = rSalBitmap.GetSize().Height() - pPosAry->mnSrcY;
+ pts[0].x = rPosAry.mnDestX;
+ pts[0].y = nScreenHeight - rPosAry.mnDestY - rPosAry.mnDestHeight;
+ pts[1].x = rPosAry.mnDestX + rPosAry.mnDestWidth - 1;
+ pts[1].y = nScreenHeight - rPosAry.mnDestY - 1;
+
+ pts[2].x = rPosAry.mnSrcX;
+ pts[2].y = rSalBitmap.GetSize().Height() - ( rPosAry.mnSrcY + rPosAry.mnSrcHeight );
+ pts[3].x = rPosAry.mnSrcX + rPosAry.mnSrcWidth;
+ pts[3].y = rSalBitmap.GetSize().Height() - rPosAry.mnSrcY;
GpiWCBitBlt( hPS, hDrawDDB, 4L, pts, nDrawMode, BBO_IGNORE );
/*
@@ -425,30 +425,29 @@ void ImplDrawBitmap( HPS hPS, long nScre
// -----------------------------------------------------------------------
-void Os2SalGraphics::drawBitmap( const SalTwoRect* pPosAry,
- const SalBitmap& rSalBitmap )
+void Os2SalGraphics::drawBitmap( const SalTwoRect& rPosAry, const SalBitmap& rSalBitmap )
{
ImplDrawBitmap( mhPS, mnHeight,
- pPosAry, static_cast<const Os2SalBitmap&>(rSalBitmap),
+ rPosAry, static_cast<const Os2SalBitmap&>(rSalBitmap),
mbPrinter,
mbXORMode ? ROP_SRCINVERT : ROP_SRCCOPY );
}
// -----------------------------------------------------------------------
-void Os2SalGraphics::drawBitmap( const SalTwoRect* pPosAry,
+void Os2SalGraphics::drawBitmap( const SalTwoRect& rPosAry,
const SalBitmap& rSalBitmap,
SalColor nTransparentColor )
{
DBG_ASSERT( !mbPrinter, "No transparency print possible!" );
//const Os2SalBitmap& rSalBitmap = static_cast<const Os2SalBitmap&>(rSSalBitmap);
// an FM: kann erst einmal unberuecksichtigt bleiben
- drawBitmap( pPosAry, rSalBitmap );
+ drawBitmap( rPosAry, rSalBitmap );
}
// -----------------------------------------------------------------------
-void Os2SalGraphics::drawBitmap( const SalTwoRect* pPosAry,
+void Os2SalGraphics::drawBitmap( const SalTwoRect& rPosAry,
const SalBitmap& rSSalBitmap,
const SalBitmap& rSTransparentBitmap )
{
@@ -459,12 +458,12 @@ void Os2SalGraphics::drawBitmap( const S
if( bFastTransparent )
{
- ImplDrawBitmap( mhPS, mnHeight, pPosAry, rTransparentBitmap, FALSE, ROP_SRCAND );
- ImplDrawBitmap( mhPS, mnHeight, pPosAry, rSalBitmap, FALSE, ROP_SRCPAINT );
+ ImplDrawBitmap( mhPS, mnHeight, rPosAry, rTransparentBitmap, FALSE, ROP_SRCAND );
+ ImplDrawBitmap( mhPS, mnHeight, rPosAry, rSalBitmap, FALSE, ROP_SRCPAINT );
}
else
{
- SalTwoRect aPosAry = *pPosAry;
+ SalTwoRect aPosAry = rPosAry;
int nDstX = (int) aPosAry.mnDestX;
int nDstY = (int) aPosAry.mnDestY;
int nDstWidth = (int) aPosAry.mnDestWidth;
@@ -497,13 +496,13 @@ void Os2SalGraphics::drawBitmap( const S
aPtL[ 2 ].y = TY( nDstY + nDstHeight - 1 );
GpiBitBlt( hMemPS, hPS, 3, aPtL, ROP_SRCCOPY, BBO_IGNORE );
- ImplDrawBitmap( hMaskPS, nDstHeight, &aPosAry, rTransparentBitmap, FALSE, ROP_SRCCOPY );
+ ImplDrawBitmap( hMaskPS, nDstHeight, aPosAry, rTransparentBitmap, FALSE, ROP_SRCCOPY );
aPtL[ 2 ].x = 0;
aPtL[ 2 ].y = 0;
GpiBitBlt( hMemPS, hMaskPS, 3, aPtL, ROP_SRCAND, BBO_IGNORE );
- ImplDrawBitmap( hMaskPS, nDstHeight, &aPosAry, rSalBitmap, FALSE, ROP_SRCERASE );
+ ImplDrawBitmap( hMaskPS, nDstHeight, aPosAry, rSalBitmap, FALSE, ROP_SRCERASE );
GpiBitBlt( hMemPS, hMaskPS, 3, aPtL, ROP_SRCPAINT, BBO_IGNORE );
aPtL[ 0 ].x = nDstX;
@@ -542,6 +541,20 @@ bool Os2SalGraphics::drawAlphaBitmap( co
// -----------------------------------------------------------------------
+bool Os2SalGraphics::drawTransformedBitmap(
+ const basegfx::B2DPoint& rNull,
+ const basegfx::B2DPoint& rX,
+ const basegfx::B2DPoint& rY,
+ const SalBitmap& rSourceBitmap,
+ const SalBitmap* pAlphaBitmap)
+{
+ // here direct support for transformed bitmaps can be impemented
+ (void)rNull; (void)rX; (void)rY; (void)rSourceBitmap; (void)pAlphaBitmap;
+ return false;
+}
+
+// -----------------------------------------------------------------------
+
bool Os2SalGraphics::drawAlphaRect( long nX, long nY, long nWidth,
long nHeight, sal_uInt8 nTransparency )
{
@@ -551,7 +564,7 @@ bool Os2SalGraphics::drawAlphaRect( long
// -----------------------------------------------------------------------
-void Os2SalGraphics::drawMask( const SalTwoRect* pPosAry,
+void Os2SalGraphics::drawMask( const SalTwoRect& rPosAry,
const SalBitmap& rSSalBitmap,
SalColor nMaskColor )
{
@@ -559,7 +572,7 @@ void Os2SalGraphics::drawMask( const Sal
const Os2SalBitmap& rSalBitmap = static_cast<const Os2SalBitmap&>(rSSalBitmap);
- SalTwoRect aPosAry = *pPosAry;
+ SalTwoRect aPosAry = rPosAry;
HPS hPS = mhPS;
IMAGEBUNDLE aBundle, aOldBundle;
AREABUNDLE aAreaBundle, aOldAreaBundle;
@@ -582,7 +595,7 @@ void Os2SalGraphics::drawMask( const Sal
Ft2SetAttrs( hPS, PRIM_AREA, ABB_COLOR | ABB_BACK_COLOR | ABB_SYMBOL |
ABB_MIX_MODE | ABB_BACK_MIX_MODE, 0, &aAreaBundle );
- ImplDrawBitmap( hPS, mnHeight, &aPosAry, rSalBitmap, FALSE, 0x00B8L );
+ ImplDrawBitmap( hPS, mnHeight, aPosAry, rSalBitmap, FALSE, 0x00B8L );
Ft2SetAttrs( hPS, PRIM_IMAGE, IBB_COLOR | IBB_BACK_COLOR, 0, &aOldBundle );
Ft2SetAttrs( hPS, PRIM_AREA, ABB_COLOR | ABB_BACK_COLOR | ABB_SYMBOL |
Modified: openoffice/branches/ia2/main/vcl/source/app/settings.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/source/app/settings.cxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/source/app/settings.cxx (original)
+++ openoffice/branches/ia2/main/vcl/source/app/settings.cxx Fri Feb 1 08:46:00 2013
@@ -1167,7 +1167,7 @@ sal_Bool MiscSettings::GetEnableATToolSu
HKEY hkey;
if( ERROR_SUCCESS == RegOpenKey(HKEY_CURRENT_USER,
- "Software\\OpenOffice.org\\Accessibility\\AtToolSupport",
+ "Software\\Aapche OpenOffice\\Accessibility\\AtToolSupport",
&hkey) )
{
DWORD dwType;
@@ -1245,7 +1245,7 @@ void MiscSettings::SetEnableATToolSuppor
// If the accessibility key in the Windows registry exists, change it synchronously
if( ERROR_SUCCESS == RegOpenKey(HKEY_CURRENT_USER,
- "Software\\OpenOffice.org\\Accessibility\\AtToolSupport",
+ "Software\\Apache OpenOffice\\Accessibility\\AtToolSupport",
&hkey) )
{
DWORD dwType;
Modified: openoffice/branches/ia2/main/vcl/source/app/svapp.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/source/app/svapp.cxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/source/app/svapp.cxx (original)
+++ openoffice/branches/ia2/main/vcl/source/app/svapp.cxx Fri Feb 1 08:46:00 2013
@@ -77,6 +77,10 @@
#include <utility>
+#ifdef WNT
+#include <tchar.h>
+#endif
+
using namespace ::com::sun::star::uno;
// keycodes handled internally by VCL
@@ -2065,7 +2069,7 @@ sal_Bool InitAccessBridge( sal_Bool bSho
#else
// Checking TestBridgeRegistered() && HasAtHook() was introduced with IBM's IA2 CWS.
- if(TestBridgeRegistered() /* && HasAtHook() */ )
+ if(TestBridgeRegistered() && HasAtHook() )
{
bRet = ImplInitAccessBridge( bShowCancel, rCancelled );
@@ -2180,5 +2184,242 @@ bool IsBridgeRegistered()
return ImplGetSVData()->maAppData.m_mbIsBridgeRegistered;;
}
+namespace uacc
+{
+
+//#define BASIS_LINK _T("\\basis-link")
+
+TCHAR * filename(TCHAR * path) {
+ TCHAR * f = path;
+ for (TCHAR * p = path;;) {
+ switch (*p++) {
+ case L'\0':
+ return f;
+ case L'\\':
+ f = p;
+ break;
+ }
+ }
+}
+
+TCHAR * buildPath(
+ TCHAR * path, TCHAR const * frontBegin, TCHAR const * frontEnd,
+ TCHAR const * backBegin, std::size_t backLength)
+{
+ // Remove leading ".." segments in the second path together with matching
+ // segments in the first path that are neither empty nor "." nor ".." nor
+ // end in ":" (which is not foolprove, as it can erroneously erase the start
+ // of a UNC path, but only if the input is bad data):
+ while (backLength >= 2 && backBegin[0] == L'.' && backBegin[1] == L'.' &&
+ (backLength == 2 || backBegin[2] == L'\\'))
+ {
+ if (frontEnd - frontBegin < 2 || frontEnd[-1] != L'\\' ||
+ frontEnd[-2] == L'\\' || frontEnd[-2] == L':' ||
+ (frontEnd[-2] == L'.' &&
+ (frontEnd - frontBegin < 3 || frontEnd[-3] == L'\\' ||
+ (frontEnd[-3] == L'.' &&
+ (frontEnd - frontBegin < 4 || frontEnd[-4] == L'\\')))))
+ {
+ break;
+ }
+ TCHAR const * p = frontEnd - 1;
+ while (p != frontBegin && p[-1] != L'\\') {
+ --p;
+ }
+ if (p == frontBegin) {
+ break;
+ }
+ frontEnd = p;
+ if (backLength == 2) {
+ backBegin += 2;
+ backLength -= 2;
+ } else {
+ backBegin += 3;
+ backLength -= 3;
+ }
+ }
+ if (backLength <
+ static_cast< std::size_t >(MAX_PATH - (frontEnd - frontBegin)))
+ // hopefully std::size_t is large enough
+ {
+ TCHAR * p;
+ if (frontBegin == path) {
+ p = const_cast< TCHAR * >(frontEnd);
+ } else {
+ p = path;
+ while (frontBegin != frontEnd) {
+ *p++ = *frontBegin++;
+ }
+ }
+ for (; backLength > 0; --backLength) {
+ *p++ = *backBegin++;
+ }
+ *p = L'\0';
+ return p;
+ } else {
+ SetLastError(ERROR_FILENAME_EXCED_RANGE);
+ return NULL;
+ }
+}
+
+TCHAR * resolveLink(TCHAR * path) {
+ HANDLE h = CreateFile(
+ path, FILE_READ_DATA, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
+ if (h == INVALID_HANDLE_VALUE) {
+ return NULL;
+ }
+ char p1[MAX_PATH];
+ DWORD n;
+ BOOL ok = ReadFile(h, p1, MAX_PATH, &n, NULL);
+ CloseHandle(h);
+ if (!ok) {
+ return NULL;
+ }
+ TCHAR p2[MAX_PATH];
+ std::size_t n2 = 0;
+ bool colon = false;
+ for (DWORD i = 0; i < n;) {
+ unsigned char c = static_cast< unsigned char >(p1[i++]);
+ switch (c) {
+ case '\0':
+ SetLastError(ERROR_BAD_PATHNAME);
+ return NULL;
+ case '\x0A':
+ case '\x0D':
+ if (n2 == MAX_PATH) {
+ SetLastError(ERROR_FILENAME_EXCED_RANGE);
+ return NULL;
+ }
+ p2[n2] = L'\0';
+ break;
+ case ':':
+ colon = true;
+ // fall through
+ default:
+ // Convert from UTF-8 to UTF-16:
+ if (c <= 0x7F) {
+ p2[n2++] = c;
+ } else if (c >= 0xC2 && c <= 0xDF && i < n &&
+ static_cast< unsigned char >(p1[i]) >= 0x80 &&
+ static_cast< unsigned char >(p1[i]) <= 0xBF)
+ {
+ p2[n2++] = ((c & 0x1F) << 6) |
+ (static_cast< unsigned char >(p1[i++]) & 0x3F);
+ } else if (n - i > 1 &&
+ ((c == 0xE0 &&
+ static_cast< unsigned char >(p1[i]) >= 0xA0 &&
+ static_cast< unsigned char >(p1[i]) <= 0xBF) ||
+ ((c >= 0xE1 && c <= 0xEC || c >= 0xEE && c <= 0xEF) &&
+ static_cast< unsigned char >(p1[i]) >= 0x80 &&
+ static_cast< unsigned char >(p1[i]) <= 0xBF) ||
+ (c == 0xED &&
+ static_cast< unsigned char >(p1[i]) >= 0x80 &&
+ static_cast< unsigned char >(p1[i]) <= 0x9F)) &&
+ static_cast< unsigned char >(p1[i + 1]) >= 0x80 &&
+ static_cast< unsigned char >(p1[i + 1]) <= 0xBF)
+ {
+ p2[n2++] = ((c & 0x0F) << 12) |
+ ((static_cast< unsigned char >(p1[i]) & 0x3F) << 6) |
+ (static_cast< unsigned char >(p1[i + 1]) & 0x3F);
+ i += 2;
+ } else if (n - 2 > 1 &&
+ ((c == 0xF0 &&
+ static_cast< unsigned char >(p1[i]) >= 0x90 &&
+ static_cast< unsigned char >(p1[i]) <= 0xBF) ||
+ (c >= 0xF1 && c <= 0xF3 &&
+ static_cast< unsigned char >(p1[i]) >= 0x80 &&
+ static_cast< unsigned char >(p1[i]) <= 0xBF) ||
+ (c == 0xF4 &&
+ static_cast< unsigned char >(p1[i]) >= 0x80 &&
+ static_cast< unsigned char >(p1[i]) <= 0x8F)) &&
+ static_cast< unsigned char >(p1[i + 1]) >= 0x80 &&
+ static_cast< unsigned char >(p1[i + 1]) <= 0xBF &&
+ static_cast< unsigned char >(p1[i + 2]) >= 0x80 &&
+ static_cast< unsigned char >(p1[i + 2]) <= 0xBF)
+ {
+ sal_Int32 u = ((c & 0x07) << 18) |
+ ((static_cast< unsigned char >(p1[i]) & 0x3F) << 12) |
+ ((static_cast< unsigned char >(p1[i + 1]) & 0x3F) << 6) |
+ (static_cast< unsigned char >(p1[i + 2]) & 0x3F);
+ i += 3;
+ p2[n2++] = static_cast< TCHAR >(((u - 0x10000) >> 10) | 0xD800);
+ p2[n2++] = static_cast< TCHAR >(
+ ((u - 0x10000) & 0x3FF) | 0xDC00);
+ } else {
+ SetLastError(ERROR_BAD_PATHNAME);
+ return NULL;
+ }
+ break;
+ }
+ }
+ TCHAR * end;
+ if (colon || p2[0] == L'\\') {
+ // Interpret p2 as an absolute path:
+ end = path;
+ } else {
+ // Interpret p2 as a relative path:
+ end = filename(path);
+ }
+ return buildPath(path, path, end, p2, n2);
+}
+
+/* If the path does not end with '\' the las segment will be removed.
+ path: C:\a\b
+ -> C:\a
+ @param io_path
+ in/out parameter. The string is not reallocated. Simply a '\0'
+ will be inserted to shorten the string.
+*/
+void oneDirUp(LPTSTR io_path)
+{
+ TCHAR * pEnd = io_path + lstrlen(io_path) - 1;
+ while (pEnd > io_path //prevent crashing if provided string does not contain a backslash
+ && *pEnd != L'\\')
+ pEnd --;
+ *pEnd = L'\0';
+}
+
+}
+
+bool RegAccBridge()
+{
+ bool bResult = false;
+
+ TCHAR szbasisPath[1024];
+ ::GetCurrentDirectory(1024,szbasisPath);
+ uacc::oneDirUp(szbasisPath);
+ //lstrcat(szbasisPath, BASIS_LINK);
+ /*if (!uacc::resolveLink(szbasisPath))
+ return bResult;*/
+ LPTSTR pszDllPath = szbasisPath;
+ lstrcat(pszDllPath, _T("\\program\\UAccCOM.dll"));
+ HMODULE hMod=::LoadLibraryEx(pszDllPath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
+ if(hMod==NULL)
+ return bResult;
+
+ // Initialize OLE.
+ HRESULT hResult = ::OleInitialize(NULL);
+ if(hResult != S_OK && hResult != S_FALSE)
+ {
+ ::OleUninitialize();
+ ::FreeLibrary(hMod);
+ return bResult;
+ }
+
+ typedef HRESULT (STDAPICALLTYPE *DLLREGISTERSERVER)(void);
+ BOOL bRet=FALSE;
+ DLLREGISTERSERVER DllRegisterSrverFunc=(DLLREGISTERSERVER)::GetProcAddress(hMod,"DllRegisterServer");
+ if(DllRegisterSrverFunc == NULL)
+ {
+ ::OleUninitialize();
+ FreeLibrary(hMod);
+ return bResult;
+ }
+ bResult=(S_OK == DllRegisterSrverFunc());
+ ::OleUninitialize();
+ FreeLibrary(hMod);
+ return bResult;
+}
+
#endif
//-----IAccessibility2 Implementation 2009
Modified: openoffice/branches/ia2/main/vcl/source/app/svdata.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/source/app/svdata.cxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/source/app/svdata.cxx (original)
+++ openoffice/branches/ia2/main/vcl/source/app/svdata.cxx Fri Feb 1 08:46:00 2013
@@ -689,7 +689,7 @@ bool ImplInitAccessBridge(sal_Bool bAllo
// -----------------------------------------------------------------------
-Window* ImplFindWindow( const SalFrame* pFrame, Point& rSalFramePos )
+Window* ImplFindWindow( const SalFrame* pFrame, ::Point& rSalFramePos )
{
ImplSVData* pSVData = ImplGetSVData();
Window* pFrameWindow = pSVData->maWinData.mpFirstFrame;
Modified: openoffice/branches/ia2/main/vcl/source/control/imgctrl.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/source/control/imgctrl.cxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/source/control/imgctrl.cxx (original)
+++ openoffice/branches/ia2/main/vcl/source/control/imgctrl.cxx Fri Feb 1 08:46:00 2013
@@ -36,7 +36,7 @@ namespace ImageScaleMode = ::com::sun::s
ImageControl::ImageControl( Window* pParent, WinBits nStyle )
:FixedImage( pParent, nStyle )
- ,mnScaleMode( ImageScaleMode::Anisotropic )
+ ,mnScaleMode( ImageScaleMode::ANISOTROPIC )
{
}
@@ -44,7 +44,7 @@ ImageControl::ImageControl( Window* pPar
ImageControl::ImageControl( Window* pParent, const ResId& rResId )
:FixedImage( pParent, rResId )
- ,mnScaleMode( ImageScaleMode::Anisotropic )
+ ,mnScaleMode( ImageScaleMode::ANISOTROPIC )
{
}
@@ -128,13 +128,13 @@ void ImageControl::ImplDraw( OutputDevic
switch ( mnScaleMode )
{
- case ImageScaleMode::None:
+ case ImageScaleMode::NONE:
{
rDev.DrawImage( lcl_centerWithin( aDrawRect, rBitmapSize ), *pImage, nStyle );
}
break;
- case ImageScaleMode::Isotropic:
+ case ImageScaleMode::ISOTROPIC:
{
const Size aPaintSize = lcl_calcPaintSize( aDrawRect, rBitmapSize );
rDev.DrawImage(
@@ -144,7 +144,7 @@ void ImageControl::ImplDraw( OutputDevic
}
break;
- case ImageScaleMode::Anisotropic:
+ case ImageScaleMode::ANISOTROPIC:
{
rDev.DrawImage(
aDrawRect.TopLeft(),
Modified: openoffice/branches/ia2/main/vcl/source/control/throbber.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/source/control/throbber.cxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/source/control/throbber.cxx (original)
+++ openoffice/branches/ia2/main/vcl/source/control/throbber.cxx Fri Feb 1 08:46:00 2013
@@ -59,7 +59,7 @@ Throbber::Throbber( Window* i_parentWind
maWaitTimer.SetTimeout( mnStepTime );
maWaitTimer.SetTimeoutHdl( LINK( this, Throbber, TimeOutHdl ) );
- SetScaleMode( ImageScaleMode::None );
+ SetScaleMode( ImageScaleMode::NONE );
initImages();
}
@@ -75,7 +75,7 @@ Throbber::Throbber( Window* i_parentWind
maWaitTimer.SetTimeout( mnStepTime );
maWaitTimer.SetTimeoutHdl( LINK( this, Throbber, TimeOutHdl ) );
- SetScaleMode( ImageScaleMode::None );
+ SetScaleMode( ImageScaleMode::NONE );
initImages();
}
Modified: openoffice/branches/ia2/main/vcl/source/gdi/animate.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/source/gdi/animate.cxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/source/gdi/animate.cxx (original)
+++ openoffice/branches/ia2/main/vcl/source/gdi/animate.cxx Fri Feb 1 08:46:00 2013
@@ -32,6 +32,8 @@
#include <vcl/virdev.hxx>
#include <vcl/window.hxx>
#include <impanmvw.hxx>
+#include <vcl/dibtools.hxx>
+
DBG_NAME( Animation )
// -----------
@@ -830,9 +832,9 @@ SvStream& operator<<( SvStream& rOStm, c
// Falls keine BitmapEx gesetzt wurde, schreiben wir
// einfach die erste Bitmap der Animation
if( !rAnimation.GetBitmapEx().GetBitmap() )
- rOStm << rAnimation.Get( 0 ).aBmpEx;
+ WriteDIBBitmapEx(rAnimation.Get( 0 ).aBmpEx, rOStm);
else
- rOStm << rAnimation.GetBitmapEx();
+ WriteDIBBitmapEx(rAnimation.GetBitmapEx(), rOStm);
// Kennung schreiben ( SDANIMA1 )
rOStm << (sal_uInt32) 0x5344414e << (sal_uInt32) 0x494d4931;
@@ -843,7 +845,7 @@ SvStream& operator<<( SvStream& rOStm, c
const sal_uInt16 nRest = nCount - i - 1;
// AnimationBitmap schreiben
- rOStm << rAnimBmp.aBmpEx;
+ WriteDIBBitmapEx(rAnimBmp.aBmpEx, rOStm);
rOStm << rAnimBmp.aPosPix;
rOStm << rAnimBmp.aSizePix;
rOStm << rAnimation.maGlobalSize;
@@ -886,7 +888,7 @@ SvStream& operator>>( SvStream& rIStm, A
else
{
rIStm.Seek( nStmPos );
- rIStm >> rAnimation.maBitmapEx;
+ ReadDIBBitmapEx(rAnimation.maBitmapEx, rIStm);
nStmPos = rIStm.Tell();
rIStm >> nAnimMagic1 >> nAnimMagic2;
@@ -908,7 +910,7 @@ SvStream& operator>>( SvStream& rIStm, A
do
{
- rIStm >> aAnimBmp.aBmpEx;
+ ReadDIBBitmapEx(aAnimBmp.aBmpEx, rIStm);
rIStm >> aAnimBmp.aPosPix;
rIStm >> aAnimBmp.aSizePix;
rIStm >> rAnimation.maGlobalSize;
Modified: openoffice/branches/ia2/main/vcl/source/gdi/bitmapex.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/source/gdi/bitmapex.cxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/source/gdi/bitmapex.cxx (original)
+++ openoffice/branches/ia2/main/vcl/source/gdi/bitmapex.cxx Fri Feb 1 08:46:00 2013
@@ -19,19 +19,14 @@
*
*************************************************************/
-
-
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_vcl.hxx"
#include <ctype.h>
-
#include <rtl/crc.h>
-
#include <tools/stream.hxx>
#include <tools/debug.hxx>
#include <tools/rc.h>
-
#include <vcl/salbtype.hxx>
#include <vcl/outdev.hxx>
#include <vcl/alpha.hxx>
@@ -39,9 +34,10 @@
#include <vcl/pngread.hxx>
#include <vcl/svapp.hxx>
#include <vcl/bmpacc.hxx>
-
+#include <vcl/dibtools.hxx>
#include <image.h>
#include <impimagetree.hxx>
+#include <basegfx/matrix/b2dhommatrixtools.hxx>
// ------------
// - BitmapEx -
@@ -839,84 +835,370 @@ sal_uInt8 BitmapEx::GetTransparency(sal_
// ------------------------------------------------------------------
-SvStream& operator<<( SvStream& rOStm, const BitmapEx& rBitmapEx )
+namespace
{
- rBitmapEx.aBitmap.Write( rOStm );
+ void impSmoothPoint(BitmapColor& rValue, const basegfx::B2DPoint& rSource, sal_Int32 nIntX, sal_Int32 nIntY, BitmapReadAccess& rRead)
+ {
+ double fDeltaX(rSource.getX() - nIntX);
+ double fDeltaY(rSource.getY() - nIntY);
+ sal_Int32 nIndX(0L);
+ sal_Int32 nIndY(0L);
- rOStm << (sal_uInt32) 0x25091962;
- rOStm << (sal_uInt32) 0xACB20201;
- rOStm << (sal_uInt8) rBitmapEx.eTransparent;
+ if(fDeltaX > 0.0 && nIntX + 1L < rRead.Width())
+ {
+ nIndX++;
+ }
+ else if(fDeltaX < 0.0 && nIntX >= 1L)
+ {
+ fDeltaX = -fDeltaX;
+ nIndX--;
+ }
+
+ if(fDeltaY > 0.0 && nIntY + 1L < rRead.Height())
+ {
+ nIndY++;
+ }
+ else if(fDeltaY < 0.0 && nIntY >= 1L)
+ {
+ fDeltaY = -fDeltaY;
+ nIndY--;
+ }
- if( rBitmapEx.eTransparent == TRANSPARENT_BITMAP )
- rBitmapEx.aMask.Write( rOStm );
- else if( rBitmapEx.eTransparent == TRANSPARENT_COLOR )
- rOStm << rBitmapEx.aTransparentColor;
+ if(nIndX || nIndY)
+ {
+ const double fColorToReal(1.0 / 255.0);
+ double fR(rValue.GetRed() * fColorToReal);
+ double fG(rValue.GetGreen() * fColorToReal);
+ double fB(rValue.GetBlue() * fColorToReal);
+ double fRBottom(0.0), fGBottom(0.0), fBBottom(0.0);
+
+ if(nIndX)
+ {
+ const double fMulA(fDeltaX * fColorToReal);
+ double fMulB(1.0 - fDeltaX);
+ const BitmapColor aTopPartner(rRead.GetColor(nIntY, nIntX + nIndX));
+
+ fR = (fR * fMulB) + (aTopPartner.GetRed() * fMulA);
+ fG = (fG * fMulB) + (aTopPartner.GetGreen() * fMulA);
+ fB = (fB * fMulB) + (aTopPartner.GetBlue() * fMulA);
+
+ if(nIndY)
+ {
+ fMulB *= fColorToReal;
+ const BitmapColor aBottom(rRead.GetColor(nIntY + nIndY, nIntX));
+ const BitmapColor aBottomPartner(rRead.GetColor(nIntY + nIndY, nIntX + nIndX));
+
+ fRBottom = (aBottom.GetRed() * fMulB) + (aBottomPartner.GetRed() * fMulA);
+ fGBottom = (aBottom.GetGreen() * fMulB) + (aBottomPartner.GetGreen() * fMulA);
+ fBBottom = (aBottom.GetBlue() * fMulB) + (aBottomPartner.GetBlue() * fMulA);
+ }
+ }
+
+ if(nIndY)
+ {
+ if(!nIndX)
+ {
+ const BitmapColor aBottom(rRead.GetColor(nIntY + nIndY, nIntX));
+
+ fRBottom = aBottom.GetRed() * fColorToReal;
+ fGBottom = aBottom.GetGreen() * fColorToReal;
+ fBBottom = aBottom.GetBlue() * fColorToReal;
+ }
+
+ const double fMulB(1.0 - fDeltaY);
+
+ fR = (fR * fMulB) + (fRBottom * fDeltaY);
+ fG = (fG * fMulB) + (fGBottom * fDeltaY);
+ fB = (fB * fMulB) + (fBBottom * fDeltaY);
+ }
+
+ rValue.SetRed((sal_uInt8)(fR * 255.0));
+ rValue.SetGreen((sal_uInt8)(fG * 255.0));
+ rValue.SetBlue((sal_uInt8)(fB * 255.0));
+ }
+ }
- return rOStm;
+ Bitmap impTransformBitmap(
+ const Bitmap& rSource,
+ const Size aDestinationSize,
+ const basegfx::B2DHomMatrix& rTransform,
+ bool bSmooth)
+ {
+ Bitmap aDestination(aDestinationSize, 24);
+ BitmapWriteAccess* pWrite = aDestination.AcquireWriteAccess();
+
+ if(pWrite)
+ {
+ const Size aContentSizePixel(rSource.GetSizePixel());
+ BitmapReadAccess* pRead = (const_cast< Bitmap& >(rSource)).AcquireReadAccess();
+
+ if(pRead)
+ {
+ const Size aDestinationSizePixel(aDestination.GetSizePixel());
+ bool bWorkWithIndex(rSource.GetBitCount() <= 8);
+ BitmapColor aOutside(BitmapColor(0xff, 0xff, 0xff));
+
+ for(sal_Int32 y(0L); y < aDestinationSizePixel.getHeight(); y++)
+ {
+ for(sal_Int32 x(0L); x < aDestinationSizePixel.getWidth(); x++)
+ {
+ const basegfx::B2DPoint aSourceCoor(rTransform * basegfx::B2DPoint(x, y));
+ const sal_Int32 nIntX(basegfx::fround(aSourceCoor.getX()));
+
+ if(nIntX >= 0L && nIntX < aContentSizePixel.getWidth())
+ {
+ const sal_Int32 nIntY(basegfx::fround(aSourceCoor.getY()));
+
+ if(nIntY >= 0L && nIntY < aContentSizePixel.getHeight())
+ {
+ // inside pixel
+ BitmapColor aValue;
+
+ if(bWorkWithIndex)
+ {
+ aValue = pRead->GetPaletteColor(pRead->GetPixelIndex(nIntY, nIntX));
+ }
+ else
+ {
+ aValue = pRead->GetPixel(nIntY, nIntX);
+ }
+
+ if(bSmooth)
+ {
+ impSmoothPoint(aValue, aSourceCoor, nIntX, nIntY, *pRead);
+ }
+
+ pWrite->SetPixel(y, x, aValue);
+ continue;
+ }
+ }
+
+ // here are outside pixels. Complete mask
+ if(bWorkWithIndex)
+ {
+ pWrite->SetPixel(y, x, aOutside);
+ }
+ }
+ }
+
+ delete pRead;
+ }
+
+ delete pWrite;
+ }
+
+ rSource.AdaptBitCount(aDestination);
+
+ return aDestination;
+ }
+} // end of anonymous namespace
+BitmapEx BitmapEx::TransformBitmapEx(
+ double fWidth,
+ double fHeight,
+ const basegfx::B2DHomMatrix& rTransformation) const
+{
+ if(fWidth <= 1 || fHeight <= 1)
+ return BitmapEx();
+
+ // force destination to 24 bit, we want to smooth output
+ const Size aDestinationSize(basegfx::fround(fWidth), basegfx::fround(fHeight));
+ static bool bDoSmoothAtAll(true);
+ const Bitmap aDestination(impTransformBitmap(GetBitmap(), aDestinationSize, rTransformation, bDoSmoothAtAll));
+
+ // create mask
+ if(IsTransparent())
+ {
+ if(IsAlpha())
+ {
+ const Bitmap aAlpha(impTransformBitmap(GetAlpha().GetBitmap(), aDestinationSize, rTransformation, bDoSmoothAtAll));
+ return BitmapEx(aDestination, AlphaMask(aAlpha));
+ }
+ else
+ {
+ const Bitmap aMask(impTransformBitmap(GetMask(), aDestinationSize, rTransformation, false));
+ return BitmapEx(aDestination, aMask);
+ }
+ }
+
+ return BitmapEx(aDestination);
}
// ------------------------------------------------------------------
-SvStream& operator>>( SvStream& rIStm, BitmapEx& rBitmapEx )
+BitmapEx BitmapEx::getTransformed(
+ const basegfx::B2DHomMatrix& rTransformation,
+ double fMaximumArea) const
{
- Bitmap aBmp;
+ BitmapEx aRetval;
- rIStm >> aBmp;
+ if(IsEmpty())
+ return aRetval;
- if( !rIStm.GetError() )
- {
- const sal_uLong nStmPos = rIStm.Tell();
- sal_uInt32 nMagic1 = 0;
- sal_uInt32 nMagic2 = 0;
+ const sal_uInt32 nSourceWidth(GetSizePixel().Width());
+ const sal_uInt32 nSourceHeight(GetSizePixel().Height());
- rIStm >> nMagic1 >> nMagic2;
+ if(!nSourceWidth || !nSourceHeight)
+ return aRetval;
- if( ( nMagic1 != 0x25091962 ) || ( nMagic2 != 0xACB20201 ) || rIStm.GetError() )
- {
- rIStm.ResetError();
- rIStm.Seek( nStmPos );
- rBitmapEx = aBmp;
- }
- else
- {
- sal_uInt8 bTransparent = false;
+ // Get dest range
+ basegfx::B2DRange aOutlineRange(0.0, 0.0, 1.0, 1.0);
+ aOutlineRange.transform(rTransformation);
- rIStm >> bTransparent;
+ // get target size
+ double fWidth(aOutlineRange.getWidth());
+ double fHeight(aOutlineRange.getHeight());
- if( bTransparent == (sal_uInt8) TRANSPARENT_BITMAP )
- {
- Bitmap aMask;
+ if(fWidth < 1.0 || fHeight < 1.0)
+ return aRetval;
+
+ // test if discrete size (pixel) maybe too big and limit it
+ const double fArea(fWidth * fHeight);
+ const bool bNeedToReduce(fArea > fMaximumArea);
+ double fReduceFactor(1.0);
+
+ if(bNeedToReduce)
+ {
+ fReduceFactor = sqrt(fMaximumArea / fArea);
+ fWidth *= fReduceFactor;
+ fHeight *= fReduceFactor;
+ }
- rIStm >> aMask;
+ // Build complete transform from source pixels to target pixels.
+ // Start by scaling from source pixel size to unit coordinates
+ basegfx::B2DHomMatrix aTransform(
+ basegfx::tools::createScaleB2DHomMatrix(
+ 1.0 / nSourceWidth,
+ 1.0 / nSourceHeight));
+
+ // multiply with given transform which leads from unit coordinates inside
+ // aOutlineRange
+ aTransform = rTransformation * aTransform;
+
+ // substract top-left of aOutlineRange
+ aTransform.translate(-aOutlineRange.getMinX(), -aOutlineRange.getMinY());
- if( !!aMask)
+ // scale to target pixels (if needed)
+ if(bNeedToReduce)
+ {
+ aTransform.scale(fReduceFactor, fReduceFactor);
+ }
+
+ // invert to get transformation from target pixel coordiates to source pixels
+ aTransform.invert();
+
+ // create bitmap using source, destination and linear back-transformation
+ aRetval = TransformBitmapEx(fWidth, fHeight, aTransform);
+
+ return aRetval;
+}
+
+// ------------------------------------------------------------------
+
+BitmapEx BitmapEx::ModifyBitmapEx(const basegfx::BColorModifierStack& rBColorModifierStack) const
+{
+ Bitmap aChangedBitmap(GetBitmap());
+ bool bDone(false);
+
+ for(sal_uInt32 a(rBColorModifierStack.count()); a && !bDone; )
+ {
+ const basegfx::BColorModifier& rModifier = rBColorModifierStack.getBColorModifier(--a);
+
+ switch(rModifier.getMode())
+ {
+ case basegfx::BCOLORMODIFYMODE_REPLACE :
+ {
+ // complete replace
+ if(IsTransparent())
{
- // do we have an alpha mask?
- if( ( 8 == aMask.GetBitCount() ) && aMask.HasGreyPalette() )
- {
- AlphaMask aAlpha;
+ // clear bitmap with dest color
+ if(aChangedBitmap.GetBitCount() <= 8)
+ {
+ // do NOT use erase; for e.g. 8bit Bitmaps, the nearest color to the given
+ // erase color is determined and used -> this may be different from what is
+ // wanted here. Better create a new bitmap with the needed color explicitely
+ BitmapReadAccess* pReadAccess = aChangedBitmap.AcquireReadAccess();
+ OSL_ENSURE(pReadAccess, "Got no Bitmap ReadAccess ?!?");
- // create alpha mask quickly (without greyscale conversion)
- aAlpha.ImplSetBitmap( aMask );
- rBitmapEx = BitmapEx( aBmp, aAlpha );
- }
- else
- rBitmapEx = BitmapEx( aBmp, aMask );
+ if(pReadAccess)
+ {
+ BitmapPalette aNewPalette(pReadAccess->GetPalette());
+ aNewPalette[0] = BitmapColor(Color(rModifier.getBColor()));
+ aChangedBitmap = Bitmap(
+ aChangedBitmap.GetSizePixel(),
+ aChangedBitmap.GetBitCount(),
+ &aNewPalette);
+ delete pReadAccess;
+ }
+ }
+ else
+ {
+ aChangedBitmap.Erase(Color(rModifier.getBColor()));
+ }
}
else
- rBitmapEx = aBmp;
+ {
+ // erase bitmap, caller will know to paint direct
+ aChangedBitmap.SetEmpty();
+ }
+
+ bDone = true;
+ break;
}
- else if( bTransparent == (sal_uInt8) TRANSPARENT_COLOR )
+
+ default : // BCOLORMODIFYMODE_INTERPOLATE, BCOLORMODIFYMODE_GRAY, BCOLORMODIFYMODE_BLACKANDWHITE
{
- Color aTransparentColor;
+ BitmapWriteAccess* pContent = aChangedBitmap.AcquireWriteAccess();
+
+ if(pContent)
+ {
+ const double fConvertColor(1.0 / 255.0);
- rIStm >> aTransparentColor;
- rBitmapEx = BitmapEx( aBmp, aTransparentColor );
+ for(sal_uInt32 y(0L); y < (sal_uInt32)pContent->Height(); y++)
+ {
+ for(sal_uInt32 x(0L); x < (sal_uInt32)pContent->Width(); x++)
+ {
+ const BitmapColor aBMCol(pContent->GetColor(y, x));
+ const basegfx::BColor aBSource(
+ (double)aBMCol.GetRed() * fConvertColor,
+ (double)aBMCol.GetGreen() * fConvertColor,
+ (double)aBMCol.GetBlue() * fConvertColor);
+ const basegfx::BColor aBDest(rModifier.getModifiedColor(aBSource));
+
+ pContent->SetPixel(y, x, BitmapColor(Color(aBDest)));
+ }
+ }
+
+ delete pContent;
+ }
+
+ break;
}
- else
- rBitmapEx = aBmp;
}
}
- return rIStm;
+ if(aChangedBitmap.IsEmpty())
+ {
+ return BitmapEx();
+ }
+ else
+ {
+ if(IsTransparent())
+ {
+ if(IsAlpha())
+ {
+ return BitmapEx(aChangedBitmap, GetAlpha());
+ }
+ else
+ {
+ return BitmapEx(aChangedBitmap, GetMask());
+ }
+ }
+ else
+ {
+ return BitmapEx(aChangedBitmap);
+ }
+ }
}
+
+// ------------------------------------------------------------------
+// eof
Modified: openoffice/branches/ia2/main/vcl/source/gdi/bmpacc2.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/source/gdi/bmpacc2.cxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/source/gdi/bmpacc2.cxx (original)
+++ openoffice/branches/ia2/main/vcl/source/gdi/bmpacc2.cxx Fri Feb 1 08:46:00 2013
@@ -315,7 +315,7 @@ IMPL_FORMAT_SETPIXEL_NOMASK( _32BIT_TC_R
IMPL_FORMAT_GETPIXEL( _32BIT_TC_MASK )
{
BitmapColor aColor;
- rMask.GetColorFor32Bit( aColor, pScanline + ( nX << 2UL ) );
+ rMask.GetColorFor32Bit( aColor, pScanline + ( nX << 2UL ) );
return aColor;
}
Modified: openoffice/branches/ia2/main/vcl/source/gdi/bmpconv.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/source/gdi/bmpconv.cxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/source/gdi/bmpconv.cxx (original)
+++ openoffice/branches/ia2/main/vcl/source/gdi/bmpconv.cxx Fri Feb 1 08:46:00 2013
@@ -19,8 +19,6 @@
*
*************************************************************/
-
-
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_vcl.hxx"
@@ -32,7 +30,7 @@
#include "com/sun/star/script/XInvocation.hpp"
#include "com/sun/star/awt/XBitmap.hpp"
#include "cppuhelper/compbase1.hxx"
-
+#include <vcl/dibtools.hxx>
using namespace com::sun::star::uno;
using namespace com::sun::star::script;
@@ -149,7 +147,9 @@ Any SAL_CALL BmpConverter::invoke(
SvMemoryStream aStream( aDIB.getArray(), aDIB.getLength(), STREAM_READ | STREAM_WRITE );
Bitmap aBM;
- aBM.Read( aStream, sal_True );
+
+ ReadDIB(aBM, aStream, true);
+
if( nTargetDepth < 4 )
nTargetDepth = 1;
else if( nTargetDepth < 8 )
@@ -183,8 +183,11 @@ BmpTransporter::BmpTransporter( const Bi
{
m_aSize.Width = rBM.GetSizePixel().Width();
m_aSize.Height = rBM.GetSizePixel().Height();
+
SvMemoryStream aStream;
- rBM.Write( aStream, sal_False, sal_True );
+
+ WriteDIB(rBM, aStream, false, true);
+
m_aBM = Sequence<sal_Int8>(static_cast<const sal_Int8*>(aStream.GetData()),
aStream.GetEndOfData());
}
Modified: openoffice/branches/ia2/main/vcl/source/gdi/cvtsvm.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/ia2/main/vcl/source/gdi/cvtsvm.cxx?rev=1441343&r1=1441342&r2=1441343&view=diff
==============================================================================
--- openoffice/branches/ia2/main/vcl/source/gdi/cvtsvm.cxx (original)
+++ openoffice/branches/ia2/main/vcl/source/gdi/cvtsvm.cxx Fri Feb 1 08:46:00 2013
@@ -36,6 +36,7 @@
#include <vcl/lineinfo.hxx>
#include <vcl/salbtype.hxx>
#include <vcl/cvtsvm.hxx>
+#include <vcl/dibtools.hxx>
// -----------
// - Defines -
@@ -983,7 +984,8 @@ void SVMConverter::ImplConvertFromSVM1(
{
Bitmap aBmp;
- rIStm >> aPt >> aBmp;
+ rIStm >> aPt;
+ ReadDIB(aBmp, rIStm, true);
rMtf.AddAction( new MetaBmpAction( aPt, aBmp ) );
}
break;
@@ -992,7 +994,8 @@ void SVMConverter::ImplConvertFromSVM1(
{
Bitmap aBmp;
- rIStm >> aPt >> aSz >> aBmp;
+ rIStm >> aPt >> aSz;
+ ReadDIB(aBmp, rIStm, true);
rMtf.AddAction( new MetaBmpScaleAction( aPt, aSz, aBmp ) );
}
break;
@@ -1002,7 +1005,8 @@ void SVMConverter::ImplConvertFromSVM1(
Bitmap aBmp;
Size aSz2;
- rIStm >> aPt >> aSz >> aPt1 >> aSz2 >> aBmp;
+ rIStm >> aPt >> aSz >> aPt1 >> aSz2;
+ ReadDIB(aBmp, rIStm, true);
rMtf.AddAction( new MetaBmpScalePartAction( aPt, aSz, aPt1, aSz2, aBmp ) );
}
break;
@@ -1827,7 +1831,7 @@ sal_uLong SVMConverter::ImplWriteActions
rOStm << (sal_Int16) GDI_BITMAP_ACTION;
rOStm << (sal_Int32) 12;
rOStm << pAct->GetPoint();
- rOStm << pAct->GetBitmap();
+ WriteDIB(pAct->GetBitmap(), rOStm, false, true);
nCount++;
}
break;
@@ -1840,7 +1844,7 @@ sal_uLong SVMConverter::ImplWriteActions
rOStm << (sal_Int32) 20;
rOStm << pAct->GetPoint();
rOStm << pAct->GetSize();
- rOStm << pAct->GetBitmap();
+ WriteDIB(pAct->GetBitmap(), rOStm, false, true);
nCount++;
}
break;
@@ -1855,7 +1859,7 @@ sal_uLong SVMConverter::ImplWriteActions
rOStm << pAct->GetDestSize();
rOStm << pAct->GetSrcPoint();
rOStm << pAct->GetSrcSize();
- rOStm << pAct->GetBitmap();
+ WriteDIB(pAct->GetBitmap(), rOStm, false, true);
nCount++;
}
break;
@@ -1868,7 +1872,7 @@ sal_uLong SVMConverter::ImplWriteActions
rOStm << (sal_Int16) GDI_BITMAP_ACTION;
rOStm << (sal_Int32) 12;
rOStm << pAct->GetPoint();
- rOStm << aBmp;
+ WriteDIB(aBmp, rOStm, false, true);
nCount++;
}
break;
@@ -1882,7 +1886,7 @@ sal_uLong SVMConverter::ImplWriteActions
rOStm << (sal_Int32) 20;
rOStm << pAct->GetPoint();
rOStm << pAct->GetSize();
- rOStm << aBmp;
+ WriteDIB(aBmp, rOStm, false, true);
nCount++;
}
break;
@@ -1898,7 +1902,7 @@ sal_uLong SVMConverter::ImplWriteActions
rOStm << pAct->GetDestSize();
rOStm << pAct->GetSrcPoint();
rOStm << pAct->GetSrcSize();
- rOStm << aBmp;
+ WriteDIB(aBmp, rOStm, false, true);
nCount++;
}
break;