From fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Wed, 8 Jul 2015 20:46:52 -0400 Subject: Initial commit --- pkg/xtools/gtools/gtcolon.x | 754 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 754 insertions(+) create mode 100644 pkg/xtools/gtools/gtcolon.x (limited to 'pkg/xtools/gtools/gtcolon.x') diff --git a/pkg/xtools/gtools/gtcolon.x b/pkg/xtools/gtools/gtcolon.x new file mode 100644 index 00000000..b2a918fb --- /dev/null +++ b/pkg/xtools/gtools/gtcolon.x @@ -0,0 +1,754 @@ +# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. + +include +include +include "gtools.h" + +define KEY "lib$scr/gtools.key" +define PROMPT "graph format options" + +# Defined colon commands for the GTOOLS package +define CMDS "|help|xview|yview|xwindow|ywindow|sysid|parameters|title|subtitle\ + |comments|xlabel|ylabel|xunits|yunits|drawtitle|drawxlabels|drawylabels\ + |type|mark|line|xsize|ysize|color|xtransform|ytransform|xflip|yflip\ + |transpose|xformat|yformat|xbuf|ybuf|clip|redraw|expand|shift|expand\ + |uivalues|" + +define HELP 1 # Get help +define XVIEW 2 # Set X viewport +define YVIEW 3 # Set Y viewport +define XWINDOW 4 # Set X window +define YWINDOW 5 # Set Y window +define SYSID 6 # Draw SYSID? +define PARAMETERS 7 # Set parameters string +define TITLE 8 # Set title +define SUBTITLE 9 # Set subtitle string +define COMMENTS 10 # Set comment string +define XLABEL 11 # Set X label +define YLABEL 12 # Set Y label +define XUNITS 13 # Set X unit label +define YUNITS 14 # Set Y unit label +define DRAWTITLE 15 # Draw title block? +define DRAWXLABELS 16 # Draw X label block? +define DRAWYLABELS 17 # Draw Y label block? +define TYPE 18 # Set graph type +define MARK 19 # Set symbol mark type +define LINE 20 # Set line type +define XSIZE 21 # Set X symbol size +define YSIZE 22 # Set Y symbol size +define COLOR 23 # Set color +define XTRANSFORM 24 # Set X transformation function +define YTRANSFORM 25 # Set Y transformation function +define XFLIP 26 # X flip +define YFLIP 27 # Y flip +define TRANSPOSE 28 # Transpose graph +define XFORMAT 29 # X format +define YFORMAT 30 # Y format +define XBUF 31 # X buffer distance +define YBUF 32 # X buffer distance +define CLIP 33 # Clipping factors +define REDRAW 34 # Redraw graph +define EXPAND 35 # Expand world coordinates +define SHIFT 36 # Shift world coordinates +define WINDOW 37 # Window command +define UIVALUES 38 # Send UI values + + +# GT_COLON -- Process standard gtools colon commands. + +procedure gt_colon (cmdstr, gp, gt, newgraph) + +char cmdstr[ARB] # Command string +pointer gp # GIO pointer +pointer gt # GTOOLS pointer +int newgraph # Update graph? + +char cmd[SZ_LINE] +int ip, ncmd, ival +real x, y, rval[4] +bool bval + +int nscan(), strdic(), gt_geti(), btoi() +real gt_getr() + +begin + # All GTOOLS commands start with '/'. + if (cmdstr[1] != '/') + return + + # Parse the command string matched against a dictionary. + call sscan (cmdstr[2]) + call gargwrd (cmd, SZ_LINE) + ncmd = strdic (cmd, cmd, SZ_LINE, CMDS) + + # Switch on the command and parse the arguments. + switch (ncmd) { + case HELP: # help: Print help + call gpagefile (gp, KEY, PROMPT) + + case XVIEW: # xview: List or set x viewport. + call gargr (rval[1]) + call gargr (rval[2]) + if (nscan() == 3) { + call gt_setr (gt, GTVXMIN, rval[1]) + call gt_setr (gt, GTVXMAX, rval[2]) + } else { + call printf ("xview = %g %g\n") + call pargr (gt_getr (gt, GTVXMIN)) + call pargr (gt_getr (gt, GTVXMAX)) + } + + case YVIEW: # yview: List or set y viewport. + call gargr (rval[1]) + call gargr (rval[2]) + if (nscan() == 3) { + call gt_setr (gt, GTVYMIN, rval[1]) + call gt_setr (gt, GTVYMAX, rval[2]) + } else { + call printf ("yview = %g %g\n") + call pargr (gt_getr (gt, GTVYMIN)) + call pargr (gt_getr (gt, GTVYMAX)) + } + + case XWINDOW: # xwindow: List or set x window. + call gargr (rval[1]) + call gargr (rval[2]) + if (nscan() == 3) { + call gt_setr (gt, GTXMIN, rval[1]) + call gt_setr (gt, GTXMAX, rval[2]) + } else { + call printf ("xwindow = %g %g\n") + call pargr (gt_getr (gt, GTXMIN)) + call pargr (gt_getr (gt, GTXMAX)) + } + + case YWINDOW: # ywindow: List or set y window. + call gargr (rval[1]) + call gargr (rval[2]) + if (nscan() == 3) { + call gt_setr (gt, GTYMIN, rval[1]) + call gt_setr (gt, GTYMAX, rval[2]) + } else { + call printf ("ywindow = %g %g\n") + call pargr (gt_getr (gt, GTYMIN)) + call pargr (gt_getr (gt, GTYMAX)) + } + + case SYSID: # sysid: Write SYSID string? + call gargb (bval) + if (nscan() == 2) + call gt_seti (gt, GTSYSID, btoi (bval)) + else { + call printf ("sysid = %b\n") + call pargi (gt_geti (gt, GTSYSID)) + } + + case PARAMETERS: # parameters: Set parameters string + call gargstr (cmd, SZ_LINE) + for (ip=1; IS_WHITE(cmd[ip]); ip=ip+1) + ; + call gt_sets (gt, GTPARAMS, cmd[ip]) + + case TITLE: # title: Set graph title + call gargstr (cmd, SZ_LINE) + for (ip=1; IS_WHITE(cmd[ip]); ip=ip+1) + ; + call gt_sets (gt, GTTITLE, cmd[ip]) + + case SUBTITLE: # subtitle: Set subtitle string + call gargstr (cmd, SZ_LINE) + for (ip=1; IS_WHITE(cmd[ip]); ip=ip+1) + ; + call gt_sets (gt, GTSUBTITLE, cmd[ip]) + + case COMMENTS: # comments: Set graph comments + call gargstr (cmd, SZ_LINE) + for (ip=1; IS_WHITE(cmd[ip]); ip=ip+1) + ; + call gt_sets (gt, GTCOMMENTS, cmd[ip]) + + case XLABEL: # xlabel: Set graph x label + call gargstr (cmd, SZ_LINE) + for (ip=1; IS_WHITE(cmd[ip]); ip=ip+1) + ; + call gt_sets (gt, GTXLABEL, cmd[ip]) + + case YLABEL: # ylabel: Set graph y label + call gargstr (cmd, SZ_LINE) + for (ip=1; IS_WHITE(cmd[ip]); ip=ip+1) + ; + call gt_sets (gt, GTYLABEL, cmd[ip]) + + case XUNITS: # xunits: Set graph x units + call gargstr (cmd, SZ_LINE) + for (ip=1; IS_WHITE(cmd[ip]); ip=ip+1) + ; + call gt_sets (gt, GTXUNITS, cmd[ip]) + + case YUNITS: # yunits: Set graph y units + call gargstr (cmd, SZ_LINE) + for (ip=1; IS_WHITE(cmd[ip]); ip=ip+1) + ; + call gt_sets (gt, GTYUNITS, cmd[ip]) + + case DRAWTITLE: # drawtitle: Draw title block? + call gargb (bval) + if (nscan() == 2) + call gt_seti (gt, GTDRAWTITLE, btoi (bval)) + else { + call printf ("drawtitle = %b\n") + call pargi (gt_geti (gt, GTDRAWTITLE)) + } + + case DRAWXLABELS: # drawxlabels: Draw x label block? + call gargb (bval) + if (nscan() == 2) + call gt_seti (gt, GTDRAWXLABELS, btoi (bval)) + else { + call printf ("drawxlabel = %b\n") + call pargi (gt_geti (gt, GTDRAWXLABELS)) + } + + case DRAWYLABELS: # drawylabels: Draw y label block? + call gargb (bval) + if (nscan() == 2) + call gt_seti (gt, GTDRAWYLABELS, btoi (bval)) + else { + call printf ("drawylabel = %b\n") + call pargi (gt_geti (gt, GTDRAWYLABELS)) + } + + case TYPE: # type: Graph type + call gargwrd (cmd, SZ_LINE) + if (nscan() == 2) + call gt_sets (gt, GTTYPE, cmd) + else { + call gt_gets (gt, GTTYPE, cmd, SZ_LINE) + call printf ("type = %s\n") + call pargstr (cmd) + } + + case MARK: # mark: Mark type + call gargwrd (cmd, SZ_LINE) + if (nscan() == 2) + call gt_sets (gt, GTMARK, cmd) + else { + call gt_gets (gt, GTMARK, cmd, SZ_LINE) + call printf ("mark = %s\n") + call pargstr (cmd) + } + + case LINE: # line: Line type + call gargi (ival) + if (nscan() == 2) + call gt_seti (gt, GTLINE, ival) + else { + call printf ("line = %s\n") + call pargi (gt_geti (gt, GTLINE)) + } + + case XSIZE: # xsize: List or set x mark size. + call gargr (rval[1]) + if (nscan() == 2) { + call gt_setr (gt, GTXSIZE, rval[1]) + } else { + call printf ("xsize = %g\n") + call pargr (gt_getr (gt, GTXSIZE)) + } + + + case YSIZE: # ysize: List or set y mark size. + call gargr (rval[1]) + if (nscan() == 2) { + call gt_setr (gt, GTYSIZE, rval[1]) + } else { + call printf ("ysize = %g\n") + call pargr (gt_getr (gt, GTYSIZE)) + } + + case COLOR: # color: line/mark color + call gargi (ival) + if (nscan() == 2) + call gt_seti (gt, GTCOLOR, ival) + else { + call printf ("color = %s\n") + call pargi (gt_geti (gt, GTCOLOR)) + } + + case XTRANSFORM: # xtransform: List or set ytransform. + call gargwrd (cmd, SZ_LINE) + if (nscan() == 2) + call gt_sets (gt, GTXTRAN, cmd) + else { + call gt_gets (gt, GTXTRAN, cmd, SZ_LINE) + call printf ("xtransform = %s\n") + call pargstr (cmd) + } + + case YTRANSFORM: # ytransform: List or set ytransform. + call gargwrd (cmd, SZ_LINE) + if (nscan() == 2) + call gt_sets (gt, GTYTRAN, cmd) + else { + call gt_gets (gt, GTYTRAN, cmd, SZ_LINE) + call printf ("ytransform = %s\n") + call pargstr (cmd) + } + + case XFLIP: # xflip: Toggle x flip flag + call gargb (bval) + if (nscan() == 2) + call gt_seti (gt, GTXFLIP, btoi (bval)) + else { + call printf ("xflip = %b\n") + call pargi (gt_geti (gt, GTXFLIP)) + } + + case YFLIP: # yflip: Toggle y flip flag + call gargb (bval) + if (nscan() == 2) + call gt_seti (gt, GTYFLIP, btoi (bval)) + else { + call printf ("yflip = %b\n") + call pargi (gt_geti (gt, GTYFLIP)) + } + + case TRANSPOSE: # transpose: Toggle transpose flag + if (gt_geti (gt, GTTRANSPOSE) == NO) + call gt_seti (gt, GTTRANSPOSE, YES) + else + call gt_seti (gt, GTTRANSPOSE, NO) + + case XFORMAT: # xformat: Set graph x format + call gargstr (cmd, SZ_LINE) + for (ip=1; IS_WHITE(cmd[ip]); ip=ip+1) + ; + call gt_sets (gt, GTXFORMAT, cmd[ip]) + + case YFORMAT: # yformat: Set graph y format + call gargstr (cmd, SZ_LINE) + for (ip=1; IS_WHITE(cmd[ip]); ip=ip+1) + ; + call gt_sets (gt, GTYFORMAT, cmd[ip]) + + case XBUF: # xbuf: List or set x buffer. + call gargr (rval[1]) + if (nscan() == 2) + call gt_setr (gt, GTXBUF, rval[1]) + else { + call printf ("xbuf = %g\n") + call pargr (gt_getr (gt, GTXBUF)) + } + + case YBUF: # ybuf: List or set y buffer. + call gargr (rval[1]) + if (nscan() == 2) + call gt_setr (gt, GTYBUF, rval[1]) + else { + call printf ("ybuf = %g\n") + call pargr (gt_getr (gt, GTYBUF)) + } + + case CLIP: # clip: autoscaling clipping + call gargr (rval[1]) + call gargr (rval[2]) + if (nscan() == 3) { + call gt_setr (gt, GTLCLIP, rval[1]) + call gt_setr (gt, GTHCLIP, rval[2]) + } else { + call printf ("clip = %g %g\n") + call pargr (gt_getr (gt, GTLCLIP)) + call pargr (gt_getr (gt, GTHCLIP)) + } + + case REDRAW: # redraw: Redraw the graph + newgraph = 1 + + case EXPAND: # :expand x1 x2 y1 y2 + call gargr (rval[1]) + call gargr (rval[2]) + call gargr (rval[3]) + call gargr (rval[4]) + if (nscan() == 5) { + if (rval[1] != gt_getr (gt, GTXMIN)) { + call gt_setr (gt, GTXMIN, rval[1]) + newgraph = 1 + } + if (rval[2] != gt_getr (gt, GTXMAX)) { + call gt_setr (gt, GTXMAX, rval[2]) + newgraph = 1 + } + if (rval[3] != gt_getr (gt, GTYMIN)) { + call gt_setr (gt, GTYMIN, rval[3]) + newgraph = 1 + } + if (rval[4] != gt_getr (gt, GTYMAX)) { + call gt_setr (gt, GTYMAX, rval[4]) + newgraph = 1 + } + } + + case SHIFT: # :shift x y + call gargr (x) + call gargr (y) + rval[1] = gt_getr (gt, GTXMIN) + rval[2] = gt_getr (gt, GTXMAX) + if (IS_INDEFR(x)) { + if (!IS_INDEFR(rval[1]) || !IS_INDEFR(rval[2])) { + call gt_setr (gt, GTXMIN, INDEFR) + call gt_setr (gt, GTXMAX, INDEFR) + newgraph = 1 + } + } else { + if (!IS_INDEFR(rval[1]) && !IS_INDEFR(rval[2])) { + rval[3] = rval[2] - rval[1] + rval[4] = x - (rval[1] + rval[2]) / 2 + if (abs (rval[4] / rval[3]) > 0.001) { + call gt_setr (gt, GTXMIN, rval[1] + rval[4]) + call gt_setr (gt, GTXMAX, rval[2] + rval[4]) + } + newgraph = 1 + } + } + + rval[1] = gt_getr (gt, GTYMIN) + rval[2] = gt_getr (gt, GTYMAX) + if (IS_INDEFR(y)) { + if (!IS_INDEFR(rval[1]) || !IS_INDEFR(rval[2])) { + call gt_setr (gt, GTYMIN, INDEFR) + call gt_setr (gt, GTYMAX, INDEFR) + newgraph = 1 + } + } else { + if (!IS_INDEFR(rval[1]) && !IS_INDEFR(rval[2])) { + rval[3] = rval[2] - rval[1] + rval[4] = y - (rval[1] + rval[2]) / 2 + if (abs (rval[4] / rval[3]) > 0.001) { + call gt_setr (gt, GTYMIN, rval[1] + rval[4]) + call gt_setr (gt, GTYMAX, rval[2] + rval[4]) + } + newgraph = 1 + } + } + + case WINDOW: # window: window x y wcs key cmd + call gargr (x) + call gargr (y) + call gargi (ip) + call gargwrd (cmd, SZ_LINE) + ival = cmd[1] + if (nscan() < 5) + return + if (ival == ':') + call gargwrd (cmd, SZ_LINE) + call gt_window1 (gt, gp, x, y, ip, ival, cmd, newgraph) + + case UIVALUES: # uivalues: send values to UI + call gt_uivalues (gp, gt) + + default: # Check for more colon command + call gt_colon1 (cmdstr, gp, gt, newgraph) + } +end + + +# Defined colon commands +define CMDS1 "|txup|txsize|txpath|txspacing|txhjustify|txvjustify|txfont\ + |txquality|txcolor|drawtitle|titlesize|titlejust|ntitlelines|aspect\ + |charsize|titlecolor|framecolor|drawaxes|setaxispos|axispos1|axispos2\ + |drawgrid|round|labelaxis|axislabelsize|drawticks|labelticks|nmajor\ + |nminor|majorlength|minorlength|majorwidth|minorwidth|axiswidth\ + |ticklabelsize|gridcolor|axislabelcolor|axiscolor|ticklabelcolor\ + |tickcolor|axes|ticks|colors|" + +define TXUP 1 # Text parameters +define TXSIZE 2 +define TXPATH 3 +define TXSPACING 4 +define TXHJUSTIFY 5 +define TXVJUSTIFY 6 +define TXFONT 7 +define TXQUALITY 8 +define TXCOLOR 9 + +define DRAWTITLE 10 # GLABAX, general parameters +define TITLESIZE 11 +define TITLEJUST 12 +define NTITLELINES 13 +define ASPECT 14 +define CHARSIZE 15 +define TITLECOLOR 16 +define FRAMECOLOR 17 + +define DRAWAXES 18 # GLABAX, x/y axis parameters +define SETAXISPOS 19 +define AXISPOS1 20 +define AXISPOS2 21 +define DRAWGRID 22 +define ROUND 23 +define LABELAXIS 24 +define AXISLABELSIZE 25 +define DRAWTICKS 26 +define LABELTICKS 27 +define NMAJOR 28 +define NMINOR 29 +define MAJORLENGTH 30 +define MINORLENGTH 31 +define MAJORWIDTH 32 +define MINORWIDTH 33 +define AXISWIDTH 34 +define TICKLABELSIZE 35 +define GRIDCOLOR 36 +define AXISLABELCOLOR 37 +define AXISCOLOR 38 +define TICKLABELCOLOR 39 +define TICKCOLOR 40 + +define AXES 41 # Grouped parameters +define TICKS 42 +define COLORS 43 + + +# GT_COLON1 -- Interpret colon commands. + +procedure gt_colon1 (cmdstr, gp, gt, newgraph) + +char cmdstr[ARB] # Command string +pointer gp # GIO pointer +pointer gt # GTOOLS pointer +int newgraph # Update graph? + +bool bval +real rval[12] +pointer sp, cmd +int ncmd, btoi(), nscan(), strdic() + +begin + # All GTOOLS commands start with '/'. + if (cmdstr[1] != '/') + return + + # Parse the command string matched against a dictionary. + call smark (sp) + call salloc (cmd, SZ_LINE, TY_CHAR) + + call sscan (cmdstr[2]) + call gargwrd (Memc[cmd], SZ_LINE) + ncmd = strdic (Memc[cmd], Memc[cmd], SZ_LINE, CMDS1) + + # Get arguments and return if there are insufficient arguments. + if (ncmd < DRAWAXES) { + call gargr (rval[1]) + if (nscan() != 2) { + call sfree (sp) + return + } + } else if (ncmd < AXES) { + switch (ncmd) { + case DRAWAXES: + call gargwrd (Memc[cmd], SZ_LINE) + rval[1] = strdic (Memc[cmd], Memc[cmd], SZ_LINE, GT_XAXES) + call gargwrd (Memc[cmd], SZ_LINE) + rval[2] = strdic (Memc[cmd], Memc[cmd], SZ_LINE, GT_YAXES) + case DRAWGRID, ROUND, LABELAXIS, DRAWTICKS, LABELTICKS: + call gargb (bval) + rval[1] = btoi (bval) + call gargb (bval) + rval[2] = btoi (bval) + default: + call gargr (rval[1]) + call gargr (rval[2]) + } + if (nscan() != 3) { + call sfree (sp) + return + } + } + + # Switch on the command and parse the arguments. + switch (ncmd) { + case TXUP: + Memi[gt+GT_TXUP] = nint (rval[1]) + case TXSIZE: + Memr[P2R(gt+GT_TXSIZE)] = rval[1] + case TXPATH: + Memi[gt+GT_TXPATH] = nint (rval[1]) + case TXSPACING: + Memr[P2R(gt+GT_TXSPACING)] = rval[1] + case TXHJUSTIFY: + Memi[gt+GT_TXHJUSTIFY] = nint (rval[1]) + case TXVJUSTIFY: + Memi[gt+GT_TXVJUSTIFY] = nint (rval[1]) + case TXFONT: + Memi[gt+GT_TXFONT] = nint (rval[1]) + case TXQUALITY: + Memi[gt+GT_TXQUALITY] = nint (rval[1]) + case TXCOLOR: + Memi[gt+GT_TXCOLOR] = nint (rval[1]) + + case DRAWTITLE: + Memi[gt+GT_DRAWTITLE] = nint (rval[1]) + case TITLESIZE: + Memr[P2R(gt+GT_TITLESIZE)] = rval[1] + case TITLEJUST: + Memi[gt+GT_TITLEJUST] = nint (rval[1]) + case NTITLELINES: + Memi[gt+GT_NTITLELINES] = nint (rval[1]) + case ASPECT: + Memr[P2R(gt+GT_ASPECT)] = rval[1] + case CHARSIZE: + Memr[P2R(gt+GT_CHARSIZE)] = rval[1] + case TITLECOLOR: + Memi[gt+GT_TITLECOLOR] = nint (rval[1]) + case FRAMECOLOR: + Memi[gt+GT_FRAMECOLOR] = nint (rval[1]) + + case DRAWAXES: + if (rval[1] > 0) + Memi[gt+GT_XDRAWAXES] = nint (rval[1]) - 1 + if (rval[2] > 0) + Memi[gt+GT_YDRAWAXES] = nint (rval[2]) - 1 + case SETAXISPOS: + Memi[gt+GT_XSETAXISPOS] = nint (rval[1]) + Memi[gt+GT_YSETAXISPOS] = nint (rval[2]) + case AXISPOS1: + Memr[P2R(gt+GT_XAXISPOS1)] = rval[1] + Memr[P2R(gt+GT_YAXISPOS1)] = rval[2] + case AXISPOS2: + Memr[P2R(gt+GT_XAXISPOS2)] = rval[1] + Memr[P2R(gt+GT_YAXISPOS2)] = rval[2] + case DRAWGRID: + Memi[gt+GT_XDRAWGRID] = nint (rval[1]) + Memi[gt+GT_YDRAWGRID] = nint (rval[2]) + case ROUND: + Memi[gt+GT_XROUND] = nint (rval[1]) + Memi[gt+GT_YROUND] = nint (rval[2]) + case LABELAXIS: + Memi[gt+GT_XLABELAXIS] = nint (rval[1]) + Memi[gt+GT_YLABELAXIS] = nint (rval[2]) + case AXISLABELSIZE: + Memr[P2R(gt+GT_XAXISLABELSIZE)] = rval[1] + Memr[P2R(gt+GT_YAXISLABELSIZE)] = rval[2] + case DRAWTICKS: + Memi[gt+GT_XDRAWTICKS] = nint (rval[1]) + Memi[gt+GT_YDRAWTICKS] = nint (rval[2]) + case LABELTICKS: + Memi[gt+GT_XLABELTICKS] = nint (rval[1]) + Memi[gt+GT_YLABELTICKS] = nint (rval[2]) + case NMAJOR: + Memi[gt+GT_XNMAJOR] = nint (rval[1]) + Memi[gt+GT_YNMAJOR] = nint (rval[2]) + case NMINOR: + Memi[gt+GT_XNMINOR] = nint (rval[1]) + Memi[gt+GT_YNMINOR] = nint (rval[2]) + case MAJORLENGTH: + Memr[P2R(gt+GT_XMAJORLENGTH)] = rval[1] + Memr[P2R(gt+GT_YMAJORLENGTH)] = rval[2] + case MINORLENGTH: + Memr[P2R(gt+GT_XMINORLENGTH)] = rval[1] + Memr[P2R(gt+GT_YMINORLENGTH)] = rval[2] + case MAJORWIDTH: + Memr[P2R(gt+GT_XMAJORWIDTH)] = rval[1] + Memr[P2R(gt+GT_YMAJORWIDTH)] = rval[2] + case MINORWIDTH: + Memr[P2R(gt+GT_XMINORWIDTH)] = rval[1] + Memr[P2R(gt+GT_YMINORWIDTH)] = rval[2] + case AXISWIDTH: + Memr[P2R(gt+GT_XAXISWIDTH)] = rval[1] + Memr[P2R(gt+GT_YAXISWIDTH)] = rval[2] + case TICKLABELSIZE: + Memr[P2R(gt+GT_XTICKLABELSIZE)] = rval[1] + Memr[P2R(gt+GT_YTICKLABELSIZE)] = rval[2] + case GRIDCOLOR: + Memi[gt+GT_XGRIDCOLOR] = nint (rval[1]) + Memi[gt+GT_YGRIDCOLOR] = nint (rval[2]) + case AXISLABELCOLOR: + Memi[gt+GT_XAXISLABELCOLOR] = nint (rval[1]) + Memi[gt+GT_YAXISLABELCOLOR] = nint (rval[2]) + case AXISCOLOR: + Memi[gt+GT_XAXISCOLOR] = nint (rval[1]) + Memi[gt+GT_YAXISCOLOR] = nint (rval[2]) + case TICKLABELCOLOR: + Memi[gt+GT_XTICKLABELCOLOR] = nint (rval[1]) + Memi[gt+GT_YTICKLABELCOLOR] = nint (rval[2]) + case TICKCOLOR: + Memi[gt+GT_XTICKCOLOR] = nint (rval[1]) + Memi[gt+GT_YTICKCOLOR] = nint (rval[2]) + + case AXES: + call gargwrd (Memc[cmd], SZ_LINE) + rval[1] = strdic (Memc[cmd], Memc[cmd], SZ_LINE, GT_XAXES) + call gargr (rval[2]) + call gargb (bval) + rval[3] = btoi (bval) + call gargwrd (Memc[cmd], SZ_LINE) + rval[4] = strdic (Memc[cmd], Memc[cmd], SZ_LINE, GT_XAXES) + call gargr (rval[5]) + call gargb (bval) + rval[6] = btoi (bval) + if (nscan() == 7) { + Memi[gt+GT_XDRAWAXES] = nint (rval[1]) + Memr[P2R(gt+GT_XAXISWIDTH)] = rval[2] + Memr[P2R(gt+GT_XMAJORWIDTH)] = rval[2] + Memr[P2R(gt+GT_XMINORWIDTH)] = rval[2] + Memi[gt+GT_XDRAWGRID] = nint (rval[3]) + Memi[gt+GT_YDRAWAXES] = nint (rval[4]) + Memr[P2R(gt+GT_YAXISWIDTH)] = rval[5] + Memr[P2R(gt+GT_YMAJORWIDTH)] = rval[5] + Memr[P2R(gt+GT_YMINORWIDTH)] = rval[5] + Memi[gt+GT_YDRAWGRID] = nint (rval[6]) + } + case TICKS: + call gargb (bval) + rval[1] = btoi (bval) + call gargb (bval) + rval[2] = btoi (bval) + call gargr (rval[3]) + call gargr (rval[4]) + call gargb (bval) + rval[5] = btoi (bval) + call gargb (bval) + rval[6] = btoi (bval) + call gargr (rval[7]) + call gargr (rval[8]) + if (nscan() == 9) { + Memi[gt+GT_XDRAWTICKS] = nint (rval[1]) + Memi[gt+GT_XLABELTICKS] = nint (rval[2]) + Memi[gt+GT_XNMAJOR] = nint (rval[3]) + Memi[gt+GT_XNMINOR] = nint (rval[4]) + Memi[gt+GT_YDRAWTICKS] = nint (rval[5]) + Memi[gt+GT_YLABELTICKS] = nint (rval[6]) + Memi[gt+GT_YNMAJOR] = nint (rval[7]) + Memi[gt+GT_YNMINOR] = nint (rval[8]) + } + case COLORS: + call gargr (rval[1]) + call gargr (rval[2]) + call gargr (rval[3]) + call gargr (rval[4]) + call gargr (rval[5]) + call gargr (rval[6]) + call gargr (rval[7]) + call gargr (rval[8]) + call gargr (rval[9]) + call gargr (rval[10]) + call gargr (rval[11]) + call gargr (rval[12]) + if (nscan() == 13) { + Memi[gt+GT_FRAMECOLOR] = nint (rval[1]) + Memi[gt+GT_TITLECOLOR] = nint (rval[2]) + Memi[gt+GT_XGRIDCOLOR] = nint (rval[3]) + Memi[gt+GT_XAXISLABELCOLOR] = nint (rval[4]) + Memi[gt+GT_XAXISCOLOR] = nint (rval[5]) + Memi[gt+GT_XTICKLABELCOLOR] = nint (rval[6]) + Memi[gt+GT_XTICKCOLOR] = nint (rval[7]) + Memi[gt+GT_YGRIDCOLOR] = nint (rval[8]) + Memi[gt+GT_YAXISLABELCOLOR] = nint (rval[9]) + Memi[gt+GT_YAXISCOLOR] = nint (rval[10]) + Memi[gt+GT_YTICKLABELCOLOR] = nint (rval[11]) + Memi[gt+GT_YTICKCOLOR] = nint (rval[12]) + } + } + + call sfree (sp) +end -- cgit