/* ** static char RCSid[]="$Id: gnupmdrv.h,v 1.8 2005/07/28 07:46:06 mikulik Exp $" ; */ /* PM driver for GNUPLOT */ /*[ * Copyright 1992, 1993, 1998, 2004 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 */ #include "config.h" /* 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 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" #define INIKEEPRATIO "KeepRatio" /* PM */ #define INIUSEMOUSE "UseMouse" /* PM */ #define INIMOUSECOORD "MouseCoord" /* PM */ /*==== 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 */ extern char szIPCName[]; /* name used in IPC with gnuplot */ extern char szIniFile[256]; /* full path of ini file */ extern int bServer; extern int bPersist; extern int bWideLines; #ifdef PM_KEEP_OLD_ENHANCED_TEXT extern int bEnhanced; #endif /*==== 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 ) ; MRESULT EXPENTRY SendCommandDlgProc( HWND, ULONG, MPARAM, MPARAM ) ; /* own window functions... */ void WinSetDlgItemFloat( HWND, USHORT, float ) ; void WinSetDlgItemFloatF( HWND, USHORT, int, float ) ; void WinQueryDlgItemFloat( HWND, USHORT, float* ) ;