You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ja...@apache.org on 2013/02/03 14:24:38 UTC

svn commit: r1441909 [32/45] - in /openoffice/branches/l10n: ./ ext_libraries/apr-util/ ext_libraries/apr/ ext_libraries/hunspell/ ext_sources/ extras/l10n/source/ast/ extras/l10n/source/da/ extras/l10n/source/eu/ extras/l10n/source/gd/ extras/l10n/sou...

Modified: openoffice/branches/l10n/main/svgio/inc/svgio/svgreader/svgstyleattributes.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svgio/inc/svgio/svgreader/svgstyleattributes.hxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svgio/inc/svgio/svgreader/svgstyleattributes.hxx (original)
+++ openoffice/branches/l10n/main/svgio/inc/svgio/svgreader/svgstyleattributes.hxx Sun Feb  3 13:23:59 2013
@@ -290,11 +290,11 @@ namespace svgio
             void setStopColor(const SvgPaint& rStopColor) { maStopColor = rStopColor; }
 
             /// stroke-width content
-            const SvgNumber getStrokeWidth() const;
+            SvgNumber getStrokeWidth() const;
             void setStrokeWidth(const SvgNumber& rStrokeWidth = SvgNumber()) { maStrokeWidth = rStrokeWidth; }
 
             /// stop opacity content
-            const SvgNumber getStopOpacity() const;
+            SvgNumber getStopOpacity() const;
             void setStopOpacity(const SvgNumber& rStopOpacity = SvgNumber()) { maStopOpacity = rStopOpacity; }
 
             /// access to evtl. set fill gradient
@@ -314,11 +314,11 @@ namespace svgio
             void setSvgPatternNodeStroke(const SvgPatternNode* pNew) { mpSvgPatternNodeStroke = pNew; }
 
             /// fill opacity content
-            const SvgNumber getFillOpacity() const;
+            SvgNumber getFillOpacity() const;
             void setFillOpacity(const SvgNumber& rFillOpacity = SvgNumber()) { maFillOpacity = rFillOpacity; }
 
             /// fill rule content
-            const FillRule getFillRule() const;
+            FillRule getFillRule() const;
             void setFillRule(const FillRule aFillRule = FillRule_notset) { maFillRule = aFillRule; }
 
             /// fill StrokeDasharray content
@@ -330,7 +330,7 @@ namespace svgio
             void setStrokeDasharraySet(bool bNew) { mbStrokeDasharraySet = bNew; }
 
             /// StrokeDashOffset content
-            const SvgNumber getStrokeDashOffset() const;
+            SvgNumber getStrokeDashOffset() const;
             void setStrokeDashOffset(const SvgNumber& rStrokeDashOffset = SvgNumber()) { maStrokeDashOffset = rStrokeDashOffset; }
 
             /// StrokeLinecap content
@@ -342,11 +342,11 @@ namespace svgio
             void setStrokeLinejoin(const StrokeLinejoin aStrokeLinejoin = StrokeLinejoin_notset) { maStrokeLinejoin = aStrokeLinejoin; }
 
             /// StrokeMiterLimit content
-            const SvgNumber getStrokeMiterLimit() const;
+            SvgNumber getStrokeMiterLimit() const;
             void setStrokeMiterLimit(const SvgNumber& rStrokeMiterLimit = SvgNumber()) { maStrokeMiterLimit = rStrokeMiterLimit; }
 
             /// StrokeOpacity content
-            const SvgNumber getStrokeOpacity() const;
+            SvgNumber getStrokeOpacity() const;
             void setStrokeOpacity(const SvgNumber& rStrokeOpacity = SvgNumber()) { maStrokeOpacity = rStrokeOpacity; }
 
             /// Font content
@@ -354,7 +354,7 @@ namespace svgio
             void setFontFamily(const SvgStringVector& rSvgStringVector = SvgStringVector()) { maFontFamily = rSvgStringVector; }
 
             /// FontSize content
-            const SvgNumber getFontSize() const;
+            SvgNumber getFontSize() const;
             void setFontSize(const SvgNumber& rFontSize = SvgNumber()) { maFontSize = rFontSize; }
 
             /// FontStretch content
@@ -391,7 +391,7 @@ namespace svgio
             void setColor(const SvgPaint& rColor) { maColor = rColor; }
 
             /// Opacity content
-            const SvgNumber getOpacity() const { return maOpacity; }
+            SvgNumber getOpacity() const { return maOpacity; }
             void setOpacity(const SvgNumber& rOpacity = SvgNumber()) { maOpacity = rOpacity; }
 
             // Title content
@@ -403,25 +403,25 @@ namespace svgio
             void setDesc(const rtl::OUString& rNew) { maDesc = rNew; }
 
             // ClipPathXLink content
-            const rtl::OUString getClipPathXLink() const { return maClipPathXLink; }
+            const rtl::OUString& getClipPathXLink() const { return maClipPathXLink; }
             void setClipPathXLink(const rtl::OUString& rNew) { maClipPathXLink = rNew; }
 
             // MaskXLink content
-            const rtl::OUString getMaskXLink() const { return maMaskXLink; }
+            const rtl::OUString& getMaskXLink() const { return maMaskXLink; }
             void setMaskXLink(const rtl::OUString& rNew) { maMaskXLink = rNew; }
 
             // MarkerStartXLink content
-            const rtl::OUString getMarkerStartXLink() const;
+            rtl::OUString getMarkerStartXLink() const;
             const SvgMarkerNode* accessMarkerStartXLink() const;
             void setMarkerStartXLink(const rtl::OUString& rNew) { maMarkerStartXLink = rNew; }
 
             // MarkerMidXLink content
-            const rtl::OUString getMarkerMidXLink() const;
+            rtl::OUString getMarkerMidXLink() const;
             const SvgMarkerNode* accessMarkerMidXLink() const;
             void setMarkerMidXLink(const rtl::OUString& rNew) { maMarkerMidXLink = rNew; }
 
             // MarkerEndXLink content
-            const rtl::OUString getMarkerEndXLink() const;
+            rtl::OUString getMarkerEndXLink() const;
             const SvgMarkerNode* accessMarkerEndXLink() const;
             void setMarkerEndXLink(const rtl::OUString& rNew) { maMarkerEndXLink = rNew; }
 

Modified: openoffice/branches/l10n/main/svgio/inc/svgio/svgreader/svgtoken.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svgio/inc/svgio/svgreader/svgtoken.hxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svgio/inc/svgio/svgreader/svgtoken.hxx (original)
+++ openoffice/branches/l10n/main/svgio/inc/svgio/svgreader/svgtoken.hxx Sun Feb  3 13:23:59 2013
@@ -43,6 +43,7 @@ namespace svgio
             SVGTokenViewBox,
             SVGTokenTransform,
             SVGTokenStyle,
+            SVGTokenDisplay, // #121656#
             SVGTokenD,
             SVGTokenX,
             SVGTokenY,

