Copyright | (c) Daan Leijen 2003 |
---|---|
License | wxWindows |
Maintainer | wxhaskell-devel@lists.sourceforge.net |
Stability | provisional |
Portability | portable |
Safe Haskell | None |
Language | Haskell98 |
Printer abstraction layer. See samples/wx/Print.hs
for a demo.
The application should create a pageSetupDialog
to hold the printer
settings of the user.
f <- frame [text := "Print demo"] -- Create a pageSetup dialog with an initial margin of 25 mm. pageSetup <- pageSetupDialog f 25
The dialog can be shown using pageSetupShowModal
. Furthermore, the
function printDialog
and printPreview
can be used to show a print dialog
and preview window.
mprint <- menuItem file [ text := "&Print..." , help := "Print a test" , on command := printDialog pageSetup "Test" pageFun printFun ] mpreview <- menuItem file [ text := "&Print preview" , help := "Print preview" , on command := printPreview pageSetup "Test" pageFun printFun
Those functions take a PageFunction
and PrintFunction
respectively that get called
to determine the number of needed pages and to draw on the printer DC respectively.
The framework takes automatic care of printer margins, preview scaling etc.
- pageSetupDialog :: Frame a -> Int -> IO (PageSetupDialog ())
- pageSetupShowModal :: PageSetupDialog a -> IO ()
- printDialog :: PageSetupDialog a -> String -> PageFunction -> PrintFunction -> IO ()
- printPreview :: PageSetupDialog a -> String -> PageFunction -> PrintFunction -> IO ()
- type PageFunction = PageInfo -> PrintInfo -> Size -> (Int, Int)
- type PrintFunction = PageInfo -> PrintInfo -> Size -> DC () -> Int -> IO ()
- data PageInfo = PageInfo {}
- data PrintInfo = PrintInfo {
- screenPPI :: Size
- printerPPI :: Size
- printPageSize :: Size
- pageSetupDataGetPageInfo :: PageSetupDialogData a -> IO PageInfo
- pageSetupDataSetPageInfo :: PageSetupDialogData a -> PageInfo -> IO ()
- printOutGetPrintInfo :: Printout a -> IO PrintInfo
- pageSetupDialogGetFrame :: PageSetupDialog a -> IO (Frame ())
Printing
pageSetupDialog :: Frame a -> Int -> IO (PageSetupDialog ()) Source
Create a (hidden) page setup dialog that remembers printer settings.
It is a parameter to the functions printDialog
and printPreview
.
The creation function takes a parent frame and the initial page margins
(in millimeters) as an argument.
pageSetupShowModal :: PageSetupDialog a -> IO () Source
Show the page setup dialog
printDialog :: PageSetupDialog a -> String -> PageFunction -> PrintFunction -> IO () Source
Show a print dialog.
printPreview :: PageSetupDialog a -> String -> PageFunction -> PrintFunction -> IO () Source
Show a preview window
Callbacks
type PageFunction = PageInfo -> PrintInfo -> Size -> (Int, Int) Source
Return a page range given page info, print info, and the printable size. The printable size is the number of pixels available for printing without the page margins.
type PrintFunction = PageInfo -> PrintInfo -> Size -> DC () -> Int -> IO () Source
Print a page given page info, print info, the printable size, the printer device context and the current page. The printable size is the number of pixels available for printing without the page margins
Page and printer info
Information from the page setup dialog. All measurements are in millimeters.
Printer information.
PrintInfo | |
|
Internal
pageSetupDataGetPageInfo :: PageSetupDialogData a -> IO PageInfo Source
Get page info
pageSetupDataSetPageInfo :: PageSetupDialogData a -> PageInfo -> IO () Source
Set page info
printOutGetPrintInfo :: Printout a -> IO PrintInfo Source
Extract print info
pageSetupDialogGetFrame :: PageSetupDialog a -> IO (Frame ()) Source
Get the parent frame of a PageSetupDialog
.