From d765faacd1933c091e9eb0ecd566460beeb2a33d Mon Sep 17 00:00:00 2001 From: Andreas Heinisch Date: Sat, 25 Sep 2021 16:42:37 +0200 Subject: tdf#131563 - Add vba color constants Change-Id: I59bcd11b5da1450fced77671c2cf6ed44e299a06 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122607 Tested-by: Jenkins Reviewed-by: Andreas Heinisch (cherry picked from commit d6063f416c78f30f1fb717f3ab05f9691bb3461d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122648 Reviewed-by: Xisco Fauli --- basic/qa/vba_tests/constants.vb | 11 +++++++++++ basic/source/comp/parser.cxx | 18 ++++++++++++++++++ 2 files changed, 29 insertions(+) (limited to 'basic') diff --git a/basic/qa/vba_tests/constants.vb b/basic/qa/vba_tests/constants.vb index d03fdda95afe..be7add515e83 100644 --- a/basic/qa/vba_tests/constants.vb +++ b/basic/qa/vba_tests/constants.vb @@ -25,6 +25,17 @@ Sub verify_testConstants() TestUtil.AssertEqual(vbNewLine, vbLf, "vbNewline") End If + ' tdf#131563 - check for vba color constants + ' See https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/color-constants + TestUtil.AssertEqual(vbBlack, RGB(0, 0, 0), "vbBlack") + TestUtil.AssertEqual(vbRed, RGB(255, 0, 0), "vbRed") + TestUtil.AssertEqual(vbGreen, RGB(0, 255, 0), "vbGreen") + TestUtil.AssertEqual(vbYellow, RGB(255, 255, 0), "vbYellow") + TestUtil.AssertEqual(vbBlue, RGB(0, 0, 255), "vbBlue") + TestUtil.AssertEqual(vbMagenta, RGB(255, 0, 255), "vbMagenta") + TestUtil.AssertEqual(vbCyan, RGB(0, 255, 255), "vbCyan") + TestUtil.AssertEqual(vbWhite, RGB(255, 255, 255), "vbWhite") + Exit Sub errorHandler: TestUtil.ReportErrorHandler("verify_testConstants", Err, Error$, Erl) diff --git a/basic/source/comp/parser.cxx b/basic/source/comp/parser.cxx index 6ebc2208ae42..dc0b3b16b348 100644 --- a/basic/source/comp/parser.cxx +++ b/basic/source/comp/parser.cxx @@ -841,8 +841,26 @@ static void addStringConst( SbiSymPool& rPool, const OUString& pSym, const OUStr rPool.Add( pConst ); } +static void addNumericConst(SbiSymPool& rPool, const OUString& pSym, double nVal) +{ + SbiConstDef* pConst = new SbiConstDef(pSym); + pConst->Set(nVal, SbxDOUBLE); + rPool.Add(pConst); +} + void SbiParser::AddConstants() { + // tdf#131563 - add vba color constants + // See https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/color-constants + addNumericConst(aPublics, "vbBlack", 0x0); + addNumericConst(aPublics, "vbRed", 0xFF); + addNumericConst(aPublics, "vbGreen", 0xFF00); + addNumericConst(aPublics, "vbYellow", 0xFFFF); + addNumericConst(aPublics, "vbBlue", 0xFF0000); + addNumericConst(aPublics, "vbMagenta", 0xFF00FF); + addNumericConst(aPublics, "vbCyan", 0xFFFF00); + addNumericConst(aPublics, "vbWhite", 0xFFFFFF); + // #113063 Create constant RTL symbols addStringConst( aPublics, "vbCr", "\x0D" ); addStringConst( aPublics, "vbCrLf", "\x0D\x0A" ); -- cgit