Modified: openoffice/branches/l10n/main/svgio/source/svgreader/svgclippathnode.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svgio/source/svgreader/svgclippathnode.cxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svgio/source/svgreader/svgclippathnode.cxx (original)
+++ openoffice/branches/l10n/main/svgio/source/svgreader/svgclippathnode.cxx Sun Feb  3 13:23:59 2013
@@ -133,7 +133,7 @@ namespace svgio
 
         void SvgClipPathNode::apply(drawinglayer::primitive2d::Primitive2DSequence& rContent) const
         {
-            if(rContent.hasElements())
+            if(rContent.hasElements() && Display_none != getDisplay())
             {
                 const drawinglayer::geometry::ViewInformation2D aViewInformation2D;
                 drawinglayer::primitive2d::Primitive2DSequence aClipTarget;

Modified: openoffice/branches/l10n/main/svgio/source/svgreader/svgimagenode.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svgio/source/svgreader/svgimagenode.cxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svgio/source/svgreader/svgimagenode.cxx (original)
+++ openoffice/branches/l10n/main/svgio/source/svgreader/svgimagenode.cxx Sun Feb  3 13:23:59 2013
@@ -261,7 +261,7 @@ namespace svgio
                     {
                         const SvgNode* mpXLink = getDocument().findSvgNodeById(maXLink);
 
-                        if(mpXLink)
+                        if(mpXLink && Display_none != mpXLink->getDisplay())
                         {
                             mpXLink->decomposeSvgNode(aNewTarget, true);
 

Modified: openoffice/branches/l10n/main/svgio/source/svgreader/svgmarkernode.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svgio/source/svgreader/svgmarkernode.cxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svgio/source/svgreader/svgmarkernode.cxx (original)
+++ openoffice/branches/l10n/main/svgio/source/svgreader/svgmarkernode.cxx Sun Feb  3 13:23:59 2013
@@ -188,7 +188,7 @@ namespace svgio
 
         const drawinglayer::primitive2d::Primitive2DSequence& SvgMarkerNode::getMarkerPrimitives() const
         {
-            if(!aPrimitives.hasElements())
+            if(!aPrimitives.hasElements() && Display_none != getDisplay())
             {
                 decomposeSvgNode(const_cast< SvgMarkerNode* >(this)->aPrimitives, true);
             }

Modified: openoffice/branches/l10n/main/svgio/source/svgreader/svgmasknode.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svgio/source/svgreader/svgmasknode.cxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svgio/source/svgreader/svgmasknode.cxx (original)
+++ openoffice/branches/l10n/main/svgio/source/svgreader/svgmasknode.cxx Sun Feb  3 13:23:59 2013
@@ -199,7 +199,7 @@ namespace svgio
 
         void SvgMaskNode::apply(drawinglayer::primitive2d::Primitive2DSequence& rTarget) const
         {
-            if(rTarget.hasElements())
+            if(rTarget.hasElements() && Display_none != getDisplay())
             {
                 drawinglayer::primitive2d::Primitive2DSequence aMaskTarget;
 

Modified: openoffice/branches/l10n/main/svgio/source/svgreader/svgnode.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svgio/source/svgreader/svgnode.cxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svgio/source/svgreader/svgnode.cxx (original)
+++ openoffice/branches/l10n/main/svgio/source/svgreader/svgnode.cxx Sun Feb  3 13:23:59 2013
@@ -150,6 +150,7 @@ namespace svgio
             mpId(0),
             mpClass(0),
             maXmlSpace(XmlSpace_notset),
+            maDisplay(Display_inline),
             maCssStyleVector()
         {
             OSL_ENSURE(SVGTokenUnknown != maType, "SvgNode with unknown type created (!)");
@@ -231,6 +232,104 @@ namespace svgio
                     }
                     break;
                 }
+                case SVGTokenDisplay:
+                {
+                    if(aContent.getLength())
+                    {
+                        static rtl::OUString aStrInline(rtl::OUString::createFromAscii("inline"));
+                        static rtl::OUString aStrBlock(rtl::OUString::createFromAscii("block"));
+                        static rtl::OUString aStrList_item(rtl::OUString::createFromAscii("list-item"));
+                        static rtl::OUString aStrRun_in(rtl::OUString::createFromAscii("run-in"));
+                        static rtl::OUString aStrCompact(rtl::OUString::createFromAscii("compact"));
+                        static rtl::OUString aStrMarker(rtl::OUString::createFromAscii("marker"));
+                        static rtl::OUString aStrTable(rtl::OUString::createFromAscii("table"));
+                        static rtl::OUString aStrInline_table(rtl::OUString::createFromAscii("inline-table"));
+                        static rtl::OUString aStrTable_row_group(rtl::OUString::createFromAscii("table-row-group"));
+                        static rtl::OUString aStrTable_header_group(rtl::OUString::createFromAscii("table-header-group"));
+                        static rtl::OUString aStrTable_footer_group(rtl::OUString::createFromAscii("table-footer-group"));
+                        static rtl::OUString aStrTable_row(rtl::OUString::createFromAscii("table-row"));
+                        static rtl::OUString aStrTable_column_group(rtl::OUString::createFromAscii("table-column-group"));
+                        static rtl::OUString aStrTable_column(rtl::OUString::createFromAscii("table-column"));
+                        static rtl::OUString aStrTable_cell(rtl::OUString::createFromAscii("table-cell"));
+                        static rtl::OUString aStrTable_caption(rtl::OUString::createFromAscii("table-caption"));
+                        static rtl::OUString aStrNone(rtl::OUString::createFromAscii("none"));
+                        static rtl::OUString aStrInherit(rtl::OUString::createFromAscii("inherit"));
+
+                        if(aContent.match(aStrInline))
+                        {
+                            setDisplay(Display_inline);
+                        }
+                        else if(aContent.match(aStrNone))
+                        {
+                            setDisplay(Display_none);
+                        }
+                        else if(aContent.match(aStrInherit))
+                        {
+                            setDisplay(Display_inherit);
+                        }
+                        else if(aContent.match(aStrBlock))
+                        {
+                            setDisplay(Display_block);
+                        }
+                        else if(aContent.match(aStrList_item))
+                        {
+                            setDisplay(Display_list_item);
+                        }
+                        else if(aContent.match(aStrRun_in))
+                        {
+                            setDisplay(Display_run_in);
+                        }
+                        else if(aContent.match(aStrCompact))
+                        {
+                            setDisplay(Display_compact);
+                        }
+                        else if(aContent.match(aStrMarker))
+                        {
+                            setDisplay(Display_marker);
+                        }
+                        else if(aContent.match(aStrTable))
+                        {
+                            setDisplay(Display_table);
+                        }
+                        else if(aContent.match(aStrInline_table))
+                        {
+                            setDisplay(Display_inline_table);
+                        }
+                        else if(aContent.match(aStrTable_row_group))
+                        {
+                            setDisplay(Display_table_row_group);
+                        }
+                        else if(aContent.match(aStrTable_header_group))
+                        {
+                            setDisplay(Display_table_header_group);
+                        }
+                        else if(aContent.match(aStrTable_footer_group))
+                        {
+                            setDisplay(Display_table_footer_group);
+                        }
+                        else if(aContent.match(aStrTable_row))
+                        {
+                            setDisplay(Display_table_row);
+                        }
+                        else if(aContent.match(aStrTable_column_group))
+                        {
+                            setDisplay(Display_table_column_group);
+                        }
+                        else if(aContent.match(aStrTable_column))
+                        {
+                            setDisplay(Display_table_column);
+                        }
+                        else if(aContent.match(aStrTable_cell))
+                        {
+                            setDisplay(Display_table_cell);
+                        }
+                        else if(aContent.match(aStrTable_caption))
+                        {
+                            setDisplay(Display_table_caption);
+                        }
+                    }
+                    break;
+                }
                 default:
                 {
                     break;
@@ -240,6 +339,11 @@ namespace svgio
 
         void SvgNode::decomposeSvgNode(drawinglayer::primitive2d::Primitive2DSequence& rTarget, bool bReferenced) const
         {
+            if(Display_none == getDisplay())
+            {
+                return;
+            }
+
             if(!bReferenced)
             {
                 if(SVGTokenDefs == getType() || 
@@ -259,6 +363,9 @@ namespace svgio
 
                     // also not directly used are Markers and Patterns, only indirecty used
                     // by reference
+
+                    // #121656# also do not decompose nodes which have display="none" set
+                    // as property
                     return;
                 }
             }
@@ -273,7 +380,7 @@ namespace svgio
                 {
                     SvgNode* pCandidate = rChildren[a];
 
-                    if(pCandidate)
+                    if(pCandidate && Display_none != pCandidate->getDisplay())
                     {
                         drawinglayer::primitive2d::Primitive2DSequence aNewTarget;
 

Modified: openoffice/branches/l10n/main/svgio/source/svgreader/svgpatternnode.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svgio/source/svgreader/svgpatternnode.cxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svgio/source/svgreader/svgpatternnode.cxx (original)
+++ openoffice/branches/l10n/main/svgio/source/svgreader/svgpatternnode.cxx Sun Feb  3 13:23:59 2013
@@ -275,7 +275,7 @@ namespace svgio
 
         const drawinglayer::primitive2d::Primitive2DSequence& SvgPatternNode::getPatternPrimitives() const
         {
-            if(!aPrimitives.hasElements())
+            if(!aPrimitives.hasElements() && Display_none != getDisplay())
             {
                 decomposeSvgNode(const_cast< SvgPatternNode* >(this)->aPrimitives, true);
             }

Modified: openoffice/branches/l10n/main/svgio/source/svgreader/svgstyleattributes.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svgio/source/svgreader/svgstyleattributes.cxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svgio/source/svgreader/svgstyleattributes.cxx (original)
+++ openoffice/branches/l10n/main/svgio/source/svgreader/svgstyleattributes.cxx Sun Feb  3 13:23:59 2013
@@ -1079,6 +1079,18 @@ namespace svgio
                     aSource = drawinglayer::primitive2d::Primitive2DSequence(&xRef, 1);
                 }
 
+                if(pTransform)
+                {
+                    // create embedding group element with transformation. This applies the given
+                    // transformation to the graphical content, but *not* to mask and/or clip (as needed)
+                    const drawinglayer::primitive2d::Primitive2DReference xRef(
+                        new drawinglayer::primitive2d::TransformPrimitive2D(
+                            *pTransform,
+                            aSource));
+
+                    aSource = drawinglayer::primitive2d::Primitive2DSequence(&xRef, 1);
+                }
+
                 if(getClipPathXLink().getLength())
                 {
                     // try to access linked ClipPath
@@ -1105,17 +1117,6 @@ namespace svgio
 
                     if(aSource.hasElements()) // test again, applied mask may have lead to empty geometry
                     {
-                        if(pTransform)
-                        {
-                            // create embedding group element with transformation
-                            const drawinglayer::primitive2d::Primitive2DReference xRef(
-                                new drawinglayer::primitive2d::TransformPrimitive2D(
-                                    *pTransform,
-                                    aSource));
-
-                            aSource = drawinglayer::primitive2d::Primitive2DSequence(&xRef, 1);
-                        }
-
                         // append to current target
                         drawinglayer::primitive2d::appendPrimitive2DSequenceToPrimitive2DSequence(rTarget, aSource);
                     }
@@ -1960,7 +1961,7 @@ namespace svgio
             return 0;
         }
 
-        const SvgNumber SvgStyleAttributes::getStrokeWidth() const 
+        SvgNumber SvgStyleAttributes::getStrokeWidth() const 
         { 
             if(mbIsClipPathContent)
             {
@@ -1982,7 +1983,7 @@ namespace svgio
             return SvgNumber(1.0); 
         }
 
-        const SvgNumber SvgStyleAttributes::getStopOpacity() const 
+        SvgNumber SvgStyleAttributes::getStopOpacity() const 
         { 
             if(maStopOpacity.isSet()) 
             {
@@ -1993,7 +1994,7 @@ namespace svgio
             return SvgNumber(1.0); 
         }
 
-        const SvgNumber SvgStyleAttributes::getFillOpacity() const 
+        SvgNumber SvgStyleAttributes::getFillOpacity() const 
         { 
             if(mbIsClipPathContent)
             {
@@ -2015,7 +2016,7 @@ namespace svgio
             return SvgNumber(1.0); 
         }
 
-        const FillRule SvgStyleAttributes::getFillRule() const
+        FillRule SvgStyleAttributes::getFillRule() const
         {
             if(FillRule_notset != maFillRule)
             {
@@ -2056,7 +2057,7 @@ namespace svgio
             return maStrokeDasharray; 
         }
 
-        const SvgNumber SvgStyleAttributes::getStrokeDashOffset() const 
+        SvgNumber SvgStyleAttributes::getStrokeDashOffset() const 
         { 
             if(maStrokeDashOffset.isSet()) 
             {
@@ -2110,7 +2111,7 @@ namespace svgio
             return StrokeLinejoin_miter; 
         }
 
-        const SvgNumber SvgStyleAttributes::getStrokeMiterLimit() const 
+        SvgNumber SvgStyleAttributes::getStrokeMiterLimit() const 
         { 
             if(maStrokeMiterLimit.isSet()) 
             {
@@ -2128,7 +2129,7 @@ namespace svgio
             return SvgNumber(4.0); 
         }
 
-        const SvgNumber SvgStyleAttributes::getStrokeOpacity() const 
+        SvgNumber SvgStyleAttributes::getStrokeOpacity() const 
         { 
             if(maStrokeOpacity.isSet()) 
             {
@@ -2164,7 +2165,7 @@ namespace svgio
             return maFontFamily; 
         }
 
-        const SvgNumber SvgStyleAttributes::getFontSize() const 
+        SvgNumber SvgStyleAttributes::getFontSize() const 
         { 
             if(maFontSize.isSet()) 
             {
@@ -2360,7 +2361,7 @@ namespace svgio
             return 0;
         }
 
-        const rtl::OUString SvgStyleAttributes::getMarkerStartXLink() const 
+        rtl::OUString SvgStyleAttributes::getMarkerStartXLink() const 
         { 
             if(maMarkerStartXLink.getLength())
             {
@@ -2392,7 +2393,7 @@ namespace svgio
             return mpMarkerStartXLink;
         }
 
-        const rtl::OUString SvgStyleAttributes::getMarkerMidXLink() const 
+        rtl::OUString SvgStyleAttributes::getMarkerMidXLink() const 
         { 
             if(maMarkerMidXLink.getLength())
             {
@@ -2424,7 +2425,7 @@ namespace svgio
             return mpMarkerMidXLink;
         }
 
-        const rtl::OUString SvgStyleAttributes::getMarkerEndXLink() const 
+        rtl::OUString SvgStyleAttributes::getMarkerEndXLink() const 
         { 
             if(maMarkerEndXLink.getLength())
             {

Modified: openoffice/branches/l10n/main/svgio/source/svgreader/svgtoken.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svgio/source/svgreader/svgtoken.cxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svgio/source/svgreader/svgtoken.cxx (original)
+++ openoffice/branches/l10n/main/svgio/source/svgreader/svgtoken.cxx Sun Feb  3 13:23:59 2013
@@ -35,6 +35,7 @@ namespace svgio
         static rtl::OUString aSVGStrViewBox(rtl::OUString::createFromAscii("viewBox"));
         static rtl::OUString aSVGStrTransform(rtl::OUString::createFromAscii("transform"));
         static rtl::OUString aSVGStrStyle(rtl::OUString::createFromAscii("style"));
+        static rtl::OUString aSVGStrDisplay(rtl::OUString::createFromAscii("display")); // #121656#
         static rtl::OUString aSVGStrD(rtl::OUString::createFromAscii("d"));
         static rtl::OUString aSVGStrX(rtl::OUString::createFromAscii("x"));
         static rtl::OUString aSVGStrY(rtl::OUString::createFromAscii("y"));
@@ -178,6 +179,7 @@ namespace svgio
                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrViewBox, SVGTokenViewBox));
                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrTransform, SVGTokenTransform));
                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrStyle, SVGTokenStyle));
+                aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrDisplay, SVGTokenDisplay)); // #121656#
                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrD, SVGTokenD));
                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrX, SVGTokenX));
                 aSVGTokenMapperList.insert(SVGTokenValueType(aSVGStrY, SVGTokenY));

Modified: openoffice/branches/l10n/main/svgio/source/svgreader/svgusenode.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svgio/source/svgreader/svgusenode.cxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svgio/source/svgreader/svgusenode.cxx (original)
+++ openoffice/branches/l10n/main/svgio/source/svgreader/svgusenode.cxx Sun Feb  3 13:23:59 2013
@@ -151,7 +151,7 @@ namespace svgio
             // try to access link to content
             const SvgNode* mpXLink = getDocument().findSvgNodeById(maXLink);
 
-            if(mpXLink)
+            if(mpXLink && Display_none != mpXLink->getDisplay())
             {
                 // decompose childs
                 drawinglayer::primitive2d::Primitive2DSequence aNewTarget;

Modified: openoffice/branches/l10n/main/svgio/source/svguno/xsvgparser.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svgio/source/svguno/xsvgparser.cxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svgio/source/svguno/xsvgparser.cxx (original)
+++ openoffice/branches/l10n/main/svgio/source/svguno/xsvgparser.cxx Sun Feb  3 13:23:59 2013
@@ -151,7 +151,12 @@ namespace svgio
 
                 for(sal_uInt32 a(0); a < nCount; a++)
                 {
-                    rResults[a]->decomposeSvgNode(aRetval, false);
+                    SvgNode* pCandidate = rResults[a];
+
+                    if(Display_none != pCandidate->getDisplay())
+                    {
+                        pCandidate->decomposeSvgNode(aRetval, false);
+                    }
                 }
             }
             else

Modified: openoffice/branches/l10n/main/svl/inc/pch/precompiled_svl.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svl/inc/pch/precompiled_svl.hxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svl/inc/pch/precompiled_svl.hxx (original)
+++ openoffice/branches/l10n/main/svl/inc/pch/precompiled_svl.hxx Sun Feb  3 13:23:59 2013
@@ -217,7 +217,6 @@
 #include <com/sun/star/sdbcx/XTablesSupplier.hpp>
 #include <com/sun/star/svg/XSVGWriter.hpp>
 #include <com/sun/star/system/SystemShellExecuteFlags.hpp>
-#include <com/sun/star/system/XProxySettings.hpp>
 #include <com/sun/star/system/XSystemShellExecute.hpp>
 #include <com/sun/star/task/DocumentPasswordRequest.hpp>
 #include <com/sun/star/task/DocumentMSPasswordRequest.hpp>

Modified: openoffice/branches/l10n/main/svl/inc/svl/zforlist.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svl/inc/svl/zforlist.hxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svl/inc/svl/zforlist.hxx (original)
+++ openoffice/branches/l10n/main/svl/inc/svl/zforlist.hxx Sun Feb  3 13:23:59 2013
@@ -58,7 +58,7 @@ namespace com { namespace sun { namespac
 }}}
 
 
-#define SV_COUNTRY_LANGUAGE_OFFSET  5000	// Max count of formats per country/language
+#define SV_COUNTRY_LANGUAGE_OFFSET  8000	// Max count of formats per country/language
 #define SV_MAX_ANZ_STANDARD_FORMATE  100	// Max count of builtin default formats per CL
 
 // Format types

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

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

Modified: openoffice/branches/l10n/main/svtools/inc/pch/precompiled_svtools.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svtools/inc/pch/precompiled_svtools.hxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svtools/inc/pch/precompiled_svtools.hxx (original)
+++ openoffice/branches/l10n/main/svtools/inc/pch/precompiled_svtools.hxx Sun Feb  3 13:23:59 2013
@@ -217,7 +217,6 @@
 #include <com/sun/star/sdbcx/XTablesSupplier.hpp>
 #include <com/sun/star/svg/XSVGWriter.hpp>
 #include <com/sun/star/system/SystemShellExecuteFlags.hpp>
-#include <com/sun/star/system/XProxySettings.hpp>
 #include <com/sun/star/system/XSystemShellExecute.hpp>
 #include <com/sun/star/task/DocumentPasswordRequest.hpp>
 #include <com/sun/star/task/DocumentMSPasswordRequest.hpp>

Modified: openoffice/branches/l10n/main/svtools/inc/svtools/optionsdrawinglayer.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svtools/inc/svtools/optionsdrawinglayer.hxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svtools/inc/svtools/optionsdrawinglayer.hxx (original)
+++ openoffice/branches/l10n/main/svtools/inc/svtools/optionsdrawinglayer.hxx Sun Feb  3 13:23:59 2013
@@ -188,6 +188,11 @@ class SVT_DLLPUBLIC SvtOptionsDrawinglay
 		sal_uInt16	GetTransparentSelectionPercent() const;
         sal_uInt16	GetSelectionMaximumLuminancePercent() const;
 
+        // get system hilight color, limited to the maximum allowed luminance
+        // (defined in GetSelectionMaximumLuminancePercent() in SvtOptionsDrawinglayer,
+        // combined with Application::GetSettings().GetStyleSettings().GetHighlightColor())
+        Color getHilightColor() const;
+
 		void		SetTransparentSelection( sal_Bool bState );
 		void		SetTransparentSelectionPercent( sal_uInt16 nPercent );
 		void		SetSelectionMaximumLuminancePercent( sal_uInt16 nPercent );

Modified: openoffice/branches/l10n/main/svtools/inc/svtools/popupmenucontrollerbase.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svtools/inc/svtools/popupmenucontrollerbase.hxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svtools/inc/svtools/popupmenucontrollerbase.hxx (original)
+++ openoffice/branches/l10n/main/svtools/inc/svtools/popupmenucontrollerbase.hxx Sun Feb  3 13:23:59 2013
@@ -86,10 +86,10 @@ namespace svt
 		    virtual void SAL_CALL statusChanged( const ::com::sun::star::frame::FeatureStateEvent& Event ) throw ( ::com::sun::star::uno::RuntimeException ) = 0;
 
             // XMenuListener
-            virtual void SAL_CALL highlight( const ::com::sun::star::awt::MenuEvent& rEvent ) throw (::com::sun::star::uno::RuntimeException);
-            virtual void SAL_CALL select( const ::com::sun::star::awt::MenuEvent& rEvent ) throw (::com::sun::star::uno::RuntimeException);
-            virtual void SAL_CALL activate( const ::com::sun::star::awt::MenuEvent& rEvent ) throw (::com::sun::star::uno::RuntimeException);
-            virtual void SAL_CALL deactivate( const ::com::sun::star::awt::MenuEvent& rEvent ) throw (::com::sun::star::uno::RuntimeException);
+            virtual void SAL_CALL itemHighlighted( const ::com::sun::star::awt::MenuEvent& rEvent ) throw (::com::sun::star::uno::RuntimeException);
+            virtual void SAL_CALL itemSelected( const ::com::sun::star::awt::MenuEvent& rEvent ) throw (::com::sun::star::uno::RuntimeException);
+            virtual void SAL_CALL itemActivated( const ::com::sun::star::awt::MenuEvent& rEvent ) throw (::com::sun::star::uno::RuntimeException);
+            virtual void SAL_CALL itemDeactivated( const ::com::sun::star::awt::MenuEvent& rEvent ) throw (::com::sun::star::uno::RuntimeException);
 
             // XDispatchProvider
             virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch > SAL_CALL queryDispatch( const ::com::sun::star::util::URL& aURL, const ::rtl::OUString& sTarget, sal_Int32 nFlags ) throw( ::com::sun::star::uno::RuntimeException );

Modified: openoffice/branches/l10n/main/svtools/inc/svtools/statusbarcontroller.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svtools/inc/svtools/statusbarcontroller.hxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svtools/inc/svtools/statusbarcontroller.hxx (original)
+++ openoffice/branches/l10n/main/svtools/inc/svtools/statusbarcontroller.hxx Sun Feb  3 13:23:59 2013
@@ -1,5 +1,5 @@
 /**************************************************************
- * 
+ *
  * 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
@@ -7,16 +7,16 @@
  * 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
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  * KIND, either express or implied.  See the License for the
  * specific language governing permissions and limitations
  * under the License.
- * 
+ *
  *************************************************************/
 
 
@@ -25,12 +25,10 @@
 #define _SVTOOLS_STATUSBARCONTROLLER_HXX
 
 #include "svtools/svtdllapi.h"
+#include <com/sun/star/ui/XStatusbarItem.hpp>
 #include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/util/XUpdatable.hpp>
 #include <com/sun/star/frame/XFrame.hpp>
 #include <com/sun/star/frame/XDispatch.hpp>
-#include <com/sun/star/frame/XStatusListener.hpp>
 #include <com/sun/star/frame/XStatusbarController.hpp>
 #include <com/sun/star/util/XURLTransformer.hpp>
 #include <com/sun/star/frame/XLayoutManager.hpp>
@@ -48,10 +46,8 @@
 namespace svt
 {
 
-class SVT_DLLPUBLIC StatusbarController : public ::com::sun::star::frame::XStatusListener,
+class SVT_DLLPUBLIC StatusbarController :
                             public ::com::sun::star::frame::XStatusbarController,
-                            public ::com::sun::star::lang::XInitialization,
-                            public ::com::sun::star::util::XUpdatable,
                             public ::com::sun::star::lang::XComponent,
                             public ::comphelper::OBaseMutex,
                             public ::cppu::OWeakObject
@@ -106,9 +102,9 @@ class SVT_DLLPUBLIC StatusbarController 
                                        const ::com::sun::star::uno::Any& aData ) throw (::com::sun::star::uno::RuntimeException);
         virtual void SAL_CALL paint( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >& xGraphics, 
                                      const ::com::sun::star::awt::Rectangle& rOutputRectangle, 
-                                     ::sal_Int32 nItemId, ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL click() throw (::com::sun::star::uno::RuntimeException);
-        virtual void SAL_CALL doubleClick() throw (::com::sun::star::uno::RuntimeException);
+                                     ::sal_Int32 nStyle ) throw (::com::sun::star::uno::RuntimeException);
+        virtual void SAL_CALL click( const ::com::sun::star::awt::Point& aPos ) throw (::com::sun::star::uno::RuntimeException);
+        virtual void SAL_CALL doubleClick( const ::com::sun::star::awt::Point& aPos ) throw (::com::sun::star::uno::RuntimeException);
  
     protected:
         struct Listener
@@ -147,6 +143,7 @@ class SVT_DLLPUBLIC StatusbarController 
         URLToDispatchMap                                                                    m_aListenerMap;
         ::cppu::OMultiTypeInterfaceContainerHelper                                          m_aListenerContainer;   /// container for ALL Listener
         mutable ::com::sun::star::uno::Reference< ::com::sun::star::util::XURLTransformer > m_xURLTransformer;
+        ::com::sun::star::uno::Reference< ::com::sun::star::ui::XStatusbarItem >           m_xStatusbarItem;
 };
 
 }

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

Modified: openoffice/branches/l10n/main/svtools/source/config/optionsdrawinglayer.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svtools/source/config/optionsdrawinglayer.cxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svtools/source/config/optionsdrawinglayer.cxx (original)
+++ openoffice/branches/l10n/main/svtools/source/config/optionsdrawinglayer.cxx Sun Feb  3 13:23:59 2013
@@ -1667,6 +1667,27 @@ sal_uInt16 SvtOptionsDrawinglayer::GetSe
 	return aRetval;
 }
 
+Color SvtOptionsDrawinglayer::getHilightColor() const
+{
+    Color aRetval(Application::GetSettings().GetStyleSettings().GetHighlightColor());
+    const basegfx::BColor aSelection(aRetval.getBColor());
+    const double fLuminance(aSelection.luminance());
+    const double fMaxLum(GetSelectionMaximumLuminancePercent() / 100.0);
+
+    if(fLuminance > fMaxLum)
+    {
+        const double fFactor(fMaxLum / fLuminance);
+        const basegfx::BColor aNewSelection(
+            aSelection.getRed() * fFactor,
+            aSelection.getGreen() * fFactor,
+            aSelection.getBlue() * fFactor);
+
+        aRetval = Color(aNewSelection);
+    }
+
+    return aRetval;
+}
+
 void SvtOptionsDrawinglayer::SetSelectionMaximumLuminancePercent( sal_uInt16 nPercent )
 {
     MutexGuard aGuard( GetOwnStaticMutex() );

Modified: openoffice/branches/l10n/main/svtools/source/contnr/templwin.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svtools/source/contnr/templwin.cxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svtools/source/contnr/templwin.cxx (original)
+++ openoffice/branches/l10n/main/svtools/source/contnr/templwin.cxx Sun Feb  3 13:23:59 2013
@@ -65,7 +65,7 @@
 #include <com/sun/star/io/IOException.hpp>
 #include <com/sun/star/util/DateTime.hpp>
 #include <com/sun/star/script/XTypeConverter.hpp>
-#include <com/sun/star/system/XSystemShellExecute.hpp>
+#include <com/sun/star/system/SystemShellExecute.hpp>
 #include <com/sun/star/system/SystemShellExecuteFlags.hpp>
 #include <unotools/localedatawrapper.hxx>
 #include <com/sun/star/container/XNameContainer.hpp>
@@ -1985,12 +1985,9 @@ IMPL_LINK ( SvtDocumentTemplateDialog, O
     {
         try
         {
-            uno::Reference< lang::XMultiServiceFactory > xSMGR =
-                ::comphelper::getProcessServiceFactory();
             uno::Reference< com::sun::star::system::XSystemShellExecute > xSystemShell(
-                xSMGR->createInstance( ::rtl::OUString(
-                    RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.system.SystemShellExecute" ) ) ),
-                uno::UNO_QUERY_THROW );
+                com::sun::star::system::SystemShellExecute::create(
+                    ::comphelper::getProcessComponentContext() ) );
             if ( xSystemShell.is() )
                 xSystemShell->execute( sURL, ::rtl::OUString(), com::sun::star::system::SystemShellExecuteFlags::DEFAULTS );
             EndDialog( RET_CANCEL );

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

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

Modified: openoffice/branches/l10n/main/svtools/source/filter/wmf/enhwmf.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svtools/source/filter/wmf/enhwmf.cxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svtools/source/filter/wmf/enhwmf.cxx (original)
+++ openoffice/branches/l10n/main/svtools/source/filter/wmf/enhwmf.cxx Sun Feb  3 13:23:59 2013
@@ -19,13 +19,13 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_svtools.hxx"
 
 #include "winmtf.hxx"
 #include <osl/endian.h>
+#include <basegfx/matrix/b2dhommatrix.hxx>
+#include <vcl/dibtools.hxx>
 
 //=========================== GDI-Array ===================================
 
@@ -870,8 +870,9 @@ sal_Bool EnhWMFReader::ReadEnhWMF()
 						pWMF->Seek( nStart + offBitsSrc );
 						pWMF->Read( pBuf + 14 + cbBmiSrc, cbBitsSrc );
 						aTmp.Seek( 0 );
-						aBitmap.Read( aTmp, sal_True );
-						// test if it is sensible to crop
+						ReadDIB(aBitmap, aTmp, true);
+						
+                        // test if it is sensible to crop
 						if ( ( cxSrc > 0 ) && ( cySrc > 0 ) && 
 							( xSrc >= 0 ) && ( ySrc >= 0 ) &&
                                 ( xSrc + static_cast< sal_Int32 >(cxSrc) <= static_cast< sal_Int32 >(aBitmap.GetSizePixel().Width()) ) &&
@@ -931,7 +932,7 @@ sal_Bool EnhWMFReader::ReadEnhWMF()
 						pWMF->Seek( nStart + offBitsSrc );
 						pWMF->Read( pBuf + 14 + cbBmiSrc, cbBitsSrc );
 						aTmp.Seek( 0 );
-						aBitmap.Read( aTmp, sal_True );
+						ReadDIB(aBitmap, aTmp, true);
 
 						// test if it is sensible to crop
 						if ( ( cxSrc > 0 ) && ( cySrc > 0 ) && 
@@ -985,7 +986,7 @@ sal_Bool EnhWMFReader::ReadEnhWMF()
 						pWMF->Seek( nStart + offBitsSrc );
 						pWMF->Read( pBuf + 14 + cbBmiSrc, cbBitsSrc );
 						aTmp.Seek( 0 );
-						aBitmap.Read( aTmp, sal_True );
+						ReadDIB(aBitmap, aTmp, true);
 
 						// test if it is sensible to crop
 						if ( ( cxSrc > 0 ) && ( cySrc > 0 ) && 
@@ -1021,6 +1022,16 @@ sal_Bool EnhWMFReader::ReadEnhWMF()
 						lfFaceName[ i ] = nChar;
 					}
 					aLogFont.alfFaceName = UniString( lfFaceName );
+
+                    // #121382# Need to apply WorldTransform to FontHeight/Width; this should be completely
+                    // chnaged to basegfx::B2DHomMatrix instead of 'struct XForm', but not now due to time
+                    // constraints and dangers
+                    const XForm& rXF = pOut->GetWorldTransform();
+                    const basegfx::B2DHomMatrix aWT(rXF.eM11, rXF.eM21, rXF.eDx, rXF.eM12, rXF.eM22, rXF.eDy);
+                    const basegfx::B2DVector aTransVec(aWT * basegfx::B2DVector(aLogFont.lfWidth, aLogFont.lfHeight));
+                    aLogFont.lfWidth = aTransVec.getX();
+                    aLogFont.lfHeight = aTransVec.getY();
+
 					pOut->CreateObject( nIndex, GDI_FONT, new WinMtfFontStyle( aLogFont ) );
 				}
 			}
@@ -1296,7 +1307,7 @@ sal_Bool EnhWMFReader::ReadEnhWMF()
 					*pWMF >> nTmp32;
 				}
 
-				aBmp.Read( *pWMF, sal_False );
+				ReadDIB(aBmp, *pWMF, false);
 				pBmp = aBmp.AcquireReadAccess();
 				if ( pBmp )
 				{

Modified: openoffice/branches/l10n/main/svtools/source/filter/wmf/winmtf.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svtools/source/filter/wmf/winmtf.cxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svtools/source/filter/wmf/winmtf.cxx (original)
+++ openoffice/branches/l10n/main/svtools/source/filter/wmf/winmtf.cxx Sun Feb  3 13:23:59 2013
@@ -492,8 +492,9 @@ Size WinMtfOutput::ImplMap( const Size& 
 {
 	if ( mnWinExtX && mnWinExtY )
 	{
-		double fWidth = rSz.Width() * maXForm.eM11;
-		double fHeight = rSz.Height() * maXForm.eM22;
+        // #121382# apply the whole WorldTransform, else a rotation will be misinterpreted
+		double fWidth = rSz.Width() * maXForm.eM11 + rSz.Height() * maXForm.eM21;
+		double fHeight = rSz.Width() * maXForm.eM12 + rSz.Height() * maXForm.eM22;
 
 		if ( mnGfxMode == GM_COMPATIBLE )
 		{
@@ -1476,7 +1477,10 @@ void WinMtfOutput::DrawText( Point& rPos
 
 		for( i = 0, nSum = 0; i < nLen; i++ )
 		{
-			sal_Int32 nTemp = ImplMap( Size( pDXArry[ i ], 0 ) ).Width();
+            // #121382# Map DXArray using WorldTransform
+            const Size aSize(ImplMap(Size( pDXArry[i], 0)));
+            const basegfx::B2DVector aVector(aSize.Width(), aSize.Height());
+            const sal_Int32 nTemp(basegfx::fround(aVector.getLength()));
 			nSum += nTemp;
 			pDXArry[ i ] = nSum;
 		}

Modified: openoffice/branches/l10n/main/svtools/source/filter/wmf/winmtf.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svtools/source/filter/wmf/winmtf.hxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svtools/source/filter/wmf/winmtf.hxx (original)
+++ openoffice/branches/l10n/main/svtools/source/filter/wmf/winmtf.hxx Sun Feb  3 13:23:59 2013
@@ -614,6 +614,7 @@ class WinMtfOutput
 		sal_uInt32			GetMapMode() const { return mnMapMode; };
         void                SetMapMode( sal_uInt32 mnMapMode );
 		void				SetWorldTransform( const XForm& rXForm );
+        const XForm& GetWorldTransform() const { return maXForm; }
 		void				ModifyWorldTransform( const XForm& rXForm, sal_uInt32 nMode );
 
 		void				Push();

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

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

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

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

Modified: openoffice/branches/l10n/main/svtools/source/misc/transfer.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svtools/source/misc/transfer.cxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svtools/source/misc/transfer.cxx (original)
+++ openoffice/branches/l10n/main/svtools/source/misc/transfer.cxx Sun Feb  3 13:23:59 2013
@@ -19,8 +19,6 @@
  * 
  *************************************************************/
 
-
-
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_svtools.hxx"
 #ifdef WNT
@@ -68,6 +66,9 @@
 #include <svtools/imap.hxx>
 #include <svtools/transfer.hxx>
 #include <cstdio>
+#include <vcl/dibtools.hxx>
+#include <vcl/pngread.hxx>
+#include <vcl/pngwrite.hxx>
 
 // --------------
 // - Namespaces -
@@ -370,9 +371,9 @@ Any SAL_CALL TransferableHelper::getTran
 			    GetData( aSubstFlavor );
                 bDone = maAny.hasValue();
             }
-            else if( SotExchange::GetFormatDataFlavor( SOT_FORMATSTR_ID_BMP, aSubstFlavor ) &&
-                     TransferableDataHelper::IsEqual( aSubstFlavor, rFlavor ) &&
-                     SotExchange::GetFormatDataFlavor( FORMAT_BITMAP, aSubstFlavor ) )
+            else if(SotExchange::GetFormatDataFlavor(SOT_FORMATSTR_ID_BMP, aSubstFlavor ) 
+                && TransferableDataHelper::IsEqual( aSubstFlavor, rFlavor )
+                && SotExchange::GetFormatDataFlavor(FORMAT_BITMAP, aSubstFlavor))
             {
 			    GetData( aSubstFlavor );
                 bDone = sal_True;
@@ -698,6 +699,7 @@ void TransferableHelper::AddFormat( cons
 		if( FORMAT_BITMAP == aFlavorEx.mnSotId )
 		{
 			AddFormat( SOT_FORMATSTR_ID_BMP );
+			AddFormat( SOT_FORMATSTR_ID_PNG );
 		}
 		else if( FORMAT_GDIMETAFILE == aFlavorEx.mnSotId )
 		{
@@ -798,14 +800,38 @@ sal_Bool TransferableHelper::SetString( 
 
 // -----------------------------------------------------------------------------
 
-sal_Bool TransferableHelper::SetBitmap( const Bitmap& rBitmap, const DataFlavor& )
+sal_Bool TransferableHelper::SetBitmapEx( const BitmapEx& rBitmapEx, const DataFlavor& rFlavor )
 {
-	if( !rBitmap.IsEmpty() )
+	if( !rBitmapEx.IsEmpty() )
 	{
-		SvMemoryStream aMemStm( 65535, 65535 );
+        SvMemoryStream aMemStm( 65535, 65535 );
 
-		aMemStm << rBitmap;
-		maAny <<= Sequence< sal_Int8 >( reinterpret_cast< const sal_Int8* >( aMemStm.GetData() ), aMemStm.Seek( STREAM_SEEK_TO_END ) );
+        if(rFlavor.MimeType.equalsIgnoreAsciiCase(::rtl::OUString::createFromAscii("image/png")))
+        {
+            // write a PNG
+            ::vcl::PNGWriter aPNGWriter(rBitmapEx);
+
+            aPNGWriter.Write(aMemStm);
+        }
+        else
+        {
+            const Bitmap aBitmap(rBitmapEx.GetBitmap());
+
+            if(rBitmapEx.IsTransparent())
+            {
+                const Bitmap aMask(rBitmapEx.GetAlpha().GetBitmap());
+
+                // explicitely use Bitmap::Write with bCompressed = sal_False and bFileHeader = sal_True
+                WriteDIBV5(aBitmap, aMask, aMemStm);
+            }
+            else
+            {
+                // explicitely use Bitmap::Write with bCompressed = sal_False and bFileHeader = sal_True
+                WriteDIB(aBitmap, aMemStm, false, true);
+            }
+        }
+
+        maAny <<= Sequence< sal_Int8 >( reinterpret_cast< const sal_Int8* >( aMemStm.GetData() ), aMemStm.Seek( STREAM_SEEK_TO_END ) );
 	}
 
 	return( maAny.hasValue() );
@@ -1441,7 +1467,7 @@ void TransferableDataHelper::FillDataFla
 		    rDataFlavorExVector.push_back( aFlavorEx );
 
             // add additional formats for special mime types
-            if( SOT_FORMATSTR_ID_BMP == aFlavorEx.mnSotId )
+            if(SOT_FORMATSTR_ID_BMP == aFlavorEx.mnSotId || SOT_FORMATSTR_ID_PNG == aFlavorEx.mnSotId)
 		    {
 			    if( SotExchange::GetFormatDataFlavor( SOT_FORMAT_BITMAP, aFlavorEx ) )
 			    {
@@ -1755,57 +1781,101 @@ sal_Bool TransferableDataHelper::GetStri
 
 // -----------------------------------------------------------------------------
 
-sal_Bool TransferableDataHelper::GetBitmap( SotFormatStringId nFormat, Bitmap& rBmp )
+sal_Bool TransferableDataHelper::GetBitmapEx( SotFormatStringId nFormat, BitmapEx& rBmpEx )
 {
-	DataFlavor aFlavor;
-	return( SotExchange::GetFormatDataFlavor( nFormat, aFlavor ) && GetBitmap( aFlavor, rBmp ) );
+    if(FORMAT_BITMAP == nFormat)
+    {
+        // try to get PNG first
+        DataFlavor aFlavor;
+
+        if(SotExchange::GetFormatDataFlavor(SOT_FORMATSTR_ID_PNG, aFlavor))
+        {
+            if(GetBitmapEx(aFlavor, rBmpEx))
+            {
+                return true;
+            }
+        }
+    }
+
+    DataFlavor aFlavor;
+    return( SotExchange::GetFormatDataFlavor( nFormat, aFlavor ) && GetBitmapEx( aFlavor, rBmpEx ) );
 }
 
 // -----------------------------------------------------------------------------
 
-sal_Bool TransferableDataHelper::GetBitmap( const DataFlavor& rFlavor, Bitmap& rBmp )
+sal_Bool TransferableDataHelper::GetBitmapEx( const DataFlavor& rFlavor, BitmapEx& rBmpEx )
 {
-	SotStorageStreamRef xStm;
-	DataFlavor			aSubstFlavor;
-	sal_Bool			bRet = GetSotStorageStream( rFlavor, xStm );
+    SotStorageStreamRef xStm;
+    DataFlavor aSubstFlavor;
+    bool bRet(GetSotStorageStream(rFlavor, xStm));
 
-	if( bRet )
-	{
-		*xStm >> rBmp;
-		bRet = ( xStm->GetError() == ERRCODE_NONE );
+    if(!bRet && HasFormat(SOT_FORMATSTR_ID_PNG) && SotExchange::GetFormatDataFlavor(SOT_FORMATSTR_ID_PNG, aSubstFlavor))
+    {
+        // when no direct success, try if PNG is available
+        bRet = GetSotStorageStream(aSubstFlavor, xStm);
+    }
 
-		/* SJ: #110748# At the moment we are having problems with DDB inserted as DIB. The
-		   problem is, that some graphics are inserted much too big because the nXPelsPerMeter
-		   and nYPelsPerMeter of the bitmap fileheader isn't including the correct value.
-		   Due to this reason the following code assumes that bitmaps with a logical size
-		   greater than 50 cm aren't having the correct mapmode set.
-
-		   The following code should be removed if DDBs and DIBs are supported via clipboard
-		   properly.
-		*/
-		if ( bRet )
-		{
-			MapMode aMapMode = rBmp.GetPrefMapMode();
-			if ( aMapMode.GetMapUnit() != MAP_PIXEL )
-			{
-				Size aSize = OutputDevice::LogicToLogic( rBmp.GetPrefSize(), aMapMode, MAP_100TH_MM );
-				if ( ( aSize.Width() > 5000 ) || ( aSize.Height() > 5000 ) )
-					rBmp.SetPrefMapMode( MAP_PIXEL );
-			}
-		}
-	}
+    if(!bRet && HasFormat(SOT_FORMATSTR_ID_BMP) && SotExchange::GetFormatDataFlavor(SOT_FORMATSTR_ID_BMP, aSubstFlavor))
+    {
+        // when no direct success, try if BMP is available
+        bRet = GetSotStorageStream(aSubstFlavor, xStm);
+    }
 
-	if( !bRet &&
-		HasFormat( SOT_FORMATSTR_ID_BMP ) &&
-		SotExchange::GetFormatDataFlavor( SOT_FORMATSTR_ID_BMP, aSubstFlavor ) &&
-		GetSotStorageStream( aSubstFlavor, xStm ) )
-	{
-	    xStm->ResetError();
-		*xStm >> rBmp;
-		bRet = ( xStm->GetError() == ERRCODE_NONE );
-	}
+    if(bRet)
+    {
+        if(rFlavor.MimeType.equalsIgnoreAsciiCase(::rtl::OUString::createFromAscii("image/png")))
+        {
+            // it's a PNG, import to BitmapEx
+            ::vcl::PNGReader aPNGReader(*xStm);
 
-	return bRet;
+            rBmpEx = aPNGReader.Read();
+        }
+        else
+        {
+            Bitmap aBitmap;
+            Bitmap aMask;
+
+            // explicitely use Bitmap::Read with bFileHeader = sal_True
+            ReadDIBV5(aBitmap, aMask, *xStm);
+
+            if(aMask.IsEmpty())
+            {
+                rBmpEx = aBitmap;
+            }
+            else
+            {
+                rBmpEx = BitmapEx(aBitmap, aMask);
+            }
+        }
+
+        bRet = (ERRCODE_NONE == xStm->GetError());
+
+        /* SJ: #110748# At the moment we are having problems with DDB inserted as DIB. The
+           problem is, that some graphics are inserted much too big because the nXPelsPerMeter
+           and nYPelsPerMeter of the bitmap fileheader isn't including the correct value.
+           Due to this reason the following code assumes that bitmaps with a logical size
+           greater than 50 cm aren't having the correct mapmode set.
+        
+           The following code should be removed if DDBs and DIBs are supported via clipboard
+           properly.
+        */
+        if(bRet)
+        {
+            const MapMode aMapMode(rBmpEx.GetPrefMapMode());
+
+            if(MAP_PIXEL != aMapMode.GetMapUnit())
+            {
+                const Size aSize(OutputDevice::LogicToLogic(rBmpEx.GetPrefSize(), aMapMode, MAP_100TH_MM));
+
+                if((aSize.Width() > 5000) || (aSize.Height() > 5000))
+                {
+                    rBmpEx.SetPrefMapMode(MAP_PIXEL);
+                }
+            }
+        }
+    }
+
+    return bRet;
 }
 
 // -----------------------------------------------------------------------------
@@ -1865,8 +1935,22 @@ sal_Bool TransferableDataHelper::GetGDIM
 
 sal_Bool TransferableDataHelper::GetGraphic( SotFormatStringId nFormat, Graphic& rGraphic )
 {
-	DataFlavor aFlavor;
-	return( SotExchange::GetFormatDataFlavor( nFormat, aFlavor ) && GetGraphic( aFlavor, rGraphic ) );
+    if(FORMAT_BITMAP == nFormat)
+    {
+        // try to get PNG first
+        DataFlavor aFlavor;
+
+        if(SotExchange::GetFormatDataFlavor(SOT_FORMATSTR_ID_PNG, aFlavor))
+        {
+            if(GetGraphic(aFlavor, rGraphic))
+            {
+                return true;
+            }
+        }
+    }
+
+    DataFlavor aFlavor;
+    return( SotExchange::GetFormatDataFlavor( nFormat, aFlavor ) && GetGraphic( aFlavor, rGraphic ) );
 }
 
 // -----------------------------------------------------------------------------
@@ -1876,13 +1960,22 @@ sal_Bool TransferableDataHelper::GetGrap
 	DataFlavor	aFlavor;
 	sal_Bool	bRet = sal_False;
 
-	if(	SotExchange::GetFormatDataFlavor( SOT_FORMAT_BITMAP, aFlavor ) &&
+    if(SotExchange::GetFormatDataFlavor(SOT_FORMATSTR_ID_PNG, aFlavor) && 
+        TransferableDataHelper::IsEqual(aFlavor, rFlavor))
+	{
+        // try to get PNG first
+		BitmapEx aBmpEx;
+
+		if( ( bRet = GetBitmapEx( aFlavor, aBmpEx ) ) == sal_True )
+			rGraphic = aBmpEx;
+	}
+	else if(SotExchange::GetFormatDataFlavor( SOT_FORMAT_BITMAP, aFlavor ) &&
 		TransferableDataHelper::IsEqual( aFlavor, rFlavor ) )
 	{
-		Bitmap aBmp;
+		BitmapEx aBmpEx;
 
-		if( ( bRet = GetBitmap( aFlavor, aBmp ) ) == sal_True )
-			rGraphic = aBmp;
+		if( ( bRet = GetBitmapEx( aFlavor, aBmpEx ) ) == sal_True )
+			rGraphic = aBmpEx;
 	}
 	else if( SotExchange::GetFormatDataFlavor( SOT_FORMAT_GDIMETAFILE, aFlavor ) &&
 			 TransferableDataHelper::IsEqual( aFlavor, rFlavor ) )

Modified: openoffice/branches/l10n/main/svtools/source/uno/popupmenucontrollerbase.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svtools/source/uno/popupmenucontrollerbase.cxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svtools/source/uno/popupmenucontrollerbase.cxx (original)
+++ openoffice/branches/l10n/main/svtools/source/uno/popupmenucontrollerbase.cxx Sun Feb  3 13:23:59 2013
@@ -38,7 +38,6 @@
 #include <com/sun/star/awt/MenuItemStyle.hpp>
 #include <com/sun/star/frame/XDispatchProvider.hpp>
 #include <com/sun/star/lang/DisposedException.hpp>
-#include <com/sun/star/awt/XMenuExtended.hpp>
 
 //_________________________________________________________________________________________________________________
 //	includes of other projects
@@ -103,17 +102,9 @@ void PopupMenuControllerBase::throwIfDis
 // protected function
 void PopupMenuControllerBase::resetPopupMenu( com::sun::star::uno::Reference< com::sun::star::awt::XPopupMenu >& rPopupMenu )
 {
-    VCLXPopupMenu* pPopupMenu = 0;
     if ( rPopupMenu.is() && rPopupMenu->getItemCount() > 0 )
     {
-         pPopupMenu = (VCLXPopupMenu *)VCLXMenu::GetImplementation( rPopupMenu );
-         if ( pPopupMenu )
-         {
-            vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
-    
-            PopupMenu* pVCLPopupMenu = (PopupMenu *)pPopupMenu->GetMenu();
-            pVCLPopupMenu->Clear();
-         }
+        rPopupMenu->clear();
     }
 }
 
@@ -151,7 +142,7 @@ void SAL_CALL PopupMenuControllerBase::d
 }
 
 // XMenuListener
-void SAL_CALL PopupMenuControllerBase::highlight( const awt::MenuEvent& ) throw (RuntimeException)
+void SAL_CALL PopupMenuControllerBase::itemHighlighted( const awt::MenuEvent& ) throw (RuntimeException)
 {
 }
 
@@ -163,17 +154,16 @@ void PopupMenuControllerBase::impl_selec
 		_xDispatch->dispatch( aURL, aArgs );
 }
 
-void SAL_CALL PopupMenuControllerBase::select( const awt::MenuEvent& rEvent ) throw (RuntimeException)
+void SAL_CALL PopupMenuControllerBase::itemSelected( const awt::MenuEvent& rEvent ) throw (RuntimeException)
 {
 	throwIfDisposed();
 
     osl::MutexGuard aLock( m_aMutex );
 
-	Reference< awt::XMenuExtended > xExtMenu( m_xPopupMenu, UNO_QUERY );
-	if( xExtMenu.is() )
+	if( m_xPopupMenu.is() )
 	{
 		Sequence<PropertyValue> aArgs;
-		dispatchCommand( xExtMenu->getCommand( rEvent.MenuId ), aArgs );
+		dispatchCommand( m_xPopupMenu->getCommand( rEvent.MenuId ), aArgs );
 	}
 }
 
@@ -208,11 +198,11 @@ IMPL_STATIC_LINK_NOINSTANCE( PopupMenuCo
     return 0;
 }
 
-void SAL_CALL PopupMenuControllerBase::activate( const awt::MenuEvent& ) throw (RuntimeException)
+void SAL_CALL PopupMenuControllerBase::itemActivated( const awt::MenuEvent& ) throw (RuntimeException)
 {
 }
 
-void SAL_CALL PopupMenuControllerBase::deactivate( const awt::MenuEvent& ) throw (RuntimeException)
+void SAL_CALL PopupMenuControllerBase::itemDeactivated( const awt::MenuEvent& ) throw (RuntimeException)
 {
 }
 

Modified: openoffice/branches/l10n/main/svtools/source/uno/statusbarcontroller.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svtools/source/uno/statusbarcontroller.cxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svtools/source/uno/statusbarcontroller.cxx (original)
+++ openoffice/branches/l10n/main/svtools/source/uno/statusbarcontroller.cxx Sun Feb  3 13:23:59 2013
@@ -35,7 +35,7 @@
 #include <vcl/status.hxx>
 #include <svtools/imgdef.hxx>
 #include <svtools/miscopt.hxx>
-#include <toolkit/unohlp.hxx>
+#include <toolkit/helper/vclunohelper.hxx>
 
 using namespace ::cppu;
 using namespace ::com::sun::star::awt;
@@ -157,12 +157,6 @@ void SAL_CALL StatusbarController::relea
 void SAL_CALL StatusbarController::initialize( const Sequence< Any >& aArguments )
 throw ( Exception, RuntimeException )
 {
-    const rtl::OUString aFrameName( RTL_CONSTASCII_USTRINGPARAM( "Frame" ));
-    const rtl::OUString aCommandURLName( RTL_CONSTASCII_USTRINGPARAM( "CommandURL" ));
-    const rtl::OUString aServiceManagerName( RTL_CONSTASCII_USTRINGPARAM( "ServiceManager" ));
-    const rtl::OUString aParentWindow( RTL_CONSTASCII_USTRINGPARAM( "ParentWindow" ));
-    const rtl::OUString aIdentifier( RTL_CONSTASCII_USTRINGPARAM( "Identifier" ));
-
     bool bInitialized( true );
 
     {
@@ -184,16 +178,18 @@ throw ( Exception, RuntimeException )
         {
             if ( aArguments[i] >>= aPropValue )
             {
-                if ( aPropValue.Name.equalsAscii( "Frame" ))
+                if ( aPropValue.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Frame" )))
                     aPropValue.Value >>= m_xFrame;
-                else if ( aPropValue.Name.equalsAscii( "CommandURL" ))
+                else if ( aPropValue.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "CommandURL" )))
                     aPropValue.Value >>= m_aCommandURL;
-                else if ( aPropValue.Name.equalsAscii( "ServiceManager" ))
+                else if ( aPropValue.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "ServiceManager" )))
                     aPropValue.Value >>= m_xServiceManager;
-                else if ( aPropValue.Name.equalsAscii( "ParentWindow" ))
+                else if ( aPropValue.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "ParentWindow" )))
                     aPropValue.Value >>= m_xParentWindow;
-				else if ( aPropValue.Name.equalsAscii( "Identifier" ))
+				else if ( aPropValue.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "Identifier" )))
 					aPropValue.Value >>= m_nID;
+                else if ( aPropValue.Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "StatusbarItem" )))
+                    aPropValue.Value >>= m_xStatusbarItem;
             }
         }
 
@@ -261,6 +257,7 @@ throw (::com::sun::star::uno::RuntimeExc
     m_xServiceManager.clear();
     m_xFrame.clear();
     m_xParentWindow.clear();
+    m_xStatusbarItem.clear();
 
     m_bDisposed = sal_True;
 }
@@ -281,26 +278,31 @@ throw ( RuntimeException )
 void SAL_CALL StatusbarController::disposing( const EventObject& Source )
 throw ( RuntimeException )
 {
-    Reference< XInterface > xSource( Source.Source );
-
     vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
 
     if ( m_bDisposed )
         return;
 
+    Reference< XFrame > xFrame( Source.Source, UNO_QUERY );
+    if ( xFrame.is() )
+    {
+        if ( xFrame == m_xFrame )
+            m_xFrame.clear();
+        return;
+    }
+
+    Reference< XDispatch > xDispatch( Source.Source, UNO_QUERY );
+    if ( !xDispatch.is() )
+        return;
+
     URLToDispatchMap::iterator pIter = m_aListenerMap.begin();
     while ( pIter != m_aListenerMap.end() )
     {
         // Compare references and release dispatch references if they are equal.
-        Reference< XInterface > xIfac( pIter->second, UNO_QUERY );
-        if ( xSource == xIfac )
+        if ( xDispatch == pIter->second )
             pIter->second.clear();
         pIter++;
     }
-
-    Reference< XInterface > xIfac( m_xFrame, UNO_QUERY );
-    if ( xIfac == xSource )
-        m_xFrame.clear();
 }
 
 // XStatusListener
@@ -359,18 +361,17 @@ throw (::com::sun::star::uno::RuntimeExc
 void SAL_CALL StatusbarController::paint(
     const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XGraphics >&,
     const ::com::sun::star::awt::Rectangle&,
-    ::sal_Int32,
     ::sal_Int32 )
 throw (::com::sun::star::uno::RuntimeException)
 {
 }
 
-void SAL_CALL StatusbarController::click()
+void SAL_CALL StatusbarController::click( const ::com::sun::star::awt::Point& )
 throw (::com::sun::star::uno::RuntimeException)
 {
 }
 
-void SAL_CALL StatusbarController::doubleClick() throw (::com::sun::star::uno::RuntimeException)
+void SAL_CALL StatusbarController::doubleClick( const ::com::sun::star::awt::Point& ) throw (::com::sun::star::uno::RuntimeException)
 {
     vos::OGuard aSolarMutexGuard( Application::GetSolarMutex() );
 
@@ -533,37 +534,29 @@ void StatusbarController::bindListener()
     }
 
     // Call without locked mutex as we are called back from dispatch implementation
-    if ( xStatusListener.is() )
+    if ( !xStatusListener.is() )
+        return;
+
+    for ( sal_uInt32 i = 0; i < aDispatchVector.size(); i++ )
     {
         try
         {
-            for ( sal_uInt32 i = 0; i < aDispatchVector.size(); i++ )
+            Listener& rListener = aDispatchVector[i];
+            if ( rListener.xDispatch.is() )
+                rListener.xDispatch->addStatusListener( xStatusListener, rListener.aURL );
+            else if ( rListener.aURL.Complete == m_aCommandURL )
             {
-                Listener& rListener = aDispatchVector[i];
-                if ( rListener.xDispatch.is() )
-                    rListener.xDispatch->addStatusListener( xStatusListener, rListener.aURL );
-                else if ( rListener.aURL.Complete == m_aCommandURL )
-                {
-                    try
-                    {
-                        // Send status changed for the main URL, if we cannot get a valid dispatch object.
-                        // UI disables the button. Catch exception as we release our mutex, it is possible
-                        // that someone else already disposed this instance!
-                        FeatureStateEvent aFeatureStateEvent;
-                        aFeatureStateEvent.IsEnabled = sal_False;
-                        aFeatureStateEvent.FeatureURL = rListener.aURL;
-                        aFeatureStateEvent.State = Any();
-                        xStatusListener->statusChanged( aFeatureStateEvent );
-                    }
-                    catch ( Exception& )
-                    {
-                    }
-                }
+                // Send status changed for the main URL, if we cannot get a valid dispatch object.
+                // UI disables the button. Catch exception as we release our mutex, it is possible
+                // that someone else already disposed this instance!
+                FeatureStateEvent aFeatureStateEvent;
+                aFeatureStateEvent.IsEnabled = sal_False;
+                aFeatureStateEvent.FeatureURL = rListener.aURL;
+                aFeatureStateEvent.State = Any();
+                xStatusListener->statusChanged( aFeatureStateEvent );
             }
         }
-        catch ( Exception& )
-        {
-        }
+        catch ( ... ){}
     }
 }
 
@@ -574,35 +567,30 @@ void StatusbarController::unbindListener
     if ( !m_bInitialized )
         return;
 
-    // Collect all registered command URL's and store them temporary
-    Reference< XDispatchProvider > xDispatchProvider( m_xFrame, UNO_QUERY );
-    if ( m_xServiceManager.is() && xDispatchProvider.is() )
+    Reference< XStatusListener > xStatusListener( static_cast< OWeakObject* >( this ), UNO_QUERY );
+    URLToDispatchMap::iterator pIter = m_aListenerMap.begin();
+    while ( pIter != m_aListenerMap.end() )
     {
-        Reference< XStatusListener > xStatusListener( static_cast< OWeakObject* >( this ), UNO_QUERY );
-        URLToDispatchMap::iterator pIter = m_aListenerMap.begin();
-        while ( pIter != m_aListenerMap.end() )
-        {
-            Reference< XURLTransformer > xURLTransformer = getURLTransformer();
-            com::sun::star::util::URL aTargetURL;
-            aTargetURL.Complete = pIter->first;
-            xURLTransformer->parseStrict( aTargetURL );
+        Reference< XURLTransformer > xURLTransformer = getURLTransformer();
+        com::sun::star::util::URL aTargetURL;
+        aTargetURL.Complete = pIter->first;
+        xURLTransformer->parseStrict( aTargetURL );
 
-            Reference< XDispatch > xDispatch( pIter->second );
-            if ( xDispatch.is() )
+        Reference< XDispatch > xDispatch( pIter->second );
+        if ( xDispatch.is() )
+        {
+            // We already have a dispatch object => we have to requery.
+            // Release old dispatch object and remove it as listener
+            try
+            {
+                xDispatch->removeStatusListener( xStatusListener, aTargetURL );
+            }
+            catch ( Exception& )
             {
-                // We already have a dispatch object => we have to requery.
-                // Release old dispatch object and remove it as listener
-                try
-                {
-                    xDispatch->removeStatusListener( xStatusListener, aTargetURL );
-                }
-                catch ( Exception& )
-                {
-                }
             }
-            pIter->second.clear();
-            ++pIter;
         }
+        pIter->second.clear();
+        ++pIter;
     }
 }
 

Modified: openoffice/branches/l10n/main/svx/Library_svxcore.mk
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svx/Library_svxcore.mk?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svx/Library_svxcore.mk (original)
+++ openoffice/branches/l10n/main/svx/Library_svxcore.mk Sun Feb  3 13:23:59 2013
@@ -218,7 +218,6 @@ $(eval $(call gb_Library_add_exception_o
     svx/source/sdr/contact/viewcontact \
     svx/source/sdr/contact/viewcontactofsdrole2obj \
     svx/source/sdr/contact/displayinfo \
-    svx/source/sdr/contact/objectcontacttools \
     svx/source/sdr/contact/viewcontactofe3dscene \
     svx/source/sdr/contact/viewcontactofsdrrectobj \
     svx/source/sdr/contact/viewobjectcontactofsdrole2obj \
@@ -244,7 +243,7 @@ $(eval $(call gb_Library_add_exception_o
     svx/source/sdr/overlay/overlayrollingrectangle \
     svx/source/sdr/overlay/overlaytriangle \
     svx/source/sdr/overlay/overlayselection \
-    svx/source/sdr/overlay/overlayhatchrect \
+    svx/source/sdr/overlay/overlayrectangle \
     svx/source/sdr/overlay/overlaybitmapex \
     svx/source/sdr/overlay/overlaymanagerbuffered \
     svx/source/sdr/overlay/overlayhelpline \

Modified: openoffice/branches/l10n/main/svx/Package_inc.mk
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svx/Package_inc.mk?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svx/Package_inc.mk (original)
+++ openoffice/branches/l10n/main/svx/Package_inc.mk Sun Feb  3 13:23:59 2013
@@ -185,7 +185,7 @@ $(eval $(call gb_Package_add_file,svx_in
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/overlay/overlaymanager.hxx,svx/sdr/overlay/overlaymanager.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx,svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/overlay/overlayobjectlist.hxx,svx/sdr/overlay/overlayobjectlist.hxx))
-$(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/overlay/overlayhatchrect.hxx,svx/sdr/overlay/overlayhatchrect.hxx))
+$(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/overlay/overlayrectangle.hxx,svx/sdr/overlay/overlayrectangle.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/overlay/overlaytools.hxx,svx/sdr/overlay/overlaytools.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/overlay/overlayselection.hxx,svx/sdr/overlay/overlayselection.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/overlay/overlaytriangle.hxx,svx/sdr/overlay/overlaytriangle.hxx))
@@ -241,7 +241,6 @@ $(eval $(call gb_Package_add_file,svx_in
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/viewcontactofe3dextrude.hxx,svx/sdr/contact/viewcontactofe3dextrude.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/viewcontactofvirtobj.hxx,svx/sdr/contact/viewcontactofvirtobj.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/viewcontactofe3dscene.hxx,svx/sdr/contact/viewcontactofe3dscene.hxx))
-$(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/objectcontacttools.hxx,svx/sdr/contact/objectcontacttools.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/objectcontact.hxx,svx/sdr/contact/objectcontact.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/viewcontactofpageobj.hxx,svx/sdr/contact/viewcontactofpageobj.hxx))
 $(eval $(call gb_Package_add_file,svx_inc,inc/svx/sdr/contact/viewcontactofe3dcube.hxx,svx/sdr/contact/viewcontactofe3dcube.hxx))

Modified: openoffice/branches/l10n/main/svx/inc/galobj.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/l10n/main/svx/inc/galobj.hxx?rev=1441909&r1=1441908&r2=1441909&view=diff
==============================================================================
--- openoffice/branches/l10n/main/svx/inc/galobj.hxx (original)
+++ openoffice/branches/l10n/main/svx/inc/galobj.hxx Sun Feb  3 13:23:59 2013
@@ -74,7 +74,7 @@ private:
 
 protected:
 
-	Bitmap					aThumbBmp;
+	BitmapEx				aThumbBmp; // Allow transparence to survive
 	GDIMetaFile				aThumbMtf;
 	INetURLObject			aURL;
 	String					aUserName;
@@ -95,7 +95,7 @@ public:
 	virtual SgaObjKind		GetObjKind() const = 0;
 	virtual sal_uInt16			GetVersion() const = 0;
 
-	virtual Bitmap 			GetThumbBmp() const { return aThumbBmp; }
+	virtual BitmapEx		GetThumbBmp() const { return aThumbBmp; }
 	const GDIMetaFile&		GetThumbMtf() const { return aThumbMtf; }
 	const INetURLObject&	GetURL() const { return aURL; }
 	sal_Bool					IsValid() const { return bIsValid; }
@@ -130,7 +130,7 @@ public:
 	virtual 	   	   ~SgaObjectSound();
 
 	virtual SgaObjKind	GetObjKind() const { return SGA_OBJ_SOUND; }
-	virtual Bitmap 		GetThumbBmp() const;
+	virtual BitmapEx	GetThumbBmp() const;
 	GalSoundType		GetSoundType() const { return eSoundType; }
 };
 
@@ -161,10 +161,6 @@ public:
 	virtual 	   	   ~SgaObjectSvDraw() {};
 
 	virtual SgaObjKind	GetObjKind() const { return SGA_OBJ_SVDRAW; }
-
-public:
-
-    static sal_Bool         DrawCentered( OutputDevice* pOut, const FmFormModel& rModel );
 };
 
 // ----------------