
------------------------------------------------------------------------------------
--# Using GtkPrinter.e, print from an open file handle;
------------------------------------------------------------------------------------

include GtkEngine.e
include GtkPrinter.e

integer fn = open(canonical_path(locate_file("resources/license.txt")),"r")

constant docs = `Demo of how to print from an open file handle.
`
constant win = create(GtkWindow,{
    {"border width",10},
    {"default size",300,100},
    {"position",GTK_WIN_POS_CENTER},
    {"connect","destroy","Quit"}})

constant panel = create(GtkBox,VERTICAL)
    add(win,panel)

constant lbl = create(GtkLabel,docs)
    add(panel,lbl)

constant 
    btn1 = create(GtkButton,"gtk-quit","Quit"),
    btn2 = create(GtkButton,"gtk-print","Print"), -- from a function;
    btn3 = create(GtkButton,"gtk-print",printer:print_file,fn), -- from  file handle;
    btn4 = create(GtkButton,"gtk-print",printer:print_file,locate_file("GtkEngine.e")),
    box = create(GtkButtonBox)
    
    set(btn2,"tooltip text","Print using a user function")
    set(btn3,"tooltip text","Print from file handle attached to button")
    set(btn4,"tooltip text","Print from file path/name attached to button")
    
    add(box,{btn1,btn2,btn3,btn4})
    pack(panel,-box)

show_all(win)

main()

------------------------------------------------------------------------
global function Print()
------------------------------------------------------------------------
    printer:use_line_numbers = FALSE
    printer:PrintFile("Lesser General Public License\n",fn)
    printer:use_line_numbers = TRUE
return 1
end function
