iup-center 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 7eb5b5f064f07bc50cafa1488961fa7be27dee22 /scm/gramscii/commit/7eb5b5f064f07bc50cafa1488961fa7be27dee22.gph bitreich.org 70 1parent e8c98a65cd161a5d2c0a76d41e39b352e083a9ab /scm/gramscii/commit/e8c98a65cd161a5d2c0a76d41e39b352e083a9ab.gph bitreich.org 70 hAuthor: KatolaZ URL:mailto:katolaz@freaknet.org bitreich.org 70 iDate: Mon, 26 Aug 2019 17:30:40 +0100 Err bitreich.org 70 i Err bitreich.org 70 iup-center trapezium working Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M TODO | 3 +-- Err bitreich.org 70 i M draw.c | 48 +++++++++++++++++++++++++++++++ Err bitreich.org 70 i M gramscii.c | 4 ++++ Err bitreich.org 70 i M gramscii.h | 23 +++++++++++++---------- Err bitreich.org 70 i M screen.c | 2 ++ Err bitreich.org 70 i Err bitreich.org 70 i5 files changed, 68 insertions(+), 12 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/TODO b/TODO /scm/gramscii/file/TODO.gph bitreich.org 70 i@@ -1,7 +1,6 @@ Err bitreich.org 70 i + optimize redraws (redraw only the modified rectangle) Err bitreich.org 70 i - add screen geometry option (-g 25x80?) Err bitreich.org 70 i-- (?)maybe move "text" mode to "t" Err bitreich.org 70 i-- implement trapezium Err bitreich.org 70 i++ implement trapezium Err bitreich.org 70 i - implement ellipse Err bitreich.org 70 i - (?) filled box (B) Err bitreich.org 70 i - (?) manage filled box character (as for other styles) Err bitreich.org 70 1diff --git a/draw.c b/draw.c /scm/gramscii/file/draw.c.gph bitreich.org 70 i@@ -204,6 +204,54 @@ char flip_par_lean(char st){ Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i void draw_trapezium(int x1, int y1, char st, char fix){ Err bitreich.org 70 i+ int xmin, ymin, xmax, ymax; Err bitreich.org 70 i+ int dx, dy, ylong, yshort, xoff; 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+ Err bitreich.org 70 i+ xmin = MIN(x, x1); Err bitreich.org 70 i+ xmax = MAX(x, x1); Err bitreich.org 70 i+ ymin = MIN(y, y1); Err bitreich.org 70 i+ ymax = MAX(y, y1); Err bitreich.org 70 i+ dx = xmax - xmin; Err bitreich.org 70 i+ dy = ymax - ymin; Err bitreich.org 70 i+ Err bitreich.org 70 i+ if (fix == FIX){ Err bitreich.org 70 i+ f = set_xy; Err bitreich.org 70 i+ copy_lines_to_ring(ymin, ymax, PRV_STATE); Err bitreich.org 70 i+ } Err bitreich.org 70 i+ else 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+ 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+ } 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+ } Err bitreich.org 70 i+ for(i=xmin+xoff; i<=xmax-xoff; i++){ Err bitreich.org 70 i+ f(i, yshort, line_h); Err bitreich.org 70 i+ } Err bitreich.org 70 i+ f(xmin+xoff, yshort, corner); Err bitreich.org 70 i+ f(xmin, ylong, corner); 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+ for(i=ymin+1; i