also minos $258 $190 4 * * allocate throw constant testc marker filling : ggg $258 $190 * 0 do rnd testc i cells + ! loop ; ggg filling component class mathplot public: early widget early open early dialog early open-app method fill-pixmap canvas ptr mCanvas ( [varstart] ) memory-pixmap ptr pxmap \ the pixmap on the canvas cell var pxmap cell var graph ( [varend] ) how: : open new DF[ 0 ]DF s" bigforth Plot" open-component ; : dialog new DF[ 0 ]DF s" bigforth Plot" open-dialog ; : open-app new DF[ 0 ]DF s" bigforth Plot" open-application ; : assign 30 graph ! ; : clear-pixmap pxmap self if pxmap dispose then ; : fill-pixmap cr ." creating pixmap" cr clear-pixmap testc mCanvas with w @ h @ endwith * 4 * dup allocate throw dup >r swap cmove r@ mCanvas with w @ h @ endwith memory-pixmap new bind pxmap r> free throw ; : dispose clear-pixmap super dispose ; : widget CV[ outer with pxmap self endwith 0= ~~ if outer with fill-pixmap endwith then outer with pxmap self endwith icon ]CV ^^ CK[ 2drop 2drop ]CK $258 $1 *hfil $190 $1 *vfil canvas new ^^bind mCanvas $10 $1 *hfill *hglue new ^^ S[ s" not done" mCanvas text ]S X" Save " button new ^^ S[ clear-pixmap close ]S X" Close " button new &3 habox new vfixbox panel &2 vabox new ; : init ^>^^ assign widget 1 :: init ; class; mathplot ptr mwin mathplot new bind mwin mwin fill-pixmap ." opening now" mwin open-app