[PATCH] added Converter::convertColor with opacity parameter

Christina Roßmanith (via_Code_Review) gerrit at gerrit.libreoffice.org
Tue Jan 1 11:23:02 PST 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/1526

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/26/1526/1

added Converter::convertColor with opacity parameter

Change-Id: I0f3759d8f75f2739b2815c37e8c81bc97e097ec8
---
M sax/inc/sax/tools/converter.hxx
M sax/source/tools/converter.cxx
2 files changed, 27 insertions(+), 2 deletions(-)



diff --git a/sax/inc/sax/tools/converter.hxx b/sax/inc/sax/tools/converter.hxx
index 601ce6c..8b84feb 100644
--- a/sax/inc/sax/tools/converter.hxx
+++ b/sax/inc/sax/tools/converter.hxx
@@ -95,10 +95,15 @@
     static void convertMeasurePx( ::rtl::OUStringBuffer& rBuffer,
                                   sal_Int32 nValue );
 
-    /** convert string to color */
+    /** convert string to rgb color */
     static bool convertColor( sal_Int32& rColor,
                               const ::rtl::OUString&rValue );
 
+    /** convert string to argb color */
+    static bool convertColor( sal_Int32& rColor,
+                              const ::rtl::OUString&rValue,
+                              const double alpha);
+
     /** convert color to string */
     static void convertColor( ::rtl::OUStringBuffer &rBuffer,
                               sal_Int32 nColor );
diff --git a/sax/source/tools/converter.cxx b/sax/source/tools/converter.cxx
index 78dd22b..e7fff9a 100644
--- a/sax/source/tools/converter.cxx
+++ b/sax/source/tools/converter.cxx
@@ -478,7 +478,7 @@
         return 0;
 }
 
-/** convert string to color */
+/** convert string to rgb color */
 bool Converter::convertColor( sal_Int32& rColor, const OUString& rValue )
 {
     if( rValue.getLength() != 7 || rValue[0] != '#' )
@@ -495,6 +495,26 @@
     return true;
 }
 
+/** convert string to rgba color */
+bool Converter::convertColor( sal_Int32& rColor, const OUString& rValue, const double alpha)
+{
+    if( rValue.getLength() != 7 || rValue[0] != '#' )
+        return false;
+
+    rColor = (int) (alpha * 255);
+    rColor <<= 8;
+
+    rColor |= lcl_gethex( rValue[1] ) * 16 + lcl_gethex( rValue[2] );
+    rColor <<= 8;
+
+    rColor |= ( lcl_gethex( rValue[3] ) * 16 + lcl_gethex( rValue[4] ) );
+    rColor <<= 8;
+
+    rColor |= ( lcl_gethex( rValue[5] ) * 16 + lcl_gethex( rValue[6] ) );
+
+    return true;
+}
+
 static sal_Char aHexTab[] = "0123456789abcdef";
 
 /** convert color to string */

-- 
To view, visit https://gerrit.libreoffice.org/1526
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0f3759d8f75f2739b2815c37e8c81bc97e097ec8
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Christina Roßmanith <ChrRossmanith at web.de>



More information about the LibreOffice mailing list