|
|
@@ -0,0 +1,1032 @@
|
|
|
+#include "squirrel.h"
|
|
|
+#include "fpdf.h"
|
|
|
+#include <string.h>
|
|
|
+#include <stdio.h>
|
|
|
+
|
|
|
+class Sq_Fpdf : public FPDF {
|
|
|
+ protected:
|
|
|
+ HSQUIRRELVM sqvm;
|
|
|
+ HSQOBJECT self_weakref;
|
|
|
+ public:
|
|
|
+ Sq_Fpdf(HSQUIRRELVM v, HSQOBJECT &self):FPDF(){
|
|
|
+ sqvm = v;
|
|
|
+ self_weakref = self;
|
|
|
+ }
|
|
|
+
|
|
|
+ void callVirtual(const SQChar *func_name){
|
|
|
+ //sq_reservestack(sqvm, 20);
|
|
|
+ SQInteger top = sq_gettop(sqvm);
|
|
|
+ sq_pushobject(sqvm, self_weakref);
|
|
|
+ sq_pushstring(sqvm, func_name, -1);
|
|
|
+ sq_get(sqvm, -2);
|
|
|
+ if(sq_gettype(sqvm, -1) == OT_CLOSURE){
|
|
|
+ sq_push(sqvm, -2); //this
|
|
|
+ sq_call(sqvm, 1, SQFalse, SQTrue);
|
|
|
+ }
|
|
|
+ sq_settop(sqvm, top);
|
|
|
+ }
|
|
|
+
|
|
|
+ void Header (){
|
|
|
+ callVirtual(_SC("Header"));
|
|
|
+ };
|
|
|
+ void Footer () {
|
|
|
+ callVirtual(_SC("Footer"));
|
|
|
+ };
|
|
|
+ bool AcceptPageBreak (){
|
|
|
+ callVirtual(_SC("AcceptPageBreak"));
|
|
|
+ return FPDF::AcceptPageBreak();
|
|
|
+ };
|
|
|
+};
|
|
|
+
|
|
|
+static SQRESULT sq_glue_releasehook(SQUserPointer p, SQInteger size, HSQUIRRELVM v)
|
|
|
+{
|
|
|
+ Sq_Fpdf *self = ((Sq_Fpdf *)p);
|
|
|
+ delete self;
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+static SQRESULT sq_glue_constructor(HSQUIRRELVM v)
|
|
|
+{
|
|
|
+ //SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ HSQOBJECT self;
|
|
|
+ sq_resetobject(&self);
|
|
|
+ sq_getstackobj(v, 1, &self);
|
|
|
+
|
|
|
+ Sq_Fpdf *cptr = new Sq_Fpdf(v, self);
|
|
|
+ sq_setinstanceup(v, 1, cptr);
|
|
|
+ sq_setreleasehook(v,1, sq_glue_releasehook);
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+SQ_OPT_STRING_STRLEN();
|
|
|
+
|
|
|
+static const SQChar *SQ_FPDF_TAG = "Sq_Fpdf";
|
|
|
+
|
|
|
+#define GET_SQ_FPDF() SQ_GET_INSTANCE(v, 1, Sq_Fpdf, SQ_FPDF_TAG)
|
|
|
+
|
|
|
+/* bool AcceptPageBreak( ) */
|
|
|
+static SQRESULT sq_glue_AcceptPageBreak(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ sq_pushbool(v, self->FPDF::AcceptPageBreak());
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+/* void AddFont( char const * afamily , char const * astyle = 0 , char const * afile = 0 ) */
|
|
|
+static SQRESULT sq_glue_AddFont(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_STRING(v, 2, afamily);
|
|
|
+ SQ_OPT_STRING(v, 3, astyle, 0);
|
|
|
+ SQ_OPT_STRING(v, 4, afile, 0);
|
|
|
+ self->AddFont(afamily, astyle, afile);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* int AddLink( ) */
|
|
|
+static SQRESULT sq_glue_AddLink(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ sq_pushinteger(v, self->AddLink());
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+/* void AddPage( FPDF::e_orientation orientation = FPDF::e_orientation_none , FPDF::st_pagesize * psize = 0 ) */
|
|
|
+static SQRESULT sq_glue_AddPage(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_OPT_INTEGER(v, 2, orientation, FPDF::e_orientation_none);
|
|
|
+ SQ_OPT_STRING(v, 3, psize, 0);
|
|
|
+ self->AddPage((FPDF::e_orientation)orientation, 0);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void AliasNbPages( char const * alias = "{nb}" ) */
|
|
|
+static SQRESULT sq_glue_AliasNbPages(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_OPT_STRING(v, 2, alias, "{nb}");
|
|
|
+ self->AliasNbPages(alias);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* int CalcLines( pdf_float_t w , char const * txt ) */
|
|
|
+static SQRESULT sq_glue_CalcLines(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, w);
|
|
|
+ SQ_GET_STRING(v, 3, txt);
|
|
|
+ sq_pushinteger(v, self->CalcLines(w, txt));
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+/* void Cell( pdf_float_t w , pdf_float_t h = 0.0f , char const * txt = 0 , char const * border = 0 , int ln = 0 , char align = ' ' , bool fill = false , int link = 0 ) */
|
|
|
+static SQRESULT sq_glue_Cell(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, w);
|
|
|
+ SQ_OPT_FLOAT(v, 3, h, 0.0f);
|
|
|
+ SQ_OPT_STRING(v, 4, txt, 0);
|
|
|
+ SQ_OPT_STRING(v, 5, border, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 6, ln, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 7, align, ' ');
|
|
|
+ SQ_OPT_INTEGER(v, 8, fill, false);
|
|
|
+ SQ_OPT_INTEGER(v, 9, link, 0);
|
|
|
+ self->Cell(w, h, txt, border, ln, align, fill, link);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void CellFit( pdf_float_t w , pdf_float_t h = 0 , char const * txt = 0 , char const * border = 0 , int ln = 0 , char align = ' ' , bool fill = false , int link = 0 , bool scale = false , bool force = true ) */
|
|
|
+static SQRESULT sq_glue_CellFit(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, w);
|
|
|
+ SQ_OPT_FLOAT(v, 3, h, 0);
|
|
|
+ SQ_OPT_STRING(v, 4, txt, 0);
|
|
|
+ SQ_OPT_STRING(v, 5, border, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 6, ln, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 7, align, ' ');
|
|
|
+ SQ_OPT_INTEGER(v, 8, fill, false);
|
|
|
+ SQ_OPT_INTEGER(v, 9, link, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 10, scale, false);
|
|
|
+ SQ_OPT_INTEGER(v, 11, force, true);
|
|
|
+ self->CellFit(w, h, txt, border, ln, align, fill, link, scale, force);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void CellFitScale( pdf_float_t w , pdf_float_t h = 0 , char const * txt = 0 , char const * border = 0 , int ln = 0 , char align = ' ' , bool fill = false , int link = 0 ) */
|
|
|
+static SQRESULT sq_glue_CellFitScale(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, w);
|
|
|
+ SQ_OPT_FLOAT(v, 3, h, 0);
|
|
|
+ SQ_OPT_STRING(v, 4, txt, 0);
|
|
|
+ SQ_OPT_STRING(v, 5, border, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 6, ln, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 7, align, ' ');
|
|
|
+ SQ_OPT_INTEGER(v, 8, fill, false);
|
|
|
+ SQ_OPT_INTEGER(v, 9, link, 0);
|
|
|
+ self->CellFitScale(w, h, txt, border, ln, align, fill, link);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void CellFitScaleForce( pdf_float_t w , pdf_float_t h = 0 , char const * txt = 0 , char const * border = 0 , int ln = 0 , char align = ' ' , bool fill = false , int link = 0 ) */
|
|
|
+static SQRESULT sq_glue_CellFitScaleForce(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, w);
|
|
|
+ SQ_OPT_FLOAT(v, 3, h, 0);
|
|
|
+ SQ_OPT_STRING(v, 4, txt, 0);
|
|
|
+ SQ_OPT_STRING(v, 5, border, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 6, ln, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 7, align, ' ');
|
|
|
+ SQ_OPT_INTEGER(v, 8, fill, false);
|
|
|
+ SQ_OPT_INTEGER(v, 9, link, 0);
|
|
|
+ self->CellFitScaleForce(w, h, txt, border, ln, align, fill, link);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void CellFitSpace( pdf_float_t w , pdf_float_t h = 0 , char const * txt = 0 , char const * border = 0 , int ln = 0 , char align = ' ' , bool fill = false , int link = 0 ) */
|
|
|
+static SQRESULT sq_glue_CellFitSpace(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, w);
|
|
|
+ SQ_OPT_FLOAT(v, 3, h, 0);
|
|
|
+ SQ_OPT_STRING(v, 4, txt, 0);
|
|
|
+ SQ_OPT_STRING(v, 5, border, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 6, ln, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 7, align, ' ');
|
|
|
+ SQ_OPT_INTEGER(v, 8, fill, false);
|
|
|
+ SQ_OPT_INTEGER(v, 9, link, 0);
|
|
|
+ self->CellFitSpace(w, h, txt, border, ln, align, fill, link);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void CellFitSpaceForce( pdf_float_t w , pdf_float_t h = 0 , char const * txt = 0 , char const * border = 0 , int ln = 0 , char align = ' ' , bool fill = false , int link = 0 ) */
|
|
|
+static SQRESULT sq_glue_CellFitSpaceForce(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, w);
|
|
|
+ SQ_OPT_FLOAT(v, 3, h, 0);
|
|
|
+ SQ_OPT_STRING(v, 4, txt, 0);
|
|
|
+ SQ_OPT_STRING(v, 5, border, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 6, ln, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 7, align, ' ');
|
|
|
+ SQ_OPT_INTEGER(v, 8, fill, false);
|
|
|
+ SQ_OPT_INTEGER(v, 9, link, 0);
|
|
|
+ self->CellFitSpaceForce(w, h, txt, border, ln, align, fill, link);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void CheckPageBreak( pdf_float_t height ) */
|
|
|
+static SQRESULT sq_glue_CheckPageBreak(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, height);
|
|
|
+ self->CheckPageBreak(height);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void Circle( pdf_float_t x , pdf_float_t y , pdf_float_t r , char const * style = "D" ) */
|
|
|
+static SQRESULT sq_glue_Circle(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, x);
|
|
|
+ SQ_GET_FLOAT(v, 3, y);
|
|
|
+ SQ_GET_FLOAT(v, 4, r);
|
|
|
+ SQ_OPT_STRING(v, 5, style, "D");
|
|
|
+ self->Circle(x, y, r, style);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void ClippedCell( pdf_float_t w , pdf_float_t h = 0 , char const * txt = 0 , char const * border = 0 , int ln = 0 , char align = ' ' , bool fill = false , int link = 0 ) */
|
|
|
+static SQRESULT sq_glue_ClippedCell(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, w);
|
|
|
+ SQ_OPT_FLOAT(v, 3, h, 0);
|
|
|
+ SQ_OPT_STRING(v, 4, txt, 0);
|
|
|
+ SQ_OPT_STRING(v, 5, border, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 6, ln, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 7, align, ' ');
|
|
|
+ SQ_OPT_INTEGER(v, 8, fill, false);
|
|
|
+ SQ_OPT_INTEGER(v, 9, link, 0);
|
|
|
+ self->ClippedCell(w, h, txt, border, ln, align, fill, link);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void ClippingRect( pdf_float_t x , pdf_float_t y , pdf_float_t w , pdf_float_t h , bool outline = false ) */
|
|
|
+static SQRESULT sq_glue_ClippingRect(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, x);
|
|
|
+ SQ_GET_FLOAT(v, 3, y);
|
|
|
+ SQ_GET_FLOAT(v, 4, w);
|
|
|
+ SQ_GET_FLOAT(v, 5, h);
|
|
|
+ SQ_OPT_INTEGER(v, 6, outline, false);
|
|
|
+ self->ClippingRect(x, y, w, h, outline);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void ClippingText( pdf_float_t x , pdf_float_t y , char const * txt , bool outline = false ) */
|
|
|
+static SQRESULT sq_glue_ClippingText(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, x);
|
|
|
+ SQ_GET_FLOAT(v, 3, y);
|
|
|
+ SQ_GET_STRING(v, 4, txt);
|
|
|
+ SQ_OPT_INTEGER(v, 5, outline, false);
|
|
|
+ self->ClippingText(x, y, txt, outline);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void Close( ) */
|
|
|
+static SQRESULT sq_glue_Close(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ self->Close();
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void Ellipse( pdf_float_t x , pdf_float_t y , pdf_float_t rx , pdf_float_t ry , char const * style = "D" ) */
|
|
|
+static SQRESULT sq_glue_Ellipse(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, x);
|
|
|
+ SQ_GET_FLOAT(v, 3, y);
|
|
|
+ SQ_GET_FLOAT(v, 4, rx);
|
|
|
+ SQ_GET_FLOAT(v, 5, ry);
|
|
|
+ SQ_OPT_STRING(v, 6, style, "D");
|
|
|
+ self->Ellipse(x, y, rx, ry, style);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void Error( char const * msg ) */
|
|
|
+static SQRESULT sq_glue_Error(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_STRING(v, 2, msg);
|
|
|
+ self->Error(msg);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void Footer( ) */
|
|
|
+static SQRESULT sq_glue_Footer(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ self->FPDF::Footer();
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* const & GetAliasNbPages( ) */
|
|
|
+static SQRESULT sq_glue_GetAliasNbPages(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ std::string str = self->GetAliasNbPages();
|
|
|
+ sq_pushstring(v, str.c_str(), str.size());
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+/* void GetDrawColor( FPDF::pdf_color_t & color ) */
|
|
|
+static SQRESULT sq_glue_GetDrawColor(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_INTEGER(v, 2, color);
|
|
|
+ //self->GetDrawColor(color);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void GetFillColor( FPDF::pdf_color_t & color ) */
|
|
|
+static SQRESULT sq_glue_GetFillColor(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_INTEGER(v, 2, color);
|
|
|
+ //self->GetFillColor(color);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void GetFontSettings( font_settings_st & fs ) */
|
|
|
+static SQRESULT sq_glue_GetFontSettings(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_INTEGER(v, 2, fs);
|
|
|
+ //self->GetFontSettings(fs);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* pdf_float_t GetFontSize( ) */
|
|
|
+static SQRESULT sq_glue_GetFontSize(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ sq_pushfloat(v, self->GetFontSize());
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+/* pdf_float_t GetH( ) */
|
|
|
+static SQRESULT sq_glue_GetH(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ sq_pushfloat(v, self->GetH());
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+/* pdf_float_t GetLeftMargin( ) */
|
|
|
+static SQRESULT sq_glue_GetLeftMargin(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ sq_pushfloat(v, self->GetLeftMargin());
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+/* pdf_float_t GetRightMargin( ) */
|
|
|
+static SQRESULT sq_glue_GetRightMargin(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ sq_pushfloat(v, self->GetRightMargin());
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+/* pdf_float_t GetStringWidth( char const * s ) */
|
|
|
+static SQRESULT sq_glue_GetStringWidth(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_STRING(v, 2, s);
|
|
|
+ sq_pushfloat(v, self->GetStringWidth(s));
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+/* void GetTextColor( FPDF::pdf_color_t & color ) */
|
|
|
+static SQRESULT sq_glue_GetTextColor(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_INTEGER(v, 2, color);
|
|
|
+ //self->GetTextColor(color);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* pdf_float_t GetW( ) */
|
|
|
+static SQRESULT sq_glue_GetW(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ sq_pushfloat(v, self->GetW());
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+/* pdf_float_t GetX( ) */
|
|
|
+static SQRESULT sq_glue_GetX(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ sq_pushfloat(v, self->GetX());
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+/* pdf_float_t GetY( ) */
|
|
|
+static SQRESULT sq_glue_GetY(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ sq_pushfloat(v, self->GetY());
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+/* void Header( ) */
|
|
|
+static SQRESULT sq_glue_Header(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ self->FPDF::Header();
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void Image( char const * file , pdf_float_t x = -1 , pdf_float_t y = -1 , pdf_float_t w = 0.0 , pdf_float_t h = 0.0 , char const * atype = 0 , int link = 0 ) */
|
|
|
+static SQRESULT sq_glue_Image(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_STRING(v, 2, file);
|
|
|
+ SQ_OPT_FLOAT(v, 3, x, -1);
|
|
|
+ SQ_OPT_FLOAT(v, 4, y, -1);
|
|
|
+ SQ_OPT_FLOAT(v, 5, w, 0.0);
|
|
|
+ SQ_OPT_FLOAT(v, 6, h, 0.0);
|
|
|
+ SQ_OPT_STRING(v, 7, atype, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 8, link, 0);
|
|
|
+ self->Image(file, x, y, w, h, atype, link);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void IncludeJS( char const * script ) */
|
|
|
+static SQRESULT sq_glue_IncludeJS(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_STRING(v, 2, script);
|
|
|
+ self->IncludeJS(script);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void Line( pdf_float_t x1 , pdf_float_t y1 , pdf_float_t x2 , pdf_float_t y2 ) */
|
|
|
+static SQRESULT sq_glue_Line(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, x1);
|
|
|
+ SQ_GET_FLOAT(v, 3, y1);
|
|
|
+ SQ_GET_FLOAT(v, 4, x2);
|
|
|
+ SQ_GET_FLOAT(v, 5, y2);
|
|
|
+ self->Line(x1, y1, x2, y2);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void Link( pdf_float_t x , pdf_float_t y , pdf_float_t w , pdf_float_t h , int link ) */
|
|
|
+static SQRESULT sq_glue_Link(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, x);
|
|
|
+ SQ_GET_FLOAT(v, 3, y);
|
|
|
+ SQ_GET_FLOAT(v, 4, w);
|
|
|
+ SQ_GET_FLOAT(v, 5, h);
|
|
|
+ SQ_GET_INTEGER(v, 6, link);
|
|
|
+ self->Link(x, y, w, h, link);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void Ln( pdf_float_t h = 0.0 ) */
|
|
|
+static SQRESULT sq_glue_Ln(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_OPT_FLOAT(v, 2, h, 0.0);
|
|
|
+ self->Ln(h);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void MultiCell( pdf_float_t w , pdf_float_t h , char const * txt , char const * border = 0 , char align = 'J' , bool fill = false ) */
|
|
|
+static SQRESULT sq_glue_MultiCell(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, w);
|
|
|
+ SQ_GET_FLOAT(v, 3, h);
|
|
|
+ SQ_GET_STRING(v, 4, txt);
|
|
|
+ SQ_OPT_STRING(v, 5, border, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 6, align, 'J');
|
|
|
+ SQ_OPT_INTEGER(v, 7, fill, false);
|
|
|
+ self->MultiCell(w, h, txt, border, align, fill);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void MultiCellBlt( pdf_float_t w , pdf_float_t h , char const * blt , char const * txt , char const * border = 0 , char align = 'J' , bool fill = false ) */
|
|
|
+static SQRESULT sq_glue_MultiCellBlt(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, w);
|
|
|
+ SQ_GET_FLOAT(v, 3, h);
|
|
|
+ SQ_GET_STRING(v, 4, blt);
|
|
|
+ SQ_GET_STRING(v, 5, txt);
|
|
|
+ SQ_OPT_STRING(v, 6, border, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 7, align, 'J');
|
|
|
+ SQ_OPT_INTEGER(v, 8, fill, false);
|
|
|
+ self->MultiCellBlt(w, h, blt, txt, border, align, fill);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void Open( ) */
|
|
|
+static SQRESULT sq_glue_Open(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ self->Open();
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* string Output( char const * name = 0 , char dest = ' ' ) */
|
|
|
+static SQRESULT sq_glue_Output(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_OPT_STRING(v, 2, name, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 3, dest, ' ');
|
|
|
+ std::string str = self->Output(name, dest);
|
|
|
+ sq_pushstring(v, str.c_str(), str.size());
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+/* int PageNo( ) */
|
|
|
+static SQRESULT sq_glue_PageNo(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ sq_pushinteger(v, self->PageNo());
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+/* void Rect( pdf_float_t x , pdf_float_t y , pdf_float_t w , pdf_float_t h , char const * style = 0 ) */
|
|
|
+static SQRESULT sq_glue_Rect(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, x);
|
|
|
+ SQ_GET_FLOAT(v, 3, y);
|
|
|
+ SQ_GET_FLOAT(v, 4, w);
|
|
|
+ SQ_GET_FLOAT(v, 5, h);
|
|
|
+ SQ_OPT_STRING(v, 6, style, 0);
|
|
|
+ self->Rect(x, y, w, h, style);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void Rotate( pdf_float_t angle , pdf_float_t x = -1 , pdf_float_t y = -1 ) */
|
|
|
+static SQRESULT sq_glue_Rotate(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, angle);
|
|
|
+ SQ_OPT_FLOAT(v, 3, x, -1);
|
|
|
+ SQ_OPT_FLOAT(v, 4, y, -1);
|
|
|
+ self->Rotate(angle, x, y);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void RotatedText( pdf_float_t x , pdf_float_t y , char const * txt , pdf_float_t angle ) */
|
|
|
+static SQRESULT sq_glue_RotatedText(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, x);
|
|
|
+ SQ_GET_FLOAT(v, 3, y);
|
|
|
+ SQ_GET_STRING(v, 4, txt);
|
|
|
+ SQ_GET_FLOAT(v, 5, angle);
|
|
|
+ self->RotatedText(x, y, txt, angle);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void RoundedRect( pdf_float_t x , pdf_float_t y , pdf_float_t w , pdf_float_t h , pdf_float_t r , char const * style = "" ) */
|
|
|
+static SQRESULT sq_glue_RoundedRect(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, x);
|
|
|
+ SQ_GET_FLOAT(v, 3, y);
|
|
|
+ SQ_GET_FLOAT(v, 4, w);
|
|
|
+ SQ_GET_FLOAT(v, 5, h);
|
|
|
+ SQ_GET_FLOAT(v, 6, r);
|
|
|
+ SQ_OPT_STRING(v, 7, style, "");
|
|
|
+ self->RoundedRect(x, y, w, h, r, style);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetAlpha( pdf_float_t alpha , char const * bm = 0 ) */
|
|
|
+static SQRESULT sq_glue_SetAlpha(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, alpha);
|
|
|
+ SQ_OPT_STRING(v, 3, bm, 0);
|
|
|
+ self->SetAlpha(alpha, bm);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetAuthor( char const * author ) */
|
|
|
+static SQRESULT sq_glue_SetAuthor(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_STRING(v, 2, author);
|
|
|
+ self->SetAuthor(author);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetAutoPageBreak( bool b , pdf_float_t margin = 0.0f ) */
|
|
|
+static SQRESULT sq_glue_SetAutoPageBreak(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_INTEGER(v, 2, b);
|
|
|
+ SQ_OPT_FLOAT(v, 3, margin, 0.0f);
|
|
|
+ self->SetAutoPageBreak(b, margin);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetCompression( bool compress ) */
|
|
|
+static SQRESULT sq_glue_SetCompression(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_BOOL(v, 2, compress);
|
|
|
+ self->SetCompression(compress);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetCreator( char const * creator ) */
|
|
|
+static SQRESULT sq_glue_SetCreator(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_STRING(v, 2, creator);
|
|
|
+ self->SetCreator(creator);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetDash( pdf_float_t black = -1 , pdf_float_t white = -1 ) */
|
|
|
+static SQRESULT sq_glue_SetDash(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_OPT_FLOAT(v, 2, black, -1);
|
|
|
+ SQ_OPT_FLOAT(v, 3, white, -1);
|
|
|
+ self->SetDash(black, white);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetDisplayMode( FPDF::e_zoom_mode zoom , FPDF::e_layout_mode layout = FPDF::e_layout_default ) */
|
|
|
+static SQRESULT sq_glue_SetDisplayMode(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_INTEGER(v, 2, zoom);
|
|
|
+ SQ_OPT_INTEGER(v, 3, layout, FPDF::e_layout_default);
|
|
|
+ //self->SetDisplayMode(zoom, layout);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetDoubleSided( pdf_float_t inner = 7 , pdf_float_t outer = 13 ) */
|
|
|
+static SQRESULT sq_glue_SetDoubleSided(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_OPT_FLOAT(v, 2, inner, 7);
|
|
|
+ SQ_OPT_FLOAT(v, 3, outer, 13);
|
|
|
+ self->SetDoubleSided(inner, outer);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetDrawColor( unsigned char r , unsigned char g , unsigned char b ) */
|
|
|
+static SQRESULT sq_glue_SetDrawColor(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_INTEGER(v, 2, r);
|
|
|
+ SQ_GET_INTEGER(v, 3, g);
|
|
|
+ SQ_GET_INTEGER(v, 4, b);
|
|
|
+ self->SetDrawColor(r, g, b);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetFillColor( unsigned char r , unsigned char g , unsigned char b ) */
|
|
|
+static SQRESULT sq_glue_SetFillColor(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_INTEGER(v, 2, r);
|
|
|
+ SQ_GET_INTEGER(v, 3, g);
|
|
|
+ SQ_GET_INTEGER(v, 4, b);
|
|
|
+ self->SetFillColor(r, g, b);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetFont( char const * afamily = 0 , char const * astyle = 0 , pdf_float_t size = 0 ) */
|
|
|
+static SQRESULT sq_glue_SetFont(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_OPT_STRING(v, 2, afamily, 0);
|
|
|
+ SQ_OPT_STRING(v, 3, astyle, 0);
|
|
|
+ SQ_OPT_FLOAT(v, 4, size, 0);
|
|
|
+ self->SetFont(afamily, astyle, size);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetFontSettings( font_settings_st & fs ) */
|
|
|
+static SQRESULT sq_glue_SetFontSettings(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_INTEGER(v, 2, fs);
|
|
|
+ //self->SetFontSettings(fs);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetFontSize( pdf_float_t size ) */
|
|
|
+static SQRESULT sq_glue_SetFontSize(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, size);
|
|
|
+ self->SetFontSize(size);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetKeywords( char const * keywords ) */
|
|
|
+static SQRESULT sq_glue_SetKeywords(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_STRING(v, 2, keywords);
|
|
|
+ self->SetKeywords(keywords);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetLeftMargin( pdf_float_t margin ) */
|
|
|
+static SQRESULT sq_glue_SetLeftMargin(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, margin);
|
|
|
+ self->SetLeftMargin(margin);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetLineWidth( pdf_float_t width ) */
|
|
|
+static SQRESULT sq_glue_SetLineWidth(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, width);
|
|
|
+ self->SetLineWidth(width);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetLink( int link , pdf_float_t y = 0 , int page = -1 ) */
|
|
|
+static SQRESULT sq_glue_SetLink(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_INTEGER(v, 2, link);
|
|
|
+ SQ_OPT_FLOAT(v, 3, y, 0);
|
|
|
+ SQ_OPT_INTEGER(v, 4, page, -1);
|
|
|
+ self->SetLink(link, y, page);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetMargins( pdf_float_t left , pdf_float_t top , pdf_float_t right = 0.0f ) */
|
|
|
+static SQRESULT sq_glue_SetMargins(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, left);
|
|
|
+ SQ_GET_FLOAT(v, 3, top);
|
|
|
+ SQ_OPT_FLOAT(v, 4, right, 0.0f);
|
|
|
+ self->SetMargins(left, top, right);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetRightMargin( pdf_float_t margin ) */
|
|
|
+static SQRESULT sq_glue_SetRightMargin(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, margin);
|
|
|
+ self->SetRightMargin(margin);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetSubject( char const * subject ) */
|
|
|
+static SQRESULT sq_glue_SetSubject(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_STRING(v, 2, subject);
|
|
|
+ self->SetSubject(subject);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetTextColor( unsigned char r , unsigned char g , unsigned char b ) */
|
|
|
+static SQRESULT sq_glue_SetTextColor(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_INTEGER(v, 2, r);
|
|
|
+ SQ_GET_INTEGER(v, 3, g);
|
|
|
+ SQ_GET_INTEGER(v, 4, b);
|
|
|
+ self->SetTextColor(r, g, b);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetTitle( char const * title ) */
|
|
|
+static SQRESULT sq_glue_SetTitle(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_STRING(v, 2, title);
|
|
|
+ self->SetTitle(title);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetTopMargin( pdf_float_t margin ) */
|
|
|
+static SQRESULT sq_glue_SetTopMargin(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, margin);
|
|
|
+ self->SetTopMargin(margin);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetX( pdf_float_t x ) */
|
|
|
+static SQRESULT sq_glue_SetX(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, x);
|
|
|
+ self->SetX(x);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetXY( pdf_float_t x , pdf_float_t y ) */
|
|
|
+static SQRESULT sq_glue_SetXY(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, x);
|
|
|
+ SQ_GET_FLOAT(v, 3, y);
|
|
|
+ self->SetXY(x, y);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void SetY( pdf_float_t y ) */
|
|
|
+static SQRESULT sq_glue_SetY(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, y);
|
|
|
+ self->SetY(y);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void Text( pdf_float_t x , pdf_float_t y , char const * txt ) */
|
|
|
+static SQRESULT sq_glue_Text(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, x);
|
|
|
+ SQ_GET_FLOAT(v, 3, y);
|
|
|
+ SQ_GET_STRING(v, 4, txt);
|
|
|
+ self->Text(x, y, txt);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void TextShadow( pdf_float_t x , pdf_float_t y , char const * txt , pdf_float_t displacement = .3 ) */
|
|
|
+static SQRESULT sq_glue_TextShadow(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, x);
|
|
|
+ SQ_GET_FLOAT(v, 3, y);
|
|
|
+ SQ_GET_STRING(v, 4, txt);
|
|
|
+ SQ_OPT_FLOAT(v, 5, displacement, .3);
|
|
|
+ self->TextShadow(x, y, txt, displacement);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void UnsetClipping( ) */
|
|
|
+static SQRESULT sq_glue_UnsetClipping(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ self->UnsetClipping();
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void Write( pdf_float_t h , char const * txt , int link = 0 ) */
|
|
|
+static SQRESULT sq_glue_Write(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_FLOAT(v, 2, h);
|
|
|
+ SQ_GET_STRING(v, 3, txt);
|
|
|
+ SQ_OPT_INTEGER(v, 4, link, 0);
|
|
|
+ self->Write(h, txt, link);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* int getCustomZoom( ) */
|
|
|
+static SQRESULT sq_glue_getCustomZoom(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ sq_pushinteger(v, self->getCustomZoom());
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+/* void reset( FPDF::e_orientation orientation = FPDF::e_orientation_portrait , FPDF::e_units unit = FPDF::e_mm , FPDF::e_page_sizes psize = FPDF::e_A4 ) */
|
|
|
+static SQRESULT sq_glue_reset(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_OPT_INTEGER(v, 2, orientation, FPDF::e_orientation_portrait);
|
|
|
+ SQ_OPT_INTEGER(v, 3, unit, FPDF::e_mm);
|
|
|
+ SQ_OPT_INTEGER(v, 4, psize, FPDF::e_A4);
|
|
|
+ //self->reset(orientation, unit, psize);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+/* void setCustomZoom( int zoom ) */
|
|
|
+static SQRESULT sq_glue_setCustomZoom(HSQUIRRELVM v){
|
|
|
+ SQ_FUNC_VARS_NO_TOP(v);
|
|
|
+ GET_SQ_FPDF();
|
|
|
+ SQ_GET_INTEGER(v, 2, zoom);
|
|
|
+ self->setCustomZoom(zoom);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+#define _DECL_FUNC(name,nparams,tycheck) {_SC(#name), sq_glue_##name,nparams,tycheck}
|
|
|
+static SQRegFunction sq_glue_my_methods[] =
|
|
|
+{
|
|
|
+ _DECL_FUNC(constructor, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(AcceptPageBreak, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(AddFont, -2, _SC("xsss")),
|
|
|
+ _DECL_FUNC(AddLink, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(AddPage, -1, _SC("xis")),
|
|
|
+ _DECL_FUNC(AliasNbPages, -1, _SC("xs")),
|
|
|
+ _DECL_FUNC(CalcLines, 3, _SC("xns")),
|
|
|
+ _DECL_FUNC(Cell, -2, _SC("xnnssiiii")),
|
|
|
+ _DECL_FUNC(CellFit, -2, _SC("xnnssiiiiii")),
|
|
|
+ _DECL_FUNC(CellFitScale, -2, _SC("xnnssiiii")),
|
|
|
+ _DECL_FUNC(CellFitScaleForce, -2, _SC("xnnssiiii")),
|
|
|
+ _DECL_FUNC(CellFitSpace, -2, _SC("xnnssiiii")),
|
|
|
+ _DECL_FUNC(CellFitSpaceForce, -2, _SC("xnnssiiii")),
|
|
|
+ _DECL_FUNC(CheckPageBreak, 2, _SC("xn")),
|
|
|
+ _DECL_FUNC(Circle, -4, _SC("xnnns")),
|
|
|
+ _DECL_FUNC(ClippedCell, -2, _SC("xnnssiiii")),
|
|
|
+ _DECL_FUNC(ClippingRect, -5, _SC("xnnnni")),
|
|
|
+ _DECL_FUNC(ClippingText, -4, _SC("xnnsi")),
|
|
|
+ _DECL_FUNC(Close, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(Ellipse, -5, _SC("xnnnns")),
|
|
|
+ _DECL_FUNC(Error, 2, _SC("xs")),
|
|
|
+ _DECL_FUNC(Footer, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(GetAliasNbPages, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(GetDrawColor, 2, _SC("xi")),
|
|
|
+ _DECL_FUNC(GetFillColor, 2, _SC("xi")),
|
|
|
+ _DECL_FUNC(GetFontSettings, 2, _SC("xi")),
|
|
|
+ _DECL_FUNC(GetFontSize, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(GetH, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(GetLeftMargin, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(GetRightMargin, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(GetStringWidth, 2, _SC("xs")),
|
|
|
+ _DECL_FUNC(GetStringWidth, 2, _SC("xi")),
|
|
|
+ _DECL_FUNC(GetTextColor, 2, _SC("xi")),
|
|
|
+ _DECL_FUNC(GetW, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(GetX, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(GetY, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(Header, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(Image, -2, _SC("xsnnnnsi")),
|
|
|
+ _DECL_FUNC(IncludeJS, 2, _SC("xs")),
|
|
|
+ _DECL_FUNC(Line, 5, _SC("xnnnn")),
|
|
|
+ _DECL_FUNC(Link, 6, _SC("xnnnni")),
|
|
|
+ _DECL_FUNC(Ln, -1, _SC("xn")),
|
|
|
+ _DECL_FUNC(MultiCell, -4, _SC("xnnssii")),
|
|
|
+ _DECL_FUNC(MultiCellBlt, -5, _SC("xnnsssii")),
|
|
|
+ _DECL_FUNC(Open, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(Output, -1, _SC("xsi")),
|
|
|
+ _DECL_FUNC(PageNo, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(Rect, -5, _SC("xnnnns")),
|
|
|
+ _DECL_FUNC(Rotate, -2, _SC("xnnn")),
|
|
|
+ _DECL_FUNC(RotatedText, 5, _SC("xnnsn")),
|
|
|
+ _DECL_FUNC(RoundedRect, -6, _SC("xnnnnns")),
|
|
|
+ _DECL_FUNC(SetAlpha, -2, _SC("xns")),
|
|
|
+ _DECL_FUNC(SetAuthor, 2, _SC("xs")),
|
|
|
+ _DECL_FUNC(SetAutoPageBreak, -2, _SC("xin")),
|
|
|
+ _DECL_FUNC(SetCompression, 2, _SC("xb")),
|
|
|
+ _DECL_FUNC(SetCreator, 2, _SC("xs")),
|
|
|
+ _DECL_FUNC(SetDash, -1, _SC("xnn")),
|
|
|
+ _DECL_FUNC(SetDisplayMode, -2, _SC("xii")),
|
|
|
+ _DECL_FUNC(SetDoubleSided, -1, _SC("xnn")),
|
|
|
+ _DECL_FUNC(SetDrawColor, -2, _SC("xiii")),
|
|
|
+ _DECL_FUNC(SetFillColor, -2, _SC("xiii")),
|
|
|
+ _DECL_FUNC(SetFont, -1, _SC("xssn")),
|
|
|
+ _DECL_FUNC(SetFontSettings, 2, _SC("xi")),
|
|
|
+ _DECL_FUNC(SetFontSize, 2, _SC("xn")),
|
|
|
+ _DECL_FUNC(SetKeywords, 2, _SC("xs")),
|
|
|
+ _DECL_FUNC(SetLeftMargin, 2, _SC("xn")),
|
|
|
+ _DECL_FUNC(SetLineWidth, 2, _SC("xn")),
|
|
|
+ _DECL_FUNC(SetLink, -2, _SC("xini")),
|
|
|
+ _DECL_FUNC(SetMargins, -3, _SC("xnnn")),
|
|
|
+ _DECL_FUNC(SetRightMargin, 2, _SC("xn")),
|
|
|
+ _DECL_FUNC(SetSubject, 2, _SC("xs")),
|
|
|
+ _DECL_FUNC(SetTextColor, -2, _SC("xiii")),
|
|
|
+ _DECL_FUNC(SetTitle, 2, _SC("xs")),
|
|
|
+ _DECL_FUNC(SetTopMargin, 2, _SC("xn")),
|
|
|
+ _DECL_FUNC(SetX, 2, _SC("xn")),
|
|
|
+ _DECL_FUNC(SetXY, 3, _SC("xnn")),
|
|
|
+ _DECL_FUNC(SetY, 2, _SC("xn")),
|
|
|
+ _DECL_FUNC(Text, 4, _SC("xnns")),
|
|
|
+ _DECL_FUNC(TextShadow, -4, _SC("xnnsn")),
|
|
|
+ _DECL_FUNC(UnsetClipping, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(Write, -3, _SC("xnsi")),
|
|
|
+ _DECL_FUNC(getCustomZoom, 1, _SC("x")),
|
|
|
+ _DECL_FUNC(reset, -1, _SC("xiii")),
|
|
|
+ _DECL_FUNC(setCustomZoom, 2, _SC("xi")),
|
|
|
+ {0,0}
|
|
|
+};
|
|
|
+
|
|
|
+
|
|
|
+#ifdef __cplusplus
|
|
|
+extern "C" {
|
|
|
+#endif
|
|
|
+
|
|
|
+ SQRESULT sqext_register_Sq_Fpdf(HSQUIRRELVM v)
|
|
|
+ {
|
|
|
+ sq_pushstring(v,SQ_FPDF_TAG,-1);
|
|
|
+ sq_newclass(v,SQFalse);
|
|
|
+ sq_settypetag(v,-1,(void*)SQ_FPDF_TAG);
|
|
|
+ sq_insert_reg_funcs(v, sq_glue_my_methods);
|
|
|
+ sq_newslot(v,-3,SQTrue);
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+#ifdef __cplusplus
|
|
|
+}
|
|
|
+#endif
|