- home: http://sourceforge.net/projects/fltkwish - current downloads, including a well-written 276-page PDF manual
- http://pages.infinit.net/cclients/ and http://pages.videotron.com/cclients/
- Fltk Tcl binding
KJN The material below is probably of historical interest only.For those with a casually curious interest, there are some screen shots of a few applications that can be found at the following links:
- The TerraGrid Performance Monitor
(dead link) is a cluster monitor that shows the performance of an advanced I/O product for use on clusters - The Vmstat Cluster Monitor
(dead link) is an application that displays the aggregated output from the vmstat application running on Linux clusters
# Build the GUI for this application
Destroy t copyright
# Set the rendering scheme to be used
if { [catch { eval Scheme $Data(Scheme) } reason] } {
puts stderr "Scheme failed : $reason"
}
# Create a package to hold everything
set f [Package t.all -orientation vertical]
# Initialize some default behaviour for a CheckButton widget
Option add CheckButton.relief none
Option add CheckButton.selectioncolor red
Option add CheckButton.type toggle
#Option add CheckButton.state disabled
# The main header with the logo on top and the status indicators
set f1 [Package $f.logo -orientation horizontal]
set Data(Logo) [Image $f1.logo -f $Data(LogoFile) -w 160 -h 60 -tooltip "Click to freeze the display"]
set f2 [Group $f1.status -r 1 -c 4 -w 655 -h 60 -label "Status"]
CheckButton $f2.frozen -variable Data(DisplayFrozen) -label "Display Frozen" -readonly true -nocomplain true
CheckButton $f2.capture -variable Data(Capture) -label "Recording Data" -readonly true -nocomplain true
CheckButton $f2.replay -variable TapeDeck(CaptureReplay) -label "Replaying Data" -readonly true -nocomplain true
CheckButton $f2.alerts -variable Alert:Pending -label "Alerts Pending" -readonly true -nocomplain true
# If the logo is clicked the display is frozen until the next click
Bind $Data(Logo) <ButtonPress> { %W set -relief sunkenframe ; call FreezeImage %W %b }
Bind $Data(Logo) <ButtonRelease> { %W set -relief raisedframe }
# Defaults for a RadialPlot widget
Option add RadialPlot.relief raised
Option add RadialPlot.autoscale true
# Create a scrolable container which has a Frame inside that will automatically layout the radial plots
set l [Scroll $f.scroll -w 815 -h 480 -scrollbars always_vertical -ystep 240]
set g [Frame $l.plots -r 4 -c 4 -w 800 -h 960]
foreach item $Layout {
set Data($item) [RadialWidget $g.$item -Label.label "[KeyLabel $item]"]
}
# The client information and log display widgets are packed together here
set l [Package $f.clients -orientation horizontal]
set Data(ClientList) [LabeledListbox $l.clients -Label.label "Client List" \
-Listbox.command "call SelectClient %W"]
set g [Package $l.info -orientation vertical]
set Data(Log) [LabeledListbox $g.list -Listbox.h 100 -Label.label "Log Messages"]
set h [Group $g.client -r 3 -c 1 -w 615 -h 100 -label "Current Client Information"]
LabeledText $h.OS -label "Operating System" -ratio .8 -variable Data(CurrentClient,OS) -relief none -labelrelief none
LabeledText $h.VMSTAT -label "Vmstat Version" -ratio .8 -variable Data(CurrentClient,VMSTAT) -relief none -labelrelief none
LabeledText $h.USERDATA -label "User Data" -ratio .8 -variable Data(CurrentClient,USERDATA) -relief none -labelrelief none
# Display the tape recorder controls
call TapeDeck $f 815
# The action buttons along the bottom of the window
set l [Package $f.actions -orientation horizontal]
set Data(AlertButton) [Button $l.alerts -label Alerts -command "call AlertManager" \
-tooltip "Manage user alerts" ]
Button $l.renormalize -label "Renormalize Plots" -command "call RenormalizePlots" \
-tooltip "Renormalize all plots"
Button $l.clearlog -label "Clear Log" -command "$Data(Log) clear" \
-tooltip "Clear the log display window"
set Data(Disconnect) [Button $l.disconnect -label Disconnect -command "call DisconnectCurrentClient" -state disabled \
-tooltip "Disconnect the current client"]
Button $l.quit -label Quit -command Quit \
-tooltip "Terminate this application"The equivalent Tk implementation is beyond my personal abilities, but I wouldn't mind seeing it done by someone else![Stuff demonstrated: wallpaper; hurricane tracker; ...]
The links below (Terrascale Technologies, and old format Google Groups) are all deadAnnouncement: [1]Due to the explosion of required distribution support a number of binary distros for the Tcl Fltk extension have been installed for download on the Terrascale Technologies web site [2]The following distributions can be found:
- TclFltk for Windows [3] works on Microsoft Windows boxes with the Active State Tcl/Tk 8.4.x distribution
- TclFltk for Red Hat 9 [4] works on Linux boxes running Tcl/Tk 8.3.x
- TclFltk for Red Hat 9 AS/3 [5] works on Linux boxes with the RH commercial product (AS/ES/3)
- TclFltk for SUSE 64 [6] bit works on Opteron based SUSE 8 boxes running Tcl/Tk 8.4.x
- TclFltk for Fedora Core [7] works on FC based Linux boxes running Tcl/Tk 8.4.x
- TclFltk User's Guide [8]
