diff options
author | dante <dante19031999@gmail.com> | 2020-11-15 10:11:16 +0100 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2020-11-17 13:58:13 +0100 |
commit | 0643dab6819bdf248321d27f6b58a2cce125e51c (patch) | |
tree | af4e2eb9ea2bd598049ed0c588675c948bb1ab15 /starmath/source | |
parent | 00944232373588fa32bcbb7ce6fcd01204346241 (diff) |
Starmath has now full support of HTML colors.
Some of them have been added to the UI ( from Css3 ).
There was not a criteria for color picking so I chose those whose name told me something, those I liked and some to have a more complete palette.
It would be nice to be able to ask our users whose colors from https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Color_Keywords they want in the UI.
The color names have been left in alphabetical order.
Starmathdatabse has clang format.
Change-Id: I6ac1bdbc9e3ed10bff75a99b90bf92d3dcdcabcb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105892
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'starmath/source')
-rw-r--r-- | starmath/source/ElementsDockingWindow.cxx | 31 | ||||
-rw-r--r-- | starmath/source/mathmlimport.cxx | 4 | ||||
-rw-r--r-- | starmath/source/parse.cxx | 12 | ||||
-rw-r--r-- | starmath/source/starmathdatabase.cxx | 319 | ||||
-rw-r--r-- | starmath/source/visitors.cxx | 25 |
5 files changed, 339 insertions, 52 deletions
diff --git a/starmath/source/ElementsDockingWindow.cxx b/starmath/source/ElementsDockingWindow.cxx index 63edc2c2bf56..da7a6c10b343 100644 --- a/starmath/source/ElementsDockingWindow.cxx +++ b/starmath/source/ElementsDockingWindow.cxx @@ -191,7 +191,14 @@ const SmElementDescr SmElementsControl::m_aAttributesList[] = {RID_COLORX_NAVY, RID_COLORX_NAVY_HELP}, {RID_COLORX_OLIVE, RID_COLORX_OLIVE_HELP}, {RID_COLORX_PURPLE, RID_COLORX_PURPLE_HELP}, {RID_COLORX_SILVER, RID_COLORX_SILVER_HELP}, {RID_COLORX_TEAL, RID_COLORX_TEAL_HELP},{RID_COLORX_RGB, RID_COLORX_RGB_HELP}, - {RID_COLORX_HEX, RID_COLORX_HEX_HELP} + {RID_COLORX_HEX, RID_COLORX_HEX_HELP}, + {nullptr, nullptr}, + {RID_COLORX_CORAL, RID_COLORX_CORAL_HELP}, {RID_COLORX_MIDNIGHT, RID_COLORX_MIDNIGHT_HELP}, + {RID_COLORX_CRIMSON, RID_COLORX_CRIMSON_HELP}, {RID_COLORX_VIOLET, RID_COLORX_VIOLET_HELP}, + {RID_COLORX_ORANGE, RID_COLORX_ORANGE_HELP}, {RID_COLORX_ORANGERED, RID_COLORX_ORANGERED_HELP}, + {RID_COLORX_SEAGREEN, RID_COLORX_SEAGREEN_HELP}, {RID_COLORX_INDIGO, RID_COLORX_INDIGO_HELP}, + {RID_COLORX_HOTPINK, RID_COLORX_HOTPINK_HELP}, {RID_COLORX_LAVENDER, RID_COLORX_LAVENDER_HELP}, + {RID_COLORX_SNOW, RID_COLORX_SNOW_HELP}, }; const SmElementDescr SmElementsControl::m_aBracketsList[] = @@ -933,6 +940,28 @@ void SmElementsControl::addElements(const SmElementDescr aElementsArray[], sal_u addElement(aParser, "color silver { \"" + SmResId(STR_SILVER) + "\" }", aElement, SmResId(pElementHelp)); else if (aElement == RID_COLORX_TEAL) addElement(aParser, "color teal { \"" + SmResId(STR_TEAL) + "\" }", aElement, SmResId(pElementHelp)); + else if (aElement == RID_COLORX_CORAL) + addElement(aParser, "color coral { \"" + SmResId(STR_CORAL) + "\" }", aElement, SmResId(pElementHelp)); + else if (aElement == RID_COLORX_CRIMSON) + addElement(aParser, "color crimson { \"" + SmResId(STR_CRIMSON) + "\" }", aElement, SmResId(pElementHelp)); + else if (aElement == RID_COLORX_MIDNIGHT) + addElement(aParser, "color midnightblue { \"" + SmResId(STR_MIDNIGHT) + "\" }", aElement, SmResId(pElementHelp)); + else if (aElement == RID_COLORX_VIOLET) + addElement(aParser, "color violet { \"" + SmResId(STR_VIOLET) + "\" }", aElement, SmResId(pElementHelp)); + else if (aElement == RID_COLORX_ORANGE) + addElement(aParser, "color orange { \"" + SmResId(STR_ORANGE) + "\" }", aElement, SmResId(pElementHelp)); + else if (aElement == RID_COLORX_ORANGERED) + addElement(aParser, "color orangered { \"" + SmResId(STR_ORANGERED) + "\" }", aElement, SmResId(pElementHelp)); + else if (aElement == RID_COLORX_SEAGREEN) + addElement(aParser, "color seagreen { \"" + SmResId(STR_SEAGREEN) + "\" }", aElement, SmResId(pElementHelp)); + else if (aElement == RID_COLORX_INDIGO) + addElement(aParser, "color indigo { \"" + SmResId(STR_INDIGO) + "\" }", aElement, SmResId(pElementHelp)); + else if (aElement == RID_COLORX_HOTPINK) + addElement(aParser, "color hotpink { \"" + SmResId(STR_HOTPINK) + "\" }", aElement, SmResId(pElementHelp)); + else if (aElement == RID_COLORX_SNOW) + addElement(aParser, "color snow { \"" + SmResId(STR_SNOW) + "\" }", aElement, SmResId(pElementHelp)); + else if (aElement == RID_COLORX_LAVENDER) + addElement(aParser, "color lavender { \"" + SmResId(STR_LAVENDER) + "\" }", aElement, SmResId(pElementHelp)); else if (aElement == RID_COLORX_RGB) addElement(aParser, "color rgb 0 0 0 { \"" + SmResId(STR_RGB) + "\" }", aElement, SmResId(pElementHelp)); else if (aElement == RID_COLORX_RGBA) diff --git a/starmath/source/mathmlimport.cxx b/starmath/source/mathmlimport.cxx index 7a3ca34b9a5a..543a8d02fcb2 100644 --- a/starmath/source/mathmlimport.cxx +++ b/starmath/source/mathmlimport.cxx @@ -698,7 +698,9 @@ void SmXMLContext_Helper::ApplyAttrs() { std::unique_ptr<SmColorTokenTableEntry> aSmColorTokenTableEntry; aSmColorTokenTableEntry = starmathdatabase::Identify_ColorName_HTML( sColor ); - if( aSmColorTokenTableEntry ) + if( aSmColorTokenTableEntry->eType == TRGB ) + aSmColorTokenTableEntry = starmathdatabase::Identify_Color_Parser( sal_uInt32(aSmColorTokenTableEntry->cColor) ); + if( aSmColorTokenTableEntry->eType != TERROR ) { aToken = aSmColorTokenTableEntry; std::unique_ptr<SmFontNode> pFontNode(new SmFontNode(aToken)); diff --git a/starmath/source/parse.cxx b/starmath/source/parse.cxx index 86864bd612b2..4ac26866e07c 100644 --- a/starmath/source/parse.cxx +++ b/starmath/source/parse.cxx @@ -954,7 +954,7 @@ void SmParser::NextToken() //Central part of the parser m_nBufferIndex = aRes.EndPos; } -void SmParser::NextTokenColor() +void SmParser::NextTokenColor(bool dvipload) { sal_Int32 nBufLen = m_aBufferString.getLength(); @@ -1008,9 +1008,9 @@ void SmParser::NextTokenColor() assert(n >= 0); OUString aName( m_aBufferString.copy( nRealStart, n ) ); std::unique_ptr<SmColorTokenTableEntry> aSmColorTokenTableEntry; - aSmColorTokenTableEntry = starmathdatabase::Identify_ColorName_Parser( aName ); - if ( aSmColorTokenTableEntry ) m_aCurToken = aSmColorTokenTableEntry; - else m_aCurToken.eType = TNONE; + if(dvipload) aSmColorTokenTableEntry = starmathdatabase::Identify_ColorName_DVIPSNAMES( aName ); + else aSmColorTokenTableEntry = starmathdatabase::Identify_ColorName_Parser( aName ); + m_aCurToken = aSmColorTokenTableEntry; } else if (aRes.TokenType & KParseType::ONE_SINGLE_CHAR) { @@ -2085,9 +2085,11 @@ std::unique_ptr<SmStructureNode> SmParser::DoColor() if (aDepthGuard.TooDeep()) throw std::range_error("parser depth limit"); assert(m_aCurToken.eType == TCOLOR); - NextTokenColor(); + NextTokenColor(false); SmToken aToken; + if( m_aCurToken.eType == TDVIPSNAMESCOL ) NextTokenColor(true); + if( m_aCurToken.eType == TERROR ) return DoError(SmParseError::ColorExpected); if (TokenInGroup(TG::Color)) { aToken = m_aCurToken; diff --git a/starmath/source/starmathdatabase.cxx b/starmath/source/starmathdatabase.cxx index ecab361f73c0..90a29c62db6c 100644 --- a/starmath/source/starmathdatabase.cxx +++ b/starmath/source/starmathdatabase.cxx @@ -358,72 +358,328 @@ SmToken starmathdatabase::Identify_PrefixPostfix_SmXMLOperatorContext_Impl(sal_U } const SmColorTokenTableEntry starmathdatabase::aColorTokenTableParse[] - = { { "apricot", "Apricot", TDVIPSNAMESCOL, COL_SM_DIV_APRICOT }, + = { { "aliceblue", "aliceblue", THTMLCOL, COL_SM_ALICEBLUE }, + { "antiquewhite", "antiquewhite", THTMLCOL, COL_SM_ANTIQUEWHITE }, { "aqua", "aqua", THTMLCOL, COL_SM_AQUA }, - { "aquamarine", "Aquamarine", TDVIPSNAMESCOL, COL_SM_DIV_AQUAMARINE }, - { "bittersweet", "Bittersweet", TDVIPSNAMESCOL, COL_SM_DIV_BITTERSWEET }, + { "aquamarine", "aquamarine", THTMLCOL, COL_SM_AQUAMARINE }, + { "azure", "azure", THTMLCOL, COL_SM_AZURE }, + { "beige", "beige", THTMLCOL, COL_SM_BEIGE }, + { "bisque", "bisque", THTMLCOL, COL_SM_BISQUE }, { "black", "black", THTMLCOL, COL_SM_BLACK }, + { "blanchedalmond", "blanchedalmond", THTMLCOL, COL_SM_BLANCHEDALMOND }, { "blue", "blue", THTMLCOL, COL_SM_BLUE }, - { "cyan", "cyan", THTMLCOL, COL_SM_BLACK }, + { "blueviolet", "blueviolet", THTMLCOL, COL_SM_BLUEVIOLET }, + { "brown", "brown", THTMLCOL, COL_SM_BROWN }, + { "burlywood", "burlywood", THTMLCOL, COL_SM_BURLYWOOD }, + { "cadetblue", "cadetblue", THTMLCOL, COL_SM_CADETBLUE }, + { "chartreuse", "chartreuse", THTMLCOL, COL_SM_CHARTREUSE }, + { "chocolate", "chocolate", THTMLCOL, COL_SM_CHOCOLATE }, + { "coral", "coral", THTMLCOL, COL_SM_CORAL }, + { "cornflowerblue", "cornflowerblue", THTMLCOL, COL_SM_CORNFLOWERBLUE }, + { "cornsilk", "cornsilk", THTMLCOL, COL_SM_CORNSILK }, + { "crimson", "crimson", THTMLCOL, COL_SM_CRIMSON }, + { "cyan", "cyan", THTMLCOL, COL_SM_CYAN }, + { "darkblue", "darkblue", THTMLCOL, COL_SM_DARKBLUE }, + { "darkcyan", "darkcyan", THTMLCOL, COL_SM_DARKCYAN }, + { "darkgoldenrod", "darkgoldenrod", THTMLCOL, COL_SM_DARKGOLDENROD }, + { "darkgray", "darkgray", THTMLCOL, COL_SM_DARKGRAY }, + { "darkgreen", "darkgreen", THTMLCOL, COL_SM_DARKGREEN }, + { "darkgrey", "darkgrey", THTMLCOL, COL_SM_DARKGREY }, + { "darkkhaki", "darkkhaki", THTMLCOL, COL_SM_DARKKHAKI }, + { "darkmagenta", "darkmagenta", THTMLCOL, COL_SM_DARKMAGENTA }, + { "darkolivegreen", "darkolivegreen", THTMLCOL, COL_SM_DARKOLIVEGREEN }, + { "darkorange", "darkorange", THTMLCOL, COL_SM_DARKORANGE }, + { "darkorchid", "darkorchid", THTMLCOL, COL_SM_DARKORCHID }, + { "darkred", "darkred", THTMLCOL, COL_SM_DARKRED }, + { "darksalmon", "darksalmon", THTMLCOL, COL_SM_DARKSALMON }, + { "darkseagreen", "darkseagreen", THTMLCOL, COL_SM_DARKSEAGREEN }, + { "darkslateblue", "darkslateblue", THTMLCOL, COL_SM_DARKSLATEBLUE }, + { "darkslategray", "darkslategray", THTMLCOL, COL_SM_DARKSLATEGRAY }, + { "darkslategrey", "darkslategrey", THTMLCOL, COL_SM_DARKSLATEGREY }, + { "darkturquoise", "darkturquoise", THTMLCOL, COL_SM_DARKTURQUOISE }, + { "darkviolet", "darkviolet", THTMLCOL, COL_SM_DARKVIOLET }, { "debian", "", TICONICCOL, COL_SM_DEBIAN_MAGENTA }, - { "dblack", "Black", TDVIPSNAMESCOL, COL_SM_BLACK }, - { "dblue", "Blue", TDVIPSNAMESCOL, COL_SM_BLACK }, + { "deeppink", "deeppink", THTMLCOL, COL_SM_DEEPPINK }, + { "deepskyblue", "deepskyblue", THTMLCOL, COL_SM_DEEPSKYBLUE }, + { "dimgray", "dimgray", THTMLCOL, COL_SM_DIMGRAY }, + { "dimgrey", "dimgrey", THTMLCOL, COL_SM_DIMGREY }, + { "dodgerblue", "dodgerblue", THTMLCOL, COL_SM_DODGERBLUE }, + { "dvip", "dvip", TDVIPSNAMESCOL, COL_SM_BLACK }, + { "firebrick", "firebrick", THTMLCOL, COL_SM_FIREBRICK }, + { "floralwhite", "floralwhite", THTMLCOL, COL_SM_FLORALWHITE }, + { "forestgreen", "forestgreen", THTMLCOL, COL_SM_FORESTGREEN }, { "fuchsia", "fuchsia", THTMLCOL, COL_SM_FUCHSIA }, + { "gainsboro", "gainsboro", THTMLCOL, COL_SM_GAINSBORO }, + { "ghostwhite", "ghostwhite", THTMLCOL, COL_SM_GHOSTWHITE }, + { "gold", "gold", THTMLCOL, COL_SM_GOLD }, + { "goldenrod", "goldenrod", THTMLCOL, COL_SM_GOLDENROD }, { "gray", "gray", THTMLCOL, COL_SM_GRAY }, { "green", "green", THTMLCOL, COL_SM_GREEN }, + { "greenyellow", "greenyellow", THTMLCOL, COL_SM_GREENYELLOW }, + { "grey", "grey", THTMLCOL, COL_SM_GREY }, { "hex", "hex", THEX, COL_SM_BLACK }, + { "honeydew", "honeydew", THTMLCOL, COL_SM_HONEYDEW }, + { "hotpink", "hotpink", THTMLCOL, COL_SM_HOTPINK }, + { "indianred", "indianred", THTMLCOL, COL_SM_INDIANRED }, + { "indigo", "indigo", THTMLCOL, COL_SM_INDIGO }, + { "ivory", "ivory", THTMLCOL, COL_SM_IVORY }, + { "khaki", "khaki", THTMLCOL, COL_SM_KHAKI }, + { "lavender", "lavender", THTMLCOL, COL_SM_LAVENDER }, + { "lavenderblush", "lavenderblush", THTMLCOL, COL_SM_LAVENDERBLUSH }, + { "lawngreen", "lawngreen", THTMLCOL, COL_SM_LAWNGREEN }, + { "lemonchiffon", "lemonchiffon", THTMLCOL, COL_SM_LEMONCHIFFON }, + { "lightblue", "lightblue", THTMLCOL, COL_SM_LIGHTBLUE }, + { "lightcoral", "lightcoral", THTMLCOL, COL_SM_LIGHTCORAL }, + { "lightcyan", "lightcyan", THTMLCOL, COL_SM_LIGHTCYAN }, + { "lightgoldenrodyellow", "lightgoldenrodyellow", THTMLCOL, COL_SM_LIGHTGOLDENRODYELLOW }, + { "lightgray", "lightgray", THTMLCOL, COL_SM_LIGHTGRAY }, + { "lightgreen", "lightgreen", THTMLCOL, COL_SM_LIGHTGREEN }, + { "lightgrey", "lightgrey", THTMLCOL, COL_SM_LIGHTGREY }, + { "lightpink", "lightpink", THTMLCOL, COL_SM_LIGHTPINK }, + { "lightsalmon", "lightsalmon", THTMLCOL, COL_SM_LIGHTSALMON }, + { "lightseagreen", "lightseagreen", THTMLCOL, COL_SM_LIGHTSEAGREEN }, + { "lightskyblue", "lightskyblue", THTMLCOL, COL_SM_LIGHTSKYBLUE }, + { "lightslategray", "lightslategray", THTMLCOL, COL_SM_LIGHTSLATEGRAY }, + { "lightslategrey", "lightslategrey", THTMLCOL, COL_SM_LIGHTSLATEGREY }, + { "lightsteelblue", "lightsteelblue", THTMLCOL, COL_SM_LIGHTSTEELBLUE }, + { "lightyellow", "lightyellow", THTMLCOL, COL_SM_LIGHTYELLOW }, { "lime", "lime", THTMLCOL, COL_SM_LIME }, + { "limegreen", "limegreen", THTMLCOL, COL_SM_LIMEGREEN }, + { "linen", "linen", THTMLCOL, COL_SM_LINEN }, { "lo", "", TICONICCOL, COL_SM_LO_GREEN }, - { "magenta", "magenta", THTMLCOL, COL_SM_FUCHSIA }, + { "magenta", "magenta", THTMLCOL, COL_SM_MAGENTA }, { "maroon", "maroon", THTMLCOL, COL_SM_MAROON }, + { "mediumaquamarine", "mediumaquamarine", THTMLCOL, COL_SM_MEDIUMAQUAMARINE }, + { "mediumblue", "mediumblue", THTMLCOL, COL_SM_MEDIUMBLUE }, + { "mediumorchid", "mediumorchid", THTMLCOL, COL_SM_MEDIUMORCHID }, + { "mediumpurple", "mediumpurple", THTMLCOL, COL_SM_MEDIUMPURPLE }, + { "mediumseagreen", "mediumseagreen", THTMLCOL, COL_SM_MEDIUMSEAGREEN }, + { "mediumslateblue", "mediumslateblue", THTMLCOL, COL_SM_MEDIUMSLATEBLUE }, + { "mediumspringgreen", "mediumspringgreen", THTMLCOL, COL_SM_MEDIUMSPRINGGREEN }, + { "mediumturquoise", "mediumturquoise", THTMLCOL, COL_SM_MEDIUMTURQUOISE }, + { "mediumvioletred", "mediumvioletred", THTMLCOL, COL_SM_MEDIUMVIOLETRED }, + { "midnightblue", "midnightblue", THTMLCOL, COL_SM_MIDNIGHTBLUE }, + { "mintcream", "mintcream", THTMLCOL, COL_SM_MINTCREAM }, + { "mistyrose", "mistyrose", THTMLCOL, COL_SM_MISTYROSE }, + { "moccasin", "moccasin", THTMLCOL, COL_SM_MOCCASIN }, + { "navajowhite", "navajowhite", THTMLCOL, COL_SM_NAVAJOWHITE }, { "navy", "navy", THTMLCOL, COL_SM_NAVY }, + { "oldlace", "oldlace", THTMLCOL, COL_SM_OLDLACE }, { "olive", "olive", THTMLCOL, COL_SM_OLIVE }, + { "olivedrab", "olivedrab", THTMLCOL, COL_SM_OLIVEDRAB }, + { "orange", "orange", THTMLCOL, COL_SM_ORANGE }, + { "orangered", "orangered", THTMLCOL, COL_SM_ORANGERED }, + { "orchid", "orchid", THTMLCOL, COL_SM_ORCHID }, + { "palegoldenrod", "palegoldenrod", THTMLCOL, COL_SM_PALEGOLDENROD }, + { "palegreen", "palegreen", THTMLCOL, COL_SM_PALEGREEN }, + { "paleturquoise", "paleturquoise", THTMLCOL, COL_SM_PALETURQUOISE }, + { "palevioletred", "palevioletred", THTMLCOL, COL_SM_PALEVIOLETRED }, + { "papayawhip", "papayawhip", THTMLCOL, COL_SM_PAPAYAWHIP }, + { "peachpuff", "peachpuff", THTMLCOL, COL_SM_PEACHPUFF }, + { "peru", "peru", THTMLCOL, COL_SM_PERU }, + { "pink", "pink", THTMLCOL, COL_SM_PINK }, + { "plum", "plum", THTMLCOL, COL_SM_PLUM }, + { "powderblue", "powderblue", THTMLCOL, COL_SM_POWDERBLUE }, { "purple", "purple", THTMLCOL, COL_SM_PURPLE }, { "rebeccapurple", "rebeccapurple", THTMLCOL, COL_SM_REBECCAPURPLE }, { "red", "red", THTMLCOL, COL_SM_RED }, { "rgb", "rgb", TRGB, COL_AUTO }, { "rgba", "rgba", TRGBA, COL_AUTO }, + { "rosybrown", "rosybrown", THTMLCOL, COL_SM_ROSYBROWN }, + { "royalblue", "royalblue", THTMLCOL, COL_SM_ROYALBLUE }, + { "saddlebrown", "saddlebrown", THTMLCOL, COL_SM_SADDLEBROWN }, + { "salmon", "salmon", THTMLCOL, COL_SM_SALMON }, + { "sandybrown", "sandybrown", THTMLCOL, COL_SM_SANDYBROWN }, + { "seagreen", "seagreen", THTMLCOL, COL_SM_SEAGREEN }, + { "seashell", "seashell", THTMLCOL, COL_SM_SEASHELL }, + { "sienna", "sienna", THTMLCOL, COL_SM_SIENNA }, { "silver", "silver", THTMLCOL, COL_SM_SILVER }, + { "skyblue", "skyblue", THTMLCOL, COL_SM_SKYBLUE }, + { "slateblue", "slateblue", THTMLCOL, COL_SM_SLATEBLUE }, + { "slategray", "slategray", THTMLCOL, COL_SM_SLATEGRAY }, + { "slategrey", "slategrey", THTMLCOL, COL_SM_SLATEGREY }, + { "snow", "snow", THTMLCOL, COL_SM_SNOW }, + { "springgreen", "springgreen", THTMLCOL, COL_SM_SPRINGGREEN }, + { "steelblue", "steelblue", THTMLCOL, COL_SM_STEELBLUE }, + { "tan", "tan", THTMLCOL, COL_SM_TAN }, { "teal", "teal", THTMLCOL, COL_SM_TEAL }, + { "thistle", "thistle", THTMLCOL, COL_SM_THISTLE }, + { "tomato", "tomato", THTMLCOL, COL_SM_TOMATO }, + { "turquoise", "turquoise", THTMLCOL, COL_SM_TURQUOISE }, { "ubuntu", "", TICONICCOL, COL_SM_UBUNTU_ORANGE }, + { "violet", "COL_SM_VIOLET", THTMLCOL, COL_SM_VIOLET }, + { "wheat", "wheat", THTMLCOL, COL_SM_WHEAT }, { "white", "white", THTMLCOL, COL_SM_WHITE }, - { "yellow", "yellow", THTMLCOL, COL_SM_YELLOW } }; + { "whitesmoke", "whitesmoke", THTMLCOL, COL_SM_WHITESMOKE }, + { "yellow", "yellow", THTMLCOL, COL_SM_YELLOW }, + { "yellowgreen", "yellowgreen", THTMLCOL, COL_SM_YELLOWGREEN } }; const SmColorTokenTableEntry starmathdatabase::aColorTokenTableHTML[] - = { { "aqua", "aqua", THTMLCOL, COL_SM_AQUA }, + = { { "aliceblue", "aliceblue", THTMLCOL, COL_SM_ALICEBLUE }, + { "antiquewhite", "antiquewhite", THTMLCOL, COL_SM_ANTIQUEWHITE }, + { "aqua", "aqua", THTMLCOL, COL_SM_AQUA }, + { "aquamarine", "aquamarine", THTMLCOL, COL_SM_AQUAMARINE }, + { "azure", "azure", THTMLCOL, COL_SM_AZURE }, + { "beige", "beige", THTMLCOL, COL_SM_BEIGE }, + { "bisque", "bisque", THTMLCOL, COL_SM_BISQUE }, { "black", "black", THTMLCOL, COL_SM_BLACK }, + { "blanchedalmond", "blanchedalmond", THTMLCOL, COL_SM_BLANCHEDALMOND }, { "blue", "blue", THTMLCOL, COL_SM_BLUE }, - { "cyan", "cyan", THTMLCOL, COL_SM_BLACK }, + { "blueviolet", "blueviolet", THTMLCOL, COL_SM_BLUEVIOLET }, + { "brown", "brown", THTMLCOL, COL_SM_BROWN }, + { "burlywood", "burlywood", THTMLCOL, COL_SM_BURLYWOOD }, + { "cadetblue", "cadetblue", THTMLCOL, COL_SM_CADETBLUE }, + { "chartreuse", "chartreuse", THTMLCOL, COL_SM_CHARTREUSE }, + { "chocolate", "chocolate", THTMLCOL, COL_SM_CHOCOLATE }, + { "coral", "coral", THTMLCOL, COL_SM_CORAL }, + { "cornflowerblue", "cornflowerblue", THTMLCOL, COL_SM_CORNFLOWERBLUE }, + { "cornsilk", "cornsilk", THTMLCOL, COL_SM_CORNSILK }, + { "crimson", "crimson", THTMLCOL, COL_SM_CRIMSON }, + { "cyan", "cyan", THTMLCOL, COL_SM_CYAN }, + { "darkblue", "darkblue", THTMLCOL, COL_SM_DARKBLUE }, + { "darkcyan", "darkcyan", THTMLCOL, COL_SM_DARKCYAN }, + { "darkgoldenrod", "darkgoldenrod", THTMLCOL, COL_SM_DARKGOLDENROD }, + { "darkgray", "darkgray", THTMLCOL, COL_SM_DARKGRAY }, + { "darkgreen", "darkgreen", THTMLCOL, COL_SM_DARKGREEN }, + { "darkgrey", "darkgrey", THTMLCOL, COL_SM_DARKGREY }, + { "darkkhaki", "darkkhaki", THTMLCOL, COL_SM_DARKKHAKI }, + { "darkmagenta", "darkmagenta", THTMLCOL, COL_SM_DARKMAGENTA }, + { "darkolivegreen", "darkolivegreen", THTMLCOL, COL_SM_DARKOLIVEGREEN }, + { "darkorange", "darkorange", THTMLCOL, COL_SM_DARKORANGE }, + { "darkorchid", "darkorchid", THTMLCOL, COL_SM_DARKORCHID }, + { "darkred", "darkred", THTMLCOL, COL_SM_DARKRED }, + { "darksalmon", "darksalmon", THTMLCOL, COL_SM_DARKSALMON }, + { "darkseagreen", "darkseagreen", THTMLCOL, COL_SM_DARKSEAGREEN }, + { "darkslateblue", "darkslateblue", THTMLCOL, COL_SM_DARKSLATEBLUE }, + { "darkslategray", "darkslategray", THTMLCOL, COL_SM_DARKSLATEGRAY }, + { "darkslategrey", "darkslategrey", THTMLCOL, COL_SM_DARKSLATEGREY }, + { "darkturquoise", "darkturquoise", THTMLCOL, COL_SM_DARKTURQUOISE }, + { "darkviolet", "darkviolet", THTMLCOL, COL_SM_DARKVIOLET }, + { "deeppink", "deeppink", THTMLCOL, COL_SM_DEEPPINK }, + { "deepskyblue", "deepskyblue", THTMLCOL, COL_SM_DEEPSKYBLUE }, + { "dimgray", "dimgray", THTMLCOL, COL_SM_DIMGRAY }, + { "dimgrey", "dimgrey", THTMLCOL, COL_SM_DIMGREY }, + { "dodgerblue", "dodgerblue", THTMLCOL, COL_SM_DODGERBLUE }, + { "firebrick", "firebrick", THTMLCOL, COL_SM_FIREBRICK }, + { "floralwhite", "floralwhite", THTMLCOL, COL_SM_FLORALWHITE }, + { "forestgreen", "forestgreen", THTMLCOL, COL_SM_FORESTGREEN }, { "fuchsia", "fuchsia", THTMLCOL, COL_SM_FUCHSIA }, + { "gainsboro", "gainsboro", THTMLCOL, COL_SM_GAINSBORO }, + { "ghostwhite", "ghostwhite", THTMLCOL, COL_SM_GHOSTWHITE }, + { "gold", "gold", THTMLCOL, COL_SM_GOLD }, + { "goldenrod", "goldenrod", THTMLCOL, COL_SM_GOLDENROD }, { "gray", "gray", THTMLCOL, COL_SM_GRAY }, { "green", "green", THTMLCOL, COL_SM_GREEN }, - { "hex", "hex", THEX, COL_SM_BLACK }, + { "greenyellow", "greenyellow", THTMLCOL, COL_SM_GREENYELLOW }, + { "grey", "grey", THTMLCOL, COL_SM_GREY }, + { "honeydew", "honeydew", THTMLCOL, COL_SM_HONEYDEW }, + { "hotpink", "hotpink", THTMLCOL, COL_SM_HOTPINK }, + { "indianred", "indianred", THTMLCOL, COL_SM_INDIANRED }, + { "indigo", "indigo", THTMLCOL, COL_SM_INDIGO }, + { "ivory", "ivory", THTMLCOL, COL_SM_IVORY }, + { "khaki", "khaki", THTMLCOL, COL_SM_KHAKI }, + { "lavender", "lavender", THTMLCOL, COL_SM_LAVENDER }, + { "lavenderblush", "lavenderblush", THTMLCOL, COL_SM_LAVENDERBLUSH }, + { "lawngreen", "lawngreen", THTMLCOL, COL_SM_LAWNGREEN }, + { "lemonchiffon", "lemonchiffon", THTMLCOL, COL_SM_LEMONCHIFFON }, + { "lightblue", "lightblue", THTMLCOL, COL_SM_LIGHTBLUE }, + { "lightcoral", "lightcoral", THTMLCOL, COL_SM_LIGHTCORAL }, + { "lightcyan", "lightcyan", THTMLCOL, COL_SM_LIGHTCYAN }, + { "lightgoldenrodyellow", "lightgoldenrodyellow", THTMLCOL, COL_SM_LIGHTGOLDENRODYELLOW }, + { "lightgray", "lightgray", THTMLCOL, COL_SM_LIGHTGRAY }, + { "lightgreen", "lightgreen", THTMLCOL, COL_SM_LIGHTGREEN }, + { "lightgrey", "lightgrey", THTMLCOL, COL_SM_LIGHTGREY }, + { "lightpink", "lightpink", THTMLCOL, COL_SM_LIGHTPINK }, + { "lightsalmon", "lightsalmon", THTMLCOL, COL_SM_LIGHTSALMON }, + { "lightseagreen", "lightseagreen", THTMLCOL, COL_SM_LIGHTSEAGREEN }, + { "lightskyblue", "lightskyblue", THTMLCOL, COL_SM_LIGHTSKYBLUE }, + { "lightslategray", "lightslategray", THTMLCOL, COL_SM_LIGHTSLATEGRAY }, + { "lightslategrey", "lightslategrey", THTMLCOL, COL_SM_LIGHTSLATEGREY }, + { "lightsteelblue", "lightsteelblue", THTMLCOL, COL_SM_LIGHTSTEELBLUE }, + { "lightyellow", "lightyellow", THTMLCOL, COL_SM_LIGHTYELLOW }, { "lime", "lime", THTMLCOL, COL_SM_LIME }, - { "magenta", "magenta", THTMLCOL, COL_SM_FUCHSIA }, + { "limegreen", "limegreen", THTMLCOL, COL_SM_LIMEGREEN }, + { "linen", "linen", THTMLCOL, COL_SM_LINEN }, + { "magenta", "magenta", THTMLCOL, COL_SM_MAGENTA }, { "maroon", "maroon", THTMLCOL, COL_SM_MAROON }, + { "mediumaquamarine", "mediumaquamarine", THTMLCOL, COL_SM_MEDIUMAQUAMARINE }, + { "mediumblue", "mediumblue", THTMLCOL, COL_SM_MEDIUMBLUE }, + { "mediumorchid", "mediumorchid", THTMLCOL, COL_SM_MEDIUMORCHID }, + { "mediumpurple", "mediumpurple", THTMLCOL, COL_SM_MEDIUMPURPLE }, + { "mediumseagreen", "mediumseagreen", THTMLCOL, COL_SM_MEDIUMSEAGREEN }, + { "mediumslateblue", "mediumslateblue", THTMLCOL, COL_SM_MEDIUMSLATEBLUE }, + { "mediumspringgreen", "mediumspringgreen", THTMLCOL, COL_SM_MEDIUMSPRINGGREEN }, + { "mediumturquoise", "mediumturquoise", THTMLCOL, COL_SM_MEDIUMTURQUOISE }, + { "mediumvioletred", "mediumvioletred", THTMLCOL, COL_SM_MEDIUMVIOLETRED }, + { "midnightblue", "midnightblue", THTMLCOL, COL_SM_MIDNIGHTBLUE }, + { "mintcream", "mintcream", THTMLCOL, COL_SM_MINTCREAM }, + { "mistyrose", "mistyrose", THTMLCOL, COL_SM_MISTYROSE }, + { "moccasin", "moccasin", THTMLCOL, COL_SM_MOCCASIN }, + { "navajowhite", "navajowhite", THTMLCOL, COL_SM_NAVAJOWHITE }, { "navy", "navy", THTMLCOL, COL_SM_NAVY }, + { "oldlace", "oldlace", THTMLCOL, COL_SM_OLDLACE }, { "olive", "olive", THTMLCOL, COL_SM_OLIVE }, + { "olivedrab", "olivedrab", THTMLCOL, COL_SM_OLIVEDRAB }, + { "orange", "orange", THTMLCOL, COL_SM_ORANGE }, + { "orangered", "orangered", THTMLCOL, COL_SM_ORANGERED }, + { "orchid", "orchid", THTMLCOL, COL_SM_ORCHID }, + { "palegoldenrod", "palegoldenrod", THTMLCOL, COL_SM_PALEGOLDENROD }, + { "palegreen", "palegreen", THTMLCOL, COL_SM_PALEGREEN }, + { "paleturquoise", "paleturquoise", THTMLCOL, COL_SM_PALETURQUOISE }, + { "palevioletred", "palevioletred", THTMLCOL, COL_SM_PALEVIOLETRED }, + { "papayawhip", "papayawhip", THTMLCOL, COL_SM_PAPAYAWHIP }, + { "peachpuff", "peachpuff", THTMLCOL, COL_SM_PEACHPUFF }, + { "peru", "peru", THTMLCOL, COL_SM_PERU }, + { "pink", "pink", THTMLCOL, COL_SM_PINK }, + { "plum", "plum", THTMLCOL, COL_SM_PLUM }, + { "powderblue", "powderblue", THTMLCOL, COL_SM_POWDERBLUE }, { "purple", "purple", THTMLCOL, COL_SM_PURPLE }, { "rebeccapurple", "rebeccapurple", THTMLCOL, COL_SM_REBECCAPURPLE }, { "red", "red", THTMLCOL, COL_SM_RED }, + { "rosybrown", "rosybrown", THTMLCOL, COL_SM_ROSYBROWN }, + { "royalblue", "royalblue", THTMLCOL, COL_SM_ROYALBLUE }, + { "saddlebrown", "saddlebrown", THTMLCOL, COL_SM_SADDLEBROWN }, + { "salmon", "salmon", THTMLCOL, COL_SM_SALMON }, + { "sandybrown", "sandybrown", THTMLCOL, COL_SM_SANDYBROWN }, + { "seagreen", "seagreen", THTMLCOL, COL_SM_SEAGREEN }, + { "seashell", "seashell", THTMLCOL, COL_SM_SEASHELL }, + { "sienna", "sienna", THTMLCOL, COL_SM_SIENNA }, { "silver", "silver", THTMLCOL, COL_SM_SILVER }, + { "skyblue", "skyblue", THTMLCOL, COL_SM_SKYBLUE }, + { "slateblue", "slateblue", THTMLCOL, COL_SM_SLATEBLUE }, + { "slategray", "slategray", THTMLCOL, COL_SM_SLATEGRAY }, + { "slategrey", "slategrey", THTMLCOL, COL_SM_SLATEGREY }, + { "snow", "snow", THTMLCOL, COL_SM_SNOW }, + { "springgreen", "springgreen", THTMLCOL, COL_SM_SPRINGGREEN }, + { "steelblue", "steelblue", THTMLCOL, COL_SM_STEELBLUE }, + { "tan", "tan", THTMLCOL, COL_SM_TAN }, { "teal", "teal", THTMLCOL, COL_SM_TEAL }, + { "thistle", "thistle", THTMLCOL, COL_SM_THISTLE }, + { "tomato", "tomato", THTMLCOL, COL_SM_TOMATO }, + { "turquoise", "turquoise", THTMLCOL, COL_SM_TURQUOISE }, + { "violet", "COL_SM_VIOLET", THTMLCOL, COL_SM_VIOLET }, + { "wheat", "wheat", THTMLCOL, COL_SM_WHEAT }, { "white", "white", THTMLCOL, COL_SM_WHITE }, - { "yellow", "yellow", THTMLCOL, COL_SM_YELLOW } }; + { "whitesmoke", "whitesmoke", THTMLCOL, COL_SM_WHITESMOKE }, + { "yellow", "yellow", THTMLCOL, COL_SM_YELLOW }, + { "yellowgreen", "yellowgreen", THTMLCOL, COL_SM_YELLOWGREEN } }; -const SmColorTokenTableEntry starmathdatabase::aColorTokenTableDVIPSNAMES[] = { - { "apricot", "Apricot", TDVIPSNAMESCOL, COL_SM_DIV_APRICOT }, - { "aquamarine", "Aquamarine", TDVIPSNAMESCOL, COL_SM_DIV_AQUAMARINE }, - { "bittersweet", "Bittersweet", TDVIPSNAMESCOL, COL_SM_DIV_BITTERSWEET }, - { "dblack", "Black", TDVIPSNAMESCOL, COL_SM_BLACK }, - { "dblue", "Blue", TDVIPSNAMESCOL, COL_SM_BLACK }, -}; +const SmColorTokenTableEntry starmathdatabase::aColorTokenTableDVIPSNAMES[] + = { { "apricot", "Apricot", TDVIPSNAMESCOL, COL_SM_DIV_APRICOT }, + { "aquamarine", "Aquamarine", TDVIPSNAMESCOL, COL_SM_DIV_AQUAMARINE }, + { "bittersweet", "Bittersweet", TDVIPSNAMESCOL, COL_SM_DIV_BITTERSWEET }, + { "black", "Black", TDVIPSNAMESCOL, COL_SM_BLACK }, + { "blue", "Blue", TDVIPSNAMESCOL, COL_SM_BLACK } }; std::unique_ptr<SmColorTokenTableEntry> starmathdatabase::Identify_Color_Parser(sal_uInt32 cColor) { for (auto i = std::begin(aColorTokenTableParse); i < std::end(aColorTokenTableParse); ++i) if (i->equals(cColor)) return std::unique_ptr<SmColorTokenTableEntry>(new SmColorTokenTableEntry(i)); + for (auto i = std::begin(aColorTokenTableDVIPSNAMES); i < std::end(aColorTokenTableDVIPSNAMES); + ++i) + if (i->equals(cColor)) + return std::unique_ptr<SmColorTokenTableEntry>(new SmColorTokenTableEntry(i)); if ((cColor & 0x00FFFFFF) == cColor) return std::unique_ptr<SmColorTokenTableEntry>( new SmColorTokenTableEntry("", "", TRGB, cColor)); @@ -464,34 +720,41 @@ std::unique_ptr<SmColorTokenTableEntry> starmathdatabase::Identify_ColorName_Parser(const OUString& colorname) { if (colorname.isEmpty()) - return nullptr; + return std::unique_ptr<SmColorTokenTableEntry>( + new SmColorTokenTableEntry("", "", TERROR, COL_SM_BLACK)); for (auto i = std::begin(aColorTokenTableParse); i < std::end(aColorTokenTableParse); ++i) if (i->equals(colorname)) return std::unique_ptr<SmColorTokenTableEntry>(new SmColorTokenTableEntry(i)); - return nullptr; + return std::unique_ptr<SmColorTokenTableEntry>( + new SmColorTokenTableEntry("", "", TERROR, COL_SM_BLACK)); } std::unique_ptr<SmColorTokenTableEntry> starmathdatabase::Identify_ColorName_HTML(const OUString& colorname) { if (colorname.isEmpty()) - return nullptr; - for (auto i = std::begin(aColorTokenTableParse); i < std::end(aColorTokenTableParse); ++i) + return std::unique_ptr<SmColorTokenTableEntry>( + new SmColorTokenTableEntry("", "", TERROR, COL_SM_BLACK)); + for (auto i = std::begin(aColorTokenTableHTML); i < std::end(aColorTokenTableHTML); ++i) if (i->equals(colorname)) return std::unique_ptr<SmColorTokenTableEntry>(new SmColorTokenTableEntry(i)); if (colorname[0] == '#' && colorname.getLength() == 7) return std::unique_ptr<SmColorTokenTableEntry>( new SmColorTokenTableEntry("", "", TRGB, colorname.copy(1, 6).toUInt32(16))); - return nullptr; + return std::unique_ptr<SmColorTokenTableEntry>( + new SmColorTokenTableEntry("", "", TERROR, COL_SM_BLACK)); } std::unique_ptr<SmColorTokenTableEntry> starmathdatabase::Identify_ColorName_DVIPSNAMES(const OUString& colorname) { if (colorname.isEmpty()) - return nullptr; - for (auto i = std::begin(aColorTokenTableParse); i < std::end(aColorTokenTableParse); ++i) + return std::unique_ptr<SmColorTokenTableEntry>( + new SmColorTokenTableEntry("", "", TERROR, COL_SM_BLACK)); + for (auto i = std::begin(aColorTokenTableDVIPSNAMES); i < std::end(aColorTokenTableDVIPSNAMES); + ++i) if (i->equals(colorname)) return std::unique_ptr<SmColorTokenTableEntry>(new SmColorTokenTableEntry(i)); - return nullptr; + return std::unique_ptr<SmColorTokenTableEntry>( + new SmColorTokenTableEntry("", "", TERROR, COL_SM_BLACK)); } diff --git a/starmath/source/visitors.cxx b/starmath/source/visitors.cxx index 924690282e42..0fbe4271d477 100644 --- a/starmath/source/visitors.cxx +++ b/starmath/source/visitors.cxx @@ -2135,22 +2135,23 @@ void SmNodeToTextVisitor::Visit( SmFontNode* pNode ) Separate( ); } break; - case THTMLCOL: + case TDVIPSNAMESCOL: - case TICONICCOL: + Append( "color dvip " ); nc = pNode->GetToken().aText.toUInt32(16); + aSmColorTokenTableEntry = starmathdatabase::Identify_Color_Parser( nc ); + Append( aSmColorTokenTableEntry->pIdent ); + break; + case THTMLCOL: + case TICONICCOL: Append( "color " ); + nc = pNode->GetToken().aText.toUInt32(16); aSmColorTokenTableEntry = starmathdatabase::Identify_Color_Parser( nc ); Append( aSmColorTokenTableEntry->pIdent ); break; case TRGB: nc = pNode->GetToken().aText.toUInt32(16); aSmColorTokenTableEntry = starmathdatabase::Identify_Color_Parser( nc ); - if ( aSmColorTokenTableEntry ) { - Append( "color " ); - Append( aSmColorTokenTableEntry->pIdent ); - break; - } Append( "color rgb " ); nb = nc % 256; nc /= 256; @@ -2167,11 +2168,6 @@ void SmNodeToTextVisitor::Visit( SmFontNode* pNode ) case TRGBA: nc = pNode->GetToken().aText.toUInt32(16); aSmColorTokenTableEntry = starmathdatabase::Identify_Color_Parser( nc ); - if ( aSmColorTokenTableEntry ) { - Append( "color " ); - Append( aSmColorTokenTableEntry->pIdent ); - break; - } Append( "color rgba " ); nc = pNode->GetToken().aText.toUInt32(16); nb = nc % 256; @@ -2192,11 +2188,6 @@ void SmNodeToTextVisitor::Visit( SmFontNode* pNode ) case THEX: nc = pNode->GetToken().aText.toUInt32(16); aSmColorTokenTableEntry = starmathdatabase::Identify_Color_Parser( nc ); - if ( aSmColorTokenTableEntry ) { - Append( "color " ); - Append( aSmColorTokenTableEntry->pIdent ); - break; - } Append( "color hex " ); nc = pNode->GetToken().aText.toUInt32(16); Append(OUString::number(nc,16)); |