! Copyright (C) 2006, 2008 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: accessors continuations kernel models namespaces prettyprint ui ui.commands ui.gadgets ui.gadgets.labelled assocs ui.gadgets.tracks ui.gadgets.buttons ui.gadgets.panes ui.gadgets.status-bar ui.gadgets.scrollers ui.gestures sequences hashtables inspector ; IN: ui.tools.traceback : ( model -- gadget ) [ [ continuation-call callstack. ] when* ] t "Call stack" ; : ( model -- gadget ) [ [ continuation-data stack. ] when* ] t "Data stack" ; : ( model -- gadget ) [ [ continuation-retain stack. ] when* ] t "Retain stack" ; TUPLE: traceback-gadget < track ; M: traceback-gadget pref-dim* drop { 550 600 } ; : ( model -- gadget ) { 0 1 } traceback-gadget new-track swap >>model [ g model>> [ [ [ 1/2 track, ] [ 1/2 track, ] bi ] { 1 0 } make-track 1/3 track, ] [ 2/3 track, ] bi toolbar, ] make-gadget ; : ( model -- gadget ) [ [ continuation-name namestack. ] when* ] ; : ( model -- gadget ) { 400 400 } ; : variables ( traceback -- ) gadget-model "Dynamic variables" open-status-window ; : traceback-window ( continuation -- ) "Traceback" open-window ;