diff options
Diffstat (limited to 'filter/source/msfilter/util.cxx')
-rw-r--r-- | filter/source/msfilter/util.cxx | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/filter/source/msfilter/util.cxx b/filter/source/msfilter/util.cxx index 958f0b869826..9031a7761938 100644 --- a/filter/source/msfilter/util.cxx +++ b/filter/source/msfilter/util.cxx @@ -12,6 +12,7 @@ #include <unotools/fontcvt.hxx> #include <unotools/fontdefs.hxx> #include <vcl/svapp.hxx> +#include <vcl/salbtype.hxx> #include <filter/msfilter/util.hxx> #include <boost/scoped_ptr.hpp> #include <unordered_map> @@ -1350,6 +1351,47 @@ bool HasTextBoxContent(sal_uInt32 nShapeType) return true; } } + +sal_uInt8 TransColToIco( const Color& rCol ) +{ + sal_uInt8 nCol = 0; // ->Auto + switch( rCol.GetColor() ) + { + case COL_BLACK: nCol = 1; break; + case COL_BLUE: nCol = 9; break; + case COL_GREEN: nCol = 11; break; + case COL_CYAN: nCol = 10; break; + case COL_RED: nCol = 13; break; + case COL_MAGENTA: nCol = 12; break; + case COL_BROWN: nCol = 14; break; + case COL_GRAY: nCol = 15; break; + case COL_LIGHTGRAY: nCol = 16; break; + case COL_LIGHTBLUE: nCol = 2; break; + case COL_LIGHTGREEN: nCol = 4; break; + case COL_LIGHTCYAN: nCol = 3; break; + case COL_LIGHTRED: nCol = 6; break; + case COL_LIGHTMAGENTA: nCol = 5; break; + case COL_YELLOW: nCol = 7; break; + case COL_WHITE: nCol = 8; break; + case COL_AUTO: nCol = 0; break; + + default: + static const ColorData aColArr[ 16 ] = { + COL_BLACK, COL_LIGHTBLUE, COL_LIGHTCYAN, COL_LIGHTGREEN, + COL_LIGHTMAGENTA,COL_LIGHTRED, COL_YELLOW, COL_WHITE, + COL_BLUE, COL_CYAN, COL_GREEN, COL_MAGENTA, + COL_RED, COL_BROWN, COL_GRAY, COL_LIGHTGRAY + }; + BitmapPalette aBmpPal(16); + for( sal_uInt16 i = 0; i < 16; ++i ) + aBmpPal[i] = Color( aColArr[ i ] ); + + nCol = static_cast< sal_uInt8 >(aBmpPal.GetBestIndex( rCol ) + 1); + break; + } + return nCol; +} + } } |