iup and down (centred) trapezium working - gramscii - A simple editor for ASCII box-and-arrow charts Err bitreich.org 70
1Log /scm/gramscii/log.gph bitreich.org 70
1Files /scm/gramscii/files.gph bitreich.org 70
1Refs /scm/gramscii/refs.gph bitreich.org 70
1Tags /scm/gramscii/tag bitreich.org 70
1README /scm/gramscii/file/README.md.gph bitreich.org 70
1LICENSE /scm/gramscii/file/COPYING.gph bitreich.org 70
i--- Err bitreich.org 70
1commit 47a17a404c2faabc3db70df3a7a64a462a1a9d21 /scm/gramscii/commit/47a17a404c2faabc3db70df3a7a64a462a1a9d21.gph bitreich.org 70
1parent 7eb5b5f064f07bc50cafa1488961fa7be27dee22 /scm/gramscii/commit/7eb5b5f064f07bc50cafa1488961fa7be27dee22.gph bitreich.org 70
hAuthor: KatolaZ <katolaz@freaknet.org> URL:mailto:katolaz@freaknet.org bitreich.org 70
iDate: Sat, 28 Sep 2019 21:48:38 +0100 Err bitreich.org 70
i Err bitreich.org 70
iup and down (centred) trapezium working Err bitreich.org 70
i Err bitreich.org 70
iDiffstat: Err bitreich.org 70
i M draw.c | 37 ++++++++++++++++++++++++++----- Err bitreich.org 70
i M gramscii.h | 6 +++--- Err bitreich.org 70
i Err bitreich.org 70
i2 files changed, 35 insertions(+), 8 deletions(-) Err bitreich.org 70
i--- Err bitreich.org 70
1diff --git a/draw.c b/draw.c /scm/gramscii/file/draw.c.gph bitreich.org 70
i@@ -209,7 +209,7 @@ void draw_trapezium(int x1, int y1, char st, char fix){ Err bitreich.org 70
i int xincr; Err bitreich.org 70
i int i; Err bitreich.org 70
i void (*f)(int, int, char); Err bitreich.org 70
i- Err bitreich.org 70
i+ char left_c, right_c; Err bitreich.org 70
i Err bitreich.org 70
i xmin = MIN(x, x1); Err bitreich.org 70
i xmax = MAX(x, x1); Err bitreich.org 70
i@@ -226,11 +226,27 @@ void draw_trapezium(int x1, int y1, char st, char fix){ Err bitreich.org 70
i f = draw_xy; Err bitreich.org 70
i Err bitreich.org 70
i /* This is valid only for "upper" trapezoids */ Err bitreich.org 70
i- if (st & BOX_TRAP_U){ Err bitreich.org 70
i+ if ((st & BOX_TRAP_U) == BOX_TRAP_U){ Err bitreich.org 70
i+#ifdef DEBUG Err bitreich.org 70
i+ fprintf(stderr, "This is an 'upward' trapezium\n"); Err bitreich.org 70
i+#endif Err bitreich.org 70
i ylong = ymax; Err bitreich.org 70
i yshort = ymin; Err bitreich.org 70
i xoff = dy; Err bitreich.org 70
i xincr = -1; Err bitreich.org 70
i+ left_c = '/'; Err bitreich.org 70
i+ right_c = '\\'; Err bitreich.org 70
i+ } Err bitreich.org 70
i+ else if ((st & BOX_TRAP_D) == BOX_TRAP_D){ Err bitreich.org 70
i+#ifdef DEBUG Err bitreich.org 70
i+ fprintf(stderr, "This is a 'downward' trapezium\n"); Err bitreich.org 70
i+#endif Err bitreich.org 70
i+ ylong = ymin; Err bitreich.org 70
i+ yshort = ymax; Err bitreich.org 70
i+ xoff = dy; Err bitreich.org 70
i+ xincr = +1; Err bitreich.org 70
i+ right_c = '/'; Err bitreich.org 70
i+ left_c = '\\'; Err bitreich.org 70
i } Err bitreich.org 70
i for(i=xmin+1; i<=xmax; i++){ Err bitreich.org 70
i f(i, ylong, line_h); Err bitreich.org 70
i@@ -243,9 +259,11 @@ void draw_trapezium(int x1, int y1, char st, char fix){ Err bitreich.org 70
i f(xmax-xoff, yshort, corner); Err bitreich.org 70
i f(xmax, ylong, corner); Err bitreich.org 70
i xoff --; Err bitreich.org 70
i+ if ((st & BOX_TRAP_D) == BOX_TRAP_D) Err bitreich.org 70
i+ xoff = 1; Err bitreich.org 70
i for(i=ymin+1; i<ymax; i++, xoff += xincr){ Err bitreich.org 70
i- f(xmin + xoff, i, '/'); Err bitreich.org 70
i- f(xmax - xoff, i, '\\'); Err bitreich.org 70
i+ f(xmin + xoff, i, left_c); Err bitreich.org 70
i+ f(xmax - xoff, i, right_c); Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i Err bitreich.org 70
i@@ -272,6 +290,12 @@ void update_box(int x1, int y1, char st, char fix){ Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i char toggle_trap_type(char st){ Err bitreich.org 70
i+ if (st & BOX_TRAP){ Err bitreich.org 70
i+ if (st < BOX_TRAP_DR) Err bitreich.org 70
i+ st ++; Err bitreich.org 70
i+ else Err bitreich.org 70
i+ st = BOX_TRAP_UR; Err bitreich.org 70
i+ } Err bitreich.org 70
i return st; Err bitreich.org 70
i } Err bitreich.org 70
i Err bitreich.org 70
i@@ -300,13 +324,16 @@ void get_box(FILE *fc, char st){ Err bitreich.org 70
i st = flip_par_lean(st); Err bitreich.org 70
i redraw(); Err bitreich.org 70
i #ifdef DEBUG Err bitreich.org 70
i- fprintf(stderr, "new parallelogram style: %d\n", st); Err bitreich.org 70
i+ fprintf(stderr, "new parallelogram style: %d\n", st); Err bitreich.org 70
i #endif Err bitreich.org 70
i update_box(orig_x, orig_y, st, NOFIX); Err bitreich.org 70
i continue; Err bitreich.org 70
i } Err bitreich.org 70
i else if (c == 'T' && (st & BOX_TRAP)){ Err bitreich.org 70
i st = toggle_trap_type(st); Err bitreich.org 70
i+#ifdef DEBUG Err bitreich.org 70
i+ fprintf(stderr, "new trapezium style: %d\n", st); Err bitreich.org 70
i+#endif Err bitreich.org 70
i redraw(); Err bitreich.org 70
i update_box(orig_x, orig_y, st, NOFIX); Err bitreich.org 70
i continue; Err bitreich.org 70
1diff --git a/gramscii.h b/gramscii.h /scm/gramscii/file/gramscii.h.gph bitreich.org 70
i@@ -50,9 +50,9 @@ Err bitreich.org 70
i #define BOX_TRAP_UR 0x25 Err bitreich.org 70
i #define BOX_TRAP_UC 0x26 Err bitreich.org 70
i #define BOX_TRAP_UL 0x27 Err bitreich.org 70
i-#define BOX_TRAP_DL 0x28 Err bitreich.org 70
i-#define BOX_TRAP_DC 0x29 Err bitreich.org 70
i-#define BOX_TRAP_DR 0x2a Err bitreich.org 70
i+#define BOX_TRAP_DL 0x29 Err bitreich.org 70
i+#define BOX_TRAP_DC 0x2a Err bitreich.org 70
i+#define BOX_TRAP_DR 0x2b Err bitreich.org 70
i /**/ Err bitreich.org 70
i Err bitreich.org 70
i #define NOFIX 0x0 Err bitreich.org 70
.
Response:
text/plain