--- /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]
+}