BBjDrawPanel::push

Description

In BBj 16.0 and higher, this method saves the current BBjDrawPanel state. That state can later be restored using using BBjDrawPanel::pop().

Syntax

Return Value

Method

void

push()

Parameters

None.

Return Value

None.

Remarks

None.

Example

rem ' BBjDrawPanel::push

sysgui = unt
open (sysgui)"X0"
sysgui! = bbjapi().getSysGui()
x = 50, y = 50, w = 400, h = 250
title$ = "BBjDrawPanel::push"
window! = sysgui!.addWindow(x,y,w,h,title$,$00090883$,$$)
window!.setCallback(window!.ON_CLOSE,"eoj")
window!.setTrack(0)
menu! = window!.addMenuBar()
file! = menu!.addMenu(100,"&File")
wipe! = file!.addMenuItem(101,"&New")
wipe!.setCallback(wipe!.ON_MENU_ITEM_SELECT,"wipe")
save! = file!.addMenuItem(102,"Save &As...")
save!.setCallback(wipe!.ON_MENU_ITEM_SELECT,"save")
exit! = file!.addMenuItem(199,"E&xit")
exit!.setCallback(exit!.ON_MENU_ITEM_SELECT,"eoj")
pen! = menu!.addMenu(200,"&Pen")
black! = pen!.addMenuItem(201,"Blac&k")
black!.setCallback(black!.ON_MENU_ITEM_SELECT,"black")
blue! = pen!.addMenuItem(202,"&Blue")
blue!.setCallback(black!.ON_MENU_ITEM_SELECT,"blue")
red! = pen!.addMenuItem(203,"&Red")
red!.setCallback(red!.ON_MENU_ITEM_SELECT,"red")
magenta! = pen!.addMenuItem(204,"&Magenta")
magenta!.setCallback(magenta!.ON_MENU_ITEM_SELECT,"magenta")
green! = pen!.addMenuItem(205,"&Green")
green!.setCallback(green!.ON_MENU_ITEM_SELECT,"green")
random! = pen!.addMenuItem(206,"Ra&ndom")
random!.setCallback(random!.ON_MENU_ITEM_SELECT,"random")
push! = menu!.addMenu(300,"Push")
push!.setCallback(push!.ON_MENU_ITEM_SELECT,"push")
pop! = menu!.addMenu(400,"Pop")
pop!.setCallback(pop!.ON_MENU_ITEM_SELECT,"pop")
drawpanel! = window!.getDrawPanel()
drawpanel!.setScribble(1)
color! = sysgui!.makeColor(255,255,240)
drawpanel!.clearDrawing(color!)
drawpanel!.setPenWidth(3)
format$ = "png"
process_events

eoj:
release

wipe:
    drawpanel!.clearDrawing()
return

push:
    drawpanel!.push()
return

pop:
    drawpanel!.pop()
return

black:
    drawpanel!.setPenColor(BBjColor.BLACK)
    print "BBjDrawPanel::getPenColor: ",
    print drawpanel!.getPenColor()
return

blue:
    drawpanel!.setPenColor(BBjColor.BLUE)
    print "BBjDrawPanel::getPenColor: ",
    print drawpanel!.getPenColor()
return

red:
    drawpanel!.setPenColor(BBjColor.RED)
    print "BBjDrawPanel::getPenColor: ",
    print drawpanel!.getPenColor()
return

magenta:
    drawpanel!.setPenColor(BBjColor.MAGENTA)
    print "BBjDrawPanel::getPenColor: ",
    print drawpanel!.getPenColor()
return

green:
    drawpanel!.setPenColor(BBjColor.GREEN)
    print "BBjDrawPanel::getPenColor: ",
    print drawpanel!.getPenColor()
return

random:
    color! = sysgui!.makeColor(rnd(255),rnd(255),rnd(255))
    drawpanel!.setPenColor(color!)
    print "BBjDrawPanel::getPenColor: ",
    print drawpanel!.getPenColor()
return

save:
    file$ = "Signature."+format$
    file$ = filesave("Save Signature",dsk("")+dir(""),file$,"")
    if pos("::"=file$) then return
    file! = new java.io.File(file$)
    file$ = file!.getCanonicalPath()
    path! = file!.getCanonicalPath().toLowerCase()
    if path!.endsWith(".gif") then format$ = "gif"
    if path!.endsWith(".png") then format$ = "png"
    if path!.endsWith(".jpg") then format$ = "jpg"
    if path!.endsWith(".jpeg") then format$ = "jpeg"
    image! = window!.getDrawPanelImage()
    image$ = image!.getBytes(format$,err = failed)
    image = unt
    open (image,mode="O_CREATE,O_TRUNC")file$
    writerecord (image)image$
    close (image)
    i = msgbox(file$,0,"Signature image file created")
return

failed:
    i = msgbox(errmes(-1),16,"Signature image file failed")
return

See Also

BBjAPI

BBjSysGui

BBjWindow

BBjDrawPanel

PUSH Mnemonic - Save SYSGUI Drawing Position

BBjDrawPanel::pop

See the BBj Object Diagram for an illustration of the relationship between BBj Objects.