Paint \dot & \ddot more like a dot

https://www.mail-archive.com/lyx-devel@lists.lyx.org/msg204183.html
This commit is contained in:
Pavel Sanda 2018-03-12 13:40:52 +01:00
parent f01369a56f
commit 103f7a5ea6

View File

@ -82,6 +82,7 @@ namespace {
/* /*
* Internal struct of a drawing: code n x1 y1 ... xn yn, where code is: * Internal struct of a drawing: code n x1 y1 ... xn yn, where code is:
* 0 = end, 1 = line, 2 = polyline, 3 = square line, 4 = square polyline * 0 = end, 1 = line, 2 = polyline, 3 = square line, 4 = square polyline
* 5 = rounded thick line (i.e. dot for short line)
*/ */
@ -293,9 +294,18 @@ double const hline[] = {
}; };
double const dot[] = {
// 1, 0.5, 0.2, 0.5, 0.2,
// 1, 0.4, 0.4, 0.6, 0.4,
// 1, 0.5, 0.5, 0.5, 0.5,
5, 0.4, 0.4, 0.6, 0.4,
0
};
double const ddot[] = { double const ddot[] = {
1, 0.2, 0.5, 0.3, 0.5, 5, 0.0, 0.4, 0.3, 0.4,
1, 0.7, 0.5, 0.8, 0.5, 5, 0.6, 0.4, 1.0, 0.4,
0 0
}; };
@ -333,12 +343,6 @@ double const dline3[] = {
}; };
double const hlinesmall[] = {
1, 0.4, 0.5, 0.6, 0.5,
0
};
double const ring[] = { double const ring[] = {
2, 5, 2, 5,
0.5, 0.8, 0.8, 0.5, 0.5, 0.2, 0.2, 0.5, 0.5, 0.8, 0.5, 0.8, 0.8, 0.5, 0.5, 0.2, 0.2, 0.5, 0.5, 0.8,
@ -457,7 +461,7 @@ named_deco_struct deco_table[] = {
{"acute", slash, 0 }, {"acute", slash, 0 },
{"tilde", tilde, 0 }, {"tilde", tilde, 0 },
{"bar", hline, 0 }, {"bar", hline, 0 },
{"dot", hlinesmall, 0 }, {"dot", dot, 0 },
{"check", angle, 1 }, {"check", angle, 1 },
{"breve", parenth, 1 }, {"breve", parenth, 1 },
{"vec", arrow, 3 }, {"vec", arrow, 3 },
@ -623,7 +627,7 @@ void mathed_draw_deco(PainterInfo & pi, int x, int y, int w, int h,
for (int i = 0; d[i]; ) { for (int i = 0; d[i]; ) {
int code = int(d[i++]); int code = int(d[i++]);
if (code & 1) { // code == 1 || code == 3 if (code & 1) { // code == 1 || code == 3 || code == 5
double xx = d[i++]; double xx = d[i++];
double yy = d[i++]; double yy = d[i++];
double x2 = d[i++]; double x2 = d[i++];
@ -637,6 +641,16 @@ void mathed_draw_deco(PainterInfo & pi, int x, int y, int w, int h,
int(x + xx + 0.5), int(y + yy + 0.5), int(x + xx + 0.5), int(y + yy + 0.5),
int(x + x2 + 0.5), int(y + y2 + 0.5), int(x + x2 + 0.5), int(y + y2 + 0.5),
pi.base.font.color()); pi.base.font.color());
if (code == 5) { // thicker, but rounded
pi.pain.line(
int(x + xx + 0.5+1), int(y + yy + 0.5-1),
int(x + x2 + 0.5-1), int(y + y2 + 0.5-1),
pi.base.font.color());
pi.pain.line(
int(x + xx + 0.5+1), int(y + yy + 0.5+1),
int(x + x2 + 0.5-1), int(y + y2 + 0.5+1),
pi.base.font.color());
}
} else { } else {
int xp[32]; int xp[32];
int yp[32]; int yp[32];