python-2.5.2/win32/tcl/tix8.4/Meter.tcl
changeset 0 ae805ac0140d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/python-2.5.2/win32/tcl/tix8.4/Meter.tcl	Fri Apr 03 17:19:34 2009 +0100
@@ -0,0 +1,137 @@
+# -*- mode: TCL; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
+#
+#	$Id: Meter.tcl,v 1.3 2001/12/09 05:04:02 idiscovery Exp $
+#
+# Meter.tcl --
+#
+#	Implements the tixMeter widget
+#
+# Copyright (c) 1993-1999 Ioi Kim Lam.
+# Copyright (c) 2000-2001 Tix Project Group.
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+
+
+tixWidgetClass tixMeter {
+    -classname TixMeter
+    -superclass tixPrimitive
+    -method {
+    }
+    -flag {
+	-foreground -text -value
+    }
+    -configspec {
+	{-fillcolor fillColor FillColor #8080ff}
+	{-foreground foreground Foreground black}
+	{-text text Text ""}
+	{-value value Value 0}
+    }
+    -default {
+	{.relief		sunken}
+	{.borderWidth		2}
+	{.width			150}
+    }
+}
+
+proc tixMeter:InitWidgetRec {w} {
+    upvar #0 $w data
+    global env
+
+    tixChainMethod $w InitWidgetRec
+}
+
+#----------------------------------------------------------------------
+#		Construct widget
+#----------------------------------------------------------------------
+proc tixMeter:ConstructWidget {w} {
+    upvar #0 $w data
+
+    tixChainMethod $w ConstructWidget
+
+    set data(w:canvas) [canvas $w.canvas]
+    pack $data(w:canvas) -expand yes -fill both
+
+    tixMeter:Update $w
+}
+
+proc tixMeter:SetBindings {w} {
+    upvar #0 $w data
+
+    tixChainMethod $w SetBindings
+}
+
+proc tixMeter:Update {w} {
+    upvar #0 $w data
+
+    # set the width of the canvas
+    set W [expr $data(-width)-\
+	([$data(w:root) cget -bd]+[$data(w:root) cget -highlightthickness]*2)]
+    $data(w:canvas) config -width $W
+
+    if {$data(-text) == ""} {
+	set text [format "%d%%" [expr int($data(-value)*100)]]
+    } else {
+	set text $data(-text)
+    }
+
+    # (Create/Modify) the text item.
+    #
+    if {![info exists data(text)]} {
+	set data(text) [$data(w:canvas) create text 0 0 -text $text]
+    } else {
+	$data(w:canvas) itemconfig $data(text) -text $text
+    }
+
+    set bbox [$data(w:canvas) bbox $data(text)]
+
+    set itemW [expr [lindex $bbox 2]-[lindex $bbox 0]]
+    set itemH [expr [lindex $bbox 3]-[lindex $bbox 1]]
+
+
+    $data(w:canvas) coord $data(text) [expr $W/2] [expr $itemH/2+4]
+
+    set H [expr $itemH + 4]
+    $data(w:canvas) config -height [expr $H]
+
+
+    set rectW [expr int($W*$data(-value))]
+
+    if {![info exists data(rect)]} {
+	set data(rect) [$data(w:canvas) create rectangle 0 0 $rectW 1000]
+    } else {
+	$data(w:canvas) coord $data(rect) 0 0 $rectW 1000
+    }
+
+    $data(w:canvas) itemconfig $data(rect) \
+	-fill $data(-fillcolor) -outline $data(-fillcolor)
+
+    $data(w:canvas) raise $data(text)
+}
+
+#----------------------------------------------------------------------
+# Configuration
+#----------------------------------------------------------------------
+proc tixMeter:config-value {w value} {
+    upvar #0 $w data
+
+    set data(-value) $value
+    tixMeter:Update $w
+}
+
+proc tixMeter:config-text {w value} {
+    upvar #0 $w data
+
+    set data(-text) $value
+    tixMeter:Update $w
+}
+
+proc tixMeter:config-fillcolor {w value} {
+    upvar #0 $w data
+
+    set data(-fillcolor) $value
+    tixMeter:Update $w
+}
+  
+