21 #if !defined ( WXPLPLOTWINDOW_H__INCLUDED_ )
22 #define WXPLPLOTWINDOW_H__INCLUDED_
26 #include <wx/window.h>
27 #include <wx/dcmemory.h>
28 #include <wx/dcclient.h>
29 #include <wx/dcgraph.h>
30 #include <wx/dcbuffer.h>
36 template <
class WXWINDOW>
44 bool SavePlot(
const wxString& driver,
const wxString& filename );
50 virtual void OnPaint( wxPaintEvent& event );
51 virtual void OnSize( wxSizeEvent & event );
52 virtual void OnErase( wxEraseEvent &event );
53 virtual void OnCreate( wxWindowCreateEvent &event );
65 #ifdef wxUSE_GRAPHICS_CONTEXT
75 template<
class WXWINDOW>
81 #ifdef wxUSE_GRAPHICS_CONTEXT
100 template<
class WXWINDOW>
110 template<
class WXWINDOW>
122 int width = WXWINDOW::GetClientSize().GetWidth();
123 int height = WXWINDOW::GetClientSize().GetHeight();
125 wxPaintDC paintDc(
this );
128 bool needResize = width != m_bitmap.GetWidth() || height != m_bitmap.GetHeight();
131 m_bitmap.Create( width, height, 32 );
134 m_memoryDc =
new wxMemoryDC;
135 m_memoryDc->SelectObject( m_bitmap );
136 wxDC *drawDc = m_memoryDc;
137 #ifdef wxUSE_GRAPHICS_CONTEXT
138 if ( m_useGraphicsContext )
142 m_gcDc =
new wxGCDC( *m_memoryDc );
146 m_stream.SetDC( drawDc );
147 drawDc->SetBackground( wxBrush( m_canvasColour ) );
149 m_stream.SetSize( width, height );
152 paintDc.Blit( 0, 0, width, height, m_memoryDc, 0, 0 );
157 template<
class WXWINDOW>
167 template<
class WXWINDOW>
176 template<
class WXWINDOW>
182 int width = WXWINDOW::GetClientSize().GetWidth();
183 int height = WXWINDOW::GetClientSize().GetHeight();
184 m_bitmap.Create( width, height );
187 m_memoryDc =
new wxMemoryDC;
188 m_memoryDc->SelectObject( m_bitmap );
189 wxDC * drawDc = m_memoryDc;
190 #ifdef wxUSE_GRAPHICS_CONTEXT
191 if ( m_useGraphicsContext )
195 m_gcDc =
new wxGCDC( *m_memoryDc );
199 if ( !m_stream.IsValid() )
202 m_stream.SetDC( drawDc );
203 drawDc->SetBackground( wxBrush( m_canvasColour ) );
214 template<
class WXWINDOW>
226 template<
class WXWINDOW>
232 if ( ( sfile = fopen( filename.mb_str(),
"wb+" ) ) == NULL )
244 plsdev( devname.mb_str() );
247 plspage( 0., 0., 800, 600, 0, 0 );
258 template<
class WXWINDOW>
262 #ifdef wxUSE_GRAPHICS_CONTEXT
263 if ( useGraphicsContext != m_useGraphicsContext )
265 m_useGraphicsContext = useGraphicsContext;
266 drawDc = m_useGraphicsContext ? (wxDC *) m_gcDc : (wxDC *) m_memoryDc;
269 drawDc = &m_memoryDc;
270 m_useGraphicsContext =
false;
274 m_stream.SetDC( drawDc );
279 template<
class WXWINDOW>
282 m_canvasColour = colour;
286 #endif // !defined( WXPLPLOTWINDOW_H__INCLUDED_ )