commit 103f7a5ea6d431e28becd02aa7e50ba5941010ff
Author: Pavel Sanda <[email protected]>
Date: Mon Mar 12 13:40:52 2018 +0100
Paint \dot & \ddot more like a dot
https://www.mail-archive.com/[email protected]/msg204183.html
---
src/mathed/MathSupport.cpp | 34 ++++++++++++++++++++++++----------
1 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/src/mathed/MathSupport.cpp b/src/mathed/MathSupport.cpp
index 57eca6e..dfe2438 100644
--- a/src/mathed/MathSupport.cpp
+++ b/src/mathed/MathSupport.cpp
@@ -82,6 +82,7 @@ namespace {
/*
* 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
+ * 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[] = {
- 1, 0.2, 0.5, 0.3, 0.5,
- 1, 0.7, 0.5, 0.8, 0.5,
+ 5, 0.0, 0.4, 0.3, 0.4,
+ 5, 0.6, 0.4, 1.0, 0.4,
0
};
@@ -333,12 +343,6 @@ double const dline3[] = {
};
-double const hlinesmall[] = {
- 1, 0.4, 0.5, 0.6, 0.5,
- 0
-};
-
-
double const ring[] = {
2, 5,
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 },
{"tilde", tilde, 0 },
{"bar", hline, 0 },
- {"dot", hlinesmall, 0 },
+ {"dot", dot, 0 },
{"check", angle, 1 },
{"breve", parenth, 1 },
{"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]; ) {
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 yy = 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 + x2 + 0.5), int(y + y2 + 0.5),
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 {
int xp[32];
int yp[32];