Module: environment-profiler Synopsis: The profiling tool provided by the environment Author: Andy Armstrong Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc. All rights reserved. License: Functional Objects Library Public License Version 1.0 Dual-license: GNU Lesser General Public License Warranty: Distributed WITHOUT WARRANTY OF ANY KIND /// Some useful constants (move into environment-tools?) define constant $y-spacing = 6; define constant $x-spacing = 20; /// Profiler summary define frame () slot %valid? :: = #f; pane summary-page (frame) make(, label: "Summary", id: #"summary", child: frame.summary-layout); pane summary-layout (frame) make(, y-spacing: $y-spacing); end frame ; define method refresh-profiler-page (frame :: , page == #"summary", #key clean? = #f, new-thread? = #t) => () let project = frame.ensure-frame-project; let application = project.project-application; let profile = frame.profiler-application-profile; let thread = frame.frame-current-thread; let layout = frame.summary-layout; debug-message("Refreshing summary page (clean?: %=)", clean?); if (clean? | ~frame.%valid?) let property-gadgets = make(); let group-items :: = make(); local method make-stretchy-label (name :: ) => (label ::