const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxButtonNameStr);
+ virtual ~wxButton();
+
virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO);
virtual void SetDefault();
virtual void SetLabel(const wxString& label);
virtual wxString GetLabel() const ;
+
+ static wxSize GetDefaultSize();
+
virtual void Command(wxCommandEvent& event);
};
//-----------------------------------------------------------------------------
#ifndef MM_TEXT
-#define MM_TEXT 0
-#define MM_ISOTROPIC 1
-#define MM_ANISOTROPIC 2
-#define MM_LOMETRIC 3
-#define MM_HIMETRIC 4
-#define MM_TWIPS 5
-#define MM_POINTS 6
-#define MM_METRIC 7
+#define MM_TEXT 0
+#define MM_ISOTROPIC 1
+#define MM_ANISOTROPIC 2
+#define MM_LOMETRIC 3
+#define MM_HIMETRIC 4
+#define MM_TWIPS 5
+#define MM_POINTS 6
+#define MM_METRIC 7
#endif
//-----------------------------------------------------------------------------
// wxDC
//-----------------------------------------------------------------------------
-class WXDLLEXPORT wxDC: public wxObject
+class WXDLLEXPORT wxDC: public wxDCBase
{
DECLARE_ABSTRACT_CLASS(wxDC)
wxDC(void);
~wxDC(void);
-
- void BeginDrawing(void) {};
- void EndDrawing(void) {};
-
- virtual bool Ok(void) const { return m_ok; };
- virtual void FloodFill( long x1, long y1, const wxColour& col, int style=wxFLOOD_SURFACE ) = 0;
- inline void FloodFill(const wxPoint& pt, const wxColour& col, int style=wxFLOOD_SURFACE)
- {
- FloodFill(pt.x, pt.y, col, style);
- }
+ virtual void BeginDrawing(void) { };
+ virtual void EndDrawing(void) { };
- virtual bool GetPixel( long x1, long y1, wxColour *col ) const = 0;
- inline bool GetPixel(const wxPoint& pt, wxColour *col) const
- {
- return GetPixel(pt.x, pt.y, col);
- }
-
- virtual void DrawLine( long x1, long y1, long x2, long y2 ) = 0;
- inline void DrawLine(const wxPoint& pt1, const wxPoint& pt2)
- {
- DrawLine(pt1.x, pt1.y, pt2.x, pt2.y);
- }
-
- virtual void CrossHair( long x, long y ) = 0;
- inline void CrossHair(const wxPoint& pt)
- {
- CrossHair(pt.x, pt.y);
- }
-
- virtual void DrawArc( long x1, long y1, long x2, long y2, long xc, long yc ) = 0;
- inline void DrawArc(const wxPoint& pt1, const wxPoint& pt2, const wxPoint& centre)
- {
- DrawArc(pt1.x, pt1.y, pt2.x, pt2.y, centre.x, centre.y);
- }
-
- virtual void DrawEllipticArc( long x, long y, long width, long height, double sa, double ea ) = 0;
- virtual void DrawEllipticArc (const wxPoint& pt, const wxSize& sz, double sa, double ea)
- {
- DrawEllipticArc(pt.x, pt.y, sz.x, sz.y, sa, ea);
- }
-
- virtual void DrawPoint( long x, long y ) = 0;
- virtual void DrawPoint( wxPoint& point );
-
- virtual void DrawLines( int n, wxPoint points[], long xoffset = 0, long yoffset = 0 ) = 0;
- virtual void DrawLines( wxList *points, long xoffset = 0, long yoffset = 0 );
- virtual void DrawPolygon( int n, wxPoint points[], long xoffset = 0, long yoffset = 0,
- int fillStyle=wxODDEVEN_RULE ) = 0;
- virtual void DrawPolygon( wxList *lines, long xoffset = 0, long yoffset = 0,
- int fillStyle=wxODDEVEN_RULE );
-
- virtual void DrawRectangle( long x, long y, long width, long height ) = 0;
- inline void DrawRectangle(const wxPoint& pt, const wxSize& sz)
- {
- DrawRectangle(pt.x, pt.y, sz.x, sz.y);
- }
- inline void DrawRectangle(const wxRect& rect)
- {
- DrawRectangle(rect.x, rect.y, rect.width, rect.height);
- }
- virtual void DrawRoundedRectangle( long x, long y, long width, long height, double radius = 20.0 ) = 0;
- inline void DrawRoundedRectangle(const wxPoint& pt, const wxSize& sz, double radius = 20.0)
- {
- DrawRoundedRectangle(pt.x, pt.y, sz.x, sz.y, radius);
- }
- inline void DrawRoundedRectangle(const wxRect& rect, double radius = 20.0)
- {
- DrawRoundedRectangle(rect.x, rect.y, rect.width, rect.height, radius);
- }
-
- virtual void DrawEllipse( long x, long y, long width, long height ) = 0;
- inline void DrawEllipse(const wxPoint& pt, const wxSize& sz)
- {
- DrawEllipse(pt.x, pt.y, sz.x, sz.y);
- }
- inline void DrawEllipse(const wxRect& rect)
- {
- DrawEllipse(rect.x, rect.y, rect.width, rect.height);
- }
-
- virtual void DrawSpline( long x1, long y1, long x2, long y2, long x3, long y3 );
- virtual void DrawSpline( wxList *points ) = 0;
- virtual void DrawSpline( int n, wxPoint points[] );
-
- virtual bool CanDrawBitmap(void) const = 0;
-
- virtual void DrawIcon( const wxIcon &icon, long x, long y, bool useMask=FALSE );
- inline void DrawIcon(const wxIcon& icon, const wxPoint& pt)
- {
- DrawIcon(icon, pt.x, pt.y);
- }
-
- // TODO DrawBitmap is not always the same as DrawIcon, especially if bitmaps and
- // icons are implemented differently.
- void DrawBitmap( const wxBitmap &bmp, long x, long y, bool useMask=FALSE )
- { DrawIcon( *((wxIcon*)(&bmp)), x, y, useMask ); }
-
- virtual bool Blit( long xdest, long ydest, long width, long height,
- wxDC *source, long xsrc, long ysrc, int logical_func = wxCOPY, bool useMask=FALSE ) = 0;
- inline bool Blit(const wxPoint& destPt, const wxSize& sz,
- wxDC *source, const wxPoint& srcPt, int rop = wxCOPY, bool useMask = FALSE)
- {
- return Blit(destPt.x, destPt.y, sz.x, sz.y, source, srcPt.x, srcPt.y, rop, useMask);
- }
-
- virtual void DrawText( const wxString &text, long x, long y, bool use16 = FALSE ) = 0;
- inline void DrawText(const wxString& text, const wxPoint& pt, bool use16bit = FALSE)
- {
- DrawText(text, pt.x, pt.y, use16bit);
- }
-
- virtual bool CanGetTextExtent(void) const = 0;
- virtual void GetTextExtent( const wxString &string, long *width, long *height,
- long *descent = NULL, long *externalLeading = NULL,
- wxFont *theFont = NULL, bool use16 = FALSE ) = 0;
- virtual long GetCharWidth(void) = 0;
- virtual long GetCharHeight(void) = 0;
-
- virtual void Clear(void) = 0;
-
- virtual void SetFont( const wxFont &font ) = 0;
- virtual wxFont& GetFont(void) const { return (wxFont&) m_font; };
-
- virtual void SetPen( const wxPen &pen ) = 0;
- virtual wxPen& GetPen(void) const { return (wxPen&) m_pen; };
-
- virtual void SetBrush( const wxBrush &brush ) = 0;
- virtual wxBrush& GetBrush(void) const { return (wxBrush&) m_brush; };
-
- virtual void SetBackground( const wxBrush &brush ) = 0;
- virtual wxBrush& GetBackground(void) const { return (wxBrush&) m_backgroundBrush; };
+//-----------------------------------------------------------------------------
+// Pure virtuals from wxDCBase that need defining
+//-----------------------------------------------------------------------------
+ virtual bool CanDrawBitmap(void) const { return TRUE; };
+ virtual bool CanGetTextExtent(void) const { return TRUE; };
+ virtual int GetDepth(void) const;
+ virtual wxSize GetPPI(void) const;
+ virtual void GetTextExtent( const wxString& string
+ ,long* width
+ ,long* height
+ ,long* descent = NULL
+ ,long* externalLeading = NULL
+ ,wxFont* theFont = NULL
+ ) const;
+ virtual long GetCharWidth(void) const;
+ virtual long GetCharHeight(void) const;
+ virtual void Clear(void);
+ virtual void SetFont(const wxFont& font);
+ virtual void SetPen(const wxPen& pen);
+ virtual void SetBrush(const wxBrush& brush);
+ virtual void SetBackground(const wxBrush& brush);
+ virtual void SetLogicalFunction(int function);
+ virtual void SetBackgroundMode(int mode);
+ virtual void SetPalette(const wxPalette& palette);
+ virtual void SetMapMode(int mode);
+ virtual void DestroyClippingRegion(void);
+ virtual void SetUserScale(double x, double y);
+ virtual void SetLogicalOrigin(long x, long y);
+ virtual void SetDeviceOrigin(long x, long y);
+ virtual void SetAxisOrientation(bool xLeftRight, bool yBottomUp);
+
+ virtual void DoFloodFill( long x
+ ,long y
+ ,const wxColour& col
+ ,int style = wxFLOOD_SURFACE
+ );
+ virtual bool DoGetPixel(long x, long y, wxColour *col) const;
+ virtual void DoDrawPoint(long x, long y);
+ virtual void DoDrawLine(long x1, long y1, long x2, long y2);
+ virtual void DoDrawArc(long x1, long y1,
+ long x2, long y2,
+ long xc, long yc
+ );
+ virtual void DoDrawEllipticArc( long x, long y
+ ,long w, long h
+ ,double sa, double ea
+ );
+ virtual void DoDrawRectangle(long x, long y, long width, long height);
+ virtual void DoDrawRoundedRectangle( long x, long y
+ ,long width, long height
+ ,double radius
+ );
+ virtual void DoDrawEllipse(long x, long y, long width, long height);
+ virtual void DoCrossHair(long x, long y);
+ virtual void DoDrawIcon(const wxIcon& icon, long x, long y);
+ virtual void DoDrawBitmap( const wxBitmap &bmp
+ ,long x, long y
+ ,bool useMask = FALSE
+ );
+ virtual void DoDrawText(const wxString& text, long x, long y);
+ virtual bool DoBlit( long xdest, long ydest
+ ,long width, long height
+ ,wxDC *source
+ ,long xsrc, long ysrc
+ ,int rop = wxCOPY, bool useMask = FALSE
+ );
+ virtual void DoGetSize(int *width, int *height) const;
+ virtual void DoGetSizeMM(int* width, int* height) const;
+ virtual void DoDrawLines( int n, wxPoint points[]
+ ,long xoffset, long yoffset
+ );
+ virtual void DoDrawPolygon( int n, wxPoint points[]
+ ,long xoffset, long yoffset
+ ,int fillStyle = wxODDEVEN_RULE
+ );
+ virtual void DoSetClippingRegionAsRegion(const wxRegion& region);
+ virtual void DoSetClippingRegion( long x, long y
+ ,long width, long height
+ );
+#if wxUSE_SPLINES
+ virtual void DoDrawSpline(wxList *points);
+#endif
- virtual void SetLogicalFunction( int function ) = 0;
- virtual int GetLogicalFunction(void) const { return m_logicalFunction; };
-
- virtual void SetTextForeground( const wxColour &col );
- virtual void SetTextBackground( const wxColour &col );
- virtual wxColour& GetTextBackground(void) const { return (wxColour&)m_textBackgroundColour; };
- virtual wxColour& GetTextForeground(void) const { return (wxColour&)m_textForegroundColour; };
-
- virtual void SetBackgroundMode( int mode ) = 0;
- virtual int GetBackgroundMode(void) const { return m_backgroundMode; };
-
- virtual void SetPalette( const wxPalette& palette ) = 0;
- void SetColourMap( const wxPalette& palette ) { SetPalette(palette); };
-
- // the first two must be overridden and called
- virtual void SetClippingRegion( long x, long y, long width, long height );
- virtual void DestroyClippingRegion(void);
- virtual void GetClippingBox( long *x, long *y, long *width, long *height ) const;
-
- virtual inline long MinX(void) const { return m_minX; }
- virtual inline long MaxX(void) const { return m_maxX; }
- virtual inline long MinY(void) const { return m_minY; }
- virtual inline long MaxY(void) const { return m_maxY; }
+//-----------------------------------------------------------------------------
+// Other virtuals from wxDCBase that are overridden here
+//-----------------------------------------------------------------------------
- virtual void GetSize( int* width, int* height ) const;
- inline wxSize GetSize(void) const { int w, h; GetSize(&w, &h); return wxSize(w, h); }
- virtual void GetSizeMM( long* width, long* height ) const;
-
- virtual bool StartDoc( const wxString& WXUNUSED(message) ) { return TRUE; };
- virtual void EndDoc(void) {};
- virtual void StartPage(void) {};
- virtual void EndPage(void) {};
-
- virtual void SetMapMode( int mode );
- virtual int GetMapMode(void) const { return m_mappingMode; };
-
- virtual void SetUserScale( double x, double y );
- virtual void GetUserScale( double *x, double *y );
virtual void SetLogicalScale( double x, double y );
- virtual void GetLogicalScale( double *x, double *y );
-
- virtual void SetLogicalOrigin( long x, long y );
- virtual void GetLogicalOrigin( long *x, long *y );
- virtual void SetDeviceOrigin( long x, long y );
- virtual void GetDeviceOrigin( long *x, long *y );
+
+//-----------------------------------------------------------------------------
+// Our own new stuff
+//-----------------------------------------------------------------------------
virtual void SetInternalDeviceOrigin( long x, long y );
virtual void GetInternalDeviceOrigin( long *x, long *y );
- virtual void SetAxisOrientation( bool xLeftRight, bool yBottomUp );
-
- virtual void SetOptimization( bool WXUNUSED(optimize) ) {};
- virtual bool GetOptimization(void) { return m_optimize; };
-
- virtual long DeviceToLogicalX(long x) const;
- virtual long DeviceToLogicalY(long y) const;
- virtual long DeviceToLogicalXRel(long x) const;
- virtual long DeviceToLogicalYRel(long y) const;
- virtual long LogicalToDeviceX(long x) const;
- virtual long LogicalToDeviceY(long y) const;
- virtual long LogicalToDeviceXRel(long x) const;
- virtual long LogicalToDeviceYRel(long y) const;
+private:
- public:
-
- void CalcBoundingBox( long x, long y );
void ComputeScaleAndOrigin(void);
-
- long XDEV2LOG(long x) const
- {
- long new_x = x - m_deviceOriginX;
- if (new_x > 0)
- return (long)((double)(new_x) / m_scaleX + 0.5) * m_signX + m_logicalOriginX;
- else
- return (long)((double)(new_x) / m_scaleX - 0.5) * m_signX + m_logicalOriginX;
- }
- long XDEV2LOGREL(long x) const
- {
- if (x > 0)
- return (long)((double)(x) / m_scaleX + 0.5);
- else
- return (long)((double)(x) / m_scaleX - 0.5);
- }
- long YDEV2LOG(long y) const
- {
- long new_y = y - m_deviceOriginY;
- if (new_y > 0)
- return (long)((double)(new_y) / m_scaleY + 0.5) * m_signY + m_logicalOriginY;
- else
- return (long)((double)(new_y) / m_scaleY - 0.5) * m_signY + m_logicalOriginY;
- }
- long YDEV2LOGREL(long y) const
- {
- if (y > 0)
- return (long)((double)(y) / m_scaleY + 0.5);
- else
- return (long)((double)(y) / m_scaleY - 0.5);
- }
- long XLOG2DEV(long x) const
- {
- long new_x = x - m_logicalOriginX;
- if (new_x > 0)
- return (long)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX;
- else
- return (long)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX;
- }
- long XLOG2DEVREL(long x) const
- {
- if (x > 0)
- return (long)((double)(x) * m_scaleX + 0.5);
- else
- return (long)((double)(x) * m_scaleX - 0.5);
- }
- long YLOG2DEV(long y) const
- {
- long new_y = y - m_logicalOriginY;
- if (new_y > 0)
- return (long)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY;
- else
- return (long)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY;
- }
- long YLOG2DEVREL(long y) const
- {
- if (y > 0)
- return (long)((double)(y) * m_scaleY + 0.5);
- else
- return (long)((double)(y) * m_scaleY - 0.5);
- }
-
- public:
-
- bool m_ok;
- bool m_colour;
-
- // not sure, what these mean
- bool m_clipping; // Is clipping on right now ?
- bool m_isInteractive; // Is GetPixel possible ?
- bool m_autoSetting; // wxMSW only ?
- bool m_dontDelete; // wxMSW only ?
- bool m_optimize; // wxMSW only ?
- wxString m_filename; // Not sure where this belongs.
-
- wxPen m_pen;
- wxBrush m_brush;
- wxBrush m_backgroundBrush;
- wxColour m_textForegroundColour;
- wxColour m_textBackgroundColour;
- wxFont m_font;
-
- int m_logicalFunction;
- int m_backgroundMode;
- int m_textAlignment; // gone in wxWin 2.0 ?
-
- int m_mappingMode;
-
- // not sure what for, but what is a mm on a screen you don't know the size of?
- double m_mm_to_pix_x,m_mm_to_pix_y;
-
- long m_internalDeviceOriginX,m_internalDeviceOriginY; // If un-scrolled is non-zero or
- // d.o. changes with scrolling.
- // Set using SetInternalDeviceOrigin().
-
- long m_externalDeviceOriginX,m_externalDeviceOriginY; // To be set by external classes
- // such as wxScrolledWindow
- // using SetDeviceOrigin()
-
- long m_deviceOriginX,m_deviceOriginY; // Sum of the two above.
-
- long m_logicalOriginX,m_logicalOriginY; // User defined.
+ long XDEV2LOG(long x) const;
+ long XDEV2LOGREL(long x) const;
+ long YDEV2LOG(long y) const;
+ long YDEV2LOGREL(long y) const;
+ long XLOG2DEV(long x) const;
+ long XLOG2DEVREL(long x) const;
+ long YLOG2DEV(long y) const;
+ long YLOG2DEVREL(long y) const;
+
+#if WXWIN_COMPATIBILITY
+ // function hiding warning supression
+ virtual void GetTextExtent( const wxString& string
+ ,long* width
+ ,long* height
+ ,long* descent = NULL
+ ,long* externalLeading = NULL
+ ,wxFont* theFont = NULL
+ ,bool use16 = FALSE
+ ) const
+ { wxDCBase::GetTextExtent(string, width, height, descent, externalLeading, theFont, use16); };
+#endif
- double m_scaleX,m_scaleY;
- double m_logicalScaleX,m_logicalScaleY;
- double m_userScaleX,m_userScaleY;
- long m_signX,m_signY;
-
- bool m_needComputeScaleX,m_needComputeScaleY; // not yet used
-
- float m_scaleFactor; // wxPSDC wants to have this. Will disappear.
-
- long m_clipX1,m_clipY1,m_clipX2,m_clipY2;
- long m_minX,m_maxX,m_minY,m_maxY;
+protected:
+
+ // ------------------------------------------------------------------------
+ // Some additional data we need
+ // ------------------------------------------------------------------------
+
+ // Owner canvas and selected in bitmap (if bitmap is GDI object selected)
+ wxWindow* m_owner;
+ wxBitmap* m_bitmap;
+
+ // our HDC and its usage count: we only free it when the usage count drops
+ // to 0
+ WXHDC m_hDC;
+ int m_hDCCount;
+
+ // Store all old GDI objects when do a SelectObject, so we can select them
+ // back in (this unselecting user's objects) so we can safely delete the
+ // DC.
+ WXHBITMAP m_oldBitmap;
+ WXHPEN m_oldPen;
+ WXHBRUSH m_oldBrush;
+ WXHFONT m_oldFont;
+ WXHPALETTE m_oldPalette;
};
#endif
virtual bool CanGetTextExtent(void) const;
virtual void GetTextExtent( const wxString &string, long *width, long *height,
long *descent = NULL, long *externalLeading = NULL,
- wxFont *theFont = NULL, bool use16 = FALSE );
- virtual long GetCharWidth(void);
- virtual long GetCharHeight(void);
+ wxFont *theFont = NULL, bool use16 = FALSE ) const;
+ virtual long GetCharWidth(void) const;
+ virtual long GetCharHeight(void) const;
virtual void Clear(void);
virtual void DrawSpline( wxList *points );
private:
+ // to supress virtual function hiding, do not use
void DrawEllipticArc(const wxPoint& pt, const wxSize& sz,
double sa, double ea)
{ wxDC::DrawEllipticArc(pt, sz, sa, ea); };
{ wxDC::DrawSpline(n, points); };
void DrawSpline(long x1, long y1, long x2, long y2, long x3, long y3)
{ wxDC::DrawSpline(x1, y1, x2, y2, x3, y3); };
+ virtual void GetTextExtent( const wxString &string, long *width, long *height,
+ long *descent = NULL, long *externalLeading = NULL,
+ wxFont *theFont = NULL) const
+ { GetTextExtent(string, width, height, descent, externalLeading, theFont, FALSE); };
};
//-----------------------------------------------------------------------------
virtual int ShowModal();
virtual void EndModal(int retCode);
- void SetClientSize(int width, int height);
+ void SetClientSize(int width, int height) { wxWindow::DoSetClientSize(width, height); };
+ void SetClientSize( const wxSize& size ) { wxWindow::DoSetClientSize(size.x, size.y); };
+ void SetClientSize(const wxRect& rect) { SetClientSize( rect.width, rect.height ); };
+
void GetPosition(int *x, int *y) const;
bool Show(bool show);
void Iconize(bool iconize);
~wxListBox();
virtual void Append(const wxString& item);
- virtual void Append(const wxString& item, char *clientData);
+ virtual void Append(const wxString& item, void *clientData);
virtual void Set(int n, const wxString* choices, char **clientData = NULL);
virtual int FindString(const wxString& s) const ;
virtual void Clear();
// Dialog support: override these and call
// base class members to add functionality
// that can't be done using validators.
+ void SetClientSize( int width, int height )
+ { DoSetClientSize(width, height); }
+
+ void SetClientSize( const wxSize& size )
+ { DoSetClientSize(size.x, size.y); }
+
+ void SetClientSize(const wxRect& rect)
+ { SetClientSize( rect.width, rect.height ); }
// Validate controls. If returns FALSE,
// validation failed: don't quit
{
if ( *pc == _T('\n') || !*pc )
{
+#if defined(__VISAGECPP__)
+// have two versions of this in wxWindowDC tp avoid function hiding
+// since there are two of these in wxDCBase, and in turn in wxDC.
+// VA cannot resolve this so:
+ dc.GetTextExtent(curLine, &width, &height, NULL, NULL, NULL, FALSE);
+#else
dc.GetTextExtent(curLine, &width, &height);
+#endif
if ( width > widthTextMax )
widthTextMax = width;
if ( height > heightTextMax )
wxClientDC dc(this);
dc.SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT));
long widthText;
+#if defined(__VISAGECPP__)
+// have two versions of this in wxWindowDC tp avoid function hiding
+// since there are two of these in wxDCBase, and in turn in wxDC.
+// VA cannot resolve this so:
+ dc.GetTextExtent(message, &widthText, NULL, NULL, NULL, NULL, FALSE);
+#else
dc.GetTextExtent(message, &widthText, NULL);
+#endif
m_msg = new wxStaticText(this, -1, message);
c = new wxLayoutConstraints;
case wxPropertyValueStringPtr:
{
wxChar** s = copyFrom.StringValuePtr();
+ // what is this? are you trying to assign a bool or a string? VA can't figure it out..
+#if defined(__VISAGECPP__)
+ (*this) = s;
+#else
(*this) = s != 0;
+#endif
return ;
}
wxProperty *property = (wxProperty *)node->Data();
wxString stringValueRepr(property->GetValue().GetStringRepresentation());
wxString paddedString(MakeNameValueString(property->GetName(), stringValueRepr));
-
m_propertyScrollingList->Append(paddedString.GetData(), (void *)property);
node = node->Next();
}
OS2LIBS=CPPOM30.lib CPPOOC3.LIB OS2386.LIB
# Change this to your WXWIN directory
-WXDIR=i:\dev\Wx2\wxwindows
+WXDIR=h:\dev\Wx2\wxwindows
WXSRC=$(WXDIR)\src\os2
WXINC=$(WXDIR)\include
#define mm2pt 2.83464566929
#define pt2mm 0.352777777778
+//-----------------------------------------------------------------------------
+// wxDCBase
+//-----------------------------------------------------------------------------
+
+long wxDCBase::DeviceToLogicalX(long x) const
+{
+ return XDEV2LOG(x);
+};
+
+long wxDCBase::DeviceToLogicalY(long y) const
+{
+ return YDEV2LOG(y);
+};
+
+long wxDCBase::DeviceToLogicalXRel(long x) const
+{
+ return XDEV2LOGREL(x);
+};
+
+long wxDCBase::DeviceToLogicalYRel(long y) const
+{
+ return YDEV2LOGREL(y);
+};
+
+long wxDCBase::LogicalToDeviceX(long x) const
+{
+ return XLOG2DEV(x);
+};
+
+long wxDCBase::LogicalToDeviceY(long y) const
+{
+ return YLOG2DEV(y);
+};
+
+long wxDCBase::LogicalToDeviceXRel(long x) const
+{
+ return XLOG2DEVREL(x);
+};
+
+long wxDCBase::LogicalToDeviceYRel(long y) const
+{
+ return YLOG2DEVREL(y);
+};
+
//-----------------------------------------------------------------------------
// wxDC
//-----------------------------------------------------------------------------
m_autoSetting = FALSE;
m_colour = TRUE;
m_clipping = FALSE;
-
+
m_mm_to_pix_x = 1.0;
m_mm_to_pix_y = 1.0;
-
+
m_logicalOriginX = 0;
m_logicalOriginY = 0;
m_deviceOriginX = 0;
m_internalDeviceOriginY = 0;
m_externalDeviceOriginX = 0;
m_externalDeviceOriginY = 0;
-
+
m_logicalScaleX = 1.0;
m_logicalScaleY = 1.0;
m_userScaleX = 1.0;
m_userScaleY = 1.0;
m_scaleX = 1.0;
m_scaleY = 1.0;
-
+
m_mappingMode = wxMM_TEXT;
m_needComputeScaleX = FALSE;
m_needComputeScaleY = FALSE;
-
+
m_signX = 1; // default x-axis left to right
m_signY = 1; // default y-axis top down
m_logicalFunction = wxCOPY;
// m_textAlignment = wxALIGN_TOP_LEFT;
m_backgroundMode = wxTRANSPARENT;
-
+
m_textForegroundColour = *wxBLACK;
m_textBackgroundColour = *wxWHITE;
m_pen = *wxBLACK_PEN;
m_font = *wxNORMAL_FONT;
m_brush = *wxTRANSPARENT_BRUSH;
m_backgroundBrush = *wxWHITE_BRUSH;
-
+
// m_palette = wxAPP_COLOURMAP;
};
{
};
-void wxDC::DrawIcon( const wxIcon &WXUNUSED(icon), long WXUNUSED(x), long WXUNUSED(y), bool WXUNUSED(useMask) )
-{
-};
-
-void wxDC::DrawPoint( wxPoint& point )
-{
- DrawPoint( point.x, point.y );
-};
-
-void wxDC::DrawPolygon( wxList *list, long xoffset, long yoffset, int fillStyle )
-{
- int n = list->Number();
- wxPoint *points = new wxPoint[n];
-
- int i = 0;
- for( wxNode *node = list->First(); node; node = node->Next() )
- {
- wxPoint *point = (wxPoint *)node->Data();
- points[i].x = point->x;
- points[i++].y = point->y;
- };
- DrawPolygon( n, points, xoffset, yoffset, fillStyle );
- delete[] points;
-};
-
-void wxDC::DrawLines( wxList *list, long xoffset, long yoffset )
-{
- int n = list->Number();
- wxPoint *points = new wxPoint[n];
-
- int i = 0;
- for( wxNode *node = list->First(); node; node = node->Next() )
- {
- wxPoint *point = (wxPoint *)node->Data();
- points[i].x = point->x;
- points[i++].y = point->y;
- };
- DrawLines( n, points, xoffset, yoffset );
- delete []points;
-};
-
-void wxDC::DrawSpline( long x1, long y1, long x2, long y2, long x3, long y3 )
-{
- wxList list;
- list.Append( (wxObject*)new wxPoint(x1, y1) );
- list.Append( (wxObject*)new wxPoint(x2, y2) );
- list.Append( (wxObject*)new wxPoint(x3, y3) );
- DrawSpline(&list);
- wxNode *node = list.First();
- while (node)
- {
- wxPoint *p = (wxPoint*)node->Data();
- delete p;
- node = node->Next();
- };
-};
-
-void wxDC::DrawSpline( int n, wxPoint points[] )
-{
- wxList list;
- for (int i = 0; i < n; i++) list.Append( (wxObject*)&points[i] );
- DrawSpline( &list );
-};
-
-void wxDC::SetClippingRegion( long x, long y, long width, long height )
-{
- m_clipping = TRUE;
- m_clipX1 = x;
- m_clipY1 = y;
- m_clipX2 = x + width;
- m_clipY2 = y + height;
-};
-
void wxDC::DestroyClippingRegion(void)
{
m_clipping = FALSE;
};
-void wxDC::GetClippingBox( long *x, long *y, long *width, long *height ) const
-{
- if (m_clipping)
- {
- if (x) *x = m_clipX1;
- if (y) *y = m_clipY1;
- if (width) *width = (m_clipX2 - m_clipX1);
- if (height) *height = (m_clipY2 - m_clipY1);
- }
- else
- *x = *y = *width = *height = 0;
-};
-
void wxDC::GetSize( int* width, int* height ) const
{
*width = m_maxX-m_minX;
*height = long( double(h) / (m_scaleY*m_mm_to_pix_y) );
};
-void wxDC::SetTextForeground( const wxColour &col )
-{
- if (!Ok()) return;
- m_textForegroundColour = col;
-};
-
-void wxDC::SetTextBackground( const wxColour &col )
-{
- if (!Ok()) return;
- m_textBackgroundColour = col;
-};
-
void wxDC::SetMapMode( int mode )
{
- switch (mode)
+ switch (mode)
{
case wxMM_TWIPS:
SetLogicalScale( twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y );
ComputeScaleAndOrigin();
};
-void wxDC::GetLogicalScale( double *x, double *y )
-{
- if (x) *x = m_logicalScaleX;
- if (y) *y = m_logicalScaleY;
-};
-
void wxDC::SetLogicalOrigin( long x, long y )
{
m_logicalOriginX = x * m_signX; // is this still correct ?
ComputeScaleAndOrigin();
};
-void wxDC::GetLogicalOrigin( long *x, long *y )
-{
- if (x) *x = m_logicalOriginX;
- if (y) *y = m_logicalOriginY;
-};
-
void wxDC::SetDeviceOrigin( long x, long y )
{
m_externalDeviceOriginX = x;
ComputeScaleAndOrigin();
};
-void wxDC::GetDeviceOrigin( long *x, long *y )
-{
-// if (x) *x = m_externalDeviceOriginX;
-// if (y) *y = m_externalDeviceOriginY;
- if (x) *x = m_deviceOriginX;
- if (y) *y = m_deviceOriginY;
-};
-
void wxDC::SetInternalDeviceOrigin( long x, long y )
{
m_internalDeviceOriginX = x;
ComputeScaleAndOrigin();
};
-long wxDC::DeviceToLogicalX(long x) const
+
+int wxDC::GetDepth() const
{
- return XDEV2LOG(x);
-};
+ // TODO:
+ return (1);
+}
-long wxDC::DeviceToLogicalY(long y) const
+wxSize wxDC::GetPPI() const
{
- return YDEV2LOG(y);
-};
+ // TODO:
+ return (1);
+}
+void wxDC::GetTextExtent( const wxString& string
+ ,long* x
+ ,long* y
+ ,long* decent
+ ,long* externalLeading
+ ,wxFont* theFont
+ ) const
+{
+ // TODO:
+}
-long wxDC::DeviceToLogicalXRel(long x) const
+void wxDC::GetCharWidth() const
{
- return XDEV2LOGREL(x);
-};
+ // TODO
+ return(1);
+}
-long wxDC::DeviceToLogicalYRel(long y) const
+void wxDC::GetCharHeight() const
{
- return YDEV2LOGREL(y);
-};
+ // TODO
+ return(1);
+}
-long wxDC::LogicalToDeviceX(long x) const
+void wxDC::Clear()
{
- return XLOG2DEV(x);
-};
+ // TODO
+}
-long wxDC::LogicalToDeviceY(long y) const
+void wxDC::SetFont(const wxFont& font)
{
- return YLOG2DEV(y);
-};
+ // TODO
+}
-long wxDC::LogicalToDeviceXRel(long x) const
+void wxDC::SetPen(const wxPen& pen)
{
- return XLOG2DEVREL(x);
-};
+ // TODO
+}
+void wxDC::SetBrush(const wxBrush& brush)
+{
+ // TODO
+}
-long wxDC::LogicalToDeviceYRel(long y) const
+void wxDC::SetBackground(const wxBrush& brush)
{
- return YLOG2DEVREL(y);
-};
-
-void wxDC::CalcBoundingBox( long x, long y )
+ // TODO
+}
+
+void wxDC::SetLogicalFunction(int function)
{
- if (x < m_minX) m_minX = x;
- if (y < m_minY) m_minY = y;
- if (x > m_maxX) m_maxX = x;
- if (y > m_maxY) m_maxY = y;
-};
+ // TODO
+}
+
+void wxDC::SetBackgroundMode(int mode)
+{
+ // TODO
+}
+
+void wxDC::SetPalette(const wxPalette& palette)
+{
+ // TODO
+}
+
+void wxDC::DoFloodFill( long x
+ ,long y
+ ,const wxColour& col
+ ,int style = wxFLOOD_SURFACE
+ )
+{
+ // TODO
+}
+
+bool wxDC::DoGetPixel(long x, long y, wxColour *col) const
+{
+ // TODO
+ return(TRUE);
+}
+
+void wxDC::DoDrawPoint(long x, long y)
+{
+ // TODO
+}
+
+void wxDC::DoDrawLine(long x1, long y1, long x2, long y2)
+{
+ // TODO
+}
+
+void wxDC::DoDrawArc( long x1, long y1
+ ,long x2, long y2
+ ,long xc, long yc
+ )
+{
+ // TODO
+}
+
+void wxDC::DoDrawEllipticArc( long x
+ ,long y
+ ,long w
+ ,long h
+ ,double sa
+ ,double ea
+ )
+{
+ // TODO
+}
+
+void wxDC::DoDrawRectangle(long x, long y, long width, long height)
+{
+ // TODO
+}
+
+void wxDC::DoDrawRoundedRectangle( long x, long y
+ ,long width, long height
+ ,double radius
+ )
+{
+ // TODO
+}
+
+void wxDC::DoDrawEllipse(long x, long y, long width, long height)
+{
+ // TODO
+}
+
+void wxDC::DoCrossHair(long x, long y)
+{
+ // TODO
+}
+
+void wxDC::DoDrawIcon(const wxIcon& icon, long x, long y)
+{
+ // TODO
+}
+
+void wxDC::DoDrawBitmap( const wxBitmap &bmp
+ ,long x, long y
+ ,bool useMask = FALSE
+ )
+{
+ // TODO
+}
+
+void wxDC::DoDrawText(const wxString& text, long x, long y)
+{
+ // TODO
+}
+
+bool wxDC::DoBlit( long xdest
+ ,long ydest
+ ,long width
+ ,long height
+ ,wxDC *source
+ ,long xsrc
+ ,long ysrc
+ ,int rop = wxCOPY
+ ,bool useMask = FALSE
+ )
+{
+ // TODO
+ return(TRUE);
+}
+
+void wxDC::DoGetSize(int *width, int *height) const
+{
+ // TODO
+}
+
+void wxDC::DoGetSizeMM(int* width, int* height) const
+{
+ // TODO
+}
+
+void wxDC::DoDrawLines( int n, wxPoint points[]
+ ,long xoffset, long yoffset
+ )
+{
+ // TODO
+}
+
+void wxDC::DoDrawPolygon(int n, wxPoint points[]
+ ,long xoffset, long yoffset
+ ,int fillStyle = wxODDEVEN_RULE
+ )
+{
+ // TODO
+}
+
+void wxDC::DoSetClippingRegionAsRegion(const wxRegion& region)
+{
+ // TODO
+}
+
+void wxDC::DoSetClippingRegion( long x, long y
+ ,long width, long height
+ )
+{
+ // TODO
+}
+
+#if wxUSE_SPLINES
+void wxDC::DoDrawSpline(wxList *points)
+{
+ // TODO
+}
+#endif
+
+//
+// Private functions
+//
+long wxDC::XDEV2LOG(long x) const
+{
+ long new_x = x - m_deviceOriginX;
+ if (new_x > 0)
+ return (long)((double)(new_x) / m_scaleX + 0.5) * m_signX + m_logicalOriginX;
+ else
+ return (long)((double)(new_x) / m_scaleX - 0.5) * m_signX + m_logicalOriginX;
+}
+
+long wxDC::XDEV2LOGREL(long x) const
+{
+ if (x > 0)
+ return (long)((double)(x) / m_scaleX + 0.5);
+ else
+ return (long)((double)(x) / m_scaleX - 0.5);
+}
+
+long wxDC::YDEV2LOG(long y) const
+{
+ long new_y = y - m_deviceOriginY;
+ if (new_y > 0)
+ return (long)((double)(new_y) / m_scaleY + 0.5) * m_signY + m_logicalOriginY;
+ else
+ return (long)((double)(new_y) / m_scaleY - 0.5) * m_signY + m_logicalOriginY;
+}
+
+long wxDC::YDEV2LOGREL(long y) const
+{
+ if (y > 0)
+ return (long)((double)(y) / m_scaleY + 0.5);
+ else
+ return (long)((double)(y) / m_scaleY - 0.5);
+}
+
+long wxDC::XLOG2DEV(long x) const
+{
+ long new_x = x - m_logicalOriginX;
+ if (new_x > 0)
+ return (long)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX;
+ else
+ return (long)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX;
+}
+
+long wxDC::XLOG2DEVREL(long x) const
+{
+ if (x > 0)
+ return (long)((double)(x) * m_scaleX + 0.5);
+ else
+ return (long)((double)(x) * m_scaleX - 0.5);
+}
+
+long wxDC::YLOG2DEV(long y) const
+{
+ long new_y = y - m_logicalOriginY;
+ if (new_y > 0)
+ return (long)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY;
+ else
+ return (long)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY;
+}
+
+long wxDC::YLOG2DEVREL(long y) const
+{
+ if (y > 0)
+ return (long)((double)(y) * m_scaleY + 0.5);
+ else
+ return (long)((double)(y) * m_scaleY - 0.5);
+}
void wxDC::ComputeScaleAndOrigin(void)
{
m_deviceOriginX = m_internalDeviceOriginX + m_externalDeviceOriginX;
m_deviceOriginY = m_internalDeviceOriginY + m_externalDeviceOriginY;
- // CMB: if scale has changed call SetPen to recalulate the line width
+ // CMB: if scale has changed call SetPen to recalulate the line width
if (m_scaleX != origScaleX || m_scaleY != origScaleY)
{
// this is a bit artificial, but we need to force wxDC to think
{
};
-void wxWindowDC::FloodFill( long WXUNUSED(x1), long WXUNUSED(y1),
+void wxWindowDC::FloodFill( long WXUNUSED(x1), long WXUNUSED(y1),
const wxColour& WXUNUSED(col), int WXUNUSED(style) )
{
};
void wxWindowDC::DrawLine( long x1, long y1, long x2, long y2 )
{
if (!Ok()) return;
-
+
};
void wxWindowDC::CrossHair( long x, long y )
{
if (!Ok()) return;
-
+
};
void wxWindowDC::DrawArc( long x1, long y1, long x2, long y2, long xc, long yc )
{
if (!Ok()) return;
-
- long xx1 = XLOG2DEV(x1);
+
+ long xx1 = XLOG2DEV(x1);
long yy1 = YLOG2DEV(y1);
- long xx2 = XLOG2DEV(x2);
+ long xx2 = XLOG2DEV(x2);
long yy2 = YLOG2DEV(y2);
- long xxc = XLOG2DEV((long)xc);
+ long xxc = XLOG2DEV((long)xc);
long yyc = YLOG2DEV((long)yc);
- double dx = xx1 - xxc;
+ double dx = xx1 - xxc;
double dy = yy1 - yyc;
double radius = sqrt(dx*dx+dy*dy);
long r = (long)radius;
double radius1, radius2;
- if (xx1 == xx2 && yy1 == yy2)
+ if (xx1 == xx2 && yy1 == yy2)
{
radius1 = 0.0;
radius2 = 360.0;
- }
- else
- if (radius == 0.0)
+ }
+ else
+ if (radius == 0.0)
{
radius1 = radius2 = 0.0;
- }
- else
+ }
+ else
{
radius1 = (xx1 - xxc == 0) ?
(yy1 - yyc < 0) ? 90.0 : -90.0 :
while (alpha1 > 360*64) alpha1 -= 360*64;
if (m_brush.GetStyle() != wxTRANSPARENT) {};
-
+
if (m_pen.GetStyle() != wxTRANSPARENT) {};
-
+
};
void wxWindowDC::DrawEllipticArc( long x, long y, long width, long height, double sa, double ea )
{
if (!Ok()) return;
-
- long xx = XLOG2DEV(x);
+
+ long xx = XLOG2DEV(x);
long yy = YLOG2DEV(y);
- long ww = m_signX * XLOG2DEVREL(width);
+ long ww = m_signX * XLOG2DEVREL(width);
long hh = m_signY * YLOG2DEVREL(height);
-
+
// CMB: handle -ve width and/or height
if (ww < 0) { ww = -ww; xx = xx - ww; }
if (hh < 0) { hh = -hh; yy = yy - hh; }
-
+
long start = long(sa * 64.0);
long end = long(ea * 64.0);
if (m_brush.GetStyle() != wxTRANSPARENT) {};
-
+
if (m_pen.GetStyle() != wxTRANSPARENT) {};
};
void wxWindowDC::DrawPoint( long x, long y )
{
if (!Ok()) return;
-
+
if (m_pen.GetStyle() != wxTRANSPARENT) {};
};
void wxWindowDC::DrawLines( int n, wxPoint points[], long xoffset, long yoffset )
{
if (!Ok()) return;
-
+
if (m_pen.GetStyle() == wxTRANSPARENT) return;
-
+
for (int i = 0; i < n-1; i++)
{
long x1 = XLOG2DEV(points[i].x + xoffset);
void wxWindowDC::DrawLines( wxList *points, long xoffset, long yoffset )
{
if (!Ok()) return;
-
+
if (m_pen.GetStyle() == wxTRANSPARENT) return;
-
+
wxNode *node = points->First();
while (node->Next())
{
};
};
-void wxWindowDC::DrawPolygon( int WXUNUSED(n), wxPoint WXUNUSED(points)[],
+void wxWindowDC::DrawPolygon( int WXUNUSED(n), wxPoint WXUNUSED(points)[],
long WXUNUSED(xoffset), long WXUNUSED(yoffset), int WXUNUSED(fillStyle) )
{
if (!Ok()) return;
};
-void wxWindowDC::DrawPolygon( wxList *WXUNUSED(lines), long WXUNUSED(xoffset),
+void wxWindowDC::DrawPolygon( wxList *WXUNUSED(lines), long WXUNUSED(xoffset),
long WXUNUSED(yoffset), int WXUNUSED(fillStyle) )
{
if (!Ok()) return;
long yy = YLOG2DEV(y);
long ww = m_signX * XLOG2DEVREL(width);
long hh = m_signY * YLOG2DEVREL(height);
-
+
// CMB: draw nothing if transformed w or h is 0
if (ww == 0 || hh == 0) return;
if (hh < 0) { hh = -hh; yy = yy - hh; }
if (m_brush.GetStyle() != wxTRANSPARENT) {};
-
+
if (m_pen.GetStyle() != wxTRANSPARENT) {};
};
void wxWindowDC::DrawRoundedRectangle( long x, long y, long width, long height, double radius )
{
if (!Ok()) return;
-
+
if (radius < 0.0) radius = - radius * ((width < height) ? width : height);
-
- long xx = XLOG2DEV(x);
+
+ long xx = XLOG2DEV(x);
long yy = YLOG2DEV(y);
- long ww = m_signX * XLOG2DEVREL(width);
+ long ww = m_signX * XLOG2DEVREL(width);
long hh = m_signY * YLOG2DEVREL(height);
long rr = XLOG2DEVREL((long)radius);
if (m_brush.GetStyle() != wxTRANSPARENT)
{
};
-
+
if (m_pen.GetStyle() != wxTRANSPARENT)
{
};
void wxWindowDC::DrawEllipse( long x, long y, long width, long height )
{
if (!Ok()) return;
-
- long xx = XLOG2DEV(x);
+
+ long xx = XLOG2DEV(x);
long yy = YLOG2DEV(y);
- long ww = m_signX * XLOG2DEVREL(width);
+ long ww = m_signX * XLOG2DEVREL(width);
long hh = m_signY * YLOG2DEVREL(height);
// CMB: handle -ve width and/or height
if (ww < 0) { ww = -ww; xx = xx - ww; }
if (hh < 0) { hh = -hh; yy = yy - hh; }
-
+
if (m_brush.GetStyle() != wxTRANSPARENT) {};
-
+
if (m_pen.GetStyle() != wxTRANSPARENT) {};
};
void wxWindowDC::DrawIcon( const wxIcon &icon, long x, long y, bool useMask )
{
if (!Ok()) return;
-
+
if (!icon.Ok()) return;
-
+
int xx = XLOG2DEV(x);
int yy = YLOG2DEV(y);
-
+
};
bool wxWindowDC::Blit( long xdest, long ydest, long width, long height,
wxDC *source, long xsrc, long ysrc, int WXUNUSED(logical_func), bool WXUNUSED(useMask) )
{
if (!Ok()) return FALSE;
-
+
// CMB 20/5/98: add blitting of bitmaps
if (source->IsKindOf(CLASSINFO(wxMemoryDC)))
{
void wxWindowDC::GetTextExtent( const wxString &string, long *width, long *height,
long *WXUNUSED(descent), long *WXUNUSED(externalLeading),
- wxFont *WXUNUSED(theFont), bool WXUNUSED(use16) )
+ wxFont *WXUNUSED(theFont), bool WXUNUSED(use16) ) const
{
if (!Ok()) return;
-
+
};
-long wxWindowDC::GetCharWidth(void)
+long wxWindowDC::GetCharWidth(void) const
{
if (!Ok()) return 0;
return 0;
};
-long wxWindowDC::GetCharHeight(void)
+long wxWindowDC::GetCharHeight(void) const
{
if (!Ok()) return 0;
return 0;
void wxWindowDC::Clear(void)
{
if (!Ok()) return;
-
+
};
void wxWindowDC::SetFont( const wxFont &font )
{
if (!Ok()) return;
-
+
m_font = font;
};
if (!Ok()) return;
if (m_pen == pen) return;
-
+
m_pen = pen;
-
+
if (!m_pen.Ok()) return;
};
void wxWindowDC::SetBrush( const wxBrush &brush )
{
if (!Ok()) return;
-
+
if (m_brush == brush) return;
-
+
m_brush = brush;
-
+
if (!m_brush.Ok()) return;
-
+
};
void wxWindowDC::SetBackground( const wxBrush &brush )
{
if (!Ok()) return;
-
+
if (m_backgroundBrush == brush) return;
-
+
m_backgroundBrush = brush;
-
+
if (!m_backgroundBrush.Ok()) return;
-
+
};
void wxWindowDC::SetLogicalFunction( int function )
void wxWindowDC::SetTextForeground( const wxColour &col )
{
if (!Ok()) return;
-
+
if (m_textForegroundColour == col) return;
-
+
m_textForegroundColour = col;
if (!m_textForegroundColour.Ok()) return;
};
void wxWindowDC::SetTextBackground( const wxColour &col )
{
if (!Ok()) return;
-
+
if (m_textBackgroundColour == col) return;
-
+
m_textBackgroundColour = col;
if (!m_textBackgroundColour.Ok()) return;
};
wxDC::SetClippingRegion( x, y, width, height );
// TODO
-
+
};
void wxWindowDC::SetClippingRegion( const wxRegion& region )
void wxWindowDC::DestroyClippingRegion(void)
{
wxDC::DestroyClippingRegion();
-
+
};
// ----------------------------------- spline code ----------------------------------------
# ..\generic\$D\listctrl.obj \
# ..\generic\$D\notebook.obj \
-# These are generic things that don't need to be compiled on MSW,
+# These are generic things that don't need to be compiled on PM,
# but sometimes it's useful to do so for testing purposes.
NONESSENTIALOBJS= \
..\generic\$D\printps.obj \