diff options
-rw-r--r-- | include/vbahelper/vbafontbase.hxx | 8 | ||||
-rwxr-xr-x | sc/qa/extras/testdocuments/BGR-RGBTest.xls | bin | 0 -> 14888 bytes | |||
-rw-r--r-- | sc/qa/extras/vba-macro-test.cxx | 2 | ||||
-rw-r--r-- | sc/source/ui/vba/vbafont.cxx | 2 | ||||
-rw-r--r-- | sw/source/ui/vba/vbafont.cxx | 11 | ||||
-rw-r--r-- | sw/source/ui/vba/vbafont.hxx | 1 | ||||
-rw-r--r-- | vbahelper/source/vbahelper/vbafontbase.cxx | 30 |
7 files changed, 35 insertions, 19 deletions
diff --git a/include/vbahelper/vbafontbase.hxx b/include/vbahelper/vbafontbase.hxx index 732a67bc1d1e..d388715c93ba 100644 --- a/include/vbahelper/vbafontbase.hxx +++ b/include/vbahelper/vbafontbase.hxx @@ -44,9 +44,13 @@ typedef InheritedHelperInterfaceWeakImpl< ov::XFontBase > VbaFontBase_BASE; class VBAHELPER_DLLPUBLIC VbaFontBase : public VbaFontBase_BASE { +public: + enum Component { WORD, EXCEL }; + protected: css::uno::Reference< css::beans::XPropertySet > mxFont; css::uno::Reference< css::container::XIndexAccess > mxPalette; + Component meWhich; bool mbFormControl; public: @@ -79,7 +83,9 @@ public: const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::container::XIndexAccess >& xPalette, const css::uno::Reference< css::beans::XPropertySet >& xPropertySet, - bool bFormControl = false ); + Component eWhich, + bool bFormControl = false); + virtual ~VbaFontBase() override;// {} // Attributes diff --git a/sc/qa/extras/testdocuments/BGR-RGBTest.xls b/sc/qa/extras/testdocuments/BGR-RGBTest.xls Binary files differnew file mode 100755 index 000000000000..e2bf43fb0e92 --- /dev/null +++ b/sc/qa/extras/testdocuments/BGR-RGBTest.xls diff --git a/sc/qa/extras/vba-macro-test.cxx b/sc/qa/extras/vba-macro-test.cxx index 04e4efece2cf..2464996d2812 100644 --- a/sc/qa/extras/vba-macro-test.cxx +++ b/sc/qa/extras/vba-macro-test.cxx @@ -466,6 +466,8 @@ void VBAMacroTest::testVba() { OUString("vba_findFunction."), OUString( "vnd.sun.Star.script:VBAProject.testMacros.test?language=Basic&location=document") }, + { OUString("BGR-RGBTest."), + OUString("vnd.sun.Star.script:VBAProject.Module1.test?language=Basic&location=document") } }; OUString sTempDir; OUString sTempDirURL; diff --git a/sc/source/ui/vba/vbafont.cxx b/sc/source/ui/vba/vbafont.cxx index 99afd919bea7..db49f013499c 100644 --- a/sc/source/ui/vba/vbafont.cxx +++ b/sc/source/ui/vba/vbafont.cxx @@ -37,7 +37,7 @@ ScVbaFont::ScVbaFont( const ScVbaPalette& dPalette, const uno::Reference< beans::XPropertySet >& xPropertySet, ScCellRangeObj* pRangeObj, bool bFormControl ) : - ScVbaFont_BASE( xParent, xContext, dPalette.getPalette(), xPropertySet, bFormControl ), + ScVbaFont_BASE( xParent, xContext, dPalette.getPalette(), xPropertySet, Component::EXCEL, bFormControl ), mpRangeObj( pRangeObj ) { } diff --git a/sw/source/ui/vba/vbafont.cxx b/sw/source/ui/vba/vbafont.cxx index de37a6c74e18..91a31ec66470 100644 --- a/sw/source/ui/vba/vbafont.cxx +++ b/sw/source/ui/vba/vbafont.cxx @@ -111,7 +111,8 @@ public: } -SwVbaFont::SwVbaFont( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XIndexAccess >& xPalette, uno::Reference< css::beans::XPropertySet > const & xPropertySet ) : SwVbaFont_BASE( xParent, xContext, xPalette, xPropertySet ) +SwVbaFont::SwVbaFont( const uno::Reference< XHelperInterface >& xParent, const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< container::XIndexAccess >& xPalette, uno::Reference< css::beans::XPropertySet > const & xPropertySet ) + : SwVbaFont_BASE( xParent, xContext, xPalette, xPropertySet, Component::WORD ) { } @@ -141,14 +142,6 @@ SwVbaFont::getServiceImplName() return "SwVbaFont"; } -void SAL_CALL -SwVbaFont::setColorIndex( const uno::Any& _colorindex ) -{ - sal_Int32 nIndex = 0; - _colorindex >>= nIndex; - return setColor( mxPalette->getByIndex( nIndex ) ); -} - uno::Any SAL_CALL SwVbaFont::getColorIndex() { diff --git a/sw/source/ui/vba/vbafont.hxx b/sw/source/ui/vba/vbafont.hxx index 24b5832e7ee3..61bfc0f52636 100644 --- a/sw/source/ui/vba/vbafont.hxx +++ b/sw/source/ui/vba/vbafont.hxx @@ -31,7 +31,6 @@ public: SwVbaFont( const css::uno::Reference< ov::XHelperInterface >& xParent, const css::uno::Reference< css::uno::XComponentContext >& xContext, const css::uno::Reference< css::container::XIndexAccess >& xPalette, css::uno::Reference< css::beans::XPropertySet > const & xPropertySet ); // Attributes - virtual void SAL_CALL setColorIndex( const css::uno::Any& _colorindex ) override; virtual css::uno::Any SAL_CALL getColorIndex() override; virtual css::uno::Any SAL_CALL getUnderline() override; virtual void SAL_CALL setUnderline( const css::uno::Any& _underline ) override; diff --git a/vbahelper/source/vbahelper/vbafontbase.cxx b/vbahelper/source/vbahelper/vbafontbase.cxx index 50bac8f92d25..797fefd5cd7e 100644 --- a/vbahelper/source/vbahelper/vbafontbase.cxx +++ b/vbahelper/source/vbahelper/vbafontbase.cxx @@ -37,10 +37,12 @@ VbaFontBase::VbaFontBase( const uno::Reference< uno::XComponentContext >& xContext, const uno::Reference< css::container::XIndexAccess >& xPalette, const uno::Reference< beans::XPropertySet >& xPropertySet, + Component eWhich, bool bFormControl ) : VbaFontBase_BASE( xParent, xContext ), mxFont( xPropertySet, uno::UNO_SET_THROW ), mxPalette( xPalette, uno::UNO_SET_THROW ), + meWhich( eWhich ), mbFormControl( bFormControl ) { } @@ -141,10 +143,12 @@ VbaFontBase::setColorIndex( const uno::Any& _colorindex ) --nIndex; // OOo indices are zero bases - // setColor expects colors in XL RGB values - // #FIXME this is daft we convert OO RGB val to XL RGB val and - // then back again to OO RGB value - setColor( OORGBToXLRGB(mxPalette->getByIndex( nIndex )) ); + if (meWhich == EXCEL){ + setColor( OORGBToXLRGB(mxPalette->getByIndex( nIndex )) ); + } + else{ + setColor( mxPalette->getByIndex( nIndex )); + } } @@ -153,7 +157,13 @@ VbaFontBase::getColorIndex() { sal_Int32 nColor = 0; - XLRGBToOORGB( getColor() ) >>= nColor; + if (meWhich == EXCEL){ + XLRGBToOORGB( getColor() ) >>= nColor; + } + else{ + getColor() >>= nColor; + } + sal_Int32 nElems = mxPalette->getCount(); sal_Int32 nIndex = -1; for ( sal_Int32 count=0; count<nElems; ++count ) @@ -257,8 +267,14 @@ VbaFontBase::getName() uno::Any VbaFontBase::getColor() { - uno::Any aAny = OORGBToXLRGB( mxFont->getPropertyValue( VBAFONTBASE_PROPNAME( "CharColor", "TextColor" ) ) ); - return aAny; + if (meWhich == EXCEL){ + uno::Any aAny = OORGBToXLRGB( mxFont->getPropertyValue( VBAFONTBASE_PROPNAME( "CharColor", "TextColor" ) ) ); + return aAny; + } + else{ + uno::Any aAny = mxFont->getPropertyValue( VBAFONTBASE_PROPNAME( "CharColor", "TextColor" ) ); + return aAny; + } } void |