/* 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* ) ;