home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Graphics 16,000
/
graphics-16000.iso
/
msdos
/
plotting
/
pcgplots
/
gptdisp.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-04-24
|
4KB
|
126 lines
// C++ .h file for pc gplot display classes
// copyright 1992 Pittsburgh Supercomputing Center
#ifndef _gptdisp
#define _gptdisp
#include "cgmdisp.h" // basic display classes
#include "cgm.h" // basic Gplot
#include <windows.h>
enum patType { solid,dash, dot, dash_dot, dash_dot_dot};
// forward refs
class Window;
class Scroller;
class FrameWindow;
class FileObject;
class cgmFile;
class cgmObject;
class cgmMetafile;
class cgmPicture;
//class cgmWindow;
//typedefs
//typedef cgmWindow * CgmWindowPt;
typedef cgmObject * CgmObjectPt;
typedef cgmFile * CgmFilePt;
typedef cgmPicture * CgmPicturePt;
typedef cgmMetafile * CgmMetafilePt;
// *** class pcDisplay
class pcDisplay : public baseDisplay {
private:
int noElements; // # of elements drawn
RECT itsExtent;
RECT clipr;
vdcPts *myPxlExtent;
float myxPxlSize, myyPxlSize;
COLORREF RGBbackground;
int line_pnsize;
int now_pnsize;
BOOL UseLinePen; // false if polyline pen setup for text, marker
BOOL edgeseen;
BOOL useclip; // if clip rectangle exists, use it
BOOL solidpoly;
BOOL hollowpoly;
BOOL Index1Set;
HDC hdc; // device context
HDC hdcMeta; // Metafile context
LOGPEN lEdgePen;
LOGPEN lLinePen;
LOGPEN lTextPen;
LOGPEN lMarkerPen;
LOGBRUSH lFillBrush;
HPEN hEdgePen;
HPEN hLinePen;
HPEN hTextPen;
HPEN hMarkerPen;
HPEN hHollowPen;
HPEN hPenUsed;
HBRUSH hFillBrush;
HBRUSH hBackgroundBrush;
HBRUSH hBrushUsed;
HANDLE hPenOrig;
HANDLE hBrushOrig;
BOOL LinePenOK;
BOOL EdgePenOK;
BOOL TextPenOK;
BOOL MarkerPenOK;
BOOL FillBrushOK;
CgmWindowPt cgmWin;
int myBackIndex;
public:
pcDisplay(CgmWindowPt win,HDC hdc, HDC hdcMeta, HDC hdcInfo, RECT *rect); // constructor
~pcDisplay(); // destructor
virtual void setExtent(RECT *inExtent) {itsExtent = *inExtent;}
virtual void getExtent(RECT *outExtent) { *outExtent = itsExtent; }
COLORREF getback() const {return RGBbackground;}
LOGPALETTE *MakeDefaultPalette(void);
virtual int getLineType(void) { return myLineType;}
virtual const vdcR *getlineWidth(void){ return myLineWidth ;}
virtual int getEdgeType(void) { return myEdgeType;}
virtual const vdcR *getEdgeWidth(void){ return myEdgeWidth ;}
virtual void backColr(const genColr&);
void backColr2();
void adjustPens();
virtual int cells(const cellArray*); // overide baseDisplay function
virtual int polyline(const vdcPts*); // display a polyline
virtual int polygon(const vdcPts* ); // display a filled polyline
virtual inline int invert() { return 1;} // do we need inversion ? - yes
virtual void lineColr(const genColr &inColr );
virtual void fillColr(const genColr &);
virtual void edgeColr(const genColr &);
virtual void textColr(const genColr &inColr);
virtual int text(const genText *); // default function
virtual void markerColr(const genColr &inColr);
virtual int polymarker(const vdcPts *); // default function
virtual void colrs(const colrTable *); // set Mac palette to match color table
virtual inline vdcPts *pxlExtent() {return myPxlExtent;}
//virtual inline vdcPts *mmExtent() {return myMmExtent;}
virtual float xPxlSize() {return myxPxlSize;} // x pixel size in mm (required)
virtual float yPxlSize() {return myyPxlSize;} // y pixel size in mm (required)
virtual void lineType(int inType); // overide {myLineType = inType;}
virtual void lineWidth(const vdcR *inWidth); // overide {myLineWidth = inWidth;}
virtual void edgeType(int inType); // overide {myEdgeType = inType;}
virtual void edgeWidth(const vdcR *inWidth); // overide {myEdgeWidth = inWidth;}
void SetLinePen();
void SetEdgePen();
void SetTextPen();
void SetMarkerPen();
void SetHollowPen(COLORREF);
void SetBackBrush(COLORREF);
void SetFillBrush();
void ExtentRect();
virtual void intStyle(int inStyle);
virtual void edgeVis(int inVis);
int width() {return myPxlExtent->i(2); } // width of screen
int height() {return myPxlExtent->i(3); } // height of screen
// contol elements
virtual void clipRect(const vdcPts *inPts);
virtual void clip(int inClip);
};
#endif // __pcDisp_