python-2.5.2/win32/tcl/tix8.4/FloatEnt.tcl
changeset 0 ae805ac0140d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/python-2.5.2/win32/tcl/tix8.4/FloatEnt.tcl	Fri Apr 03 17:19:34 2009 +0100
@@ -0,0 +1,132 @@
+# -*- mode: TCL; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
+#
+#	$Id: FloatEnt.tcl,v 1.4 2004/03/28 02:44:57 hobbs Exp $
+#
+# FloatEnt.tcl --
+#
+#	An entry widget that can be attached on top of any widget to
+#	provide dynamic editing. It is used to provide dynamic editing
+#	for the tixGrid widget, among other things.
+#
+# Copyright (c) 1993-1999 Ioi Kim Lam.
+# Copyright (c) 2000-2001 Tix Project Group.
+# Copyright (c) 2004 ActiveState
+#
+# See the file "license.terms" for information on usage and redistribution
+# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
+#
+
+tixWidgetClass tixFloatEntry {
+    -classname TixFloatEntry
+    -superclass tixPrimitive
+    -method {
+	invoke post unpost
+    }
+    -flag {
+	-command -value
+    }
+    -configspec {
+	{-value value Value ""}
+	{-command command Command ""}
+    }
+    -default {
+	{.entry.highlightThickness	0}
+    }
+}
+
+#----------------------------------------------------------------------
+#
+#	Initialization bindings
+#
+#----------------------------------------------------------------------
+
+proc tixFloatEntry:InitWidgetRec {w} {
+    upvar #0 $w data
+
+    tixChainMethod $w InitWidgetRec
+}
+
+proc tixFloatEntry:ConstructWidget {w} {
+    upvar #0 $w data
+
+    tixChainMethod $w ConstructWidget
+    set data(w:entry) [entry $w.entry]
+    pack $data(w:entry) -expand yes -fill both
+}
+
+proc tixFloatEntry:SetBindings {w} {
+    upvar #0 $w data
+
+    tixChainMethod $w SetBindings
+    tixBind $data(w:entry) <Return> [list tixFloatEntry:invoke $w]
+}
+
+#----------------------------------------------------------------------
+#
+#	Class bindings
+#
+#----------------------------------------------------------------------
+
+proc tixFloatEntryBind {} {
+    tixBind TixFloatEntry <FocusIn>  {
+      if {[focus -displayof [set %W(w:entry)]] ne [set %W(w:entry)]} {
+	  focus [%W subwidget entry]
+	  [set %W(w:entry)] selection from 0
+	  [set %W(w:entry)] selection to end
+	  [set %W(w:entry)] icursor end
+      }
+    }
+}
+
+#----------------------------------------------------------------------
+#
+#	Public methods
+#
+#----------------------------------------------------------------------
+proc tixFloatEntry:post {w x y {width ""} {height ""}} {
+    upvar #0 $w data
+
+    if {$width == ""} {
+	set width [winfo reqwidth $data(w:entry)]
+    }
+    if {$height == ""} {
+	set height [winfo reqheight $data(w:entry)]
+    }
+
+    place $w -x $x -y $y -width $width -height $height -bordermode ignore
+    raise $w
+    focus $data(w:entry)
+}
+
+proc tixFloatEntry:unpost {w} {
+    upvar #0 $w data
+
+    place forget $w
+}
+
+proc tixFloatEntry:config-value {w val} {
+    upvar #0 $w data
+
+    $data(w:entry) delete 0 end
+    $data(w:entry) insert 0 $val
+
+    $data(w:entry) selection from 0
+    $data(w:entry) selection to end
+    $data(w:entry) icursor end
+}
+#----------------------------------------------------------------------
+#
+#	Private methods
+#
+#----------------------------------------------------------------------
+
+proc tixFloatEntry:invoke {w} {
+    upvar #0 $w data
+
+    if {[llength $data(-command)]} {
+	set bind(specs) {%V}
+	set bind(%V)    [$data(w:entry) get]
+
+	tixEvalCmdBinding $w $data(-command) bind $bind(%V)
+    }
+}