Kaydet (Commit) 529e59d9 authored tarafından Regina Henschel's avatar Regina Henschel

#i118191# Red is not red enough

Enable Math to use 16 basic HTML colors
Patch by: Regina Henschel <rb.henschel@t-online.de>
Found by: <lapsap7+ooo@gmail.com
üst 603a37eb
......@@ -95,7 +95,9 @@ enum SmTokenType
TSINH, TCOSH, TTANH, TCOTH, TASIN,
TACOS, TATAN, TLN, TLOG, TUOPER,
TBOPER, TBLACK, TWHITE, TRED, TGREEN,
TBLUE, TCYAN, TMAGENTA, TYELLOW, TFIXED,
TBLUE, TCYAN, TMAGENTA, TYELLOW, TSILVER,
TGRAY, TMAROON, TPURPLE, TLIME, TOLIVE,
TNAVY, TTEAL, TAQUA, TFUCHSIA, TFIXED,
TSANS, TSERIF, TPOINT, TASINH, TACOSH,
TATANH, TACOTH, TACOT, TEXP, TCDOT,
TODOT, TLESLANT, TGESLANT, TNSUBSET, TNSUPSET,
......
......@@ -1281,6 +1281,36 @@ void SmXMLExport::ExportFont(const SmNode *pNode, int nLevel)
case TYELLOW:
AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_YELLOW);
break;
case TSILVER:
AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_SILVER);
break;
case TGRAY:
AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_GRAY);
break;
case TMAROON:
AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_MAROON);
break;
case TOLIVE:
AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_OLIVE);
break;
case TLIME:
AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_LIME);
break;
case TAQUA:
AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_AQUA);
break;
case TTEAL:
AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_TEAL);
break;
case TNAVY:
AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_NAVY);
break;
case TFUCHSIA:
AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_FUCHSIA);
break;
case TPURPLE:
AddAttribute(XML_NAMESPACE_MATH, XML_COLOR, XML_PURPLE);
break;
case TSIZE:
{
const SmFontNode *pFontNode = static_cast<const SmFontNode *>(pNode);
......
......@@ -724,6 +724,9 @@ void SmXMLContext_Helper::RetrieveAttrs(const uno::Reference<
case XML_TOK_COLOR:
sColor = sValue;
break;
case XML_TOK_MATHCOLOR:
sColor = sValue;
break;
default:
break;
}
......@@ -966,6 +969,9 @@ void SmXMLStyleContext_Impl::StartElement(const uno::Reference<
case XML_TOK_COLOR:
sColor = sValue;
break;
case XML_TOK_MATHCOLOR:
sColor = sValue;
break;
default:
break;
}
......@@ -2093,6 +2099,7 @@ static __FAR_DATA SvXMLTokenMapEntry aPresLayoutAttrTokenMap[] =
{ XML_NAMESPACE_MATH, XML_FONTSIZE, XML_TOK_FONTSIZE },
{ XML_NAMESPACE_MATH, XML_FONTFAMILY, XML_TOK_FONTFAMILY },
{ XML_NAMESPACE_MATH, XML_COLOR, XML_TOK_COLOR },
{ XML_NAMESPACE_MATH, XML_MATHCOLOR, XML_TOK_MATHCOLOR },
XML_TOKEN_MAP_END
};
......@@ -2150,13 +2157,20 @@ static __FAR_DATA SvXMLTokenMapEntry aColorTokenMap[] =
{ XML_NAMESPACE_MATH, XML_RED, TRED},
{ XML_NAMESPACE_MATH, XML_GREEN, TGREEN},
{ XML_NAMESPACE_MATH, XML_BLUE, TBLUE},
{ XML_NAMESPACE_MATH, XML_AQUA, TCYAN},
{ XML_NAMESPACE_MATH, XML_FUCHSIA, TMAGENTA},
{ XML_NAMESPACE_MATH, XML_AQUA, TAQUA},
{ XML_NAMESPACE_MATH, XML_FUCHSIA, TFUCHSIA},
{ XML_NAMESPACE_MATH, XML_YELLOW, TYELLOW},
{ XML_NAMESPACE_MATH, XML_NAVY, TNAVY},
{ XML_NAMESPACE_MATH, XML_TEAL, TTEAL},
{ XML_NAMESPACE_MATH, XML_MAROON, TMAROON},
{ XML_NAMESPACE_MATH, XML_PURPLE, TPURPLE},
{ XML_NAMESPACE_MATH, XML_OLIVE, TOLIVE},
{ XML_NAMESPACE_MATH, XML_GRAY, TGRAY},
{ XML_NAMESPACE_MATH, XML_SILVER, TSILVER},
{ XML_NAMESPACE_MATH, XML_LIME, TLIME},
XML_TOKEN_MAP_END
};
////////////////////////////////////////////////////////////
const SvXMLTokenMap& SmXMLImport::GetPresLayoutElemTokenMap()
......
......@@ -292,7 +292,8 @@ enum SmXMLPresLayoutAttrTokenMap
XML_TOK_FONTSTYLE,
XML_TOK_FONTSIZE,
XML_TOK_FONTFAMILY,
XML_TOK_COLOR
XML_TOK_COLOR,
XML_TOK_MATHCOLOR
};
......
......@@ -2060,6 +2060,36 @@ void SmFontNode::CreateTextFromNode(String &rText)
case TYELLOW:
APPEND(rText,"color yellow ");
break;
case TTEAL:
APPEND(rText,"color teal");
break;
case TSILVER:
APPEND(rText,"color silver");
break;
case TGRAY:
APPEND(rText,"color gray");
break;
case TMAROON:
APPEND(rText,"color maroon");
break;
case TPURPLE:
APPEND(rText,"color purple");
break;
case TLIME:
APPEND(rText,"color lime");
break;
case TOLIVE:
APPEND(rText,"color olive");
break;
case TNAVY:
APPEND(rText,"color navy");
break;
case TAQUA:
APPEND(rText,"color aqua");
break;
case TFUCHSIA:
APPEND(rText,"color fuchsia");
break;
case TSANS:
APPEND(rText,"font sans ");
break;
......@@ -2125,12 +2155,22 @@ void SmFontNode::Arrange(const OutputDevice &rDev, const SmFormat &rFormat)
case TBLACK : SetColor(Color(COL_BLACK)); break;
case TWHITE : SetColor(Color(COL_WHITE)); break;
case TRED : SetColor(Color(COL_RED)); break;
case TRED : SetColor(Color(COL_LIGHTRED)); break;
case TGREEN : SetColor(Color(COL_GREEN)); break;
case TBLUE : SetColor(Color(COL_BLUE)); break;
case TCYAN : SetColor(Color(COL_CYAN)); break;
case TMAGENTA : SetColor(Color(COL_MAGENTA)); break;
case TBLUE : SetColor(Color(COL_LIGHTBLUE)); break;
case TCYAN : SetColor(Color(COL_LIGHTCYAN)); break; // as in Calc
case TMAGENTA : SetColor(Color(COL_LIGHTMAGENTA)); break; // as in Calc
case TYELLOW : SetColor(Color(COL_YELLOW)); break;
case TTEAL : SetColor(Color(COL_CYAN)); break;
case TSILVER : SetColor(Color(COL_LIGHTGRAY)); break;
case TGRAY : SetColor(Color(COL_GRAY)); break;
case TMAROON : SetColor(Color(COL_RED)); break;
case TPURPLE : SetColor(Color(COL_MAGENTA)); break;
case TLIME : SetColor(Color(COL_LIGHTGREEN)); break;
case TOLIVE : SetColor(Color(COL_BROWN)); break;
case TNAVY : SetColor(Color(COL_BLUE)); break;
case TAQUA : SetColor(Color(COL_LIGHTCYAN)); break;
case TFUCHSIA : SetColor(Color(COL_LIGHTMAGENTA)); break;
default:
DBG_ASSERT(sal_False, "Sm: unbekannter Fall");
......
......@@ -130,6 +130,7 @@ static const SmTokenTableEntry aTokenTable[] =
{ "alignt", TALIGNC, '\0', TGALIGN | TGDISCARDED, 0},
{ "and", TAND, MS_AND, TGPRODUCT, 0},
{ "approx", TAPPROX, MS_APPROX, TGRELATION, 0},
{ "aqua", TAQUA, '\0', TGCOLOR, 0},
{ "arccos", TACOS, '\0', TGFUNCTION, 5},
{ "arccot", TACOT, '\0', TGFUNCTION, 5},
{ "arcsin", TASIN, '\0', TGFUNCTION, 5},
......@@ -183,11 +184,13 @@ static const SmTokenTableEntry aTokenTable[] =
{ "font", TFONT, '\0', TGFONTATTR, 5},
{ "forall", TFORALL, MS_FORALL, TGSTANDALONE, 5},
{ "from", TFROM, '\0', TGLIMIT, 0},
{ "fuchsia", TFUCHSIA, '\0', TGCOLOR, 0},
{ "func", TFUNC, '\0', TGFUNCTION, 5},
{ "ge", TGE, MS_GE, TGRELATION, 0},
{ "geslant", TGESLANT, MS_GESLANT, TGRELATION, 0 },
{ "gg", TGG, MS_GG, TGRELATION, 0},
{ "grave", TGRAVE, MS_GRAVE, TGATTRIBUT, 5},
{ "gray", TGRAY, '\0', TGCOLOR, 0},
{ "green", TGREEN, '\0', TGCOLOR, 0},
{ "gt", TGT, MS_GT, TGRELATION, 0},
{ "hat", THAT, MS_HAT, TGATTRIBUT, 5},
......@@ -213,6 +216,7 @@ static const SmTokenTableEntry aTokenTable[] =
{ "leslant", TLESLANT, MS_LESLANT, TGRELATION, 0 },
{ "lfloor", TLFLOOR, MS_LFLOOR, TGLBRACES, 5},
{ "lim", TLIM, '\0', TGOPER, 5},
{ "lime", TLIME, '\0', TGCOLOR, 0},
{ "liminf", TLIMINF, '\0', TGOPER, 5},
{ "limsup", TLIMSUP, '\0', TGOPER, 5},
{ "lint", TLINT, MS_LINT, TGOPER, 5},
......@@ -226,10 +230,12 @@ static const SmTokenTableEntry aTokenTable[] =
{ "lsup", TLSUP, '\0', TGPOWER, 0},
{ "lt", TLT, MS_LT, TGRELATION, 0},
{ "magenta", TMAGENTA, '\0', TGCOLOR, 0},
{ "maroon", TMAROON, '\0', TGCOLOR, 0},
{ "matrix", TMATRIX, '\0', 0, 5},
{ "minusplus", TMINUSPLUS, MS_MINUSPLUS, TGUNOPER | TGSUM, 5},
{ "mline", TMLINE, MS_LINE, 0, 0}, //! nicht in TGRBRACES, Level 0
{ "nabla", TNABLA, MS_NABLA, TGSTANDALONE, 5},
{ "navy", TNAVY, '\0', TGCOLOR, 0},
{ "nbold", TNBOLD, '\0', TGFONTATTR, 5},
{ "ndivides", TNDIVIDES, MS_NDIVIDES, TGRELATION, 0},
{ "neg", TNEG, MS_NEG, TGUNOPER, 5 },
......@@ -247,6 +253,7 @@ static const SmTokenTableEntry aTokenTable[] =
{ "nsupseteq", TNSUPSETEQ, MS_NSUPSETEQ, TGRELATION, 0 },
{ "odivide", TODIVIDE, MS_ODIVIDE, TGPRODUCT, 0},
{ "odot", TODOT, MS_ODOT, TGPRODUCT, 0},
{ "olive", TOLIVE, '\0', TGCOLOR, 0},
{ "ominus", TOMINUS, MS_OMINUS, TGSUM, 0},
{ "oper", TOPER, '\0', TGOPER, 5},
{ "oplus", TOPLUS, MS_OPLUS, TGSUM, 0},
......@@ -264,6 +271,7 @@ static const SmTokenTableEntry aTokenTable[] =
{ "plusminus", TPLUSMINUS, MS_PLUSMINUS, TGUNOPER | TGSUM, 5},
{ "prod", TPROD, MS_PROD, TGOPER, 5},
{ "prop", TPROP, MS_PROP, TGRELATION, 0},
{ "purple", TPURPLE, '\0', TGCOLOR, 0},
{ "rangle", TRANGLE, MS_RANGLE, TGRBRACES, 0}, //! 0 to terminate expression
{ "rbrace", TRBRACE, MS_RBRACE, TGRBRACES, 0}, //
{ "rceil", TRCEIL, MS_RCEIL, TGRBRACES, 0}, //
......@@ -284,6 +292,7 @@ static const SmTokenTableEntry aTokenTable[] =
{ "setR" , TSETR, MS_SETR, TGSTANDALONE, 5},
{ "setZ" , TSETZ, MS_SETZ, TGSTANDALONE, 5},
{ "setminus", TBACKSLASH, MS_BACKSLASH, TGPRODUCT, 0 },
{ "silver", TSILVER, '\0', TGCOLOR, 0},
{ "sim", TSIM, MS_SIM, TGRELATION, 0},
{ "simeq", TSIMEQ, MS_SIMEQ, TGRELATION, 0},
{ "sin", TSIN, '\0', TGFUNCTION, 5},
......@@ -301,6 +310,7 @@ static const SmTokenTableEntry aTokenTable[] =
{ "supseteq", TSUPSETEQ, MS_SUPSETEQ, TGRELATION, 0},
{ "tan", TTAN, '\0', TGFUNCTION, 5},
{ "tanh", TTANH, '\0', TGFUNCTION, 5},
{ "teal", TTEAL, '\0', TGCOLOR, 0},
{ "tilde", TTILDE, MS_TILDE, TGATTRIBUT, 5},
{ "times", TTIMES, MS_TIMES, TGPRODUCT, 0},
{ "to", TTO, '\0', TGLIMIT, 0},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment