[BACK]Return to tkcanvas.trm CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gnuplot / term

Annotation of OpenXM_contrib/gnuplot/term/tkcanvas.trm, Revision 1.1

1.1     ! maekawa     1: /*
        !             2:  * $Id: tkcanvas.trm,v 1.7 1998/04/14 00:18:11 drd Exp $
        !             3:  *
        !             4:  */
        !             5:
        !             6: /* GNUPLOT - tkcanvas.trm */
        !             7:
        !             8: /*[
        !             9:  * Copyright 1990 - 1993, 1998
        !            10:  *
        !            11:  * Permission to use, copy, and distribute this software and its
        !            12:  * documentation for any purpose with or without fee is hereby granted,
        !            13:  * provided that the above copyright notice appear in all copies and
        !            14:  * that both that copyright notice and this permission notice appear
        !            15:  * in supporting documentation.
        !            16:  *
        !            17:  * Permission to modify the software is granted, but not the right to
        !            18:  * distribute the complete modified source code.  Modifications are to
        !            19:  * be distributed as patches to the released version.  Permission to
        !            20:  * distribute binaries produced by compiling modified sources is granted,
        !            21:  * provided you
        !            22:  *   1. distribute the corresponding source modifications from the
        !            23:  *    released version in the form of a patch file along with the binaries,
        !            24:  *   2. add special version identification to distinguish your version
        !            25:  *    in addition to the base release version number,
        !            26:  *   3. provide your name and address as the primary contact for the
        !            27:  *    support of your modified version, and
        !            28:  *   4. retain our contact information in regard to use of the base
        !            29:  *    software.
        !            30:  * Permission to distribute the released version of the source code along
        !            31:  * with corresponding source modifications in the form of a patch file is
        !            32:  * granted with same provisions 2 through 4 for binary distributions.
        !            33:  *
        !            34:  * This software is provided "as is" without express or implied warranty
        !            35:  * to the extent permitted by applicable law.
        !            36: ]*/
        !            37:
        !            38: /*
        !            39:  * This file is included by ../term.c.
        !            40:  *
        !            41:  * This terminal driver supports:
        !            42:  *  Tk/Tcl canvas widgets
        !            43:  *
        !            44:  * AUTHORS - original dxy.trm
        !            45:  *  Martin Yii, eln557h@monu3.OZ
        !            46:  *  Further modified Jan 1990 by Russell Lang, rjl@monu1.cc.monash.oz
        !            47:  *
        !            48:  * Port to the Tk/Tcl canvas widget
        !            49:  *  D. Jeff Dionne, July 1995 jeff@ryeham.ee.ryerson.ca
        !            50:  *  Alex Woo, woo@playfair.stanford.edu
        !            51:  *
        !            52:  * send your comments or suggestions to (info-gnuplot@dartmouth.edu).
        !            53:  *
        !            54:  */
        !            55:
        !            56: /*
        !            57:  * adapted to the new terminal layout by Alex Woo (Sept. 1996)
        !            58:  */
        !            59:
        !            60: #include "driver.h"
        !            61:
        !            62: #ifdef TERM_REGISTER
        !            63: register_term(tkcanvas)
        !            64: #endif
        !            65:
        !            66: #ifdef TERM_PROTO
        !            67: TERM_PUBLIC void TK_init __PROTO((void));
        !            68: TERM_PUBLIC void TK_graphics __PROTO((void));
        !            69: TERM_PUBLIC void TK_text __PROTO((void));
        !            70: TERM_PUBLIC void TK_linetype __PROTO((int linetype));
        !            71: TERM_PUBLIC void TK_move __PROTO((unsigned int x, unsigned int y));
        !            72: TERM_PUBLIC void TK_vector __PROTO((unsigned int x, unsigned int y));
        !            73: TERM_PUBLIC void TK_put_text __PROTO((unsigned int x, unsigned int y, char *str));
        !            74: TERM_PUBLIC void TK_reset __PROTO((void));
        !            75:
        !            76: #define TK_XMAX 1000
        !            77: #define TK_YMAX 1000
        !            78:
        !            79: #define TK_XLAST (TK_XMAX - 1)
        !            80: #define TK_YLAST (TK_XMAX - 1)
        !            81:
        !            82: #define TK_VCHAR       (25)    /* double actual height of characters */
        !            83: #define TK_HCHAR       (16)    /* actual width including spacing */
        !            84: #define TK_VTIC        (18)
        !            85: #define TK_HTIC        (18)
        !            86: #endif /* TERM_PROTO */
        !            87:
        !            88: #ifndef TERM_PROTO_ONLY
        !            89: #ifdef TERM_BODY
        !            90:
        !            91: static int tk_angle = 0;
        !            92: static int tk_lastx;
        !            93: static int tk_lasty;
        !            94: static int tk_color = 0;
        !            95: static char *tk_colors[] = { "black", "gray", "red", "blue", "green", "brown", "magenta", "cyan" };
        !            96:
        !            97: TERM_PUBLIC void TK_init()
        !            98: {
        !            99:     fputs("\
        !           100: proc gnuplot can {\n\
        !           101: $can delete all\n\
        !           102: set cmx [lindex [$can configure -width] 4]\n\
        !           103: set cmy [lindex [$can configure -height] 4]\n",
        !           104:          gpoutfile);
        !           105:
        !           106:     tk_lastx = tk_lasty = tk_color = 0;
        !           107: }
        !           108:
        !           109:
        !           110: TERM_PUBLIC void TK_graphics()
        !           111: {
        !           112: }
        !           113:
        !           114:
        !           115: TERM_PUBLIC void TK_reset()
        !           116: {
        !           117: }
        !           118:
        !           119: TERM_PUBLIC void TK_linetype(linetype)
        !           120: int linetype;
        !           121: {
        !           122:     tk_color = (linetype + 2) & 7;
        !           123: }
        !           124:
        !           125: TERM_PUBLIC void TK_move(x, y)
        !           126: unsigned int x, y;
        !           127: {
        !           128:     tk_lastx = x;
        !           129:     tk_lasty = 1000 - y;
        !           130: }
        !           131:
        !           132:
        !           133: TERM_PUBLIC void TK_vector(x, y)
        !           134: unsigned int x, y;
        !           135: {
        !           136:     y = 1000 - y;
        !           137:     fprintf(gpoutfile,
        !           138:            "$can create line [expr $cmx * %d /1000] [expr $cmy * %d /1000] [expr $cmx * %d /1000] [expr $cmy * %d /1000] -fill %s\n",
        !           139:            tk_lastx, tk_lasty, x, y, tk_colors[tk_color]);
        !           140:     tk_lastx = x;
        !           141:     tk_lasty = y;
        !           142: }
        !           143:
        !           144:
        !           145: TERM_PUBLIC void TK_put_text(x, y, str)
        !           146: unsigned int x, y;
        !           147: char *str;
        !           148: {
        !           149:     y = 1000 - y;
        !           150:     fprintf(gpoutfile,
        !           151:            "$can create text [expr $cmx * %d /1000] [expr $cmy * %d /1000] -text {%s} -fill %s -anchor w\n",
        !           152:            x, y, str, tk_colors[tk_color]);
        !           153: }
        !           154:
        !           155: TERM_PUBLIC void TK_text()
        !           156: {
        !           157:     fputs("}\n", gpoutfile);
        !           158:     fflush(gpoutfile);
        !           159: }
        !           160:
        !           161:
        !           162: #endif /* TERM_BODY */
        !           163:
        !           164: #ifdef TERM_TABLE
        !           165: TERM_TABLE_START(tkcanvas)
        !           166:     "tkcanvas", "Tk/Tcl canvas widget",
        !           167:     TK_XMAX, TK_YMAX, TK_VCHAR, TK_HCHAR,
        !           168:     TK_VTIC, TK_HTIC, options_null, TK_init, TK_reset,
        !           169:     TK_text, null_scale, TK_graphics, TK_move, TK_vector,
        !           170:     TK_linetype, TK_put_text, null_text_angle,
        !           171:     null_justify_text, do_point, do_arrow, set_font_null
        !           172: TERM_TABLE_END(tkcanvas)
        !           173:
        !           174: #undef LAST_TERM
        !           175: #define LAST_TERM tkcanvas
        !           176:
        !           177: #endif /* TERM_TABLE */
        !           178: #endif /* TERM_PROTO_ONLY */
        !           179:
        !           180: #ifdef TERM_HELP
        !           181: START_HELP(tkcanvas)
        !           182: "1 tkcanvas",
        !           183: "?commands set terminal tkcanvas",
        !           184: "?set terminal tkcanvas",
        !           185: "?set term tkcanvas",
        !           186: "?terminal tkcanvas",
        !           187: "?term tkcanvas",
        !           188: "?tkcanvas",
        !           189: " This terminal driver generates tk canvas widget commands.  To use it, rebuild",
        !           190: " `gnuplot` (after uncommenting or inserting the appropriate line in \"term.h\"),",
        !           191: " then",
        !           192: "",
        !           193: "  gnuplot> set term tkcanvas",
        !           194: "  gnuplot> set output 'plot.file'",
        !           195: "",
        !           196: " After invoking \"wish\", execute the following sequence of tcl commands:",
        !           197: "",
        !           198: "  % source plot.file",
        !           199: "  % canvas .c",
        !           200: "  % pack .c",
        !           201: "  % gnuplot .c",
        !           202: "",
        !           203: " The code generated by `gnuplot` creates a tcl procedure called \"gnuplot\"",
        !           204: " that takes the name of a canvas as its argument.  When the procedure is,",
        !           205: " called, it clears the canvas, finds the size of the canvas and draws the plot",
        !           206: " in it, scaled to fit.",
        !           207: "",
        !           208: " The current version of `tkcanvas` supports neither `multiplot` nor `replot`."
        !           209: END_HELP(tkcanvas)
        !           210: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>