2009-02-04 06:26:01 -05:00
|
|
|
! Copyright (C) 2008, 2009 Slava Pestov.
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2009-02-17 07:10:02 -05:00
|
|
|
USING: kernel accessors sequences ui ui.gadgets ui.gadgets.buttons
|
|
|
|
ui.baseline-alignment ui.render ;
|
2009-02-04 06:26:01 -05:00
|
|
|
IN: ui.gadgets.debug
|
|
|
|
|
|
|
|
TUPLE: baseline-gadget < gadget baseline ;
|
|
|
|
|
|
|
|
M: baseline-gadget baseline baseline>> ;
|
|
|
|
|
2009-02-17 07:10:02 -05:00
|
|
|
M: baseline-gadget cap-height dim>> second ;
|
|
|
|
|
2009-02-04 06:26:01 -05:00
|
|
|
: <baseline-gadget> ( baseline dim -- gadget )
|
2009-02-16 05:04:32 -05:00
|
|
|
baseline-gadget new
|
2009-02-04 06:26:01 -05:00
|
|
|
swap >>dim
|
|
|
|
swap >>baseline ;
|
|
|
|
|
|
|
|
! An intentionally broken gadget -- used to test UI error handling,
|
|
|
|
! make sure that one bad gadget doesn't bring the whole system down
|
|
|
|
|
|
|
|
: <bad-button> ( -- button )
|
|
|
|
"Click me if you dare"
|
|
|
|
[ "Haha" throw ]
|
2009-02-14 20:50:22 -05:00
|
|
|
<border-button> ;
|
2009-02-04 06:26:01 -05:00
|
|
|
|
|
|
|
TUPLE: bad-gadget < gadget ;
|
|
|
|
|
|
|
|
M: bad-gadget draw-gadget* "Lulz" throw ;
|
|
|
|
|
|
|
|
M: bad-gadget pref-dim* drop { 100 100 } ;
|
|
|
|
|
2009-02-16 05:04:32 -05:00
|
|
|
: <bad-gadget> ( -- gadget ) bad-gadget new ;
|
2009-02-04 06:26:01 -05:00
|
|
|
|
|
|
|
: bad-gadget-test ( -- )
|
|
|
|
<bad-button> "Test 1" open-window
|
|
|
|
<bad-gadget> "Test 2" open-window ;
|