Changed default host to empty string since the environment variable host is
[dyninst.git] / paradyn / tcl / applic.tcl
1 #applic.tcl
2 # window to get application choices from user
3 # $Log: applic.tcl,v $
4 # Revision 1.3  1994/06/18 20:31:10  hollings
5 # Changed default host to empty string since the environment variable host is
6 # not guarnteed to be defined.
7 #
8 # Revision 1.2  1994/05/26  21:23:10  karavan
9 # changed parent window name.
10 #
11 # Revision 1.1  1994/05/23  01:56:22  karavan
12 # initial version.
13 #
14
15 ## initialize application defn screen, without displaying it yet
16
17 proc InitApplicDefnScreen {} {
18
19 global ADparent PdNumDefinedProcesses definedProcesses applicCmd \
20         env ADshow ADapplic applicDaemon
21
22 set newdefinedProcesses ""
23 set PdNumDefinedProcesses 0
24 set ADparent .main
25 set ADshow $ADparent.show
26 set ADapplic $ADparent.applic
27
28 for {set i 0} {$i < 12} {incr i} {
29         set definedProcesses($i) ""
30 }
31
32 ########## screen 1 accepts new process defn from user #######
33
34 frame $ADparent.applic
35 frame $ADparent.applic.top -relief raised
36 frame $ADparent.applic.bot -relief raised
37
38 frame $ADparent.applic.top.user -border 2
39 frame $ADparent.applic.top.machine -border 2
40 frame $ADparent.applic.top.daemon -border 2
41 frame $ADparent.applic.top.cmd -border 2
42 label $ADparent.applic.title -text "Application Definition Entry"
43
44 # single-line user, machine, daemon, command  entries
45
46 label $ADparent.applic.top.user.lbl -anchor w -text "User: " \
47         -anchor e -width 12
48 label $ADparent.applic.top.machine.lbl -anchor w -text "Machine: " \
49         -anchor e -width 12
50 label $ADparent.applic.top.daemon.lbl -anchor w -text "Daemon: " \
51         -anchor e -width 12
52 label $ADparent.applic.top.cmd.lbl -anchor w -text "Command: " \
53         -anchor e -width 12
54
55 entry $ADparent.applic.top.user.ent -width 80 -textvariable applicUser \
56         -relief sunken
57 $ADparent.applic.top.user.ent insert end $env(USER)
58 bind $ADparent.applic.top.user.ent <Return> \
59         "focus $ADparent.applic.top.machine.ent"
60 entry $ADparent.applic.top.machine.ent -width 80 -textvariable applicMachine \
61         -relief sunken
62 $ADparent.applic.top.machine.ent insert end ""
63 bind $ADparent.applic.top.machine.ent <Return> \
64         "focus $ADparent.applic.top.daemon.ent"
65
66 entry $ADparent.applic.top.daemon.ent -width 80 -textvariable applicDaemon \
67         -relief sunken
68 bind $ADparent.applic.top.daemon.ent <Return> \
69         "focus $ADparent.applic.top.cmd.ent"
70 entry $ADparent.applic.top.cmd.ent -width 80 -textvariable applicCmd \
71         -relief sunken
72 bind $ADparent.applic.top.cmd.ent <Return> \
73         "focus $ADparent.applic.top.user.ent"
74
75 pack $ADparent.applic.title $ADparent.applic.top $ADparent.applic.bot \
76         -side top -expand yes -fill both
77 pack $ADparent.applic.top.user $ADparent.applic.top.machine  \
78         $ADparent.applic.top.daemon \
79         $ADparent.applic.top.cmd -side top \
80          -expand yes -fill both
81
82 pack $ADparent.applic.top.user.lbl $ADparent.applic.top.user.ent \
83         -side left -expand yes -fill x
84 pack $ADparent.applic.top.machine.lbl $ADparent.applic.top.machine.ent \
85         -side left -expand yes -fill x
86 pack $ADparent.applic.top.daemon.lbl $ADparent.applic.top.daemon.ent \
87         -side left -expand yes -fill x
88 pack $ADparent.applic.top.cmd.lbl $ADparent.applic.top.cmd.ent \
89         -side left -expand yes -fill x
90
91 # add/accept/cancel/done
92
93 button $ADparent.applic.bot.b1 -text "Accept" \
94         -command {AcceptNewApplicDefn $applicUser $applicMachine \
95                 $applicDaemon $applicCmd definedProcesses}
96 button $ADparent.applic.bot.b2 -text "Cancel" \
97         -command {pack forget $ADparent.applic; pack $ADparent.show}
98
99 pack $ADparent.applic.bot.b1 $ADparent.applic.bot.b2 -side left \
100         -fill x -padx 10 
101
102 ############ screen 0 displays defined applications ############3
103
104 frame $ADparent.show
105
106 label $ADparent.show.title -text "Paradyn Process Definition" \
107         -anchor center -relief ridge
108 frame $ADparent.show.top
109 frame $ADparent.show.bottom
110
111 button $ADparent.show.bottom.b1 -text "Add Process" -command {AddProcess}
112 button $ADparent.show.bottom.b2 -text "DONE" \
113         -command {pack forget $ADparent.show}
114
115 label $ADparent.show.top.lbl -text "Currently Defined Processes:" \
116         -anchor w -width 84
117
118 listbox $ADparent.show.top.alist -geometry 80x12 -bg white
119
120 pack $ADparent.show.title $ADparent.show.top $ADparent.show.bottom \
121         -side top -expand yes -fill both 
122 pack $ADparent.show.top.lbl -side top -pady 5
123 pack $ADparent.show.top.alist -side top -fill both -expand yes 
124 pack $ADparent.show.bottom.b1 $ADparent.show.bottom.b2 -side left \
125         -fill both -padx 10
126
127 }
128
129 ### display application definition screen 0, already defined, on frame
130
131 proc ApplicDefn {} {
132
133 global ADshow
134 pack $ADshow
135 }
136
137 proc AddProcess {} {
138 global applicCmd
139 global ADparent PdNumDefinedProcesses
140 if {$PdNumDefinedProcesses < 6} {
141         set applicCmd ""
142         pack forget $ADparent.show      
143         pack $ADparent.applic
144         focus $ADparent.applic.top.daemon.ent
145 }
146 }
147
148 proc AcceptNewApplicDefn {user machine daemon cmd defined} {
149 global PdNumDefinedProcesses ADparent applicDaemon applicCmd
150
151 upvar $defined dlist
152 set retval [catch \
153         {paradyn process -user $user -machine $machine -daemon $daemon $cmd}]
154
155 if {$retval == 1} {
156         focus $ADparent.applic.top.daemon.ent
157 } else {
158         incr PdNumDefinedProcesses
159
160         $ADparent.show.top.alist insert end $user:$machine:$daemon
161         $ADparent.show.top.alist insert end \ \ $cmd
162         pack forget $ADparent.applic
163         pack $ADparent.show
164 }
165 #reset daemon and cmd
166 set applicDaemon ""
167 set applicCmd ""
168
169 }