summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/vbahelper/vbafontbase.hxx8
-rwxr-xr-xsc/qa/extras/testdocuments/BGR-RGBTest.xlsbin0 -> 14888 bytes
-rw-r--r--sc/qa/extras/vba-macro-test.cxx2
-rw-r--r--sc/source/ui/vba/vbafont.cxx2
-rw-r--r--sw/source/ui/vba/vbafont.cxx11
-rw-r--r--sw/source/ui/vba/vbafont.hxx1
-rw-r--r--vbahelper/source/vbahelper/vbafontbase.cxx30
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
new file mode 100755
index 000000000000..e2bf43fb0e92
--- /dev/null
+++ b/sc/qa/extras/testdocuments/BGR-RGBTest.xls
Binary files differ
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