Tidy
[dyninst.git] / visiClients / tableVisi / tcl / tableVisi.tcl
1 #
2 # $Id: tableVisi.tcl,v 1.7 1999/07/05 22:03:40 wylie 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 cornflowerblue
40    .top.left.menubar.file.m add command -label "Close Table" -command {destroy .}
41    
42    menubutton .top.left.menubar.acts -text "Actions" -menu .top.left.menubar.acts.m
43    menu .top.left.menubar.acts.m  -selectcolor cornflowerblue
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 cornflowerblue
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    
142 #  AddEntry -- Ask paradyn to start a new curve
143 proc AddEntry {} {
144   Dg start "*" "*"
145 }
146
147 #  DelEntry -- Ask paradyn to stop a curve
148 proc DelEntry {} {
149   puts stderr "Delete Entry not yet implemented"
150 }
151
152 #  Called by visi library when histos have folded
153 #    we just update the status line and keep on going
154 #proc DgFoldCallback {} {
155 #  UpdateStatus 
156 #}
157
158 #
159 #  DgPhaseStartCallback -- visi calls this when a phase has started
160 #
161 proc DgPhaseStartCallback {phaseId} {
162    puts stderr "welcome to DgPhaseStartCallback (tcl code)"
163    return
164 }
165
166 #
167 #  DgPhaseEndCallback -- visi calls this when a phase has started
168 #
169 proc DgPhaseEndCallback {phaseId} {
170    puts stderr "welcome to DgPhaseEndCallback (tcl code)"
171    return
172 }
173
174 #
175 #  DgPhaseDataCallback -- visi calls this when a phase has started
176 #
177 proc DgPhaseDataCallback {} {
178    puts stderr "welcome to DgPhaseEndCallback (tcl code)"
179    return
180 }