Skip to content
Snippets Groups Projects
Commit 419cdec6 authored by Raymond Toy's avatar Raymond Toy
Browse files

Add clx-inspector contrib module.

Submitted by Fred Gilham, who updated and enhanced the version from
Bill Chiles, Christopher Hoover, and Skef Wholey.
parent 01777725
No related branches found
No related tags found
No related merge requests found
;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*-
(in-package :asdf)
(require :clx)
(defsystem :clx-inspector
:name "INSPECT"
:author "Skef Wholey et. al."
:maintainer "Fred Gilham"
:license "Public Domain"
:description "Graphical Inspector"
:long-description "Inspector that uses pop-up windows to display the
objects. Updates the values of the objects in the background."
:components
((:file "clx-inspector")))
Name:
CLX Inspector.
Package Name:
INSPECT
Description:
Adds another inspector style as an alternative to the console
inspector. Inspecting objects pops up windows with the
contents of the object. The values of the object are updated
in the background. Multiple windows can be displayed at the
same time.
Author:
Original by Skef Wholey. Ported to CLX by Christopher Hoover
with "minor tweaks" by Bill Chiles. Updated and enhanced by
Fred Gilham.
Net Address:
fred@sunbot.homedns.org
Copyright Status:
CMUCL public domain code. No Warranty.
Files:
clx-inspector.lisp
How to Get:
Comes with CMUCL contrib library.
Portability:
Depends on CMUCL-specific features.
Instructions:
(require :clx-inspector)
(inspect <object>) Once the window pops up, you can type "h"
to pop up a window of instructions.
This diff is collapsed.
(compile-file "modules:clx-inspector/clx-inspector"
:load t)
#define inspect-d_width 16
#define inspect-d_height 16
#define inspect-d_x_hot 1
#define inspect-d_y_hot 1
static char inspect-d_bits[] = {
0x00,0x00,0x02,0x00,0x06,0x00,0x0e,0x00,0x1e,0x00,0x3e,0x00,0x7e,0x00,0xfe,
0x00,0xfe,0x45,0x3e,0x6c,0x36,0x54,0x62,0x54,0x60,0x44,0xc0,0x44,0xc0,0x44,
0x00,0x00};
#define inspect-d_width 16
#define inspect-d_height 16
static char inspect-d_bits[] = {
0x07,0x00,0x0f,0x00,0x1f,0x00,0x3f,0x00,0x7f,0x00,0xff,0x00,0xff,0x01,0xff,
0xef,0xff,0xff,0x7f,0xfe,0xff,0xfe,0xff,0xfe,0xf7,0xef,0xe0,0xef,0xe0,0xef,
0xe0,0xef};
#define inspect-s_width 16
#define inspect-s_height 16
#define inspect-s_x_hot 1
#define inspect-s_y_hot 1
static char inspect-s_bits[] = {
0x00,0x00,0x02,0x00,0x06,0x00,0x0e,0x00,0x1e,0x00,0x3e,0x00,0x7e,0x00,0xfe,
0x00,0xfe,0x79,0x3e,0x44,0x36,0x04,0x62,0x38,0x60,0x40,0xc0,0x44,0xc0,0x3c,
0x00,0x00};
#define inspect-s_width 16
#define inspect-s_height 16
static char inspect-s_bits[] = {
0x07,0x00,0x0f,0x00,0x1f,0x00,0x3f,0x00,0x7f,0x00,0xff,0x00,0xff,0x01,0xff,
0xfd,0xff,0xff,0x7f,0xfe,0xff,0x7e,0xff,0xfc,0xf7,0xff,0xe0,0xff,0xe0,0x7f,
0xe0,0x7f};
#define inspect_width 16
#define inspect_height 16
#define inspect_x_hot 3
#define inspect_y_hot 1
static char inspect_bits[] = {
0x00,0x00,0x08,0x00,0x18,0x00,0x38,0x00,0x78,0x00,0xf8,0x00,0xf8,0x01,0xf8,
0x03,0xf8,0x07,0xf8,0x00,0xd8,0x00,0x88,0x01,0x80,0x01,0x00,0x03,0x00,0x03,
0x00,0x00};
#define inspect_width 16
#define inspect_height 16
static char inspect_bits[] = {
0x0c,0x00,0x1c,0x00,0x3c,0x00,0x7c,0x00,0xfc,0x00,0xfc,0x01,0xfc,0x03,0xfc,
0x07,0xfc,0x0f,0xfc,0x0f,0xfc,0x01,0xdc,0x03,0xcc,0x03,0x80,0x07,0x80,0x07,
0x00,0x03};
The component objects of the window's object will become highlighted
(surrounded by a box) as the mouse passes over them. In an inspector
window, keystrokes and mouse clicks are interpreted as follows:
Left When the mouse is over a component object,
clicking Left will inspect that object in
the current inspector window. The "up" command
(below) can be used to return to the current
object.
Middle When the mouse is over a component object,
clicking Middle will exit the inspector, deleting
all new windows, and returning the component
as the result of the call to Inspect.
Right When the mouse is over a component object,
clicking Right will inspect that object in
a new inspector window.
Shift-Middle When the mouse is over a component object,
clicking Shift-Middle will exit the inspector,
leaving all windows displayed, and returning the
component as the result of the call to Inspect.
d, D Typing "d" or "D" inside an inspector window
will delete that window, and exit the inspector
if there are no more inspector windows.
h, H, ? Typing "h", "H", or "?" inside an inspector
window will create a window with helpful
instructions.
m, M Typing "m" or "M" inside an inspector window
will allow one to modify a component of an
object. The mouse cursor will change from an
arrow to an arrow with an "M" beside it,
indicating that one should select the component
to be modified. Clicking any mouse button while
the mouse is over a component will select that
component as a destination for modification.
If one has typed "m", the source object will
also be selected by the mouse, with the mouse
cursor changed to an arrow with an "S" beside
it. The object will replace the destination
component.
If one has typed "M", the source object will be
prompted for on the *Query-IO* stream.
When choosing the destination or source with the
mouse, one may type "q" or "Q" to abort the
modify operation.
q, Q Typing "q" or "Q" will quit the inspector,
deleting all new inspector windows.
p, P Typing "p" or "P" will proceed from the
inspector, leaving all inspector windows intact.
r, R Typing "r" or "R" will recompute the display for
the object in the window. This is used to
maintain a consistent display for an object that
may have changed since the display was computed.
u, U Typing "u" or "U" takes one back up the chain of
investigation, to the object for which this
object was displayed as a component. This only
works for displays generated by modifying a
previously current display; this does not work
for a display generated as a new inspector
window.
DONE
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment