				 XIMTOOL GUI


1. CONTROL PANEL

1.1 View

current frame:			radio button
next frame			button
prev frame			button

center:				button
fitframe:			button
flip X:				toggle
flip Y:				toggle
flip XY:			button
zoom factor:			buttons for -8 -4 -2 1 +2 +4 +8 in out
				or unzoom, zoom in, zoom out (buttons)

				 -- Frame 1 --
				X center: 123.45
				Y center: 123.45
				 X scale: 4
				 Y scale: 4


1.2 Enhancement

enhancement: string		scrolled list or 2 level menu


1.3 Blink

blink frames:			several cycle buttons, reset button
blink rate:			numeric display, menu select
register:			button
match:				button
blink:				toggle on/off

1.4 Options

panner:				toggle on/off
coords box:			toggle on/off
autoscale:			toggle on/off
antialias:			toggle on/off

1.5 Other

initialize:			button
normalize:			button
done:				button


2. INFO BOX

version number
gui identification
configuration: number of frames, frame size
image title: string
help:				scrolled text
messages:			text line
output:				scrolled text 


3. COMMAND ENTRY

command entry:			text (Tcl commands)
control:			user assignable buttons, text output


---------------------------
Original Notes


				   XIMTOOL


Specifications

    1 - 4 frame buffers
    frame buffers any size, selected from config file
    all N frames are the same size
    frame buffers are 8 bits deep

    each frame buffer has its own independent zoom/pan, colortable, wcs, etc.
	attributes


Frame Buffer Strategy

    Frame buffer pixel array is a gterm raster (ximage)
    Memory model: fast nice-to-server small

    If server pixmaps are being used the frame raster is mapped to a gterm
	server pixmap raster the size of the display window
    The server pixmap raster is mapped to the screen with a 1-1 mapping
    Zoom and pan are controlled by the ximage->pixmap mapping
    The frame being displayed is controlled by the pixmap->screen mapping

    If server pixmaps are not used the first raster will be mapped
	either to another ximage raster, or directly to the screen.
	The first option still provides a reasonable blink capability,
	the second will be slow if zoom is in effect.


Program Structure

    main
	obm <- gui file
	    gui program
	    widget tree
	iisio
	    gterm widget


    The GUI program handles:
	keyboard and function key input
	pointer input
	frame selection, blink, zoom/pan, colortable selection, windowing
	control panel options

    The IISIO section handles:
	communication with the client
	frame buffer configuration
	read/write frame buffer
	frame selection
	cursor readback
	

Optional features
    Magnifier - region under the cursor
    Split screen - controlled by popup control panel
    Split region - display alternate frame in region under cursor
    Zoom box - display de-zoomed or zoomed subregion in a marker
    Load/save file (sunraster or fits)


CLIENT STATE

    nframes			number of frame buffers
    frame size			frame buffer width, height
    frame depth			frame buffer depth, bits
    frame number		current display frame
    frame event			something frame related changed (string)
    frame title			title of current frame
    enhancement			color enhancement selected (name offset slope)
    cursor mode			cursor mode on/off


GUI SPECIFICATION

    Menu bar
	File ->
	View ->
	Options ->

    File menu
	Load
	Save
	Print
	Quit

    View menu
	Next frame
	Prev frame
	Zoom
	Unzoom
	Normalize
	Flip X
	Flip Y
	Blink [on|off]						**

    Options menu
	Enhancement ->
	    grayscale
	    pseudocolor
		(etc.)
	Fitframe
	Match colortables
	Autoscale {on off}
	Coords {on off}
	Locator {on off}					**
	Other (popup)						**
	Exit cursor mode
	Initialize

    Title display						**
	horiz scrolled text
	button to popup full label

    Buttons
	forward
	back
	flip X
	flip Y
	zoom/dezoom

    Help							**

    Marker menu
	Zoom
	Fill
	Print
	Attributes ->						**
	Destroy

    Image menu
	Zoom
	Dezoom
	Unzoom
	Pan
	Marker ->
	    marker type
	Enhancement ->
	    grayscale
	    pseudocolor
		(etc.)
	Next
	Prev


oo
