#!xtk01 -f
# Geoffrey Furnish                     -*-tcl-*-
# 11 April 1994
#
# @> A script for using Tk to control xtk01
#
# $Id: tk01,v 1.9 1995/05/08 20:31:24 mjl Exp $
#
# $Log: tk01,v $
# Revision 1.9  1995/05/08  20:31:24  mjl
# Eliminated the old enter-leave crosshair bindings since now this is done
# by the plframe automatically (and done better).
#
# Revision 1.8  1995/04/17  19:24:13  furnish
# Embellished to demonstrate (test :-) ways of using Tk bindings with
# plframes.  Boundless possibilities.  Time to stand up and SHOUT!!!
#
# Revision 1.7  1994/07/24  07:42:57  mjl
# Eliminated "destroy ." in favor of "exit".
#
# Revision 1.6  1994/07/01  20:43:59  mjl
# Modified to use startup proc plstdwin when configuring main window.
#
# Revision 1.5  1994/06/17  21:23:09  mjl
# Removed option database settings since they were the same as those set
# in the pldefaults proc.
#
# Revision 1.4  1994/06/09  20:28:15  mjl
# Changed to new improved megawidget instantiation method.
#
###############################################################################

wm title . "x01c -- TK version"
plstdwin .

###############################################################################
# Set up the menubar and message widgets.

frame .menu -relief raised -borderwidth 3

button .menu.one -text "One" -command "myplot 1"
pack append .menu .menu.one {left expand fill}

button .menu.two -text "Two" -command "myplot 2"
pack append .menu .menu.two {left expand fill}

button .menu.three -text "Three" -command "myplot 3"
pack append .menu .menu.three {left expand fill}

button .menu.four -text "Four" -command "myplot 4"
pack append .menu .menu.four {left expand fill}

button .menu.exit -text "Exit" -command "quit 0"
pack append .menu .menu.exit {right expand fill}

message .msg \
	-font -Adobe-helvetica-medium-r-normal--*-240* -aspect 200 \
	 -width 500 -borderwidth 1 \
	-text "TK01: Control x01c from TK"

pack append . \
	.menu {top fillx} \
	.msg {top padx 5 pady 5 fill} 

tk_menuBar .menu .menu.one .menu.two .menu.three .menu.four .menu.exit

###############################################################################
#
# This creates the plframe "megawidget".  If you just want a bare plframe,
# change "plxframe" to "plframe".

plxframe .plw
pack append . .plw {left expand fill}

###############################################################################
# Here we show off some of what you can do with Tk bindings and PLplot.
# Bring up graphic crosshairs.

.plw.plwin configure -xhairs 1

# Here is a binding which allows you to obtain the world coordinates of a
# point at any time you want it.  This is better than the "locate mode" of
# the X driver per se, since it is appears modeless to the user.  Note
# especially that in the body of this example "get_coords" proc, you can do
# anything you can do from Tcl.  In particular, you need not put the data
# out to stdout (which is pretty boring).  Instead, you can use this to feed
# the world coords to some more complicated Tcl proc of your choosing.  Use
# the regexp parser to pull out the world x and y coordinates, etc.  Have
# fun!

bind .plw.plwin <Shift-1> { get_coords %x %y };

proc get_coords {x y} {
    set w [.plw.plwin report wc $x $y]

    puts "PLplot says, :$w:"
}

###############################################################################
# Definitions of procedures used in this script.

# Punch eject and hold onto your seat !!!

proc quit a {
    exit
}

# Utility routine.

proc dpos w {
    wm geometry $w +300+300
}

###############################################################################
