aboutsummaryrefslogtreecommitdiff
path: root/vendor/x11iraf/ximtool/ximtool.h
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-07-08 20:46:52 -0400
commitfa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch)
treebdda434976bc09c864f2e4fa6f16ba1952b1e555 /vendor/x11iraf/ximtool/ximtool.h
downloadiraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz
Initial commit
Diffstat (limited to 'vendor/x11iraf/ximtool/ximtool.h')
-rw-r--r--vendor/x11iraf/ximtool/ximtool.h733
1 files changed, 733 insertions, 0 deletions
diff --git a/vendor/x11iraf/ximtool/ximtool.h b/vendor/x11iraf/ximtool/ximtool.h
new file mode 100644
index 00000000..4d55f0ed
--- /dev/null
+++ b/vendor/x11iraf/ximtool/ximtool.h
@@ -0,0 +1,733 @@
+/*
+ * XIMTOOL.H -- Global definitions for XImtool.
+ */
+
+#include "eps.h"
+
+/* Default values, size limiting values.
+ */
+#define MAX_FBCONFIG 128 /* max possible frame buf sizes */
+#define MAX_FRAMES 16 /* max number of frames */
+#define MAX_MAPPINGS 100 /* max number of mappings/frame */
+#define MAX_CLIENTS 32 /* max display server clients */
+#define MAX_ISM 8 /* max ISM module clients */
+#define MAX_COLORMAPS 256 /* max number of colormaps */
+#define MAX_COLORS 256 /* max size colormap */
+#define MAX_PRINTERS 128 /* max number of printers */
+#define FIRST_COLOR 10 /* first allocatable color */
+#define DEF_NCOLORS 201 /* default number of colors */
+#define DEF_COLORMAP 1 /* default colormap */
+#define DEF_NFRAMES 1 /* save memory; only one frame */
+#define DEF_FRAME_WIDTH 512 /* 512 square frame */
+#define DEF_FRAME_HEIGHT 512 /* 512 square frame */
+#define DEF_FRAME_DEPTH 8 /* 8 bits deep */
+#define DEF_WIN_WIDTH 512 /* default size window */
+#define DEF_WIN_HEIGHT 512 /* default size window */
+#define DEF_TILE_BORDER 3 /* border width for tileFrames */
+#define DEF_BORDER_COLOR "9" /* border highlight color */
+#define SZ_CMAPNAME 32 /* colormap name buffer */
+#define SZ_NAME 80 /* object name buffer */
+#define SZ_LABEL 256 /* main frame label string */
+#define SZ_IMTITLE 128 /* image title string */
+#define SZ_WCTEXT 80 /* WCS box text */
+#define SZ_OLD_WCSBUF 320 /* old WCS text buffer size */
+#define SZ_WCSBUF 1024 /* WCS text buffer size */
+#define SZ_MSGBUF 8192 /* message buffer size */
+#define SZ_COLORBAR 11 /* height of colorbar in pixels */
+#define SZ_FIFOBUF 4000 /* transfer size for FIFO i/o */
+
+#define SZ_FNAME 256
+#define SZ_LINE 256
+#define ERR (-1)
+#define OK 0
+#define EOS '\0'
+
+#define M_UNITARY 0 /* xim_setmapping */
+#define M_ASPECT 1
+#define M_FILL 2
+
+/* Magic numbers. */
+#define DEF_PORT 5137 /* default tcp/ip socket */
+#define DEF_NPORTS 1 /* no. of inet ports to open */
+#define I_DEVNAME "/dev/imt1o" /* pseudo device names */
+#define O_DEVNAME "/dev/imt1i" /* our IN is client's OUT */
+#define DEF_UNIXADDR "/tmp/.IMT%d" /* default unix socket */
+#define DEF_ANTIALIASTYPE "boxcar" /* default antialiasing */
+#define FBCONFIG_1 ".imtoolrc"
+#define FBCONFIG_2 "/usr/local/lib/imtoolrc"
+#define CMAPCONFIG "/usr/local/lib/imtoolcmap"
+#define FBCONFIG_ENV1 "imtoolrc"
+#define FBCONFIG_ENV2 "IMTOOLRC"
+#define PRINTCONFIG "/usr/local/lib/ximprint.cfg"
+
+#define DEF_ISM_ADDR "/tmp/.ISM%d" /* default ISM unix socket */
+#define DEF_ISM_TEMPLATE "/tmp/.ISM%d_%d" /* ISM client socket template */
+#define DEF_ISM_TASK "wcspix"
+#define DEF_ISM_CMD "/usr/local/bin/ism_wcspix.e wcspix &"
+#define DEF_ISM_CMD "ism_wcspix.e wcspix &"
+#define SZ_ISMBUF 4096
+
+/* WCS definitions. */
+#define W_UNITARY 0
+#define W_LINEAR 1
+#define W_LOG 2
+#define W_USER 3
+#define W_DEFFORMAT " %7.2f %7.2f %7.1f%c"
+
+/* Rotation matrix defining world coordinate system (WCS) of a frame. */
+typedef struct {
+ int valid; /* has WCS been set? */
+ float a, b; /* x, y scale factors */
+ float c, d; /* x, y cross factors */
+ float tx, ty; /* x, y translation */
+ float z1, z2; /* greyscale range */
+ int zt; /* greyscale mapping */
+ char format[32]; /* wcs output format */
+ char imtitle[SZ_IMTITLE+1]; /* image title from WCS */
+} Ctran, *CtranPtr;
+
+/* Coordinate mappings on each frame buffer. */
+typedef struct {
+ int id; /* object id */
+ Ctran ctran; /* world coordinate system */
+ char ref[SZ_FNAME+1]; /* image reference from WCS */
+ int regid; /* region id */
+ char region[SZ_FNAME+1]; /* region name from WCS */
+ float sx, sy; /* source rect */
+ int snx, sny;
+ int dx, dy; /* destination rect */
+ int dnx, dny;
+} Mapping, *MappingPtr;
+
+/* The frame buffers. */
+typedef struct {
+ int frameno; /* frame number */
+ int raster; /* frame buffer raster */
+ int zoomras; /* zoom/pan raster */
+ int zoommap; /* zoom/pan mapping */
+ int dispmap; /* mapping used for display */
+ int colormap; /* greyscale transformation */
+ float offset, scale; /* transfer function */
+ float xscale, yscale; /* scaling at [xy]mag==1.0 */
+ float xmag, ymag; /* zoom/dezoom factors */
+ float xcen, ycen; /* center of zoomed region */
+ float xoff, yoff; /* offset of zoomed region */
+ int xflip, yflip; /* flip in X or Y? */
+ char label[SZ_LABEL+1]; /* frame label string */
+ Ctran ctran; /* world coordinate system */
+ char wcsbuf[SZ_WCSBUF]; /* wcs info string */
+ Mapping mapping[MAX_MAPPINGS]; /* coordinate mappings */
+ int nmaps; /* number of defined mappings */
+} FrameBuf, *FrameBufPtr;
+
+/* Possible frame buffer sizes. */
+typedef struct {
+ int nframes; /* number of frames */
+ int width; /* frame buffer width */
+ int height; /* frame buffer height */
+} FbConfig, *FbConfigPtr;
+
+
+/* Predefined colormaps. */
+typedef struct {
+ int mapno; /* widget colormap number */
+ char name[SZ_CMAPNAME+1]; /* colormap name */
+} ColorMap, *ColorMapPtr;
+
+/* Predefined lookup tables. */
+typedef struct {
+ float red, green, blue;
+} Triplet, *TripletPtr;
+
+typedef struct {
+ int lutlen;
+ Triplet hue[MAX_COLORS];
+} Lut, *LutPtr;
+
+
+/* Client IIS I/O channel. */
+typedef struct {
+ XtPointer xim; /* backpointer to xim descriptor */
+ XtPointer id; /* input callback id */
+ int type; /* channel type */
+ int datain; /* input channel */
+ int dataout; /* output channel */
+ int keepalive; /* used to keep input fifo ready */
+ char path[SZ_FNAME+1]; /* for unix sockets */
+ int reference_frame; /* reference (cmd i/o) frame */
+ int version; /* flags capability of client */
+ FrameBufPtr rf_p; /* reference frame descriptor */
+} IoChan, *IoChanPtr;
+
+#define IO_FIFO 1
+#define IO_INET 2
+#define IO_UNIX 3
+
+
+/* Client ISM I/O channel. */
+typedef struct {
+ XtPointer xim; /* backpointer to xim descriptor */
+ XtPointer id; /* input callback id */
+ int datain; /* input channel */
+ int dataout; /* output channel */
+ int connected; /* client connected? */
+ char name[SZ_FNAME+1]; /* client name */
+ char path[SZ_FNAME+1]; /* for unix sockets */
+ char msgbuf[SZ_ISMBUF+1]; /* incomplete message buffer */
+} IsmIoChan, *IsmIoChanPtr;
+
+
+/* Definitions for the supported ISM Modules. */
+typedef void (*IsmFunc)();
+
+typedef struct {
+ char name[SZ_FNAME]; /* name of the module */
+ char command[SZ_LINE]; /* cmd to execute for module */
+ IsmFunc startupCB; /* connection callback func */
+ IsmFunc shutdownCB; /* shutdown callback func */
+ IsmFunc commandCB; /* client command callback func */
+ int connected; /* client is connected */
+ int ref_count; /* reference count */
+ IsmIoChanPtr chan; /* i/o channel */
+} ismModule, *IsmModule;
+
+
+/* Printer list. */
+typedef struct {
+ char printerName[SZ_FNAME+1]; /* printer name */
+ char printCmd[SZ_FNAME+1]; /* printer dispose command */
+} Printer, *PrinterPtr;
+
+
+/* Printer configuration struct. */
+typedef struct {
+ int printno; /* printer number */
+ int seqno; /* sequence number */
+ int diskfile; /* print to diskfile? */
+ char printFile[SZ_FNAME+1]; /* disk filename template */
+ char printCmd[SZ_FNAME+1]; /* dispose command */
+} PrintCfg, *PrintCfgPtr;
+
+/* File save definitions and structure. */
+typedef struct {
+ int seqno; /* sequence number */
+ int format; /* save format */
+ int colorType; /* save color type */
+ int w, h, d; /* dimensions of last file saved */
+ char fname[SZ_FNAME+1]; /* save filename */
+} fileSave, *fileSavePtr;
+
+#define XIM_GRAYSCALE 0 /* save color options */
+#define XIM_PSEUDOCOLOR 1
+#define XIM_RGB 2
+
+#define XIM_RAS 0 /* save format options */
+#define XIM_GIF 1
+#define XIM_TIFF 2
+#define XIM_JPEG 3
+#define XIM_X11 4
+#define XIM_FITS 5
+#define XIM_RAW 6
+#define XIM_EPS 7
+#define XIM_OIF 8
+
+
+/* File load struct. */
+typedef struct {
+ int nfiles; /* number of files in directory */
+ char **FileList; /* list of directory contents */
+ char curdir[SZ_FNAME+1]; /* current directory */
+ char homedir[SZ_FNAME+1]; /* home directory */
+ char pattern[SZ_NAME+1]; /* file pattern to match */
+ int gray; /* load as a grayscale image? */
+ int zscale; /* zscale the image */
+ int zrange; /* use full data range */
+ float z1, z2; /* user-supplied zrange limits */
+ int nsample; /* number of zscale sample pts */
+} fileLoad, *fileLoadPtr;
+
+/*
+ * Application resources and runtime descriptor.
+ * ----------------------------------------------
+ */
+typedef struct {
+ /* Resources. */
+ Boolean autoscale; /* is XY autoscaling enabled */
+ Boolean antialias; /* apply antialiasing when dezooming */
+ Boolean tileFrames; /* tile rather than overlay frames */
+ Boolean highlightFrames; /* highlight tiled frames */
+ Boolean invert; /* use inverted colormap */
+ int def_config; /* default FB config */
+ int def_nframes; /* default number of frames */
+ int ncolors; /* number of image pixel colors */
+ int tileBorder; /* image border when tiling frames */
+ int cm_focus; /* colormap update screen size */
+ String borderColor; /* border color for tileFrames */
+ String gui; /* GUI file name */
+ String imtoolrc; /* imtoolrc file name */
+ String memModel; /* FB memory model */
+ String userCMap1; /* user colormap file */
+ String userCMap2; /* user colormap file */
+ String userCMapDir1; /* user colormap directory */
+ String userCMapDir2; /* user colormap directory */
+ String antialiasType; /* type of antialiasing */
+ String printConfig; /* printer configuration file */
+ String input_fifo; /* client's output, e.g. /dev/imt1o */
+ String output_fifo; /* client's input, e.g. /dev/imt1i */
+ String unixaddr; /* format for unix socket path */
+ String ism_addr; /* format for ISM unix socket path */
+ String ism_task; /* image support module taskname */
+ int port; /* port for INET socket */
+ int nports; /* no. of INET ports to open */
+
+ /* Internal state. */
+ XtPointer obm; /* object manager */
+ IoChanPtr cursor_chan; /* cursor mode channel */
+ IoChan chan[MAX_CLIENTS]; /* client i/o descriptors */
+ IsmIoChan ism_chan; /* image support module channel */
+ IsmIoChan ism_client[MAX_ISM]; /* ISM client i/o descriptors */
+ Widget toplevel; /* dummy toplevel app shell */
+ Widget gt; /* imagewin gterm-image widget */
+ Widget cb; /* colorbar gterm-image widget */
+ XtPointer gm_border; /* border marker for tileFrames */
+ int tileFramesList; /* frames to be tiled (bitmask) */
+ int nTileFrames; /* number of frames to be tiled */
+ int tileRows; /* number of tile rows */
+ int tileCols; /* number of tile cols */
+ Boolean tileByRows; /* fill tiles by row vs cols */
+ Boolean tileTopDown; /* fill tiles by top to bottom */
+ Boolean tileLabels; /* label frame tiles */
+ int rop; /* rasterop for mappings */
+ int display_frame; /* currently displayed frame */
+ FrameBufPtr df_p; /* display frame descriptor */
+ FrameBuf frames[MAX_FRAMES]; /* array of frame descriptors */
+ int fb_configno; /* current config number */
+ int nframes; /* current number of frame bufs */
+ int width, height; /* current width, height */
+ FbConfig fb_config[MAX_FBCONFIG]; /* fb config table */
+ int *clientPrivate; /* used by imtool client code */
+
+ PSImagePtr psim; /* EPS image struct pointer */
+ PrintCfgPtr pcp; /* printer config pointer */
+ fileLoadPtr flp; /* load disk file pointer */
+ fileSavePtr fsp; /* save disk file pointer */
+
+} XimData, *XimDataPtr;
+
+
+
+#ifdef XIMTOOL_MAIN
+XimData ximtool_data;
+
+#define XtNdefConfig "defConfig"
+#define XtCDefConfig "DefConfig"
+#define XtNdefNFrames "defNFrames"
+#define XtCDefNFrames "DefNFrames"
+#define XtNncolors "ncolors"
+#define XtCNcolors "Ncolors"
+#define XtNtileBorderWidth "tileBorderWidth"
+#define XtCTileBorderWidth "TileBorderWidth"
+#define XtNtileBorderColor "tileBorderColor"
+#define XtCTileBorderColor "TileBorderColor"
+#define XtNautoscale "autoscale"
+#define XtCAutoscale "Autoscale"
+#define XtNantialias "antialias"
+#define XtCAntialias "Antialias"
+#define XtNantialiasType "antialiasType"
+#define XtCAntialiasType "AntialiasType"
+#define XtNinvert "invert"
+#define XtCInvert "Invert"
+#define XtNtileFrames "tileFrames"
+#define XtCTileFrames "TileFrames"
+#define XtNhighlightFrames "highlightFrames"
+#define XtCHighlightFrames "HighlightFrames"
+#define XtNgui "gui"
+#define XtCGui "Gui"
+#define XtNimtoolrc "imtoolrc"
+#define XtCImtoolrc "Imtoolrc"
+#define XtNmemModel "memModel"
+#define XtCMemModel "MemModel"
+#define XtNuserCMap1 "cmap1"
+#define XtNuserCMap2 "cmap2"
+#define XtNcmFocus "cmFocus"
+#define XtCCmFocus "cmFocus"
+#define XtCUserCMap "UserCMap"
+#define XtNuserCMapDir1 "cmapDir1"
+#define XtNuserCMapDir2 "cmapDir2"
+#define XtCUserCMapDir "UserCMapDir"
+#define XtNprintConfig "printConfig"
+#define XtCprintConfig "printConfig"
+#define XtNinput_fifo "input_fifo"
+#define XtCInput_fifo "Input_fifo"
+#define XtNoutput_fifo "output_fifo"
+#define XtCOutput_fifo "Output_fifo"
+#define XtNunixaddr "unixaddr"
+#define XtCUnixaddr "Unixaddr"
+#define XtNism_addr "ism_addr"
+#define XtCIsm_addr "Ism_addr"
+#define XtNport "port"
+#define XtCPort "Port"
+#define XtNnports "nports"
+#define XtCNPorts "NPorts"
+#define XtNism_task "ism_task"
+#define XtCIsm_task "Ism_task"
+
+static XtResource resources[] = {
+ {
+ XtNdefConfig,
+ XtCDefConfig,
+ XtRInt,
+ sizeof(int),
+ XtOffsetOf(XimData, def_config),
+ XtRImmediate,
+ (caddr_t)1
+ },
+ {
+ XtNdefNFrames,
+ XtCDefNFrames,
+ XtRInt,
+ sizeof(int),
+ XtOffsetOf(XimData, def_nframes),
+ XtRImmediate,
+ (caddr_t)0
+ },
+ {
+ XtNncolors,
+ XtCNcolors,
+ XtRInt,
+ sizeof(int),
+ XtOffsetOf(XimData, ncolors),
+ XtRImmediate,
+ (caddr_t)DEF_NCOLORS
+ },
+ {
+ XtNtileBorderWidth,
+ XtCTileBorderWidth,
+ XtRInt,
+ sizeof(int),
+ XtOffsetOf(XimData, tileBorder),
+ XtRImmediate,
+ (caddr_t)DEF_TILE_BORDER
+ },
+ {
+ XtNtileBorderColor,
+ XtCTileBorderColor,
+ XtRString,
+ sizeof(String),
+ XtOffsetOf(XimData, borderColor),
+ XtRImmediate,
+ (caddr_t)DEF_BORDER_COLOR
+ },
+ {
+ XtNautoscale,
+ XtCAutoscale,
+ XtRBoolean,
+ sizeof(Boolean),
+ XtOffsetOf(XimData, autoscale),
+ XtRImmediate,
+ (caddr_t)FALSE
+ },
+ {
+ XtNantialias,
+ XtCAntialias,
+ XtRBoolean,
+ sizeof(Boolean),
+ XtOffsetOf(XimData, antialias),
+ XtRImmediate,
+ (caddr_t)FALSE
+ },
+ {
+ XtNantialiasType,
+ XtCAntialiasType,
+ XtRString,
+ sizeof(String),
+ XtOffsetOf(XimData, antialiasType),
+ XtRImmediate,
+ (caddr_t)DEF_ANTIALIASTYPE
+ },
+ {
+ XtNinvert,
+ XtCInvert,
+ XtRBoolean,
+ sizeof(Boolean),
+ XtOffsetOf(XimData, invert),
+ XtRImmediate,
+ (caddr_t)FALSE
+ },
+ {
+ XtNtileFrames,
+ XtCTileFrames,
+ XtRBoolean,
+ sizeof(Boolean),
+ XtOffsetOf(XimData, tileFrames),
+ XtRImmediate,
+ (caddr_t)FALSE
+ },
+ {
+ XtNhighlightFrames,
+ XtCHighlightFrames,
+ XtRBoolean,
+ sizeof(Boolean),
+ XtOffsetOf(XimData, highlightFrames),
+ XtRImmediate,
+ (caddr_t)TRUE
+ },
+ {
+ XtNcmFocus,
+ XtCCmFocus,
+ XtRInt,
+ sizeof(int),
+ XtOffsetOf(XimData, cm_focus),
+ XtRImmediate,
+ (caddr_t)512
+ },
+ {
+ XtNgui,
+ XtCGui,
+ XtRString,
+ sizeof(String),
+ XtOffsetOf(XimData, gui),
+ XtRImmediate,
+ (caddr_t)"default"
+ },
+ {
+ XtNimtoolrc,
+ XtCImtoolrc,
+ XtRString,
+ sizeof(String),
+ XtOffsetOf(XimData, imtoolrc),
+ XtRImmediate,
+ (caddr_t)FBCONFIG_2
+ },
+ {
+ XtNmemModel,
+ XtCMemModel,
+ XtRString,
+ sizeof(String),
+ XtOffsetOf(XimData, memModel),
+ XtRImmediate,
+ (caddr_t)"fast"
+ },
+ {
+ XtNuserCMap1,
+ XtCUserCMap,
+ XtRString,
+ sizeof(String),
+ XtOffsetOf(XimData, userCMap1),
+ XtRImmediate,
+ (caddr_t)"none"
+ },
+ {
+ XtNuserCMap2,
+ XtCUserCMap,
+ XtRString,
+ sizeof(String),
+ XtOffsetOf(XimData, userCMap2),
+ XtRImmediate,
+ (caddr_t)"none"
+ },
+ {
+ XtNuserCMapDir1,
+ XtCUserCMapDir,
+ XtRString,
+ sizeof(String),
+ XtOffsetOf(XimData, userCMapDir1),
+ XtRImmediate,
+ (caddr_t)"none"
+ },
+ {
+ XtNuserCMapDir2,
+ XtCUserCMapDir,
+ XtRString,
+ sizeof(String),
+ XtOffsetOf(XimData, userCMapDir2),
+ XtRImmediate,
+ (caddr_t)CMAPCONFIG
+ },
+ {
+ XtNprintConfig,
+ XtCprintConfig,
+ XtRString,
+ sizeof(String),
+ XtOffsetOf(XimData, printConfig),
+ XtRImmediate,
+ (caddr_t)PRINTCONFIG
+ },
+ {
+ XtNinput_fifo,
+ XtCInput_fifo,
+ XtRString,
+ sizeof(String),
+ XtOffsetOf(XimData, input_fifo),
+ XtRImmediate,
+ (caddr_t)O_DEVNAME
+ },
+ {
+ XtNoutput_fifo,
+ XtCOutput_fifo,
+ XtRString,
+ sizeof(String),
+ XtOffsetOf(XimData, output_fifo),
+ XtRImmediate,
+ (caddr_t)I_DEVNAME
+ },
+ {
+ XtNunixaddr,
+ XtCUnixaddr,
+ XtRString,
+ sizeof(String),
+ XtOffsetOf(XimData, unixaddr),
+ XtRImmediate,
+ (caddr_t)DEF_UNIXADDR
+ },
+ {
+ XtNism_addr,
+ XtCIsm_addr,
+ XtRString,
+ sizeof(String),
+ XtOffsetOf(XimData, ism_addr),
+ XtRImmediate,
+ (caddr_t)DEF_ISM_ADDR
+ },
+ {
+ XtNport,
+ XtCPort,
+ XtRInt,
+ sizeof(int),
+ XtOffsetOf(XimData, port),
+ XtRImmediate,
+ (caddr_t)DEF_PORT
+ },
+ {
+ XtNnports,
+ XtCNPorts,
+ XtRInt,
+ sizeof(int),
+ XtOffsetOf(XimData, nports),
+ XtRImmediate,
+ (caddr_t)DEF_NPORTS
+ },
+ {
+ XtNism_task,
+ XtCIsm_task,
+ XtRString,
+ sizeof(String),
+ XtOffsetOf(XimData, ism_task),
+ XtRImmediate,
+ (caddr_t)DEF_ISM_TASK
+ },
+};
+
+int ncolormaps = 0;
+int first_color = FIRST_COLOR;
+
+ColorMap colormaps[MAX_COLORMAPS] = {
+ { 0, "Grayscale" },
+ { 0, "Color" },
+ { 0, "Heat" },
+ { 0, "HSV" },
+ { 0, "AIPS0" },
+ { 0, "Halley" },
+ { 0, "Ramp" },
+ { 0, "Standard" },
+ { 0, "Staircase" },
+ { 0, "Rainbow1" },
+ { 0, "Rainbow2" },
+ { 0, "Random" },
+ { 0, "Random8" },
+ { 0, "Random16" },
+ { 0, "Red" },
+ { 0, "Green" },
+ { 0, "Blue" },
+};
+
+
+int nprinters = 0;
+Printer printer_list[MAX_PRINTERS] = {
+ { "default", "lpr" }, /* should do more interesting examples */
+ { "clp", "lpr -Pclp" },
+ { "clp2", "lpr -Pclp2" },
+ { "clp2t", "lpr -Pclp2t" },
+ { "lw1", "lpr -Plw1" },
+ { "lw2", "lpr -Plw2" },
+ { "lw3", "lpr -Plw3" },
+ { "lw4", "lpr -Plw4" },
+ { "lw5", "lpr -Plw5" },
+ { "lw6", "lpr -Plw6" },
+ { "lw7", "lpr -Plw7" },
+ { "lw8", "lpr -Plw8" },
+ { "lw9", "lpr -Plw9" },
+ { "lw10", "lpr -Plw10" },
+ { "lw11", "lpr -Plw11" },
+ { "lw12", "lpr -Plw12" },
+ { "lw13", "lpr -Plw13" },
+ { "lw14", "lpr -Plw14" },
+ { "lw15", "lpr -Plw15" },
+ { "lw16", "lpr -Plw16" },
+ { "lw18", "lpr -Plw18" },
+ { "lw19", "lpr -Plw19" },
+ { "lw20", "lpr -Plw20" },
+ { "lw21", "lpr -Plw21" },
+ { "lw22", "lpr -Plw22" },
+ { "lw23", "lpr -Plw23" },
+ { "lw24", "lpr -Plw24" },
+ { "lw25", "lpr -Plw25" },
+ { "lw26", "lpr -Plw26" },
+ { "lw27", "lpr -Plw27" },
+ { "\0", "\0" },
+};
+
+
+#else
+
+extern XtResource resources[];
+extern XimData ximtool_data;
+extern int ncolormaps;
+extern int first_color;
+extern ColorMap colormaps[];
+extern int nprinters;
+extern Printer printer_list[];
+
+#endif
+
+/* Functions.
+ */
+#ifndef abs
+#define abs(a) (((a)<0)?(-(a)):(a))
+#endif
+#ifndef min
+#define min(a,b) ((a)<(b)?(a):(b))
+#endif
+#ifndef max
+#define max(a,b) ((a)<(b)?(b):(a))
+#endif
+#ifndef nint
+#define nint(a) ((a)<(0)?((int)(a-0.5)):((int)(a+0.5)))
+#endif
+
+void xim_initialize(), xim_reset(), xim_resize(), xim_refresh();
+void xim_close(), xim_initFrame(), xim_setFrame(), xim_setRop();
+void xim_setReferenceFrame(), xim_setDisplayFrame();
+void xim_delFrame(), xim_setMapping(), xim_setZoom();
+void xim_setCursorPos(), xim_getCursorPos(), xim_setFlip();
+void xim_matchFrames(), xim_registerFrames();
+void xim_readCursor(), xim_frameChanged();
+void xim_message(), xim_msgi(), xim_alert();
+int xim_setColormap();
+int xim_getAntialias();
+char *xim_frameLabel();
+
+int xim_writeDisplay();
+unsigned char *xim_readDisplay();
+void xim_initSave(), xim_closeSave();
+void ximp_rename(), ximp_cancel();
+void xims_rename(), xims_cancel();
+int xim_saveFile();
+
+int xim_iisopen();
+void xim_iisclose(), xim_iisio();
+XtPointer xim_addInput();
+void xim_removeInput();
+
+void xim_clientOpen(), xim_clientClose();
+int xim_clientExecute();