Term-Gnuplot
view release on metacpan or search on metacpan
gnuterm/term_api.h view on Meta::CPAN
# define DEFAULT_LP_STYLE_TYPE {0, 0, 0, 1.0, 1.0, FALSE}
#else
# define DEFAULT_LP_STYLE_TYPE {0, 0, 0, 1.0, 1.0}
#endif
/* values for the optional flags field - choose sensible defaults
* these aren't really very sensible names - multiplot attributes
* depend on whether stdout is redirected or not. Remember that
* the default is 0. Thus most drivers can do multiplot only if
* the output is redirected
*/
#define TERM_CAN_MULTIPLOT 1 /* tested if stdout not redirected */
#define TERM_CANNOT_MULTIPLOT 2 /* tested if stdout is redirected */
#define TERM_BINARY 4 /* open output file with "b" */
/* The terminal interface structure --- heart of the terminal layer.
*
* It should go without saying that additional entries may be made
* only at the end of this structure. Any fields added must be
* optional - a value of 0 (or NULL pointer) means an older driver
* does not support that feature - gnuplot must still be able to
* function without that terminal feature
*/
typedef struct TERMENTRY {
const char *name;
#ifdef WIN16
const char GPFAR description[80]; /* to make text go in FAR segment */
#else
const char *description;
#endif
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*));
/* the following are optional. set term ensures they are not NULL */
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));
void (*pointsize) __PROTO((double)); /* change pointsize */
int flags;
void (*suspend) __PROTO((void)); /* called after one plot of multiplot */
void (*resume) __PROTO((void)); /* called before plots of multiplot */
void (*fillbox) __PROTO((int, unsigned int, unsigned int, unsigned int, unsigned int)); /* clear in multiplot mode */
void (*linewidth) __PROTO((double linewidth));
#ifdef USE_MOUSE
int (*waitforinput) __PROTO((void)); /* used for mouse input */
void (*put_tmptext) __PROTO((int, const char [])); /* draws temporary text; int determines where: 0=statusline, 1,2: at corners of zoom box, with \r separating text above and below the point */
void (*set_ruler) __PROTO((int, int)); /* set ruler location; x<0 switches ruler off */
void (*set_cursor) __PROTO((int, int, int)); /* set cursor style and corner of rubber band */
void (*set_clipboard) __PROTO((const char[])); /* write text into cut&paste buffer (clipboard) */
#endif
#ifdef PM3D
int (*make_palette) __PROTO((t_sm_palette *palette));
/* 1. if palette==NULL, then return nice/suitable
maximal number of colours supported by this terminal.
Returns 0 if it can make colours without palette (like
postscript).
2. if palette!=NULL, then allocate its own palette
return value is undefined
3. available: some negative values of max_colors for whatever
can be useful
*/
void (*previous_palette) __PROTO((void));
/* release the palette that the above routine allocated and get
back the palette that was active before.
Some terminals, like displays, may draw parts of the figure
using their own palette. Those terminals that possess only
one palette for the whole plot don't need this routine.
*/
void (*set_color) __PROTO((double gray));
/* gray is from [0;1], terminal uses its palette or another way
to transform in into gray or r,g,b
This routine (for each terminal separately) remembers or not
this colour so that it can apply it for the subsequent drawings
*/
void (*filled_polygon) __PROTO((int points, gpiPoint *corners));
#endif
} TERMENTRY;
#ifdef WIN16
# define termentry TERMENTRY far
#else
# define termentry TERMENTRY
#endif
enum set_encoding_id {
S_ENC_DEFAULT, S_ENC_ISO8859_1, S_ENC_ISO8859_2, S_ENC_CP437, S_ENC_CP850,
S_ENC_CP852, S_ENC_INVALID
};
/* HBB 20020225: this stuff used to be in a separate header, ipc.h,
* but I strongly disliked the way that was done */
/*
* There are the following types of interprocess communication from
* (gnupmdrv, gnuplot_x11) => gnuplot:
* OS2_IPC ... the OS/2 shared memory + event semaphores approach
* PIPE_IPC ... communication by using bidirectional pipe
*/
/*
* OS2_IPC: gnuplot's terminals communicate with it by shared memory + event
* semaphores => the code in gpexecute.c is used, and nothing more from here.
*/
#ifdef PIPE_IPC
enum { IPC_BACK_UNUSABLE = -2, IPC_BACK_CLOSED = -1 };
( run in 0.547 second using v1.01-cache-2.11-cpan-2398b32b56e )