diff options
author | Daniel Rentz <dr@openoffice.org> | 2010-04-14 17:31:33 +0200 |
---|---|---|
committer | Daniel Rentz <dr@openoffice.org> | 2010-04-14 17:31:33 +0200 |
commit | 319c08647f115aaba7f5633376531cbfb4746b2f (patch) | |
tree | ab588184dfebf4be0f369015c5c1434277f476f2 /oox/source/vml | |
parent | 62895872c7f5635b890d150dc6c2d8d4c58917e9 (diff) |
npower13_objectmodules: make vba import available in oox filters
Diffstat (limited to 'oox/source/vml')
-rw-r--r-- | oox/source/vml/vmldrawing.cxx | 20 | ||||
-rw-r--r-- | oox/source/vml/vmlformatting.cxx | 41 | ||||
-rw-r--r-- | oox/source/vml/vmlshape.cxx | 22 | ||||
-rw-r--r-- | oox/source/vml/vmlshapecontainer.cxx | 1 |
4 files changed, 40 insertions, 44 deletions
diff --git a/oox/source/vml/vmldrawing.cxx b/oox/source/vml/vmldrawing.cxx index 9c1bb761532a..9a5f4451ec04 100644 --- a/oox/source/vml/vmldrawing.cxx +++ b/oox/source/vml/vmldrawing.cxx @@ -29,7 +29,7 @@ #include <com/sun/star/drawing/XShapes.hpp> #include "tokens.hxx" #include "oox/core/xmlfilterbase.hxx" -#include "oox/ole/axcontrolhelper.hxx" +#include "oox/ole/axcontrol.hxx" #include "oox/vml/vmlshape.hxx" #include "oox/vml/vmlshapecontainer.hxx" @@ -97,15 +97,12 @@ Drawing::~Drawing() { } -::oox::ole::AxControlHelper& Drawing::getControlHelper() const +::oox::ole::EmbeddedForm& Drawing::getControlForm() const { - // create the helper object on demand - if( !mxCtrlHelper.get() ) - { - mxCtrlHelper.reset( createControlHelper() ); - OSL_ENSURE( mxCtrlHelper.get(), "Drawing::getControlHelper - cannot create form controls helper" ); - } - return *mxCtrlHelper; + if( !mxCtrlForm.get() ) + mxCtrlForm.reset( new ::oox::ole::EmbeddedForm( + mrFilter.getModelFactory(), mxDrawPage, mrFilter.getGraphicHelper() ) ); + return *mxCtrlForm; } void Drawing::registerOleObject( const OleObjectInfo& rOleObject ) @@ -158,11 +155,6 @@ void Drawing::convertControlClientData( const Reference< XControlModel >& /*rxCt { } -::oox::ole::AxControlHelper* Drawing::createControlHelper() const -{ - return new ::oox::ole::AxEmbeddedControlHelper( mrFilter, mxDrawPage ); -} - // ============================================================================ } // namespace vml diff --git a/oox/source/vml/vmlformatting.cxx b/oox/source/vml/vmlformatting.cxx index be3f3dd19e8c..6baea708c8a2 100644 --- a/oox/source/vml/vmlformatting.cxx +++ b/oox/source/vml/vmlformatting.cxx @@ -29,8 +29,8 @@ #include <rtl/strbuf.hxx> #include "tokens.hxx" #include "oox/token/tokenmap.hxx" +#include "oox/helper/graphichelper.hxx" #include "oox/helper/propertymap.hxx" -#include "oox/core/filterbase.hxx" #include "oox/drawingml/color.hxx" #include "oox/drawingml/drawingmltypes.hxx" #include "oox/drawingml/fillproperties.hxx" @@ -39,7 +39,6 @@ using ::rtl::OStringBuffer; using ::rtl::OUString; using ::com::sun::star::geometry::IntegerRectangle2D; -using ::oox::core::FilterBase; using ::oox::drawingml::Color; using ::oox::drawingml::FillProperties; using ::oox::drawingml::LineArrowProperties; @@ -106,7 +105,7 @@ bool lclExtractDouble( double& orfValue, sal_Int32& ornEndPos, const OUString& r return fDefValue; } -/*static*/ sal_Int32 ConversionHelper::decodeMeasureToEmu( const FilterBase& rFilter, +/*static*/ sal_Int32 ConversionHelper::decodeMeasureToEmu( const GraphicHelper& rGraphicHelper, const OUString& rValue, sal_Int32 nRefValue, bool bPixelX, bool bDefaultAsPixel ) { // default for missing values is 0 @@ -150,7 +149,9 @@ bool lclExtractDouble( double& orfValue, sal_Int32& ornEndPos, const OUString& r else if( (cChar1 == 'p') && (cChar2 == 'c') ) // 1 pica = 1/6 inch = 152,400 EMU fValue *= 152400.0; else if( (cChar1 == 'p') && (cChar2 == 'x') ) // 1 pixel, dependent on output device, factor 360 to convert 1/100mm to EMU - fValue = bPixelX ? rFilter.convertScreenPixelX( 360.0 * fValue ) : rFilter.convertScreenPixelY( 360.0 * fValue ); + fValue = bPixelX ? + rGraphicHelper.convertScreenPixelXToHmm( 360.0 * fValue ) : + rGraphicHelper.convertScreenPixelYToHmm( 360.0 * fValue ); } else if( (aUnit.getLength() == 1) && (aUnit[ 0 ] == '%') ) { @@ -164,10 +165,10 @@ bool lclExtractDouble( double& orfValue, sal_Int32& ornEndPos, const OUString& r return static_cast< sal_Int32 >( fValue + 0.5 ); } -/*static*/ sal_Int32 ConversionHelper::decodeMeasureToHmm( const FilterBase& rFilter, +/*static*/ sal_Int32 ConversionHelper::decodeMeasureToHmm( const GraphicHelper& rGraphicHelper, const OUString& rValue, sal_Int32 nRefValue, bool bPixelX, bool bDefaultAsPixel ) { - return (decodeMeasureToEmu( rFilter, rValue, nRefValue, bPixelX, bDefaultAsPixel ) + 180) / 360; + return (decodeMeasureToEmu( rGraphicHelper, rValue, nRefValue, bPixelX, bDefaultAsPixel ) + 180) / 360; } // ============================================================================ @@ -195,7 +196,7 @@ namespace { specifies the color to be used to resolve the color modifiers used in one-color gradients. */ -void lclGetColor( Color& orDmlColor, const FilterBase& rFilter, +void lclGetColor( Color& orDmlColor, const GraphicHelper& rGraphicHelper, const OptValue< OUString >& roVmlColor, const OptValue< double >& roVmlOpacity, sal_Int32 nDefaultRgb, sal_Int32 nPrimaryRgb = API_RGB_TRANSPARENT ) { @@ -239,7 +240,7 @@ void lclGetColor( Color& orDmlColor, const FilterBase& rFilter, sal_Int32 nColorToken = StaticTokenMap::get().getTokenFromUnicode( aColorName ); sal_Int32 nRgbValue = Color::getVmlPresetColor( nColorToken, API_RGB_TRANSPARENT ); if( nRgbValue == API_RGB_TRANSPARENT ) - nRgbValue = rFilter.getSystemColor( nColorToken, API_RGB_TRANSPARENT ); + nRgbValue = rGraphicHelper.getSystemColor( nColorToken, API_RGB_TRANSPARENT ); if( nRgbValue != API_RGB_TRANSPARENT ) { orDmlColor.setSrgbClr( nRgbValue ); @@ -284,9 +285,9 @@ void lclGetColor( Color& orDmlColor, const FilterBase& rFilter, orDmlColor.setSrgbClr( nDefaultRgb ); } -sal_Int32 lclGetEmu( const FilterBase& rFilter, const OptValue< OUString >& roValue, sal_Int32 nDefValue ) +sal_Int32 lclGetEmu( const GraphicHelper& rGraphicHelper, const OptValue< OUString >& roValue, sal_Int32 nDefValue ) { - return roValue.has() ? ConversionHelper::decodeMeasureToEmu( rFilter, roValue.get(), 0, false, false ) : nDefValue; + return roValue.has() ? ConversionHelper::decodeMeasureToEmu( rGraphicHelper, roValue.get(), 0, false, false ) : nDefValue; } void lclGetDmlLineDash( OptValue< sal_Int32 >& oroPresetDash, LineProperties::DashStopVector& orCustomDash, const OptValue< OUString >& roDashStyle ) @@ -428,7 +429,8 @@ void StrokeModel::assignUsed( const StrokeModel& rSource ) moJoinStyle.assignIfUsed( rSource.moJoinStyle ); } -void StrokeModel::pushToPropMap( PropertyMap& rPropMap, const FilterBase& rFilter ) const +void StrokeModel::pushToPropMap( PropertyMap& rPropMap, + ModelObjectHelper& rModelObjectHelper, const GraphicHelper& rGraphicHelper ) const { /* Convert VML line formatting to DrawingML line formatting and let the DrawingML code do the hard work. */ @@ -439,8 +441,8 @@ void StrokeModel::pushToPropMap( PropertyMap& rPropMap, const FilterBase& rFilte aLineProps.maLineFill.moFillType = XML_solidFill; lclConvertArrow( aLineProps.maStartArrow, maStartArrow ); lclConvertArrow( aLineProps.maEndArrow, maEndArrow ); - lclGetColor( aLineProps.maLineFill.maFillColor, rFilter, moColor, moOpacity, API_RGB_BLACK ); - aLineProps.moLineWidth = lclGetEmu( rFilter, moWeight, 1 ); + lclGetColor( aLineProps.maLineFill.maFillColor, rGraphicHelper, moColor, moOpacity, API_RGB_BLACK ); + aLineProps.moLineWidth = lclGetEmu( rGraphicHelper, moWeight, 1 ); lclGetDmlLineDash( aLineProps.moPresetDash, aLineProps.maCustomDash, moDashStyle ); aLineProps.moLineCompound = lclGetDmlLineCompound( moLineStyle ); aLineProps.moLineCap = lclGetDmlLineCap( moEndCap ); @@ -451,7 +453,7 @@ void StrokeModel::pushToPropMap( PropertyMap& rPropMap, const FilterBase& rFilte aLineProps.maLineFill.moFillType = XML_noFill; } - aLineProps.pushToPropMap( rPropMap, rFilter, rFilter.getModelObjectHelper() ); + aLineProps.pushToPropMap( rPropMap, rModelObjectHelper, rGraphicHelper ); } // ============================================================================ @@ -471,7 +473,8 @@ void FillModel::assignUsed( const FillModel& rSource ) moRotate.assignIfUsed( rSource.moRotate ); } -void FillModel::pushToPropMap( PropertyMap& rPropMap, const FilterBase& rFilter ) const +void FillModel::pushToPropMap( PropertyMap& rPropMap, + ModelObjectHelper& rModelObjectHelper, const GraphicHelper& rGraphicHelper ) const { /* Convert VML fill formatting to DrawingML fill formatting and let the DrawingML code do the hard work. */ @@ -491,8 +494,8 @@ void FillModel::pushToPropMap( PropertyMap& rPropMap, const FilterBase& rFilter // prepare colors Color aColor1, aColor2; - lclGetColor( aColor1, rFilter, moColor, moOpacity, API_RGB_WHITE ); - lclGetColor( aColor2, rFilter, moColor2, moOpacity2, API_RGB_WHITE, aColor1.getColor( rFilter ) ); + lclGetColor( aColor1, rGraphicHelper, moColor, moOpacity, API_RGB_WHITE ); + lclGetColor( aColor2, rGraphicHelper, moColor2, moOpacity2, API_RGB_WHITE, aColor1.getColor( rGraphicHelper ) ); // type XML_gradient is linear or axial gradient if( nFillType == XML_gradient ) @@ -563,7 +566,7 @@ void FillModel::pushToPropMap( PropertyMap& rPropMap, const FilterBase& rFilter { aFillProps.moFillType = XML_solidFill; // fill color (default is white) - lclGetColor( aFillProps.maFillColor, rFilter, moColor, moOpacity, API_RGB_WHITE ); + lclGetColor( aFillProps.maFillColor, rGraphicHelper, moColor, moOpacity, API_RGB_WHITE ); } } } @@ -572,7 +575,7 @@ void FillModel::pushToPropMap( PropertyMap& rPropMap, const FilterBase& rFilter aFillProps.moFillType = XML_noFill; } - aFillProps.pushToPropMap( rPropMap, rFilter, rFilter.getModelObjectHelper() ); + aFillProps.pushToPropMap( rPropMap, rModelObjectHelper, rGraphicHelper ); } // ============================================================================ diff --git a/oox/source/vml/vmlshape.cxx b/oox/source/vml/vmlshape.cxx index 014f1edf4c45..40b3e9952b43 100644 --- a/oox/source/vml/vmlshape.cxx +++ b/oox/source/vml/vmlshape.cxx @@ -195,12 +195,12 @@ Rectangle ShapeType::getRectangle( const ShapeParentAnchor* pParentAnchor ) cons Rectangle ShapeType::getAbsRectangle() const { - const XmlFilterBase& rFilter = mrDrawing.getFilter(); + const GraphicHelper& rGraphicHelper = mrDrawing.getFilter().getGraphicHelper(); return Rectangle( - ConversionHelper::decodeMeasureToHmm( rFilter, maTypeModel.maLeft, 0, true, true ) + ConversionHelper::decodeMeasureToHmm( rFilter, maTypeModel.maMarginLeft, 0, true, true ), - ConversionHelper::decodeMeasureToHmm( rFilter, maTypeModel.maTop, 0, false, true ) + ConversionHelper::decodeMeasureToHmm( rFilter, maTypeModel.maMarginTop, 0, false, true ), - ConversionHelper::decodeMeasureToHmm( rFilter, maTypeModel.maWidth, 0, true, true ), - ConversionHelper::decodeMeasureToHmm( rFilter, maTypeModel.maHeight, 0, false, true ) ); + ConversionHelper::decodeMeasureToHmm( rGraphicHelper, maTypeModel.maLeft, 0, true, true ) + ConversionHelper::decodeMeasureToHmm( rGraphicHelper, maTypeModel.maMarginLeft, 0, true, true ), + ConversionHelper::decodeMeasureToHmm( rGraphicHelper, maTypeModel.maTop, 0, false, true ) + ConversionHelper::decodeMeasureToHmm( rGraphicHelper, maTypeModel.maMarginTop, 0, false, true ), + ConversionHelper::decodeMeasureToHmm( rGraphicHelper, maTypeModel.maWidth, 0, true, true ), + ConversionHelper::decodeMeasureToHmm( rGraphicHelper, maTypeModel.maHeight, 0, false, true ) ); } Rectangle ShapeType::getRelRectangle() const @@ -305,10 +305,12 @@ Rectangle ShapeBase::calcShapeRectangle( const ShapeParentAnchor* pParentAnchor void ShapeBase::convertShapeProperties( const Reference< XShape >& rxShape ) const { - PropertyMap aPropMap; + ModelObjectHelper& rModelObjectHelper = mrDrawing.getFilter().getModelObjectHelper(); + const GraphicHelper& rGraphicHelper = mrDrawing.getFilter().getGraphicHelper(); - maTypeModel.maStrokeModel.pushToPropMap( aPropMap, mrDrawing.getFilter() ); - maTypeModel.maFillModel.pushToPropMap( aPropMap, mrDrawing.getFilter() ); + PropertyMap aPropMap; + maTypeModel.maStrokeModel.pushToPropMap( aPropMap, rModelObjectHelper, rGraphicHelper ); + maTypeModel.maFillModel.pushToPropMap( aPropMap, rModelObjectHelper, rGraphicHelper ); PropertySet aPropSet( rxShape ); aPropSet.setProperties( aPropMap ); @@ -440,12 +442,12 @@ Reference< XShape > ComplexShape::implConvertAndInsert( const Reference< XShapes if( pControlInfo && (pControlInfo->maFragmentPath.getLength() > 0) && (maTypeModel.maName.getLength() > 0) ) { OSL_ENSURE( maTypeModel.maName == pControlInfo->maName, "ComplexShape::implConvertAndInsert - control name mismatch" ); - ::oox::ole::AxControl aControl( maTypeModel.maName ); + ::oox::ole::EmbeddedControl aControl( maTypeModel.maName ); // load the control properties from fragment if( rFilter.importFragment( new ::oox::ole::AxControlFragment( rFilter, pControlInfo->maFragmentPath, aControl ) ) ) try { // create control model and insert it into the form of the draw page - Reference< XControlModel > xCtrlModel( aControl.convertAndInsert( mrDrawing.getControlHelper() ), UNO_SET_THROW ); + Reference< XControlModel > xCtrlModel( mrDrawing.getControlForm().convertAndInsert( aControl ), UNO_SET_THROW ); if( maShapeModel.mxClientData.get() ) mrDrawing.convertControlClientData( xCtrlModel, *maShapeModel.mxClientData ); diff --git a/oox/source/vml/vmlshapecontainer.cxx b/oox/source/vml/vmlshapecontainer.cxx index 6b1711f3c0f9..8e36e4b0054e 100644 --- a/oox/source/vml/vmlshapecontainer.cxx +++ b/oox/source/vml/vmlshapecontainer.cxx @@ -33,7 +33,6 @@ using ::rtl::OUString; using ::com::sun::star::uno::Reference; using ::com::sun::star::awt::Rectangle; using ::com::sun::star::drawing::XShapes; -using ::oox::core::XmlFilterBase; namespace oox { namespace vml { |