As the implementation of this method is basically the same for all ports move
it to the base class itself instead of requiring the derived classes to
implement it. Now the derived classes need to fill in m_width and m_height
members instead.
Do fill them when creating wxGraphicsContext in Cairo version.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67359
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
- Switch to GtkTooltip from deprecated GtkTooltips (Emilien Kia).
- wxTLW generates wxEVT_MAXIMIZE.
- Fix copying clipboard data to primary selection (David Hart).
- Switch to GtkTooltip from deprecated GtkTooltips (Emilien Kia).
- wxTLW generates wxEVT_MAXIMIZE.
- Fix copying clipboard data to primary selection (David Hart).
+- Implement wxGraphicsContext::GetSize() (Marcin Wojdyr).
virtual bool SetCompositionMode(wxCompositionMode op) = 0;
// returns the size of the graphics context in device coordinates
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);
// returns the resolution of the graphics context in device points per inch
virtual void GetDPI( wxDouble* dpiX, wxDouble* dpiY);
virtual bool ShouldOffset() const { return false; }
protected:
virtual bool ShouldOffset() const { return false; }
protected:
+ // These fields must be initialized in the derived class ctors.
+ wxDouble m_width,
+ m_height;
wxGraphicsPen m_pen;
wxGraphicsBrush m_brush;
wxGraphicsPen m_pen;
wxGraphicsBrush m_brush;
-void wxGraphicsContext::GetSize( wxDouble* width, wxDouble* height)
-{
- *width = 10000.0;
- *height = 10000.0;
-}
-
void wxGraphicsContext::GetDPI( wxDouble* dpiX, wxDouble* dpiY)
{
*dpiX = 72.0;
void wxGraphicsContext::GetDPI( wxDouble* dpiX, wxDouble* dpiY)
{
*dpiX = 72.0;
const wxDCImpl *impl = dc.GetImpl();
Init( (cairo_t*) impl->GetCairoContext() );
const wxDCImpl *impl = dc.GetImpl();
Init( (cairo_t*) impl->GetCairoContext() );
+ wxSize sz = dc.GetSize();
+ m_width = sz.x;
+ m_height = sz.y;
+
wxPoint org = dc.GetDeviceOrigin();
cairo_translate( m_context, org.x, org.y );
wxPoint org = dc.GetDeviceOrigin();
cairo_translate( m_context, org.x, org.y );
wxCairoContext::wxCairoContext( wxGraphicsRenderer* renderer, const wxWindowDC& dc )
: wxGraphicsContext(renderer)
{
wxCairoContext::wxCairoContext( wxGraphicsRenderer* renderer, const wxWindowDC& dc )
: wxGraphicsContext(renderer)
{
+ int width, height;
+ dc.GetSize( &width, &height );
+ m_width = width;
+ m_height = height;
+
#ifdef __WXGTK20__
wxGTKDCImpl *impldc = (wxGTKDCImpl*) dc.GetImpl();
Init( gdk_cairo_create( impldc->GetGDKWindow() ) );
#ifdef __WXGTK20__
wxGTKDCImpl *impldc = (wxGTKDCImpl*) dc.GetImpl();
Init( gdk_cairo_create( impldc->GetGDKWindow() ) );
- int width, height;
- dc.GetSize( &width, &height );
CGContextRef cgcontext = (CGContextRef)dc.GetWindow()->MacGetCGContextRef();
cairo_surface_t* surface = cairo_quartz_surface_create_for_cg_context(cgcontext, width, height);
Init( cairo_create( surface ) );
CGContextRef cgcontext = (CGContextRef)dc.GetWindow()->MacGetCGContextRef();
cairo_surface_t* surface = cairo_quartz_surface_create_for_cg_context(cgcontext, width, height);
Init( cairo_create( surface ) );
wxCairoContext::wxCairoContext( wxGraphicsRenderer* renderer, const wxMemoryDC& dc )
: wxGraphicsContext(renderer)
{
wxCairoContext::wxCairoContext( wxGraphicsRenderer* renderer, const wxMemoryDC& dc )
: wxGraphicsContext(renderer)
{
+ int width, height;
+ dc.GetSize( &width, &height );
+ m_width = width;
+ m_height = height;
+
#ifdef __WXGTK20__
wxGTKDCImpl *impldc = (wxGTKDCImpl*) dc.GetImpl();
Init( gdk_cairo_create( impldc->GetGDKWindow() ) );
#ifdef __WXGTK20__
wxGTKDCImpl *impldc = (wxGTKDCImpl*) dc.GetImpl();
Init( gdk_cairo_create( impldc->GetGDKWindow() ) );
- int width, height;
- dc.GetSize( &width, &height );
CGContextRef cgcontext = (CGContextRef)dc.GetWindow()->MacGetCGContextRef();
cairo_surface_t* surface = cairo_quartz_surface_create_for_cg_context(cgcontext, width, height);
Init( cairo_create( surface ) );
CGContextRef cgcontext = (CGContextRef)dc.GetWindow()->MacGetCGContextRef();
cairo_surface_t* surface = cairo_quartz_surface_create_for_cg_context(cgcontext, width, height);
Init( cairo_create( surface ) );
: wxGraphicsContext(renderer)
{
Init( gdk_cairo_create( drawable ) );
: wxGraphicsContext(renderer)
{
Init( gdk_cairo_create( drawable ) );
+
+ int width, height;
+ gdk_drawable_get_size( drawable, &width, &height );
+ m_width = width;
+ m_height = height;
: wxGraphicsContext(renderer)
{
m_mswSurface = cairo_win32_surface_create(handle);
: wxGraphicsContext(renderer)
{
m_mswSurface = cairo_win32_surface_create(handle);
- m_context = cairo_create(m_mswSurface);
- PushState();
- PushState();
+ Init( cairo_create(m_mswSurface) );
+ m_width =
+ m_height = 0;
: wxGraphicsContext(renderer)
{
Init( context );
: wxGraphicsContext(renderer)
{
Init( context );
+ m_width =
+ m_height = 0;
}
wxCairoContext::wxCairoContext( wxGraphicsRenderer* renderer, wxWindow *window)
}
wxCairoContext::wxCairoContext( wxGraphicsRenderer* renderer, wxWindow *window)
wxASSERT_MSG( window->m_wxwindow, wxT("wxCairoContext needs a widget") );
Init(gdk_cairo_create(window->GTKGetDrawingWindow()));
wxASSERT_MSG( window->m_wxwindow, wxT("wxCairoContext needs a widget") );
Init(gdk_cairo_create(window->GTKGetDrawingWindow()));
+
+ wxSize sz = window->GetSize();
+ m_width = sz.x;
+ m_height = sz.y;
GraphicsState m_state1;
GraphicsState m_state2;
GraphicsState m_state1;
GraphicsState m_state2;
- wxDouble m_width;
- wxDouble m_height;
-
DECLARE_DYNAMIC_CLASS_NO_COPY(wxGDIPlusContext)
};
DECLARE_DYNAMIC_CLASS_NO_COPY(wxGDIPlusContext)
};
- // returns the size of the graphics context in device coordinates
- virtual void GetSize( wxDouble* width, wxDouble* height);
-
virtual void StartPage( wxDouble width, wxDouble height );
virtual void EndPage();
virtual void StartPage( wxDouble width, wxDouble height );
virtual void EndPage();
#endif
bool m_contextSynthesized;
CGAffineTransform m_windowTransform;
#endif
bool m_contextSynthesized;
CGAffineTransform m_windowTransform;
- wxDouble m_width;
- wxDouble m_height;
bool m_invisible;
#if wxOSX_USE_COCOA_OR_CARBON
bool m_invisible;
#if wxOSX_USE_COCOA_OR_CARBON
SetNativeContext(NULL);
}
SetNativeContext(NULL);
}
-void wxMacCoreGraphicsContext::GetSize( wxDouble* width, wxDouble* height)
-{
- *width = m_width;
- *height = m_height;
-}
-
void wxMacCoreGraphicsContext::StartPage( wxDouble width, wxDouble height )
{
void wxMacCoreGraphicsContext::StartPage( wxDouble width, wxDouble height )
{