![]() |
||
| Home | SwiftForth Archive | SwiftX Archive | |

\ SAMPLE CODE STARTS HERE
\ --- "Included" print definitions
CLASS PRINTDIALOG
VARIABLE StructSize
VARIABLE Owner
VARIABLE DevMode
VARIABLE DevNames
VARIABLE DC
VARIABLE Flags
HVARIABLE FromPage
HVARIABLE ToPage
HVARIABLE MinPage
HVARIABLE MaxPage
HVARIABLE Copies
VARIABLE Instance
VARIABLE CustData
VARIABLE PrintHook
VARIABLE SetupHook
VARIABLE PrintTemplateName
VARIABLE SetupTemplateName
VARIABLE PrintTemplate
VARIABLE SetupTemplate
: Construct ( -- )
[ THIS SIZEOF ] LITERAL ADDR OVER ERASE StructSize ! ;
END-CLASS
[UNDEFINED] CURRENT-DC [IF]
\ User Vars
#USER
CELL +USER CURRENT-DC \ Device Context
TO #USER
: MY-DC ( -- hDC ) CURRENT-DC @ ;
: IS-MY-DC ( hDC -- ) CURRENT-DC ! ; \ Set at BeginPaint etc
: GET-MY-DC ( -- ) HWND GetDC IS-MY-DC ;
: RELEASE-MY-DC ( -- ) HWND MY-DC ReleaseDC DROP ;
[THEN]
PRINTDIALOG BUILDS pd
: DEFAULT-PRINTER ( -- )
0 pd DevMode ! 0 pd DevNames !
PD_RETURNDC PD_RETURNDEFAULT OR pd Flags !
PRINTDIALOG SIZEOF pd StructSize !
pd StructSize PrintDlg 0- IOR_PRT_NODEFPRINTER ?THROW ;
: CHOOSE-PRINTER-PAGES ( n -- flag )
1 pd MinPage H! DUP pd MaxPage H!
1 pd FromPage H! pd ToPage H!
PD_RETURNDC PD_NOSELECTION OR pd Flags !
pd StructSize PrintDlg ;
PRINTING +ORDER \ Need stuff from Preview.f
DOCINFO BUILDS MY-DI
: START-OF-DOC MY-DC MY-DI ADDR StartDoc 0> NOT IOR_PRT_BADSTARTDOC
?THROW ;
: START-OF-PAGE MY-DC StartPage 0> NOT IOR_PRT_BADSTARTPAGE ?THROW ;
: END-OF-PAGE MY-DC EndPage 0> NOT IOR_PRT_BADENDPAGE ?THROW ;
: END-OF-DOC MY-DC EndDoc 0> NOT IOR_PRT_BADENDDOC ?THROW ;
: MY-DEFAULT-PRINTER DEFAULT-PRINTER pd DC @ IS-MY-DC ;
\ --- print definitions from my application
0 VALUE VALUE1
0 VALUE VALUE2
: (PRINT-REPORT) ( -- ) 0 TO VALUE1
MY-DEFAULT-PRINTER
1 CHOOSE-PRINTER-PAGES IF
pd Copies H@ TO VALUE2
START-OF-DOC
END-OF-DOC
THEN
MY-DC DeleteDC DROP ( Delete Printer DC ) ;
\ Note: USE-DISPLAY vectors I/O words (crlf) and (out) to the display
: PRINT-REPORT ( -- )
['] (PRINT-REPORT) CATCH ?DUP IF
\ USE-DISPLAY (crlf) (THROW)(out)
THEN
VALUE2 . ;
PRINTING -ORDER
----------------------------------------------------------------------
sftalk_at_forth.com The SwiftForth programming discussion email list
To unsubscribe, send subject "unsubscribe" to sftalk-request_at_forth.com
For list command help, send subject "help" to sftalk-request_at_forth.com
Message archives are located at http://www.forth.com/archive/sftalk
----------------------------------------------------------------------
This list is a forum for SwiftForth users. For product support and bug
reports, please send email to support_at_forth.com
----------------------------------------------------------------------
Received on Thu Dec 11 2003 - 15:55:56 PST
This archive was generated by hypermail 2.2.0 : Tue Dec 02 2008 - 03:04:34 PST