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 );
};
// ----------------