X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3784bf308fe29d37b723a9601517fb97559ba39c..be19c556083cc197be55acbd05db76ec6dc2e0c4:/include/wx/graphics.h diff --git a/include/wx/graphics.h b/include/wx/graphics.h index f2edd54ca3..b79ba6144c 100644 --- a/include/wx/graphics.h +++ b/include/wx/graphics.h @@ -58,6 +58,11 @@ class WXDLLIMPEXP_FWD_CORE wxMemoryDC; #if wxUSE_PRINTING_ARCHITECTURE class WXDLLIMPEXP_FWD_CORE wxPrinterDC; #endif +#ifdef __WXMSW__ +#if wxUSE_ENH_METAFILE +class WXDLLIMPEXP_FWD_CORE wxEnhMetaFileDC; +#endif +#endif class WXDLLIMPEXP_FWD_CORE wxGraphicsContext; class WXDLLIMPEXP_FWD_CORE wxGraphicsPath; class WXDLLIMPEXP_FWD_CORE wxGraphicsMatrix; @@ -309,7 +314,8 @@ extern WXDLLIMPEXP_DATA_CORE(wxGraphicsPath) wxNullGraphicsPath; class wxGraphicsGradientStop { public: - wxGraphicsGradientStop(wxColour col, float pos) + wxGraphicsGradientStop(wxColour col = wxTransparentColour, + float pos = 0.) : m_col(col), m_pos(pos) { @@ -348,8 +354,8 @@ public: { // we can't use Add() here as it relies on having start/end stops as // first/last array elements so do it manually - m_stops.push_back(wxGraphicsGradientStop(startCol, 0.)); - m_stops.push_back(wxGraphicsGradientStop(endCol, 1.)); + m_stops.push_back(wxGraphicsGradientStop(startCol, 0.f)); + m_stops.push_back(wxGraphicsGradientStop(endCol, 1.f)); } // default copy ctor, assignment operator and dtor are ok for this class @@ -391,6 +397,11 @@ public: static wxGraphicsContext * Create( const wxMemoryDC& dc); #if wxUSE_PRINTING_ARCHITECTURE static wxGraphicsContext * Create( const wxPrinterDC& dc); +#endif +#ifdef __WXMSW__ +#if wxUSE_ENH_METAFILE + static wxGraphicsContext * Create( const wxEnhMetaFileDC& dc); +#endif #endif static wxGraphicsContext* CreateFromNative( void * context ); @@ -492,7 +503,13 @@ public: virtual bool SetCompositionMode(wxCompositionMode op) = 0; // returns the size of the graphics context in device coordinates - virtual void GetSize( wxDouble* width, wxDouble* height); + void GetSize(wxDouble* width, wxDouble* height) + { + if ( width ) + *width = m_width; + if ( height ) + *height = m_height; + } // returns the resolution of the graphics context in device points per inch virtual void GetDPI( wxDouble* dpiX, wxDouble* dpiY); @@ -625,14 +642,25 @@ public: // helper to determine if a 0.5 offset should be applied for the drawing operation virtual bool ShouldOffset() const { return false; } - + + // indicates whether the context should try to offset for pixel boundaries, this only makes sense on + // bitmap devices like screen, by default this is turned off + virtual void EnableOffset(bool enable = true); + + void DisableOffset() { EnableOffset(false); } + bool OffsetEnabled() { return m_enableOffset; } + protected: + // These fields must be initialized in the derived class ctors. + wxDouble m_width, + m_height; wxGraphicsPen m_pen; wxGraphicsBrush m_brush; wxGraphicsFont m_font; wxAntialiasMode m_antialias; wxCompositionMode m_composition; + bool m_enableOffset; protected: // implementations of overloaded public functions: we use different names @@ -709,6 +737,11 @@ public: virtual wxGraphicsContext * CreateContext( const wxMemoryDC& dc) = 0; #if wxUSE_PRINTING_ARCHITECTURE virtual wxGraphicsContext * CreateContext( const wxPrinterDC& dc) = 0; +#endif +#ifdef __WXMSW__ +#if wxUSE_ENH_METAFILE + virtual wxGraphicsContext * CreateContext( const wxEnhMetaFileDC& dc) = 0; +#endif #endif virtual wxGraphicsContext * CreateContextFromNativeContext( void * context ) = 0;