Lookie lookie! The SAVE button works!
[dyninst.git] / paradyn / tcl / save.tcl
1 #
2 # Copyright (c) 1993, 1994 Barton P. Miller, Jeff Hollingsworth,
3 #     Bruce Irvin, Jon Cargille, Krishna Kunchithapadam, Karen
4 #     Karavanic, Tia Newhall, Mark Callaghan.  All rights reserved.
5
6 #  This software is furnished under the condition that it may not be
7 #  provided or otherwise made available to, or used by, any other
8 #  person, except as provided for by the terms of applicable license
9 #  agreements.  No title to or ownership of the software is hereby
10 #  transferred.  The name of the principals may not be used in any
11 #  advertising or publicity related to this software without specific,
12 #  written prior authorization.  Any use of this software must include
13 #  the above copyright notice.
14 #
15
16 # this file contains the routines for the "SAVE" button 
17
18 proc pdSave {} {
19     global saveGlobalData savePhaseData saveResources saveDirectory \
20             saveMessage saveWindow
21
22     # clear previous invalid entry message, if any
23     set saveMessage "Enter name of Directory for Data/Resource Files"
24
25     # make sure directory entry is valid
26     if { (! [file isdirectory $saveDirectory]) || \
27             (![file writable $saveDirectory]) } {
28         set saveMessage "Error: invalid directory name"
29         puts "\a"
30         return
31     }
32     if {$saveGlobalData == 1}  {
33         if {$savePhaseData == 0} {
34             paradyn save data global $saveDirectory
35         } else {
36             paradyn save data all $saveDirectory
37         }
38     } else {
39         if {$savePhaseData == 1} {
40             paradyn save data phase $saveDirectory
41         }
42     }
43     if {$saveResources == 1} {
44             paradyn save resources all $saveDirectory
45     }
46     destroy $saveWindow
47 }
48
49 proc drawSaveMenu {} {
50     global saveGlobalData savePhaseData saveResources saveDirectory \
51             saveMessage saveWindow
52     set saveWindow .pdsw
53     toplevel $saveWindow
54     wm title $saveWindow "Paradyn Save"
55     wm iconname $saveWindow "Paradyn Save"
56     
57     set di $saveWindow.directory
58     set wh $saveWindow.what
59     set ex $saveWindow.exit
60     frame $di 
61     frame $wh -relief raised -borderwidth 2
62     frame $ex -relief raised -borderwidth 2
63     pack $wh $di $ex -side top -fill both -padx 2 -pady 2
64
65     # save what?
66     label $wh.la -text "Save What?"
67     pack $wh.la -side top -padx 10 -pady 5 
68     checkbutton $wh.gd -text "Global Data" -variable saveGlobalData 
69     $wh.gd select
70     checkbutton $wh.pd -text "Phase Data" -variable savePhaseData
71
72     checkbutton $wh.re -text "Where Axes" -variable saveResources
73     $wh.re select
74     pack $wh.gd $wh.pd $wh.re -side top -padx 10 -pady 5 -anchor w
75
76     #directory?
77
78     # make the list frame and set up resizing 
79     frame $di.top 
80     frame $di.bot
81     entry $di.top.ent -width 50 -textvariable saveDirectory -relief sunken
82     bind $di.top.ent <Return> "pdSave"
83     label $di.top.la -text "Directory:"
84     pack $di.top.la $di.top.ent -side left -padx 5
85     set saveMessage "Enter name of Directory for Data/Resource Files"
86     label $di.bot.ms -textvariable saveMessage
87     pack $di.bot.ms -side top
88     pack $di.top $di.bot -side top -fill both
89
90     #exit
91     mkButtonBar $ex {} retval {{SAVE "pdSave"} \
92             {CLEAR "set saveDirectory \"\""} {CANCEL "destroy .pdsw"} }
93 }
94