/* gnushell header file */ /* ** static char RCSid[]="$Id: gnupmdrv.h,v 1.8 1998/03/22 22:34:23 drd Exp $" ; */ /* PM driver for GNUPLOT */ /*[ * Copyright 1992, 1993, 1998 Roger Fearick * * Permission to use, copy, and distribute this software and its * documentation for any purpose with or without fee is hereby granted, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * * Permission to modify the software is granted, but not the right to * distribute the complete modified source code. Modifications are to * be distributed as patches to the released version. Permission to * distribute binaries produced by compiling modified sources is granted, * provided you * 1. distribute the corresponding source modifications from the * released version in the form of a patch file along with the binaries, * 2. add special version identification to distinguish your version * in addition to the base release version number, * 3. provide your name and address as the primary contact for the * support of your modified version, and * 4. retain our contact information in regard to use of the base * software. * Permission to distribute the released version of the source code along * with corresponding source modifications in the form of a patch file is * granted with same provisions 2 through 4 for binary distributions. * * This software is provided "as is" without express or implied warranty * to the extent permitted by applicable law. ]*/ /* * AUTHOR * * Gnuplot driver for OS/2: Roger Fearick * * Send your comments or suggestions to * info-gnuplot@dartmouth.edu. * This is a mailing list; to join it send a note to * majordomo@dartmouth.edu. * Send bug reports to * bug-gnuplot@dartmouth.edu. **/ /* include resource defines */ #ifndef DISPDEFS_H /*#include "dispdefs.h"*/ #include "dialogs.h" #endif /*==== own window messages =================================================*/ #define WM_GNUPLOT (WM_USER+20) #define WM_PAUSEPLOT (WM_USER+21) #define WM_PAUSEEND (WM_USER+22) #define WM_GPSTART (WM_USER+23) #define WM_USER_SET_DATA (WM_USER+90) #define WM_USER_GET_DATA (WM_USER+91) #define WM_USER_CHGFONT (WM_USER+10) #define WM_USER_PRINT_BEGIN (WM_USER+200) #define WM_USER_PRINT_OK (WM_USER+201) #define WM_USER_PRINT_ERROR (WM_USER+202) #define WM_USER_DEV_ERROR (WM_USER+203) #define WM_USER_PRINT_QBUSY (WM_USER+204) #define WM_USER_PRINT_CANCEL (WM_USER+205) /*==== various names ========================================================*/ #define GNUPIPE "\\pipe\\gnuplot" /* named pipe to gnuplot */ #define GNUQUEUE "\\queues\\gnuplot" /* queue for gnuplot termination */ #define GNUSEM "\\sem32\\gnuplot.sem" /* synch gnuplot and gnupmdrv */ #define GNUINI "GNUPMDRV.INI" /* ini filename */ #define ENVGNUHELP "GNUHELP" /* gnuplot help envionment name */ #define ENVGNUPLOT "GNUPLOT" /* general gnuplot environment */ #define GNUEXEFILE "gnuplot.exe" /* exe file name */ #define GNUHELPFILE "gnuplot.gih" /* help file name */ #define GNUTERMINIT "GNUTERM=pm" /* terminal setup string */ #define INITIAL_FONT "14.Helvetica" /* initial font for plots */ #define APP_NAME "GnuplotPM" /* application name */ #define CHILD_NAME "GnupltChild" /* child window name */ // profile (ini file) names #define INISHELLPOS "PosShell" #define INIPAUSEPOS "PosPause" #define INIPLOTPOS "PosPlot" #define INIFONT "DefFont" #define INIFRAC "PageFrac" #define INIPRDRIV "DrivData" #define INIPRPR "Printer" #define INIOPTS "DefOpts" #define INICHAR "Fontdata" /*==== global data ==========================================================*/ HAB hab ; // application anchor block handle HWND hApp ; // application window handle HWND hwndFrame ; // frame window handle #define FONTBUF 256 /* buffer for dropped font namesize */ #define GNUXPAGE 19500 /* width of plot area in 0.01 cm */ #define GNUYPAGE 12500 /* height of plot area in 0.01 cm */ /*==== stuff for querying printer capability =================================*/ typedef struct { //query data for printer setup int cbStruct ; /* size of struct */ float xsize ; float ysize ; float xfrac ; float yfrac ; short caps ; char szFilename[CCHMAXPATHCOMP] ; char szPrinterName[128] ; PPRQINFO3 piPrinter ; int cbpdriv ; PDRIVDATA pdriv ; } QPRINT, *PQPRINT ; #define QP_CAPS_NORMAL 0 #define QP_CAPS_FILE 1 /* can print to file */ /*==== stuff for pause dialogs =================================*/ typedef struct { //pause data for dialog box int cbStruct ; /* size of struct */ char *pszMessage ; /* pause message */ PSWP pswp ; /* dialog box position */ } PAUSEDATA, *PPAUSEDATA ; /*==== function declarations =================================================*/ short ScalePS( HPS ) ; int SetupPrinter( HWND, PQPRINT ) ; HDC OpenPrinterDC( HAB, PQPRINT, LONG, char* ) ; int SetPrinterMode( HWND, PQPRINT ) ; MPARAM PrintCmdProc( HWND, ULONG, MPARAM, MPARAM ) ; MRESULT EXPENTRY PrintDlgProc( HWND, ULONG, MPARAM, MPARAM ) ; MRESULT EXPENTRY PauseMsgDlgProc( HWND, ULONG, MPARAM, MPARAM ) ; MRESULT EXPENTRY QFontDlgProc( HWND ,ULONG, MPARAM, MPARAM ) ; MRESULT EXPENTRY QPrintDlgProc (HWND, ULONG, MPARAM, MPARAM) ; MRESULT EXPENTRY QPrintersDlgProc ( HWND, ULONG, MPARAM, MPARAM ) ; MRESULT EXPENTRY DisplayClientWndProc(HWND, ULONG, MPARAM, MPARAM); MRESULT EXPENTRY NewFrameWndProc(HWND, ULONG, MPARAM, MPARAM) ; MRESULT EXPENTRY About(HWND, ULONG, MPARAM, MPARAM); MRESULT EXPENTRY CancelPrintDlgProc ( HWND, ULONG, MPARAM, MPARAM ) ; /* own window functions... */ void WinSetDlgItemFloat( HWND, USHORT, float ) ; void WinSetDlgItemFloatF( HWND, USHORT, int, float ) ; void WinQueryDlgItemFloat( HWND, USHORT, float* ) ;