main window
TCL/TK UseCase2
Abstract : Sets up the main drawing window and menus.
Comments : Also contains the printing procedure and some
misc. procedures.
proc getXCoord { coord } {
return [lindex $coord 0]
}
proc getYCoord { coord } {
return [lindex $coord 1]
}
proc clearDocument {} {
global Vertex Edge can
$can delete all
catch { unset Vertex Edge }
}
proc destroyDocument {} {
global iGraph
clearDocument
# $iGraph cppClear:
}
proc savecheck {} {
global changes flagno
#puts $changes
if {$changes != "no"} {
yesno "You are about to destroy your work without saving\
any changes. Do you wish to continue?" 20 20
if {$flagno == 1} {
set changes no
return 1
}
return 0
}
return 1
}
# Steve's new print stuff...
# Printing canvas:
proc printcanvas {printer} {
global can
# Sets string variables.
set tmp_file temp.ps
# Generates postscript file
Postscript $can $tmp_file
# Automatically print the file:
if [catch { exec print -P$printer -N $tmp_file } result] {
puts $result
}
# Remove the temporary file:
if [catch { exec rm -f $tmp_file } result] {
puts $result
}
}
# Generate postscript file:
proc Postscript { c file} {
$c postscript -file $file -pagewidth 8.i -pageheight 11.i
}
# End Steve's print stuff
proc setup_menu {} {
menubutton .mbar.file -text File -underline 0 \
-menu .mbar.file.menu
menubutton .mbar.help -text Help -underline 0 \
-menu .mbar.help.menu
menu .mbar.file.menu
menu .mbar.help.menu
.mbar.help.menu add command -label "Help Me..." \
-command {ask "Go Paul Go!"}
.mbar.file.menu add command -label "New" \
-command { if {[savecheck] == 1} {destroyDocument} }
.mbar.file.menu add command -label "Open" \
-command { if {[savecheck] == 1} { destroyDocument ; openfile } }
# Leaving close out for now.
#.mbar.file.menu add command -label "Close" \
# -command { clearDocument }
.mbar.file.menu add separator
.mbar.file.menu add command -label "Save" \
-command savefile
.mbar.file.menu add command -label "Save As" \
-command savefile
.mbar.file.menu add separator
.mbar.file.menu add command -label "Gen-CD" \
-command savecd
.mbar.file.menu add command -label "Print" \
-command printwindow
.mbar.file.menu add separator
.mbar.file.menu add command -label "Quit" \
-command { if {[savecheck] == 1} {destroyDocument ; exit } }
pack .mbar.file -side left
pack .mbar.help -side right
}
proc setup_mainwin {} {
global can inform changes
set inform 0
set changes no
frame .mbar -relief raised -bd 2
canvas .area -background gray
set can .area
wm title . "Our Funky CD Drawing Program"
#wm minsize . 0 0
wm maxsize . 9999 9999
pack .mbar -side top -fill x
pack .area -fill both -expand true
setup_menu
}