1 #############################################################################
2 ## Name: ext/print/XS/Preview.xs
3 ## Purpose: XS for Wx::PreviewCanvas, Frame & ControlBar
4 ## Author: Mattia Barbon
7 ## RCS-ID: $Id: Preview.xs 2057 2007-06-18 23:03:00Z mbarbon $
8 ## Copyright: (c) 2001-2002, 2004-2006 Mattia Barbon
9 ## Licence: This program is free software; you can redistribute it and/or
10 ## modify it under the same terms as Perl itself
11 #############################################################################
15 %typemap{wxPreviewControlBar*}{simple};
16 %typemap{wxPlPreviewControlBar*}{simple};
17 %typemap{wxPreviewFrame*}{simple};
18 %typemap{wxPlPreviewFrame*}{simple};
19 %typemap{wxPrintPreviewBase*}{simple};
20 %typemap{wxPrintPreview*}{simple};
21 %typemap{wxPreviewCanvas*}{simple};
25 %file{cpp/previewcontrolbar.h};
27 #include "cpp/v_cback.h"
30 #define DEC_V_CBACK_VOID__INT_( METHOD, CONST ) \
31 void METHOD( int ) CONST
33 #define DEF_V_CBACK_VOID__INT_( CLASS, CALLBASE, METHOD, CONST )\
34 void CLASS::METHOD( int p1 ) CONST \
37 if( wxPliFCback( aTHX_ &m_callback, #METHOD ) ) \
39 wxPliCCback( aTHX_ &m_callback, G_SCALAR|G_DISCARD, "i", p1 ); \
44 #define DEC_V_CBACK_VOID__INT( METHOD ) \
45 DEC_V_CBACK_VOID__INT_( METHOD, wxPli_NOCONST )
47 #define DEF_V_CBACK_VOID__INT( CLASS, BASE, METHOD ) \
48 DEF_V_CBACK_VOID__INT_( CLASS, BASE::METHOD(p1), METHOD, wxPli_NOCONST )
50 #define DEF_V_CBACK_VOID__INT_pure( CLASS, BASE, METHOD ) \
51 DEF_V_CBACK_VOID__INT_( CLASS, return, METHOD, wxPli_NOCONST )
53 class wxPlPreviewControlBar : public wxPreviewControlBar
55 WXPLI_DECLARE_DYNAMIC_CLASS( wxPlPreviewControlBar );
56 WXPLI_DECLARE_V_CBACK();
58 wxPlPreviewControlBar( const char* package, wxPrintPreviewBase *preview,
59 long buttons, wxWindow *parent,
60 const wxPoint& pos = wxDefaultPosition,
61 const wxSize& size = wxDefaultSize,
62 long style = wxTAB_TRAVERSAL,
63 const wxString& name = wxPanelNameStr )
64 : wxPreviewControlBar( preview, buttons, parent, pos, size,
66 m_callback( "Wx::PlPreviewControlBar" )
68 m_callback.SetSelf( wxPli_make_object( this, package ), true );
71 DEC_V_CBACK_VOID__VOID( CreateButtons );
72 DEC_V_CBACK_VOID__INT( SetZoomControl );
73 DEC_V_CBACK_INT__VOID( GetZoomControl );
75 wxButton* GetCloseButton() { return m_closeButton; }
76 wxButton* GetNextPageButton() { return m_nextPageButton; }
77 wxButton* GetPreviousPageButton() { return m_previousPageButton; }
78 wxButton* GetPrintButton() { return m_printButton; }
79 wxButton* GetFirstPageButton() { return m_firstPageButton; }
80 wxButton* GetLastPageButton() { return m_lastPageButton; }
81 wxButton* GetGotoPageButton() { return m_gotoPageButton; }
82 wxChoice* GetZoomChoice() { return m_zoomControl; }
83 long GetButtonFlags() { return m_buttonFlags; }
85 void SetCloseButton( wxButton* b ) { m_closeButton = b; }
86 void SetNextPageButton( wxButton* b ) { m_nextPageButton = b; }
87 void SetPreviousPageButton( wxButton* b ) { m_previousPageButton = b; }
88 void SetPrintButton( wxButton* b ) { m_printButton = b; }
89 void SetFirstPageButton( wxButton* b ) { m_firstPageButton = b; }
90 void SetLastPageButton( wxButton* b ) { m_lastPageButton = b; }
91 void SetGotoPageButton( wxButton* b ) { m_gotoPageButton = b; }
92 void SetZoomChoice( wxChoice * c ) { m_zoomControl = c; }
93 void SetButtonFlags( long f ) { m_buttonFlags = f; }
96 WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPlPreviewControlBar, wxPreviewControlBar );
98 DEF_V_CBACK_VOID__VOID( wxPlPreviewControlBar, wxPreviewControlBar, CreateButtons );
99 DEF_V_CBACK_VOID__INT( wxPlPreviewControlBar, wxPreviewControlBar, SetZoomControl );
100 DEF_V_CBACK_INT__VOID( wxPlPreviewControlBar, wxPreviewControlBar, GetZoomControl );
105 %file{cpp/previewframe.h};
107 #include "cpp/v_cback.h"
109 class wxPlPreviewFrame : public wxPreviewFrame
111 WXPLI_DECLARE_DYNAMIC_CLASS( wxPlPreviewFrame );
112 WXPLI_DECLARE_V_CBACK();
114 #if WXPERL_W_VERSION_GE( 2, 5, 3 )
115 wxPlPreviewFrame( const char* package, wxPrintPreviewBase *preview,
117 const wxString& title = wxT("Print Preview"),
118 const wxPoint& pos = wxDefaultPosition,
119 const wxSize& size = wxDefaultSize,
120 long style = wxDEFAULT_FRAME_STYLE,
121 const wxString& name = wxFrameNameStr )
122 : wxPreviewFrame( preview, parent, title, pos, size, style, name ),
123 m_callback( "Wx::PlPreviewFrame" )
125 m_callback.SetSelf( wxPli_make_object( this, package ), true );
128 wxPlPreviewFrame( const char* package, wxPrintPreviewBase *preview,
130 const wxString& title = wxT("Print Preview"),
131 const wxPoint& pos = wxDefaultPosition,
132 const wxSize& size = wxDefaultSize,
133 long style = wxDEFAULT_FRAME_STYLE,
134 const wxString& name = wxFrameNameStr )
135 : wxPreviewFrame( preview, parent, title, pos, size, style, name ),
136 m_callback( "Wx::PlPreviewFrame" )
138 m_callback.SetSelf( wxPli_make_object( this, package ), true );
142 #if WXPERL_W_VERSION_GE( 2, 5, 3 )
143 wxPreviewCanvas* GetPreviewCanvas() { return m_previewCanvas; }
145 wxWindow* GetPreviewCanvas() { return m_previewCanvas; }
147 wxPreviewControlBar* GetPreviewControlBar() { return m_controlBar; }
148 wxPrintPreviewBase* GetPrintPreview() { return m_printPreview; }
150 #if WXPERL_W_VERSION_GE( 2, 5, 3 )
151 void SetPreviewCanvas( wxPreviewCanvas* p ) { m_previewCanvas = p; }
153 void SetPreviewCanvas( wxWindow* p ) { m_previewCanvas = p; }
155 void SetPreviewControlBar( wxPreviewControlBar* p ) { m_controlBar = p; }
156 void SetPrintPreview( wxPrintPreviewBase* p ) { m_printPreview = p; }
158 DEC_V_CBACK_VOID__VOID( Initialize );
159 DEC_V_CBACK_VOID__VOID( CreateCanvas );
160 DEC_V_CBACK_VOID__VOID( CreateControlBar );
163 WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPlPreviewFrame, wxPreviewFrame );
165 DEF_V_CBACK_VOID__VOID( wxPlPreviewFrame, wxPreviewFrame, Initialize );
166 DEF_V_CBACK_VOID__VOID( wxPlPreviewFrame, wxPreviewFrame, CreateCanvas );
167 DEF_V_CBACK_VOID__VOID( wxPlPreviewFrame, wxPreviewFrame, CreateControlBar );
171 #include "cpp/previewframe.h"
172 #include "cpp/previewcontrolbar.h"
174 %name{Wx::PreviewControlBar} class wxPreviewControlBar
176 wxPreviewControlBar( wxPrintPreview* preview, long buttons,
177 wxWindow* parent, wxPoint pos = wxDefaultPosition,
178 wxSize size = wxDefaultSize,
179 long style = wxTAB_TRAVERSAL,
180 wxString name = wxPanelNameStr );
182 void CreateButtons();
183 wxPrintPreviewBase* GetPrintPreview();
184 int GetZoomControl();
185 void SetZoomControl( int zoom );
192 #if WXPERL_W_VERSION_GE( 2, 5, 3 )
198 #define CreateButtons wxPreviewControlBar::CreateButtons
201 %name{Wx::PlPreviewControlBar} class wxPlPreviewControlBar
203 wxPlPreviewControlBar( wxPrintPreview* preview, long buttons,
205 wxPoint pos = wxDefaultPosition,
206 wxSize size = wxDefaultSize,
207 long style = wxTAB_TRAVERSAL,
208 wxString name = wxPanelNameStr )
209 %code{% RETVAL = new wxPlPreviewControlBar
210 ( CLASS, preview, buttons, parent, pos, size,
214 void CreateButtons();
221 %name{Wx::PreviewFrame} class wxPreviewFrame
223 #if WXPERL_W_VERSION_GE( 2, 5, 3 )
224 wxPreviewFrame( wxPrintPreview* preview, wxWindow* parent,
225 wxString title, wxPoint pos = wxDefaultPosition,
226 wxSize size = wxDefaultSize,
227 long style = wxDEFAULT_FRAME_STYLE,
228 wxString name = wxFrameNameStr );
230 wxPreviewFrame( wxPrintPreview* preview, wxFrame* parent,
231 wxString title, wxPoint pos = wxDefaultPosition,
232 wxSize size = wxDefaultSize,
233 long style = wxDEFAULT_FRAME_STYLE,
234 wxString name = wxFrameNameStr );
239 void CreateControlBar();
241 #if WXPERL_W_VERSION_GE( 2, 5, 4 )
242 wxPreviewControlBar* GetControlBar() const;
247 #define Initialize wxPreviewFrame::Initialize
248 #define CreateCanvas wxPreviewFrame::CreateCanvas
249 #define CreateControlBar wxPreviewFrame::CreateControlBar
252 %name{Wx::PlPreviewFrame} class wxPlPreviewFrame
254 #if WXPERL_W_VERSION_GE( 2, 5, 3 )
255 wxPlPreviewFrame( wxPrintPreview* preview, wxWindow* parent,
256 wxString title, wxPoint pos = wxDefaultPosition,
257 wxSize size = wxDefaultSize,
258 long style = wxDEFAULT_FRAME_STYLE,
259 wxString name = wxFrameNameStr )
260 %code{% RETVAL = new wxPlPreviewFrame
261 ( CLASS, preview, parent, title, pos, size, style, name );
264 wxPlPreviewFrame( wxPrintPreview* preview, wxFrame* parent,
265 wxString title, wxPoint pos = wxDefaultPosition,
266 wxSize size = wxDefaultSize,
267 long style = wxDEFAULT_FRAME_STYLE,
268 wxString name = wxFrameNameStr )
269 %code{% RETVAL = new wxPlPreviewFrame
270 ( CLASS, preview, parent, title, pos, size, style, name );
274 #if WXPERL_W_VERSION_GE( 2, 5, 3 )
275 wxPreviewCanvas* GetPreviewCanvas();
277 wxWindow* GetPreviewCanvas();
279 wxPreviewControlBar* GetPreviewControlBar();
280 wxPrintPreviewBase* GetPrintPreview();
282 #if WXPERL_W_VERSION_GE( 2, 5, 3 )
283 void SetPreviewCanvas( wxPreviewCanvas* p );
285 void SetPreviewCanvas( wxWindow* p );
287 void SetPreviewControlBar( wxPreviewControlBar* p );
288 void SetPrintPreview( wxPrintPreviewBase* p );
292 void CreateControlBar();
298 #undef CreateControlBar
302 MODULE=Wx PACKAGE=Wx::PreviewCanvas
305 wxPreviewCanvas::new( preview, parent, pos = wxDefaultPosition, size = wxDefaultSize, style = 0, name = wxT("canvas") )
306 wxPrintPreview* preview