diff options
author | Zolnai Tamás <zolnaitamas2000@gmail.com> | 2015-03-18 15:23:58 +0100 |
---|---|---|
committer | Zolnai Tamás <zolnaitamas2000@gmail.com> | 2015-03-21 16:19:11 +0100 |
commit | 3e03767906c9a283ba0c65114f58f38276902c63 (patch) | |
tree | 5dc821e413131371cd4b9075952af64f8df494da /filter | |
parent | 1d1f757f574aa609bdaa375bb8cdfa7f7941887d (diff) |
Char highlight: convert LO character background to MSO highlighting
DOC export has a good approximating algorithm for that
so use it everywhere.
In RTF case use the default color table which is added
also by MSO Word. With that highlight colors are also added to
the table.
Change-Id: Ie4827a933c316d4dc0c0c7a32d8cf319477d1bf9
Diffstat (limited to 'filter')
-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; +} + } } |