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>
This commit is contained in:
dante 2020-11-15 10:11:16 +01:00 committed by Noel Grandin
parent 0094423237
commit 0643dab681
11 changed files with 779 additions and 328 deletions

View File

@ -89,7 +89,7 @@ class SmParser
// Moves between tokens inside starmath code.
void NextToken();
void NextTokenColor();
void NextTokenColor(bool dvipload);
void NextTokenFontSize();
sal_Int32 GetTokenIndex() const { return m_nTokenIndex; }
void Replace( sal_Int32 nPos, sal_Int32 nLen, const OUString &rText );

View File

@ -43,9 +43,138 @@ constexpr Color COL_SM_BLUE(0x0000FF);
constexpr Color COL_SM_TEAL(0x008080);
constexpr Color COL_SM_AQUA(0x00FFFF);
/* CSS Level 2 */
// TODO
constexpr Color COL_SM_ORANGE(0xFFA500);
/* CSS Level 3 */
// TODO
constexpr Color COL_SM_ALICEBLUE(0xF0F8FF);
constexpr Color COL_SM_ANTIQUEWHITE(0xFAEBD7);
constexpr Color COL_SM_AQUAMARINE(0x7FFFD4);
constexpr Color COL_SM_AZURE(0xF0FFFF);
constexpr Color COL_SM_BEIGE(0xF5F5DC);
constexpr Color COL_SM_BISQUE(0xFFE4C4);
constexpr Color COL_SM_BLANCHEDALMOND(0xFFEBCD);
constexpr Color COL_SM_BLUEVIOLET(0x8A2BE2);
constexpr Color COL_SM_BROWN(0xA52A2A);
constexpr Color COL_SM_BURLYWOOD(0xDEB887);
constexpr Color COL_SM_CADETBLUE(0x5F9EA0);
constexpr Color COL_SM_CHARTREUSE(0x7FFF00);
constexpr Color COL_SM_CHOCOLATE(0xD2691E);
constexpr Color COL_SM_CORAL(0xFF7F50);
constexpr Color COL_SM_CORNFLOWERBLUE(0x6495ED);
constexpr Color COL_SM_CORNSILK(0xFFF8DC);
constexpr Color COL_SM_CRIMSON(0xDC143C);
constexpr Color COL_SM_CYAN(0x00FFFF);
constexpr Color COL_SM_DARKBLUE(0x00008B);
constexpr Color COL_SM_DARKCYAN(0x008B8B);
constexpr Color COL_SM_DARKGOLDENROD(0xB8860B);
constexpr Color COL_SM_DARKGRAY(0xA9A9A9);
constexpr Color COL_SM_DARKGREEN(0x006400);
constexpr Color COL_SM_DARKGREY(0xA9A9A9);
constexpr Color COL_SM_DARKKHAKI(0xBDB76B);
constexpr Color COL_SM_DARKMAGENTA(0x8B008B);
constexpr Color COL_SM_DARKOLIVEGREEN(0x556B2F);
constexpr Color COL_SM_DARKORANGE(0xFF8C00);
constexpr Color COL_SM_DARKORCHID(0x9932CC);
constexpr Color COL_SM_DARKRED(0x8B0000);
constexpr Color COL_SM_DARKSALMON(0xE9967A);
constexpr Color COL_SM_DARKSEAGREEN(0x8FBC8F);
constexpr Color COL_SM_DARKSLATEBLUE(0x483D8B);
constexpr Color COL_SM_DARKSLATEGRAY(0x2F4F4F);
constexpr Color COL_SM_DARKSLATEGREY(0x2F4F4F);
constexpr Color COL_SM_DARKTURQUOISE(0x00CED1);
constexpr Color COL_SM_DARKVIOLET(0x9400D3);
constexpr Color COL_SM_DEEPPINK(0xFF1493);
constexpr Color COL_SM_DEEPSKYBLUE(0x00BFFF);
constexpr Color COL_SM_DIMGRAY(0x696969);
constexpr Color COL_SM_DIMGREY(0x696969);
constexpr Color COL_SM_DODGERBLUE(0x1E90FF);
constexpr Color COL_SM_FIREBRICK(0xB22222);
constexpr Color COL_SM_FLORALWHITE(0xFFFAF0);
constexpr Color COL_SM_FORESTGREEN(0x228B22);
constexpr Color COL_SM_GAINSBORO(0xDCDCDC);
constexpr Color COL_SM_GHOSTWHITE(0xF8F8FF);
constexpr Color COL_SM_GOLD(0xFFD700);
constexpr Color COL_SM_GOLDENROD(0xDAA520);
constexpr Color COL_SM_GREENYELLOW(0xADFF2F);
constexpr Color COL_SM_GREY(0x808080);
constexpr Color COL_SM_HONEYDEW(0xF0FFF0);
constexpr Color COL_SM_HOTPINK(0xFF69B4);
constexpr Color COL_SM_INDIANRED(0xCD5C5C);
constexpr Color COL_SM_INDIGO(0x4B0082);
constexpr Color COL_SM_IVORY(0xFFFFF0);
constexpr Color COL_SM_KHAKI(0xF0E68C);
constexpr Color COL_SM_LAVENDER(0xE6E6FA);
constexpr Color COL_SM_LAVENDERBLUSH(0xFFF0F5);
constexpr Color COL_SM_LAWNGREEN(0x7CFC00);
constexpr Color COL_SM_LEMONCHIFFON(0xFFFACD);
constexpr Color COL_SM_LIGHTBLUE(0xADD8E6);
constexpr Color COL_SM_LIGHTCORAL(0xF08080);
constexpr Color COL_SM_LIGHTCYAN(0xE0FFFF);
constexpr Color COL_SM_LIGHTGOLDENRODYELLOW(0xFAFAD2);
constexpr Color COL_SM_LIGHTGRAY(0xD3D3D3);
constexpr Color COL_SM_LIGHTGREEN(0x90EE90);
constexpr Color COL_SM_LIGHTGREY(0xD3D3D3);
constexpr Color COL_SM_LIGHTPINK(0xFFB6C1);
constexpr Color COL_SM_LIGHTSALMON(0xFFA07A);
constexpr Color COL_SM_LIGHTSEAGREEN(0x20B2AA);
constexpr Color COL_SM_LIGHTSKYBLUE(0x87CEFA);
constexpr Color COL_SM_LIGHTSLATEGRAY(0x778899);
constexpr Color COL_SM_LIGHTSLATEGREY(0x778899);
constexpr Color COL_SM_LIGHTSTEELBLUE(0xB0C4DE);
constexpr Color COL_SM_LIGHTYELLOW(0xFFFFE0);
constexpr Color COL_SM_LIMEGREEN(0x32CD32);
constexpr Color COL_SM_LINEN(0xFAF0E6);
constexpr Color COL_SM_MAGENTA(0xFF00FF);
constexpr Color COL_SM_MEDIUMAQUAMARINE(0x66CDAA);
constexpr Color COL_SM_MEDIUMBLUE(0x0000CD);
constexpr Color COL_SM_MEDIUMORCHID(0xBA55D3);
constexpr Color COL_SM_MEDIUMPURPLE(0x9370DB);
constexpr Color COL_SM_MEDIUMSEAGREEN(0x3CB371);
constexpr Color COL_SM_MEDIUMSLATEBLUE(0x7B68EE);
constexpr Color COL_SM_MEDIUMSPRINGGREEN(0x00FA9A);
constexpr Color COL_SM_MEDIUMTURQUOISE(0x48D1CC);
constexpr Color COL_SM_MEDIUMVIOLETRED(0xC71585);
constexpr Color COL_SM_MIDNIGHTBLUE(0x191970);
constexpr Color COL_SM_MINTCREAM(0xF5FFFA);
constexpr Color COL_SM_MISTYROSE(0xFFE4E1);
constexpr Color COL_SM_MOCCASIN(0xFFE4B5);
constexpr Color COL_SM_NAVAJOWHITE(0xFFDEAD);
constexpr Color COL_SM_OLDLACE(0xFDF5E6);
constexpr Color COL_SM_OLIVEDRAB(0x6B8E23);
constexpr Color COL_SM_ORANGERED(0xFF4500);
constexpr Color COL_SM_ORCHID(0xDA70D6);
constexpr Color COL_SM_PALEGOLDENROD(0xEEE8AA);
constexpr Color COL_SM_PALEGREEN(0x98FB98);
constexpr Color COL_SM_PALETURQUOISE(0xAFEEEE);
constexpr Color COL_SM_PALEVIOLETRED(0xDB7093);
constexpr Color COL_SM_PAPAYAWHIP(0xFFEFD5);
constexpr Color COL_SM_PEACHPUFF(0xFFDAB9);
constexpr Color COL_SM_PERU(0xCD853F);
constexpr Color COL_SM_PINK(0xFFC0CB);
constexpr Color COL_SM_PLUM(0xDDA0DD);
constexpr Color COL_SM_POWDERBLUE(0xB0E0E6);
constexpr Color COL_SM_ROSYBROWN(0xBC8F8F);
constexpr Color COL_SM_ROYALBLUE(0x4169E1);
constexpr Color COL_SM_SADDLEBROWN(0x8B4513);
constexpr Color COL_SM_SALMON(0xFA8072);
constexpr Color COL_SM_SANDYBROWN(0xF4A460);
constexpr Color COL_SM_SEAGREEN(0x2E8B57);
constexpr Color COL_SM_SEASHELL(0xFFF5EE);
constexpr Color COL_SM_SIENNA(0xA0522D);
constexpr Color COL_SM_SKYBLUE(0x87CEEB);
constexpr Color COL_SM_SLATEBLUE(0x6A5ACD);
constexpr Color COL_SM_SLATEGRAY(0x708090);
constexpr Color COL_SM_SLATEGREY(0x708090);
constexpr Color COL_SM_SNOW(0xFFFAFA);
constexpr Color COL_SM_SPRINGGREEN(0x00FF7F);
constexpr Color COL_SM_STEELBLUE(0x4682B4);
constexpr Color COL_SM_TAN(0xD2B48C);
constexpr Color COL_SM_THISTLE(0xD8BFD8);
constexpr Color COL_SM_TOMATO(0xFF6347);
constexpr Color COL_SM_TURQUOISE(0x40E0D0);
constexpr Color COL_SM_VIOLET(0xEE82EE);
constexpr Color COL_SM_WHEAT(0xF5DEB3);
constexpr Color COL_SM_WHITESMOKE(0xF5F5F5);
constexpr Color COL_SM_YELLOWGREEN(0x9ACD32);
/* CSS Level 4 */
constexpr Color COL_SM_REBECCAPURPLE(0x663399);
/* dvipsnames */
@ -68,8 +197,8 @@ constexpr Color COL_SM_LO_GREEN(0x00A500);
namespace starmathdatabase
{
// Variables containing color information.
extern const SmColorTokenTableEntry aColorTokenTableParse[31];
extern const SmColorTokenTableEntry aColorTokenTableHTML[20];
extern const SmColorTokenTableEntry aColorTokenTableParse[159];
extern const SmColorTokenTableEntry aColorTokenTableHTML[148];
extern const SmColorTokenTableEntry aColorTokenTableDVIPSNAMES[5];
/**

View File

@ -205,6 +205,17 @@
#define RID_COLORX_RGB_HELP NC_("RID_COLORX_RGB_HELP", "Color RGB" )
#define RID_COLORX_RGBA_HELP NC_("RID_COLORX_RGBA_HELP", "Color RGBA" )
#define RID_COLORX_HEX_HELP NC_("RID_COLORX_HEX_HELP", "Color hexadecimal" )
#define RID_COLORX_CORAL_HELP NC_("RID_COLORX_CORAL_HELP", "Color Coral" )
#define RID_COLORX_CRIMSON_HELP NC_("RID_COLORX_CRIMSON_HELP", "Color Crimson" )
#define RID_COLORX_MIDNIGHT_HELP NC_("RID_COLORX_MIDNIGHT_HELP", "Color Midnight blue" )
#define RID_COLORX_VIOLET_HELP NC_("RID_COLORX_VIOLET_HELP", "Color Violet" )
#define RID_COLORX_ORANGE_HELP NC_("RID_COLORX_ORANGE_HELP", "Color Orange" )
#define RID_COLORX_ORANGERED_HELP NC_("RID_COLORX_ORANGERED_HELP", "Color Orangered" )
#define RID_COLORX_SEAGREEN_HELP NC_("RID_COLORX_SEAGREEN_HELP", "Color Seagreen" )
#define RID_COLORX_INDIGO_HELP NC_("RID_COLORX_INDIGO_HELP", "Color Indigo" )
#define RID_COLORX_HOTPINK_HELP NC_("RID_COLORX_HOTPINK_HELP", "Color Hot pink" )
#define RID_COLORX_LAVENDER_HELP NC_("RID_COLORX_LAVENDER_HELP", "Color Lavender" )
#define RID_COLORX_SNOW_HELP NC_("RID_COLORX_SNOW_HELP", "Color Snow" )
#define RID_LRGROUPX_HELP NC_("RID_LRGROUPX_HELP", "Group Brackets" )
#define RID_LRPARENTX_HELP NC_("RID_LRPARENTX_HELP", "Round Brackets" )
#define RID_LRBRACKETX_HELP NC_("RID_LRBRACKETX_HELP", "Square Brackets" )
@ -337,6 +348,17 @@
#define STR_SILVER NC_("STR_SILVER", "silver" )
#define STR_TEAL NC_("STR_TEAL", "teal" )
#define STR_YELLOW NC_("STR_YELLOW", "yellow" )
#define STR_CORAL NC_("STR_CORAL", "coral" )
#define STR_CRIMSON NC_("STR_CRIMSON", "crimson" )
#define STR_MIDNIGHT NC_("STR_MIDNIGHT", "midnight" )
#define STR_VIOLET NC_("STR_VIOLET", "violet" )
#define STR_ORANGE NC_("STR_ORANGE", "orange" )
#define STR_ORANGERED NC_("STR_ORANGERED", "orangered" )
#define STR_LAVENDER NC_("STR_LAVENDER", "lavender" )
#define STR_SNOW NC_("STR_SNOW", "snow" )
#define STR_SEAGREEN NC_("STR_SEAGREEN", "seagreen" )
#define STR_INDIGO NC_("STR_INDIGO", "indigo" )
#define STR_HOTPINK NC_("STR_HOTPINK", "hotpink" )
#define STR_RGB NC_("STR_RGB", "rgb" )
#define STR_RGBA NC_("STR_RGBA", "rgba" )
#define STR_HEX NC_("STR_HEX", "hex" )

View File

@ -16,277 +16,288 @@
#ifndef INCLUDED_STARMATH_INC_STRINGS_HXX
#define INCLUDED_STARMATH_INC_STRINGS_HXX
#define RID_UNDOFORMATNAME "Format"
#define RID_UNDOFORMATNAME "Format"
#define RID_PLUSX "+<?> "
#define RID_MINUSX "-<?> "
#define RID_PLUSMINUSX "+-<?> "
#define RID_MINUSPLUSX "-+<?> "
#define RID_NEGX "neg <?> "
#define RID_XPLUSY "<?> + <?> "
#define RID_XMINUSY "<?> - <?> "
#define RID_XCDOTY "<?> cdot <?> "
#define RID_XTIMESY "<?> times <?> "
#define RID_XSYMTIMESY "<?> * <?> "
#define RID_XSYMDIVIDEY "<?> / <?> "
#define RID_XDIVY "<?> div <?> "
#define RID_XOVERY "{<?>} over {<?>} "
#define RID_FRACXY "frac {<?>} {<?>} "
#define RID_XODIVIDEY "<?> odivide <?> "
#define RID_XODOTY "<?> odot <?> "
#define RID_XOMINUSY "<?> ominus <?> "
#define RID_XOPLUSY "<?> oplus <?> "
#define RID_XOTIMESY "<?> otimes <?> "
#define RID_XANDY "<?> and <?> "
#define RID_XORY "<?> or <?> "
#define RID_XEQY "<?> = <?> "
#define RID_XNEQY "<?> <> <?> "
#define RID_XLTY "<?> < <?> "
#define RID_XGTY "<?> > <?> "
#define RID_XLEY "<?> <= <?> "
#define RID_XGEY "<?> >= <?> "
#define RID_XLESLANTY "<?> leslant <?> "
#define RID_XGESLANTY "<?> geslant <?> "
#define RID_XLLY "<?> << <?> "
#define RID_XGGY "<?> >> <?> "
#define RID_XDEFY "<?> def <?> "
#define RID_XEQUIVY "<?> equiv <?> "
#define RID_XAPPROXY "<?> approx <?> "
#define RID_XSIMY "<?> sim <?> "
#define RID_XSIMEQY "<?> simeq <?> "
#define RID_XPROPY "<?> prop <?> "
#define RID_XORTHOY "<?> ortho <?> "
#define RID_XPARALLELY "<?> parallel <?> "
#define RID_XTOWARDY "<?> toward <?> "
#define RID_XTRANSLY "<?> transl <?> "
#define RID_XTRANSRY "<?> transr <?> "
#define RID_XINY "<?> in <?> "
#define RID_XNOTINY "<?> notin <?> "
#define RID_XOWNSY "<?> owns <?> "
#define RID_XUNIONY "<?> union <?> "
#define RID_XINTERSECTIONY "<?> intersection <?> "
#define RID_XSETMINUSY "<?> setminus <?> "
#define RID_XSETQUOTIENTY "<?> setquotient <?> "
#define RID_XSUBSETY "<?> subset <?> "
#define RID_XSUBSETEQY "<?> subseteq <?> "
#define RID_XSUPSETY "<?> supset <?> "
#define RID_XSUPSETEQY "<?> supseteq <?> "
#define RID_XNSUBSETY "<?> nsubset <?> "
#define RID_XNSUBSETEQY "<?> nsubseteq <?> "
#define RID_XNSUPSETY "<?> nsupset <?> "
#define RID_XNSUPSETEQY "<?> nsupseteq <?> "
#define RID_FUNCX "func func(<?>) "
#define RID_ABSX "abs{<?>} "
#define RID_FACTX "fact{<?>} "
#define RID_SQRTX "sqrt{<?>} "
#define RID_NROOTXY "nroot{<?>}{<?>} "
#define RID_EX "func e^{<?>} "
#define RID_EXPX "exp(<?>) "
#define RID_LNX "ln(<?>) "
#define RID_LOGX "log(<?>) "
#define RID_SINX "sin(<?>) "
#define RID_COSX "cos(<?>) "
#define RID_TANX "tan(<?>) "
#define RID_COTX "cot(<?>) "
#define RID_ARCSINX "arcsin(<?>) "
#define RID_ARCCOSX "arccos(<?>) "
#define RID_ARCTANX "arctan(<?>) "
#define RID_ARCCOTX "arccot(<?>) "
#define RID_SINHX "sinh(<?>) "
#define RID_COSHX "cosh(<?>) "
#define RID_TANHX "tanh(<?>) "
#define RID_COTHX "coth(<?>) "
#define RID_ARSINHX "arsinh(<?>) "
#define RID_ARCOSHX "arcosh(<?>) "
#define RID_ARTANHX "artanh(<?>) "
#define RID_ARCOTHX "arcoth(<?>) "
#define RID_OPERX "oper oper <?> "
#define RID_OPER_FROMX "oper oper from{<?>} <?> "
#define RID_OPER_TOX "oper oper to{<?>} <?> "
#define RID_OPER_FROMTOX "oper oper from{<?>} to{<?>} <?> "
#define RID_SUMX "sum <?> "
#define RID_SUM_FROMX "sum from{<?>} <?> "
#define RID_SUM_TOX "sum to{<?>} <?> "
#define RID_SUM_FROMTOX "sum from{<?>} to{<?>} <?> "
#define RID_PRODX "prod <?> "
#define RID_PROD_FROMX "prod from{<?>} <?> "
#define RID_PROD_TOX "prod to{<?>} <?> "
#define RID_PROD_FROMTOX "prod from{<?>} to{<?>} <?> "
#define RID_COPRODX "coprod <?> "
#define RID_COPROD_FROMX "coprod from{<?>} <?> "
#define RID_COPROD_TOX "coprod to{<?>} <?> "
#define RID_COPROD_FROMTOX "coprod from{<?>} to{<?>} <?> "
#define RID_LIMX "lim <?> "
#define RID_LIM_FROMX "lim from{<?>} <?> "
#define RID_LIM_TOX "lim to{<?>} <?> "
#define RID_LIM_FROMTOX "lim from{<?>} to{<?>} <?> "
#define RID_LIMINFX "liminf <?> "
#define RID_LIMINF_FROMX "liminf from{<?>} <?> "
#define RID_LIMINF_TOX "liminf to{<?>} <?> "
#define RID_LIMINF_FROMTOX "liminf from{<?>} to{<?>} <?> "
#define RID_LIMSUPX "limsup <?> "
#define RID_LIMSUP_FROMX "limsup from{<?>} <?> "
#define RID_LIMSUP_TOX "limsup to{<?>} <?> "
#define RID_LIMSUP_FROMTOX "limsup from{<?>} to{<?>} <?> "
#define RID_EXISTS "exists "
#define RID_NOTEXISTS "notexists "
#define RID_FORALL "forall "
#define RID_INTX "int <?> "
#define RID_INT_FROMX "int from{<?>} <?> "
#define RID_INT_TOX "int to{<?>} <?> "
#define RID_INT_FROMTOX "int from{<?>} to{<?>} <?> "
#define RID_IINTX "iint <?> "
#define RID_IINT_FROMX "iint from{<?>} <?> "
#define RID_IINT_TOX "iint to{<?>} <?> "
#define RID_IINT_FROMTOX "iint from{<?>} to{<?>} <?> "
#define RID_IIINTX "iiint <?> "
#define RID_IIINT_FROMX "iiint from{<?>} <?> "
#define RID_IIINT_TOX "iiint to{<?>} <?> "
#define RID_IIINT_FROMTOX "iiint from{<?>} to{<?>} <?> "
#define RID_LINTX "lint <?> "
#define RID_LINT_FROMX "lint from{<?>} <?> "
#define RID_LINT_TOX "lint to{<?>} <?> "
#define RID_LINT_FROMTOX "lint from{<?>} to{<?>} <?> "
#define RID_LLINTX "llint <?> "
#define RID_LLINT_FROMX "llint from{<?>} <?> "
#define RID_LLINT_TOX "llint to{<?>} <?> "
#define RID_LLINT_FROMTOX "llint from{<?>} to{<?>} <?> "
#define RID_LLLINTX "lllint <?> "
#define RID_LLLINT_FROMX "lllint from{<?>} <?> "
#define RID_LLLINT_TOX "lllint to{<?>} <?> "
#define RID_LLLINT_FROMTOX "lllint from{<?>} to{<?>} <?> "
#define RID_FROMX "from{<?>} <?> "
#define RID_TOX "to{<?>} <?> "
#define RID_FROMXTOY "from{<?>} to{<?>} <?> "
#define RID_ACUTEX "acute <?> "
#define RID_BARX "bar <?> "
#define RID_BREVEX "breve <?> "
#define RID_CHECKX "check <?> "
#define RID_CIRCLEX "circle <?> "
#define RID_DOTX "dot <?> "
#define RID_DDOTX "ddot <?> "
#define RID_DDDOTX "dddot <?> "
#define RID_GRAVEX "grave <?> "
#define RID_HATX "hat <?> "
#define RID_TILDEX "tilde <?> "
#define RID_VECX "vec <?> "
#define RID_HARPOONX "harpoon <?> "
#define RID_UNDERLINEX "underline {<?>} "
#define RID_OVERLINEX "overline {<?>} "
#define RID_OVERSTRIKEX "overstrike {<?>} "
#define RID_PHANTOMX "phantom {<?>} "
#define RID_BOLDX "bold <?> "
#define RID_ITALX "ital <?> "
#define RID_SIZEXY "size <?> {<?>} "
#define RID_FONTXY "font <?> {<?>} "
#define RID_COLORX_BLACK "color black {<?>} "
#define RID_COLORX_BLUE "color blue {<?>} "
#define RID_COLORX_GREEN "color green {<?>} "
#define RID_COLORX_RED "color red {<?>} "
#define RID_COLORX_AQUA "color aqua {<?>} "
#define RID_COLORX_FUCHSIA "color fuchsia {<?>} "
#define RID_COLORX_GRAY "color gray {<?>} "
#define RID_COLORX_LIME "color lime {<?>} "
#define RID_COLORX_MAROON "color maroon {<?>} "
#define RID_COLORX_NAVY "color navy {<?>} "
#define RID_COLORX_OLIVE "color olive {<?>} "
#define RID_COLORX_PURPLE "color purple {<?>} "
#define RID_COLORX_SILVER "color silver {<?>} "
#define RID_COLORX_TEAL "color teal {<?>} "
#define RID_COLORX_YELLOW "color yellow {<?>} "
#define RID_COLORX_RGB "color rgb 0 0 0 {<?>} "
#define RID_COLORX_RGBA "color rgba 0 0 0 0 {<?>} "
#define RID_COLORX_HEX "color hex 000000 {<?>} "
#define RID_LRGROUPX "{<?>} "
#define RID_LRPARENTX "(<?>) "
#define RID_LRBRACKETX "[<?>] "
#define RID_LRDBRACKETX "ldbracket <?> rdbracket "
#define RID_LRBRACEX "lbrace <?> rbrace "
#define RID_LRANGLEX "langle <?> rangle "
#define RID_LRCEILX "lceil <?> rceil "
#define RID_LRFLOORX "lfloor <?> rfloor "
#define RID_LRLINEX "lline <?> rline "
#define RID_LRDLINEX "ldline <?> rdline "
#define RID_LMRANGLEXY "langle <?> mline <?> rangle "
#define RID_SLRPARENTX "left ( <?> right ) "
#define RID_SLRBRACKETX "left [ <?> right ] "
#define RID_SLRDBRACKETX "left ldbracket <?> right rdbracket "
#define RID_SLRBRACEX "left lbrace <?> right rbrace "
#define RID_SLRANGLEX "left langle <?> right rangle "
#define RID_SLRCEILX "left lceil <?> right rceil "
#define RID_SLRFLOORX "left lfloor <?> right rfloor "
#define RID_SLRLINEX "left lline <?> right rline "
#define RID_SLRDLINEX "left ldline <?> right rdline "
#define RID_SLMRANGLEXY "left langle <?> mline <?> right rangle "
#define RID_XEVALUATEDATY "left none {<?>} right rline_{<?>} "
#define RID_XOVERBRACEY "{<?>} overbrace {<?>} "
#define RID_XUNDERBRACEY "{<?>} underbrace {<?>} "
#define RID_EVALX "evaluate <?> "
#define RID_EVAL_FROMX "evaluate {<?>} from{<?>} "
#define RID_EVAL_TOX "evaluate {<?>} to{<?>} "
#define RID_EVAL_FROMTOX "evaluate {<?>} from{<?>} to{<?>} "
#define RID_RSUBX "<?>_{<?>}"
#define RID_RSUPX "<?>^{<?>}"
#define RID_LSUBX "<?> lsub{<?>} "
#define RID_LSUPX "<?> lsup{<?>} "
#define RID_CSUBX "<?> csub{<?>} "
#define RID_CSUPX "<?> csup{<?>} "
#define RID_SBLANK "`"
#define RID_BLANK "~"
#define RID_NEWLINE "newline "
#define RID_BINOMXY "binom{<?>}{<?>} "
#define RID_STACK "stack{<?> # <?> # <?>} "
#define RID_MATRIX "matrix{<?> # <?> ## <?> # <?>} "
#define RID_ALIGNLX "alignl <?> "
#define RID_ALIGNCX "alignc <?> "
#define RID_ALIGNRX "alignr <?> "
#define RID_ALEPH "aleph "
#define RID_EMPTYSET "emptyset "
#define RID_RE "Re "
#define RID_IM "Im "
#define RID_INFINITY "infinity "
#define RID_PARTIAL "partial "
#define RID_NABLA "nabla "
#define RID_WP "wp "
#define RID_LAPLACE "laplace "
#define RID_FOURIER "fourier "
#define RID_DOTSAXIS "dotsaxis "
#define RID_DOTSUP "dotsup "
#define RID_DOTSDOWN "dotsdown "
#define RID_DOTSLOW "dotslow "
#define RID_DOTSVERT "dotsvert "
#define RID_XCIRCY "<?> circ <?> "
#define RID_XWIDESLASHY "{<?>} wideslash {<?>} "
#define RID_XWIDEBSLASHY "{<?>} widebslash {<?>} "
#define RID_XDIVIDESY "<?> divides <?> "
#define RID_XNDIVIDESY "<?> ndivides <?> "
#define RID_DLARROW "<?> dlarrow <?> "
#define RID_DLRARROW "<?> dlrarrow <?> "
#define RID_DRARROW "<?> drarrow <?> "
#define RID_SETN "setN "
#define RID_SETZ "setZ "
#define RID_SETQ "setQ "
#define RID_SETR "setR "
#define RID_SETC "setC "
#define RID_WIDEHATX "widehat {<?>} "
#define RID_WIDETILDEX "widetilde {<?>} "
#define RID_WIDEVECX "widevec {<?>} "
#define RID_WIDEHARPOONX "wideharpoon {<?>} "
#define RID_HBAR "hbar "
#define RID_LAMBDABAR "lambdabar "
#define RID_LEFTARROW "leftarrow "
#define RID_RIGHTARROW "rightarrow "
#define RID_UPARROW "uparrow "
#define RID_DOWNARROW "downarrow "
#define RID_NOSPACE "nospace {<?>} "
#define RID_XPRECEDESY "<?> prec <?> "
#define RID_XPRECEDESEQUALY "<?> preccurlyeq <?> "
#define RID_XPRECEDESEQUIVY "<?> precsim <?> "
#define RID_XSUCCEEDSY "<?> succ <?> "
#define RID_XSUCCEEDSEQUALY "<?> succcurlyeq <?> "
#define RID_XSUCCEEDSEQUIVY "<?> succsim <?> "
#define RID_XNOTPRECEDESY "<?> nprec <?> "
#define RID_XNOTSUCCEEDSY "<?> nsucc <?> "
#define RID_PLUSX "+<?> "
#define RID_MINUSX "-<?> "
#define RID_PLUSMINUSX "+-<?> "
#define RID_MINUSPLUSX "-+<?> "
#define RID_NEGX "neg <?> "
#define RID_XPLUSY "<?> + <?> "
#define RID_XMINUSY "<?> - <?> "
#define RID_XCDOTY "<?> cdot <?> "
#define RID_XTIMESY "<?> times <?> "
#define RID_XSYMTIMESY "<?> * <?> "
#define RID_XSYMDIVIDEY "<?> / <?> "
#define RID_XDIVY "<?> div <?> "
#define RID_XOVERY "{<?>} over {<?>} "
#define RID_FRACXY "frac {<?>} {<?>} "
#define RID_XODIVIDEY "<?> odivide <?> "
#define RID_XODOTY "<?> odot <?> "
#define RID_XOMINUSY "<?> ominus <?> "
#define RID_XOPLUSY "<?> oplus <?> "
#define RID_XOTIMESY "<?> otimes <?> "
#define RID_XANDY "<?> and <?> "
#define RID_XORY "<?> or <?> "
#define RID_XEQY "<?> = <?> "
#define RID_XNEQY "<?> <> <?> "
#define RID_XLTY "<?> < <?> "
#define RID_XGTY "<?> > <?> "
#define RID_XLEY "<?> <= <?> "
#define RID_XGEY "<?> >= <?> "
#define RID_XLESLANTY "<?> leslant <?> "
#define RID_XGESLANTY "<?> geslant <?> "
#define RID_XLLY "<?> << <?> "
#define RID_XGGY "<?> >> <?> "
#define RID_XDEFY "<?> def <?> "
#define RID_XEQUIVY "<?> equiv <?> "
#define RID_XAPPROXY "<?> approx <?> "
#define RID_XSIMY "<?> sim <?> "
#define RID_XSIMEQY "<?> simeq <?> "
#define RID_XPROPY "<?> prop <?> "
#define RID_XORTHOY "<?> ortho <?> "
#define RID_XPARALLELY "<?> parallel <?> "
#define RID_XTOWARDY "<?> toward <?> "
#define RID_XTRANSLY "<?> transl <?> "
#define RID_XTRANSRY "<?> transr <?> "
#define RID_XINY "<?> in <?> "
#define RID_XNOTINY "<?> notin <?> "
#define RID_XOWNSY "<?> owns <?> "
#define RID_XUNIONY "<?> union <?> "
#define RID_XINTERSECTIONY "<?> intersection <?> "
#define RID_XSETMINUSY "<?> setminus <?> "
#define RID_XSETQUOTIENTY "<?> setquotient <?> "
#define RID_XSUBSETY "<?> subset <?> "
#define RID_XSUBSETEQY "<?> subseteq <?> "
#define RID_XSUPSETY "<?> supset <?> "
#define RID_XSUPSETEQY "<?> supseteq <?> "
#define RID_XNSUBSETY "<?> nsubset <?> "
#define RID_XNSUBSETEQY "<?> nsubseteq <?> "
#define RID_XNSUPSETY "<?> nsupset <?> "
#define RID_XNSUPSETEQY "<?> nsupseteq <?> "
#define RID_FUNCX "func func(<?>) "
#define RID_ABSX "abs{<?>} "
#define RID_FACTX "fact{<?>} "
#define RID_SQRTX "sqrt{<?>} "
#define RID_NROOTXY "nroot{<?>}{<?>} "
#define RID_EX "func e^{<?>} "
#define RID_EXPX "exp(<?>) "
#define RID_LNX "ln(<?>) "
#define RID_LOGX "log(<?>) "
#define RID_SINX "sin(<?>) "
#define RID_COSX "cos(<?>) "
#define RID_TANX "tan(<?>) "
#define RID_COTX "cot(<?>) "
#define RID_ARCSINX "arcsin(<?>) "
#define RID_ARCCOSX "arccos(<?>) "
#define RID_ARCTANX "arctan(<?>) "
#define RID_ARCCOTX "arccot(<?>) "
#define RID_SINHX "sinh(<?>) "
#define RID_COSHX "cosh(<?>) "
#define RID_TANHX "tanh(<?>) "
#define RID_COTHX "coth(<?>) "
#define RID_ARSINHX "arsinh(<?>) "
#define RID_ARCOSHX "arcosh(<?>) "
#define RID_ARTANHX "artanh(<?>) "
#define RID_ARCOTHX "arcoth(<?>) "
#define RID_OPERX "oper oper <?> "
#define RID_OPER_FROMX "oper oper from{<?>} <?> "
#define RID_OPER_TOX "oper oper to{<?>} <?> "
#define RID_OPER_FROMTOX "oper oper from{<?>} to{<?>} <?> "
#define RID_SUMX "sum <?> "
#define RID_SUM_FROMX "sum from{<?>} <?> "
#define RID_SUM_TOX "sum to{<?>} <?> "
#define RID_SUM_FROMTOX "sum from{<?>} to{<?>} <?> "
#define RID_PRODX "prod <?> "
#define RID_PROD_FROMX "prod from{<?>} <?> "
#define RID_PROD_TOX "prod to{<?>} <?> "
#define RID_PROD_FROMTOX "prod from{<?>} to{<?>} <?> "
#define RID_COPRODX "coprod <?> "
#define RID_COPROD_FROMX "coprod from{<?>} <?> "
#define RID_COPROD_TOX "coprod to{<?>} <?> "
#define RID_COPROD_FROMTOX "coprod from{<?>} to{<?>} <?> "
#define RID_LIMX "lim <?> "
#define RID_LIM_FROMX "lim from{<?>} <?> "
#define RID_LIM_TOX "lim to{<?>} <?> "
#define RID_LIM_FROMTOX "lim from{<?>} to{<?>} <?> "
#define RID_LIMINFX "liminf <?> "
#define RID_LIMINF_FROMX "liminf from{<?>} <?> "
#define RID_LIMINF_TOX "liminf to{<?>} <?> "
#define RID_LIMINF_FROMTOX "liminf from{<?>} to{<?>} <?> "
#define RID_LIMSUPX "limsup <?> "
#define RID_LIMSUP_FROMX "limsup from{<?>} <?> "
#define RID_LIMSUP_TOX "limsup to{<?>} <?> "
#define RID_LIMSUP_FROMTOX "limsup from{<?>} to{<?>} <?> "
#define RID_EXISTS "exists "
#define RID_NOTEXISTS "notexists "
#define RID_FORALL "forall "
#define RID_INTX "int <?> "
#define RID_INT_FROMX "int from{<?>} <?> "
#define RID_INT_TOX "int to{<?>} <?> "
#define RID_INT_FROMTOX "int from{<?>} to{<?>} <?> "
#define RID_IINTX "iint <?> "
#define RID_IINT_FROMX "iint from{<?>} <?> "
#define RID_IINT_TOX "iint to{<?>} <?> "
#define RID_IINT_FROMTOX "iint from{<?>} to{<?>} <?> "
#define RID_IIINTX "iiint <?> "
#define RID_IIINT_FROMX "iiint from{<?>} <?> "
#define RID_IIINT_TOX "iiint to{<?>} <?> "
#define RID_IIINT_FROMTOX "iiint from{<?>} to{<?>} <?> "
#define RID_LINTX "lint <?> "
#define RID_LINT_FROMX "lint from{<?>} <?> "
#define RID_LINT_TOX "lint to{<?>} <?> "
#define RID_LINT_FROMTOX "lint from{<?>} to{<?>} <?> "
#define RID_LLINTX "llint <?> "
#define RID_LLINT_FROMX "llint from{<?>} <?> "
#define RID_LLINT_TOX "llint to{<?>} <?> "
#define RID_LLINT_FROMTOX "llint from{<?>} to{<?>} <?> "
#define RID_LLLINTX "lllint <?> "
#define RID_LLLINT_FROMX "lllint from{<?>} <?> "
#define RID_LLLINT_TOX "lllint to{<?>} <?> "
#define RID_LLLINT_FROMTOX "lllint from{<?>} to{<?>} <?> "
#define RID_FROMX "from{<?>} <?> "
#define RID_TOX "to{<?>} <?> "
#define RID_FROMXTOY "from{<?>} to{<?>} <?> "
#define RID_ACUTEX "acute <?> "
#define RID_BARX "bar <?> "
#define RID_BREVEX "breve <?> "
#define RID_CHECKX "check <?> "
#define RID_CIRCLEX "circle <?> "
#define RID_DOTX "dot <?> "
#define RID_DDOTX "ddot <?> "
#define RID_DDDOTX "dddot <?> "
#define RID_GRAVEX "grave <?> "
#define RID_HATX "hat <?> "
#define RID_TILDEX "tilde <?> "
#define RID_VECX "vec <?> "
#define RID_HARPOONX "harpoon <?> "
#define RID_UNDERLINEX "underline {<?>} "
#define RID_OVERLINEX "overline {<?>} "
#define RID_OVERSTRIKEX "overstrike {<?>} "
#define RID_PHANTOMX "phantom {<?>} "
#define RID_BOLDX "bold <?> "
#define RID_ITALX "ital <?> "
#define RID_SIZEXY "size <?> {<?>} "
#define RID_FONTXY "font <?> {<?>} "
#define RID_COLORX_BLACK "color black {<?>} "
#define RID_COLORX_BLUE "color blue {<?>} "
#define RID_COLORX_GREEN "color green {<?>} "
#define RID_COLORX_RED "color red {<?>} "
#define RID_COLORX_AQUA "color aqua {<?>} "
#define RID_COLORX_FUCHSIA "color fuchsia {<?>} "
#define RID_COLORX_GRAY "color gray {<?>} "
#define RID_COLORX_LIME "color lime {<?>} "
#define RID_COLORX_MAROON "color maroon {<?>} "
#define RID_COLORX_NAVY "color navy {<?>} "
#define RID_COLORX_OLIVE "color olive {<?>} "
#define RID_COLORX_PURPLE "color purple {<?>} "
#define RID_COLORX_SILVER "color silver {<?>} "
#define RID_COLORX_TEAL "color teal {<?>} "
#define RID_COLORX_YELLOW "color yellow {<?>} "
#define RID_COLORX_RGB "color rgb 0 0 0 {<?>} "
#define RID_COLORX_RGBA "color rgba 0 0 0 0 {<?>} "
#define RID_COLORX_HEX "color hex 000000 {<?>} "
#define RID_COLORX_CORAL "color coral {<?>} "
#define RID_COLORX_CRIMSON "color crimson {<?>} "
#define RID_COLORX_MIDNIGHT "color mignightblue {<?>} "
#define RID_COLORX_VIOLET "color violet {<?>} "
#define RID_COLORX_ORANGE "color orange {<?>} "
#define RID_COLORX_ORANGERED "color orangered {<?>} "
#define RID_COLORX_SEAGREEN "color seagreen {<?>} "
#define RID_COLORX_INDIGO "color indigo {<?>} "
#define RID_COLORX_HOTPINK "color hotpink {<?>} "
#define RID_COLORX_LAVENDER "color lavender {<?>} "
#define RID_COLORX_SNOW "color snow {<?>} "
#define RID_LRGROUPX "{<?>} "
#define RID_LRPARENTX "(<?>) "
#define RID_LRBRACKETX "[<?>] "
#define RID_LRDBRACKETX "ldbracket <?> rdbracket "
#define RID_LRBRACEX "lbrace <?> rbrace "
#define RID_LRANGLEX "langle <?> rangle "
#define RID_LRCEILX "lceil <?> rceil "
#define RID_LRFLOORX "lfloor <?> rfloor "
#define RID_LRLINEX "lline <?> rline "
#define RID_LRDLINEX "ldline <?> rdline "
#define RID_LMRANGLEXY "langle <?> mline <?> rangle "
#define RID_SLRPARENTX "left ( <?> right ) "
#define RID_SLRBRACKETX "left [ <?> right ] "
#define RID_SLRDBRACKETX "left ldbracket <?> right rdbracket "
#define RID_SLRBRACEX "left lbrace <?> right rbrace "
#define RID_SLRANGLEX "left langle <?> right rangle "
#define RID_SLRCEILX "left lceil <?> right rceil "
#define RID_SLRFLOORX "left lfloor <?> right rfloor "
#define RID_SLRLINEX "left lline <?> right rline "
#define RID_SLRDLINEX "left ldline <?> right rdline "
#define RID_SLMRANGLEXY "left langle <?> mline <?> right rangle "
#define RID_XEVALUATEDATY "left none {<?>} right rline_{<?>} "
#define RID_XOVERBRACEY "{<?>} overbrace {<?>} "
#define RID_XUNDERBRACEY "{<?>} underbrace {<?>} "
#define RID_EVALX "evaluate <?> "
#define RID_EVAL_FROMX "evaluate {<?>} from{<?>} "
#define RID_EVAL_TOX "evaluate {<?>} to{<?>} "
#define RID_EVAL_FROMTOX "evaluate {<?>} from{<?>} to{<?>} "
#define RID_RSUBX "<?>_{<?>} "
#define RID_RSUPX "<?>^{<?>} "
#define RID_LSUBX "<?> lsub{<?>} "
#define RID_LSUPX "<?> lsup{<?>} "
#define RID_CSUBX "<?> csub{<?>} "
#define RID_CSUPX "<?> csup{<?>} "
#define RID_SBLANK "` "
#define RID_BLANK "~ "
#define RID_NEWLINE "newline "
#define RID_BINOMXY "binom{<?>}{<?>} "
#define RID_STACK "stack{<?> # <?> # <?>} "
#define RID_MATRIX "matrix{<?> # <?> ## <?> # <?>} "
#define RID_ALIGNLX "alignl <?> "
#define RID_ALIGNCX "alignc <?> "
#define RID_ALIGNRX "alignr <?> "
#define RID_ALEPH "aleph "
#define RID_EMPTYSET "emptyset "
#define RID_RE "Re "
#define RID_IM "Im "
#define RID_INFINITY "infinity "
#define RID_PARTIAL "partial "
#define RID_NABLA "nabla "
#define RID_WP "wp "
#define RID_LAPLACE "laplace "
#define RID_FOURIER "fourier "
#define RID_DOTSAXIS "dotsaxis "
#define RID_DOTSUP "dotsup "
#define RID_DOTSDOWN "dotsdown "
#define RID_DOTSLOW "dotslow "
#define RID_DOTSVERT "dotsvert "
#define RID_XCIRCY "<?> circ <?> "
#define RID_XWIDESLASHY "{<?>} wideslash {<?>} "
#define RID_XWIDEBSLASHY "{<?>} widebslash {<?>} "
#define RID_XDIVIDESY "<?> divides <?> "
#define RID_XNDIVIDESY "<?> ndivides <?> "
#define RID_DLARROW "<?> dlarrow <?> "
#define RID_DLRARROW "<?> dlrarrow <?> "
#define RID_DRARROW "<?> drarrow <?> "
#define RID_SETN "setN "
#define RID_SETZ "setZ "
#define RID_SETQ "setQ "
#define RID_SETR "setR "
#define RID_SETC "setC "
#define RID_WIDEHATX "widehat {<?>} "
#define RID_WIDETILDEX "widetilde {<?>} "
#define RID_WIDEVECX "widevec {<?>} "
#define RID_WIDEHARPOONX "wideharpoon {<?>} "
#define RID_HBAR "hbar "
#define RID_LAMBDABAR "lambdabar "
#define RID_LEFTARROW "leftarrow "
#define RID_RIGHTARROW "rightarrow "
#define RID_UPARROW "uparrow "
#define RID_DOWNARROW "downarrow "
#define RID_NOSPACE "nospace {<?>} "
#define RID_XPRECEDESY "<?> prec <?> "
#define RID_XPRECEDESEQUALY "<?> preccurlyeq <?> "
#define RID_XPRECEDESEQUIVY "<?> precsim <?> "
#define RID_XSUCCEEDSY "<?> succ <?> "
#define RID_XSUCCEEDSEQUALY "<?> succcurlyeq <?> "
#define RID_XSUCCEEDSEQUIVY "<?> succsim <?> "
#define RID_XNOTPRECEDESY "<?> nprec <?> "
#define RID_XNOTSUCCEEDSY "<?> nsucc <?> "
#endif

View File

@ -64,6 +64,7 @@ namespace o3tl {
// Tokens identifiers. Allow to know what kind of information the node contains.
enum SmTokenType
{
// clang-format off
// Uncategorized
TEND, TSPECIAL, TNONE, TESCAPE, TUNKNOWN,
TBLANK, TSBLANK, TPLACE, TNOSPACE, TDOTSDOWN,
@ -139,6 +140,7 @@ enum SmTokenType
// Color
TRGB, TRGBA, THEX, THTMLCOL, TDVIPSNAMESCOL,
TICONICCOL
// clang-format on
};
struct SmTokenTableEntry

View File

@ -148,7 +148,7 @@ void Test::testtdf99556()
void Test::testTdf103430()
{
loadURL(m_directories.getURLFromSrc("starmath/qa/extras/data/tdf103430.mml"));
CPPUNIT_ASSERT_EQUAL(OUString("frac { { nitalic d ^ 2 nitalic color blue y } } { { color apricot nitalic d font sans bold italic color red x } }"),
CPPUNIT_ASSERT_EQUAL(OUString("frac { { nitalic d ^ 2 nitalic color blue y } } { { color dvip apricot nitalic d font sans bold italic color red x } }"),
mxDocShell->GetText());
}

View File

@ -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)

View File

@ -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));

View File

@ -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;

View File

@ -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));
}

View File

@ -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));