Replaced use of cornflowerblue symbolic name with hex representation to
[dyninst.git] / visiClients / tableVisi / tcl / tableVisi.tcl
1 #
2 # $Id: tableVisi.tcl,v 1.9 2000/08/11 16:33:19 pcroth Exp $
3 #
4
5 proc initializeTableVisi {} {
6    if {[winfo depth .] > 1} {
7    #  . config -bg grey
8      option add *Background grey
9      option add *activeBackground LightGrey
10      option add *activeForeground black
11      option add *Scale.activeForeground grey
12    } else {
13      option add *Background white
14      option add *Foreground black
15    }
16    
17    option add *Visi*font *-New*Century*Schoolbook-Bold-R-*-18-*
18    option add *Data*font *-Helvetica-*-r-*-12-* 
19    option add *MyMenu*font *-New*Century*Schoolbook-Bold-R-*-14-*
20    
21    # Create the title bar, menu bar, and logo at the top:
22    frame .top
23    pack .top -side top -fill x
24    
25    frame .top.left 
26    pack .top.left -side left -fill both -expand true
27    
28    label .top.left.title -relief raised -text "Table Visualization" \
29          -font *-New*Century*Schoolbook-Bold-R-*-14-* \
30          -foreground white -background HotPink2
31    pack .top.left.title -side top -fill both -expand true
32    
33    # Menus:
34    
35    frame .top.left.menubar -class MyMenu -borderwidth 2 -relief raised
36    pack .top.left.menubar -side top -fill x
37    
38    menubutton .top.left.menubar.file -text "File" -menu .top.left.menubar.file.m
39    menu .top.left.menubar.file.m -selectcolor #6495ED
40    .top.left.menubar.file.m add command -label "Close Table" -command {GracefulShutdown}
41    
42    menubutton .top.left.menubar.acts -text "Actions" -menu .top.left.menubar.acts.m
43    menu .top.left.menubar.acts.m  -selectcolor #6495ED
44    .top.left.menubar.acts.m add command -label "Add Entries" -command AddEntry
45    .top.left.menubar.acts.m add command -label "Delete Selected Entry" -command DelEntry -state disabled
46    
47    menubutton .top.left.menubar.opts -text "View" -menu .top.left.menubar.opts.m
48    menu .top.left.menubar.opts.m  -selectcolor #6495ED
49
50    global LongNames
51    set LongNames 1
52    .top.left.menubar.opts.m add check -label "Long Names" -variable LongNames -command {updateNames $LongNames}
53    .top.left.menubar.opts.m add separator
54
55    global DataFormat
56    set DataFormat 0
57    .top.left.menubar.opts.m add radio -label "Current Values" \
58            -variable DataFormat \
59            -value 0 -command formatChanged
60    .top.left.menubar.opts.m add radio -label "Average Values" \
61            -variable DataFormat \
62            -value 1 -command formatChanged
63    .top.left.menubar.opts.m add radio -label "Total Values" \
64            -variable DataFormat \
65            -value 2 -command formatChanged
66    .top.left.menubar.opts.m add separator
67    global sortMetrics
68    set sortMetrics 0
69    .top.left.menubar.opts.m add radio -label "Don't Sort Metrics" \
70            -variable sortMetrics -value 0 -command unsortMetrics
71    .top.left.menubar.opts.m add radio -label "Sort Metrics (ascending)" \
72            -variable sortMetrics -value 1 -command sortMetrics
73    .top.left.menubar.opts.m add separator
74    global sortFoci
75    set sortFoci 0
76    .top.left.menubar.opts.m add radio -label "Don't Sort Foci" \
77            -variable sortFoci -value 0 -command unsortFoci
78    .top.left.menubar.opts.m add radio -label "Sort Foci (ascending)" \
79            -variable sortFoci -value 1 -command sortFociByValues
80    .top.left.menubar.opts.m add radio -label "Sort Foci By Values (of selected metric)" \
81            -variable sortFoci -value 2 -command sortFociByValues
82    
83    # significant digits at the end of the View menu (?)
84    global SignificantDigits
85    set SignificantDigits 3
86
87    .top.left.menubar.opts.m add separator
88    .top.left.menubar.opts.m add radio -label "1 significant digit" \
89            -variable SignificantDigits -value 1 -command "sigFigChange "
90    .top.left.menubar.opts.m add radio -label "2 significant digits" \
91            -variable SignificantDigits -value 2 -command "sigFigChange "
92    .top.left.menubar.opts.m add radio -label "3 significant digits" \
93            -variable SignificantDigits -value 3 -command "sigFigChange "
94    .top.left.menubar.opts.m add radio -label "4 significant digits" \
95            -variable SignificantDigits -value 4 -command "sigFigChange "
96    .top.left.menubar.opts.m add radio -label "5 significant digits" \
97            -variable SignificantDigits -value 5 -command "sigFigChange "
98    .top.left.menubar.opts.m add radio -label "6 significant digits" \
99            -variable SignificantDigits -value 6 -command "sigFigChange "
100    .top.left.menubar.opts.m add radio -label "7 significant digits" \
101            -variable SignificantDigits -value 7 -command "sigFigChange "
102    .top.left.menubar.opts.m add radio -label "8 significant digits" \
103            -variable SignificantDigits -value 8 -command "sigFigChange "
104
105    #  Add menu bar to display
106    pack .top.left.menubar.file .top.left.menubar.acts .top.left.menubar.opts \
107         -side left -padx 4
108
109    makeLogo .top.logo paradynLogo raised 2 HotPink2
110    pack .top.logo -side right
111
112    # Phase Name, below the menus (not filled in yet since asking for the
113    # phase name would fail this early.)
114    label .phasename -relief groove \
115            -font *-Helvetica-*-r-*-12-* 
116    pack  .phasename -side top -fill x -expand false
117    
118    # Horizontal Scrollbar
119    scrollbar .horizScrollbar -orient horizontal \
120            -background gray -activebackground gray -relief sunken \
121            -command horizScrollbarNewScrollPosition
122    pack .horizScrollbar -side bottom -fill x
123
124    # Vertical Scrollbar:
125    scrollbar .vertScrollbar -orient vertical \
126            -background gray -activebackground gray -relief sunken \
127            -command vertScrollbarNewScrollPosition
128    pack .vertScrollbar -side left -fill y -expand false
129
130    # Body (drawn by C++ code -- metrics, units, foci, cells):
131    frame .body -width 400 -height 220
132    pack  .body -fill both -expand true
133
134    bind .body <Configure> {tableVisiConfigure}
135    bind .body <Expose>    {tableVisiExpose}
136    bind .body <Button-1>  {tableVisiClick %x %y}
137
138    wm minsize . 300 200
139    wm title . "Table Visualization"
140
141    bind .top <Destroy> +{tableVisiDestroyHook}
142 }
143    
144 #  AddEntry -- Ask paradyn to start a new curve
145 proc AddEntry {} {
146   Dg start "*" "*"
147 }
148
149 #  DelEntry -- Ask paradyn to stop a curve
150 proc DelEntry {} {
151   puts stderr "Delete Entry not yet implemented"
152 }
153
154
155 #
156 # GracefulShutdown
157 # Effects a graceful shutdown of the visi
158 #
159 proc GracefulShutdown {} {
160     destroy .
161 }
162
163 #  Called by visi library when histos have folded
164 #    we just update the status line and keep on going
165 #proc DgFoldCallback {} {
166 #  UpdateStatus 
167 #}
168
169 #
170 #  DgPhaseStartCallback -- visi calls this when a phase has started
171 #
172 proc DgPhaseStartCallback {phaseId} {
173    puts stderr "welcome to DgPhaseStartCallback (tcl code)"
174    return
175 }
176
177 #
178 #  DgPhaseEndCallback -- visi calls this when a phase has started
179 #
180 proc DgPhaseEndCallback {phaseId} {
181    puts stderr "welcome to DgPhaseEndCallback (tcl code)"
182    return
183 }
184
185 #
186 #  DgPhaseDataCallback -- visi calls this when a phase has started
187 #
188 proc DgPhaseDataCallback {} {
189    puts stderr "welcome to DgPhaseEndCallback (tcl code)"
190    return
191 }
192