- home: http://sourceforge.net/projects/tclfltk - 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 http://www.terrascale.com/downloads/tgmon/images/tgmon.png (dead link) is a cluster monitor that shows the performance of an advanced I/O product for use on clusters
- The Vmstat Cluster Monitor http://www.terrascale.com/downloads/tgmon/images/statmon.png (dead link) is an application that displays the aggregated output from the vmstat application running on Linux clusters
#!/bin/sh # \ exec fltkwish "$0" ${1+"$@"} # 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; ...]
[IBF]All of the currently maintained distro for this package can be found at:[1]Announcement: [2]