Term-Gnuplot
view release on metacpan or search on metacpan
gnuterm/term/README view on Meta::CPAN
DOCUMENTATION FOR GNUPLOT TERMINAL DRIVER WRITERS
By Russell Lang 1/90
Updated for new file layout by drd 4/95
Paragraphs about inclusion of TERM_HELP added by rcc 1/96
No change to the interface between gnuplot and the terminal drivers,
but we would like to make the terminal drivers standalone
1) in order move the support for the terminal drivers outside of the
support for the main program, thereby encouraging a library of
contributed drivers
2) To make it easy for users to add contributed drivers, by adding
a single #include line to term.h
3) To allow individual compilation on DOS, to save the overlay
manager from having to load _all_ drivers together.
CORRECTION - scale() interface is no longer supported, since it
is incompatible with multiplot.
Whole of terminal driver should be contained in one <driver>.trm file,
with a fairly strict layout as detailed below - this allows the
gnuplot maintainers to change the way the terminal drivers are
compiled without having to change the drivers themselves.
term.h, and therefore each file.trm file, may be loaded more than once,
with different sections selected by macros.
Each driver provides all the functions it needs, and a table of
function pointers and other data to interface to gnuplot.
The table entry is currently defined as follows in plot.h:
struct TERMENTRY {
/* required entries */
const char *name;
const char *description;
unsigned int xmax,ymax,v_char,h_char,v_tic,h_tic;
void (*options) __PROTO((void));
void (*init) __PROTO((void));
void (*reset) __PROTO((void));
void (*text) __PROTO((void));
int (*scale) __PROTO((double, double));
void (*graphics) __PROTO((void));
void (*move) __PROTO((unsigned int, unsigned int));
void (*vector) __PROTO((unsigned int, unsigned int));
void (*linetype) __PROTO((int));
void (*put_text) __PROTO((unsigned int, unsigned int, const char*));
/* optional entries */
int (*text_angle) __PROTO((int));
int (*justify_text) __PROTO((enum JUSTIFY));
void (*point) __PROTO((unsigned int, unsigned int,int));
void (*arrow) __PROTO((unsigned int, unsigned int, unsigned int,
unsigned int, TBOOLEAN));
int (*set_font) __PROTO((const char *font)); /* "font,size" */
void (*pointsize) __PROTO((double pointsize));
int flags; /* various flags */
void (*suspend) __PROTO((void)); /* after one plot of multiplot */
void (*resume) __PROTO((void)); /* before subsequent plot of multiplot */
void (*fillbox) __PROTO((int style, unsigned int x1, unsigned int y1, unsigned int width, unsigned int height)); /* clear part of multiplot */
void (*linewidth) __PROTO((double linewidth));
#ifdef USE_MOUSE
int (*waitforinput) __PROTO((void));
void (*put_tmptext) __PROTO((int i, const char str[]));
void (*set_ruler) __PROTO((int x, int y));
void (*set_cursor) __PROTO((int c, int x, int y));
void (*set_clipboard) __PROTO((const char s[]));
#endif
#ifdef PM3D
int (*make_palette)__PROTO((t_sm_palette *palette));
void (*previous_palette) __PROTO(());
( run in 0.939 second using v1.01-cache-2.11-cpan-df04353d9ac )