#############################################################################
## Name: ext/html/XS/HtmlPrintout.xsp
## Purpose: XS++ for Wx::HtmlPrintout
## Author: Mark Dootson
## Modified by:
## Created: 3 May 2012
## RCS-ID: $Id: HtmlParser.xsp 2079 2007-07-08 21:18:04Z mbarbon $
## Copyright: (c) 1012 Mattia Barbon
## Licence: This program is free software; you can redistribute it and/or
## modify it under the same terms as Perl itself
#############################################################################
%module{Wx};
#include <wx/html/htmprint.h>
%name{Wx::HtmlPrintout} class wxHtmlPrintout : public %name{Wx::Printout} wxPrintout
{
public:
wxHtmlPrintout(const wxString& title = wxT("Printout"));
%name{Destroy} ~wxHtmlPrintout()
%code%{ delete THIS; %};
void SetHtmlText(const wxString& html, const wxString &basepath = wxEmptyString, bool isdir = true);
void SetHtmlFile(const wxString &htmlfile);
void SetHeader(const wxString& header, int pg = wxPAGE_ALL);
void SetFooter(const wxString& footer, int pg = wxPAGE_ALL);
//void SetFonts(const wxString& normal_face, const wxString& fixed_face, int *sizes = NULL);
void SetStandardFonts(int size = -1,
const wxString& normal_face = wxEmptyString,
const wxString& fixed_face = wxEmptyString);
void SetMargins(float top = 25.2, float bottom = 25.2, float left = 25.2, float right = 25.2,
float spaces = 5);
// wxPrintout stuff:
bool OnPrintPage(int page);
bool HasPage(int page);
// void GetPageInfo(int *minPage, int *maxPage, int *selPageFrom, int *selPageTo);
bool OnBeginDocument(int startPage, int endPage);
void OnPreparePrinting();
// Adds input filter
// NOT Implemented - just use Wx::PlFileSystemHandler instead
// static void AddFilter(wxHtmlFilter *filter);
// Cleanup
static void CleanUpStatics();
%{
void
wxHtmlPrintout::GetPageInfo()
PREINIT:
int minPage, maxPage, pageFrom, pageTo;
PPCODE:
THIS->wxHtmlPrintout::GetPageInfo( &minPage, &maxPage, &pageFrom, &pageTo );
EXTEND( SP, 4 );
PUSHs( sv_2mortal( newSViv( minPage ) ) );
PUSHs( sv_2mortal( newSViv( maxPage ) ) );
PUSHs( sv_2mortal( newSViv( pageFrom ) ) );
PUSHs( sv_2mortal( newSViv( pageTo ) ) );
void
wxHtmlPrintout::SetFonts( normal_face, fixed_face, sizes )
wxString normal_face
wxString fixed_face
SV* sizes
PREINIT:
int* array;
int n = wxPli_av_2_intarray( aTHX_ sizes, &array );
CODE:
if( n != 7 )
{
delete[] array;
croak( "Specified %d sizes, 7 wanted", n );
}
THIS->wxHtmlPrintout::SetFonts( normal_face, fixed_face, array );
delete[] array;
%}
};