Colour pinstripe/Display: Difference between revisions
Content deleted Content added
Added print menu |
|||
Line 663:
constant colours = {CD_BLACK, CD_RED, CD_GREEN, CD_MAGENTA, CD_CYAN, CD_YELLOW, CD_WHITE}
procedure draw_to(cdCanvas cdcanvas)
Ihandle dlg, canvas▼
function redraw_cb(Ihandle /*ih*/, integer /*posx*/, integer /*posy*/)▼
cdCanvasActivate(cddbuffer)▼
▲ integer {width, height} = IupGetIntInt(canvas, "DRAWSIZE")
for y=1 to 4 do
integer x = 0, c = 1, h = floor(height/(5-y))
while x<width do
cdCanvasSetForeground(
cdCanvasBox(
x += y
c = iff(c=length(colours)?1:c+1)
Line 679 ⟶ 676:
height -= h
end for
cdCanvasFlush(
end procedure
▲Ihandle dlg, canvas
cdCanvas cddbuffer, cdcanvas
▲function redraw_cb(Ihandle /*ih*/, integer /*posx*/, integer /*posy*/)
return IUP_DEFAULT
end function
Line 698 ⟶ 702:
if c=K_ESC then return IUP_CLOSE end if
return IUP_CONTINUE
end function
function print_cb(Ihandle /*ih*/)
cdCanvan print_canvas = cdCreateCanvas(CD_PRINTER, "pinstripe -d")
if print_canvas!=NULL then
draw_to(print_canvas)
cdKillCanvas(print_canvas)
end if
return IUP_DEFAULT
end function
function exit_cb(Ihandle /*ih*/)
return IUP_CLOSE
end function
procedure main()
IupOpen()
Ihandle file_menu = IupMenu({IupMenuItem("&Print",Icallback("print_cb")),
IupMenuItem("E&xit", Icallback("exit_cb"))})
Ihandle main_menu = IupMenu({IupSubmenu("File", file_menu)})
canvas = IupCanvas(NULL)
Line 711 ⟶ 733:
dlg = IupDialog(canvas)
IupSetAttribute(dlg, "TITLE", "Colour pinstripe")
IupSetAttributeHandle(dlg,"MENU",main_menu)
IupSetCallback(canvas, "ACTION", Icallback("redraw_cb"))
IupSetCallback(dlg, "K_ANY", Icallback("esc_close"))
|