Kaydet (Commit) b3a1909a authored tarafından Chr. Rossmanith's avatar Chr. Rossmanith

added Converter::convertColor with opacity parameter

Change-Id: I0f3759d8f75f2739b2815c37e8c81bc97e097ec8
üst 0d957d1c
...@@ -95,10 +95,15 @@ public: ...@@ -95,10 +95,15 @@ public:
static void convertMeasurePx( ::rtl::OUStringBuffer& rBuffer, static void convertMeasurePx( ::rtl::OUStringBuffer& rBuffer,
sal_Int32 nValue ); sal_Int32 nValue );
/** convert string to color */ /** convert string to rgb color */
static bool convertColor( sal_Int32& rColor, static bool convertColor( sal_Int32& rColor,
const ::rtl::OUString&rValue ); 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 */ /** convert color to string */
static void convertColor( ::rtl::OUStringBuffer &rBuffer, static void convertColor( ::rtl::OUStringBuffer &rBuffer,
sal_Int32 nColor ); sal_Int32 nColor );
......
...@@ -478,7 +478,7 @@ int lcl_gethex( int nChar ) ...@@ -478,7 +478,7 @@ int lcl_gethex( int nChar )
return 0; return 0;
} }
/** convert string to color */ /** convert string to rgb color */
bool Converter::convertColor( sal_Int32& rColor, const OUString& rValue ) bool Converter::convertColor( sal_Int32& rColor, const OUString& rValue )
{ {
if( rValue.getLength() != 7 || rValue[0] != '#' ) if( rValue.getLength() != 7 || rValue[0] != '#' )
...@@ -495,6 +495,26 @@ bool Converter::convertColor( sal_Int32& rColor, const OUString& rValue ) ...@@ -495,6 +495,26 @@ bool Converter::convertColor( sal_Int32& rColor, const OUString& rValue )
return true; 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"; static sal_Char aHexTab[] = "0123456789abcdef";
/** convert color to string */ /** convert color to string */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment