2006-11-30 02:15:42 -05:00
|
|
|
! Copyright (C) 2006 Slava Pestov.
|
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2006-11-30 02:55:55 -05:00
|
|
|
IN: gadgets-listener
|
|
|
|
|
DEFER: call-listener
|
|
|
|
|
|
|
|
|
|
IN: gadgets
|
|
|
|
|
USING: arrays errors gadgets gadgets-buttons
|
|
|
|
|
gadgets-labels gadgets-panes gadgets-presentations
|
|
|
|
|
gadgets-scrolling gadgets-theme gadgets-viewports gadgets-lists
|
|
|
|
|
generic hashtables io kernel math models namespaces prettyprint
|
|
|
|
|
queues sequences test threads help sequences words timers ;
|
2006-11-30 02:15:42 -05:00
|
|
|
|
|
|
|
|
: <debugger-button>
|
|
|
|
|
[ call-listener drop ] curry <bevel-button> ;
|
|
|
|
|
|
2006-12-04 00:20:05 -05:00
|
|
|
: <restart-list> ( error restart-hook -- gadget )
|
|
|
|
|
[ restart-name ] rot compute-restarts <model> <list> ;
|
2006-11-30 02:15:42 -05:00
|
|
|
|
|
|
|
|
TUPLE: debugger restarts ;
|
|
|
|
|
|
|
|
|
|
: <debugger-display> ( error restart-list -- gadget )
|
2006-12-05 01:23:57 -05:00
|
|
|
>r [ print-error ] make-pane r> 2array make-filled-pile ;
|
2006-11-30 02:15:42 -05:00
|
|
|
|
2006-12-04 00:20:05 -05:00
|
|
|
C: debugger ( error restart-hook -- gadget )
|
2006-11-30 02:15:42 -05:00
|
|
|
{
|
|
|
|
|
{
|
|
|
|
|
[ gadget get { debugger } <toolbar> ]
|
|
|
|
|
f f @top
|
|
|
|
|
}
|
|
|
|
|
{
|
2006-12-04 00:20:05 -05:00
|
|
|
[ dupd <restart-list> ]
|
2006-11-30 02:15:42 -05:00
|
|
|
set-debugger-restarts
|
|
|
|
|
[ <debugger-display> <scroller> ]
|
|
|
|
|
@center
|
|
|
|
|
}
|
|
|
|
|
} make-frame* dup popup-theme ;
|
|
|
|
|
|
|
|
|
|
M: debugger focusable-child*
|
|
|
|
|
debugger-restarts ;
|
|
|
|
|
|
|
|
|
|
debugger "toolbar" {
|
|
|
|
|
{ "Data stack" T{ key-down f f "s" } [ :s ] }
|
|
|
|
|
{ "Retain stack" T{ key-down f f "r" } [ :r ] }
|
|
|
|
|
{ "Call stack" T{ key-down f f "c" } [ :c ] }
|
|
|
|
|
{ "Help" T{ key-down f f "h" } [ :help ] }
|
|
|
|
|
{ "Edit" T{ key-down f f "e" } [ :edit ] }
|
|
|
|
|
} [
|
|
|
|
|
first3 [ call-listener drop ] curry 3array
|
|
|
|
|
] map define-commands
|
2006-11-30 02:55:55 -05:00
|
|
|
|
2006-12-04 00:20:05 -05:00
|
|
|
: debugger-window ( error -- )
|
|
|
|
|
[ drop ] <debugger>
|
2006-11-30 03:50:42 -05:00
|
|
|
"Error" open-titled-window ;
|
2006-11-30 02:55:55 -05:00
|
|
|
|
|
|
|
|
: ui-try ( quot -- )
|
|
|
|
|
[ debugger-window ] recover ;
|