/* Hello, Emacs, this is -*-C-*- * $Id: xlib.trm,v 1.29 2014/04/30 04:49:45 sfeam Exp $ */ /* GNUPLOT - xlib.trm */ /* * xlib.trm - inboard terminal driver for X11 (dumps gnuplot_x11 commands) * * New implementation November 2003 * Xlib_init() sets up the output channels, but otherwise all work is done * by the main x11.trm driver routines. * Ethan A Merritt */ #include "driver.h" #ifdef TERM_REGISTER register_term(xlib) #endif #ifdef TERM_PROTO TERM_PUBLIC void Xlib_init __PROTO((void)); TERM_PUBLIC void Xlib_text __PROTO((void)); TERM_PUBLIC void Xlib_reset __PROTO((void)); #define GOT_XLIB_PROTO #endif #ifndef TERM_PROTO_ONLY #ifdef TERM_BODY static FILE *X11_save_ipc = NULL; #ifndef PIPE_IPC int ipc_back_fd = IPC_BACK_UNUSABLE; #endif TERM_PUBLIC void Xlib_init() { /* x11.trm thinks it is writing to a private pipe, but here we */ /* set it to use the channel opened by 'set output ' */ X11_save_ipc = X11_ipc; X11_ipc = gpoutfile; /* There is, of course, no mouse feedback */ ipc_back_fd = IPC_BACK_UNUSABLE; term_initialised = TRUE; } TERM_PUBLIC void Xlib_text() { ipc_back_fd = 1; /* Force scaling info to be appended */ X11_text(); ipc_back_fd = IPC_BACK_UNUSABLE; } TERM_PUBLIC void Xlib_reset() { X11_ipc = X11_save_ipc; } #endif #ifdef TERM_TABLE TERM_TABLE_START(xlib_driver) "xlib", "X11 Window System (gnulib_x11 dump)", X11_XMAX, X11_YMAX, X11_VCHAR, X11_HCHAR, X11_VTIC, X11_HTIC, X11_options, Xlib_init, Xlib_reset, Xlib_text, null_scale, X11_graphics, X11_move, X11_vector, X11_linetype, X11_put_text, X11_text_angle, X11_justify_text, X11_point, do_arrow, X11_set_font, X11_pointsize, TERM_CAN_MULTIPLOT|TERM_INIT_ON_REPLOT|TERM_CAN_DASH, X11_text /* suspend can use same routine */ , 0 /* resume */ , X11_fillbox, X11_linewidth #ifdef USE_MOUSE , NULL, NULL, NULL, NULL, NULL #endif , X11_make_palette, 0 /* X11_previous_palette */ , X11_set_color, X11_filled_polygon , X11_image , ENHX11_OPEN, ENHX11_FLUSH, do_enh_writec , NULL /* layering */ , NULL /* path */ , 0.0 /* tscale */ , NULL /* hypertext */ #ifdef EAM_BOXED_TEXT , ENHX11_boxed_text #endif , NULL /* modify_plots */ , X11_dashtype TERM_TABLE_END(xlib_driver) #undef LAST_TERM #define LAST_TERM xlib_driver #endif /* TERM_TABLE */ #endif /* TERM_PROTO_ONLY */ #ifdef TERM_HELP START_HELP(xlib) "1 xlib", "?commands set terminal xlib", "?set terminal xlib", "?set term xlib", "?terminal xlib", "?term xlib", "?xlib", " The `xlib` terminal driver supports the X11 Windows System. It generates", " gnuplot_x11 commands, but sends them to the output file specified by", " `set output ''`. `set term x11` is equivalent to", " `set output \"|gnuplot_x11 -noevents\"; set term xlib`.", " `xlib` takes the same set of options as `x11`." END_HELP(xlib) #endif