// classes
//-----------------------------------------------------------------------------
-class WXDLLEXPORT wxPaintDC;
+class WXDLLEXPORT wxWindowDC;
class WXDLLEXPORT wxWindow;
// Under Windows, wxClientDC, wxPaintDC and wxWindowDC are implemented differently.
// On many platforms, however, they will be the same.
-typedef wxPaintDC wxClientDC;
-typedef wxPaintDC wxWindowDC;
-
//-----------------------------------------------------------------------------
-// wxPaintDC
+// wxWindowDC
//-----------------------------------------------------------------------------
-class WXDLLEXPORT wxPaintDC: public wxDC
+class WXDLLEXPORT wxWindowDC: public wxDC
{
- DECLARE_DYNAMIC_CLASS(wxPaintDC)
+ DECLARE_DYNAMIC_CLASS(wxWindowDC)
public:
- wxPaintDC(void);
- wxPaintDC( wxWindow *win );
+ wxWindowDC(void);
+ wxWindowDC( wxWindow *win );
- ~wxPaintDC(void);
+ ~wxWindowDC(void);
virtual void FloodFill( long x1, long y1, wxColour* col, int style=wxFLOOD_SURFACE );
virtual bool GetPixel( long x1, long y1, wxColour *col ) const;
virtual void SetPalette( const wxPalette& palette );
virtual void SetClippingRegion( long x, long y, long width, long height );
+ virtual void SetClippingRegion( const wxRegion& region );
virtual void DestroyClippingRegion(void);
- virtual void DrawOpenSpline( wxList *points );
+ virtual void DrawSpline( wxList *points );
+
+ // Motif-specific
+ void SetDCClipping (); // Helper function for setting clipping
+
+ inline WXGC GetGC() const { return m_gc; }
+ inline WXDisplay* GetDisplay() const { return m_display; }
+ inline bool GetAutoSetting() const { return m_autoSetting; }
+ inline void SetAutoSetting(bool flag) { m_autoSetting = flag; }
+
+protected:
+ WXGC m_gc;
+ WXGC m_gcBacking;
+ WXDisplay* m_display;
+ wxWindow* m_window;
+ WXRegion m_currentRegion; // Current clipping region (incl. paint clip region)
+ WXRegion m_userRegion; // User-defined clipping region
+ WXPixmap m_pixmap; // Pixmap for drawing on
+
+ // Not sure if we'll need all of these
+ int m_backgroundPixel;
+ wxColour m_currentColour;
+// int m_currentBkMode;
+ int m_currentPenWidth ;
+ int m_currentPenJoin ;
+ int m_currentPenCap ;
+ int m_currentPenDashCount ;
+ char* m_currentPenDash ;
+ wxBitmap m_currentStipple ;
+ int m_currentStyle ;
+ int m_currentFill ;
+ int m_autoSetting ; // See comment in dcclient.cpp
+ WXFont m_oldFont;
+};
+
+class WXDLLEXPORT wxPaintDC: public wxWindowDC
+{
+ DECLARE_DYNAMIC_CLASS(wxPaintDC)
+public:
+ wxPaintDC() {}
+ wxPaintDC(wxWindow* win);
+ ~wxPaintDC();
+};
+
+class WXDLLEXPORT wxClientDC: public wxWindowDC
+{
+ DECLARE_DYNAMIC_CLASS(wxClientDC)
+public:
+ wxClientDC() {}
+ wxClientDC(wxWindow* win): wxWindowDC(win) {}
};
#endif