python-2.5.2/win32/tcl/tix8.4/SGrid.tcl
changeset 0 ae805ac0140d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/python-2.5.2/win32/tcl/tix8.4/SGrid.tcl	Fri Apr 03 17:19:34 2009 +0100
@@ -0,0 +1,243 @@
+# -*- mode: TCL; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
+#
+#	$Id: SGrid.tcl,v 1.6 2002/01/24 09:13:58 idiscovery Exp $
+#
+# SGrid.tcl --
+#
+#	This file implements Scrolled Grid widgets
+#
+# 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.
+#
+
+global tkPriv
+if {![llength [info globals tkPriv]]} {
+    tk::unsupported::ExposePrivateVariable tkPriv
+}
+#--------------------------------------------------------------------------
+# tkPriv elements used in this file:
+#
+# x -	
+# y -	
+# X -	
+# Y -	
+#--------------------------------------------------------------------------
+#
+
+tixWidgetClass tixScrolledGrid {
+    -classname TixScrolledGrid
+    -superclass tixScrolledWidget
+    -method {
+    }
+    -flag {
+    }
+    -configspec {
+    }
+    -default {
+	{.scrollbar			auto}
+	{*grid.borderWidth		1}
+	{*grid.Background		#c3c3c3}
+	{*grid.highlightBackground	#d9d9d9}
+	{*grid.relief			sunken}
+	{*grid.takeFocus		1}
+	{*Scrollbar.takeFocus		0}
+    }
+}
+
+proc tixScrolledGrid:ConstructWidget {w} {
+    upvar #0 $w data
+
+    tixChainMethod $w ConstructWidget
+
+    set data(w:grid) [tixGrid $w.grid]
+
+    set data(w:hsb) \
+	[scrollbar $w.hsb -orient horizontal -takefocus 0]
+    set data(w:vsb) \
+	[scrollbar $w.vsb -orient vertical -takefocus 0]
+
+    set data(pw:client) $data(w:grid)
+
+    pack $data(w:grid) -expand yes -fill both -padx 0 -pady 0
+}
+
+proc tixScrolledGrid:SetBindings {w} {
+    upvar #0 $w data
+
+    tixChainMethod $w SetBindings
+
+    $data(w:grid) config \
+	-xscrollcommand "$data(w:hsb) set"\
+	-yscrollcommand "$data(w:vsb) set"\
+	-sizecmd [list tixScrolledWidget:Configure $w] \
+	-formatcmd "tixCallMethod $w FormatCmd"
+
+    $data(w:hsb) config -command "$data(w:grid) xview"
+    $data(w:vsb) config -command "$data(w:grid) yview"
+
+    bindtags $data(w:grid) \
+	"$data(w:grid) TixSGrid TixGrid [winfo toplevel $data(w:grid)] all"    
+
+    tixSetMegaWidget $data(w:grid) $w
+}
+
+#----------------------------------------------------------------------
+#			RAW event bindings
+#----------------------------------------------------------------------
+proc tixScrolledGridBind {} {
+    tixBind TixScrolledGrid <ButtonPress-1> {
+	tixScrolledGrid:Button-1 [tixGetMegaWidget %W] %x %y
+    }
+    tixBind TixScrolledGrid <Shift-ButtonPress-1> {
+	tixScrolledGrid:Shift-Button-1 %W %x %y
+    }
+    tixBind TixScrolledGrid <Control-ButtonPress-1> {
+	tixScrolledGrid:Control-Button-1 %W %x %y
+    }
+    tixBind TixScrolledGrid <ButtonRelease-1> {
+	tixScrolledGrid:ButtonRelease-1 %W %x %y
+    }
+    tixBind TixScrolledGrid <Double-ButtonPress-1> {
+	tixScrolledGrid:Double-1 %W  %x %y
+    }
+    tixBind TixScrolledGrid <B1-Motion> {
+	set tkPriv(x) %x 
+	set tkPriv(y) %y
+	set tkPriv(X) %X
+	set tkPriv(Y) %Y
+
+	tixScrolledGrid:B1-Motion %W %x %y
+    }
+    tixBind TixScrolledGrid <Control-B1-Motion> {
+	set tkPriv(x) %x 
+	set tkPriv(y) %y
+	set tkPriv(X) %X
+	set tkPriv(Y) %Y
+
+	tixScrolledGrid:Control-B1-Motion %W %x %y
+    }
+    tixBind TixScrolledGrid <B1-Leave> {
+	set tkPriv(x) %x 
+	set tkPriv(y) %y
+	set tkPriv(X) %X
+	set tkPriv(Y) %Y
+
+	tixScrolledGrid:B1-Leave %W
+    }
+    tixBind TixScrolledGrid <B1-Enter> {
+	tixScrolledGrid:B1-Enter %W %x %y
+    }
+    tixBind TixScrolledGrid <Control-B1-Leave> {
+	set tkPriv(x) %x 
+	set tkPriv(y) %y
+	set tkPriv(X) %X
+	set tkPriv(Y) %Y
+
+	tixScrolledGrid:Control-B1-Leave %W
+    }
+    tixBind TixScrolledGrid <Control-B1-Enter> {
+	tixScrolledGrid:Control-B1-Enter %W %x %y
+    }
+
+    # Keyboard bindings
+    #
+    tixBind TixScrolledGrid <Up> {
+	tixScrolledGrid:DirKey %W up
+    }
+    tixBind TixScrolledGrid <Down> {
+	tixScrolledGrid:DirKey %W down
+    }
+    tixBind TixScrolledGrid <Left> {
+	tixScrolledGrid:DirKey %W left
+    }
+    tixBind TixScrolledGrid <Right> {
+	tixScrolledGrid:DirKey %W right
+    }
+    tixBind TixScrolledGrid <Prior> {
+	%W yview scroll -1 pages
+    }
+    tixBind TixScrolledGrid <Next> {
+	%W yview scroll 1 pages
+    }
+    tixBind TixScrolledGrid <Return> {
+	tixScrolledGrid:Return %W 
+    }
+    tixBind TixScrolledGrid <space> {
+	tixScrolledGrid:Space %W 
+    }
+}
+
+#----------------------------------------------------------------------
+#
+#
+#			 Mouse bindings
+#
+#
+#----------------------------------------------------------------------
+proc tixScrolledGrid:Button-1 {w x y} {
+    if {[$w cget -state] == "disabled"} {
+	return
+    }
+    if {[$w cget -takefocus]} {
+	focus $w
+    }
+    case [tixScrolled:GetState $w] {
+	{0} {
+	    tixScrolledGrid:GoState s1 $w $x $y
+       	}
+	{b0} {
+	    tixScrolledGrid:GoState b1 $w $x $y
+       	}
+	{m0} {
+	    tixScrolledGrid:GoState m1 $w $x $y
+       	}
+	{e0} {
+	    tixScrolledGrid:GoState e1 $w $x $y
+       	}
+    }
+}
+
+
+
+#----------------------------------------------------------------------
+#
+#		option configs
+#----------------------------------------------------------------------
+
+#----------------------------------------------------------------------
+#
+#		Widget commands
+#----------------------------------------------------------------------
+
+
+#----------------------------------------------------------------------
+#
+#		Private Methods
+#----------------------------------------------------------------------
+
+#----------------------------------------------------------------------
+#		Virtual Methods
+#----------------------------------------------------------------------
+proc tixScrolledGrid:FormatCmd {w area x1 y1 x2 y2} {
+    # do nothing
+}
+
+#----------------------------------------------------------------------
+# virtual functions to query the client window's scroll requirement
+#----------------------------------------------------------------------
+proc tixScrolledGrid:GeometryInfo {w mW mH} {
+    upvar #0 $w data
+
+
+    if {$mW < 1} {
+	set mW 1
+    }
+    if {$mH < 1} {
+	set mH 1
+    }
+
+    return [$data(w:grid) geometryinfo $mW $mH]
+}