__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
# -*- mode: TCL; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
#
# $Id: SWindow.tcl,v 1.4 2001/12/09 05:04:02 idiscovery Exp $
#
# SWindow.tcl --
#
# This file implements Scrolled Window 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.
#
#
#
# Example:
#
# tixScrolledWindow .w
# set window [.w subwidget window]
# # Now you can put a whole widget hierachy inside $window.
# #
# button $window.b
# pack $window.b
#
# Author's note
#
# Note, the current implementation does not allow the child window
# to be outside of the parent window when the parent's size is larger
# than the child's size. This is fine for normal operations. However,
# it is not suitable for an MDI master window. Therefore, you will notice
# that the MDI master window is not a subclass of ScrolledWidget at all.
#
#
tixWidgetClass tixScrolledWindow {
-classname TixScrolledWindow
-superclass tixScrolledWidget
-method {
}
-flag {
-expandmode -shrink -xscrollincrement -yscrollincrement
}
-static {
}
-configspec {
{-expandmode expandMode ExpandMode expand}
{-shrink shrink Shrink ""}
{-xscrollincrement xScrollIncrement ScrollIncrement ""}
{-yscrollincrement yScrollIncrement ScrollIncrement ""}
{-scrollbarspace scrollbarSpace ScrollbarSpace {both}}
}
-default {
{.scrollbar auto}
{*window.borderWidth 1}
{*f1.borderWidth 1}
{*Scrollbar.borderWidth 1}
{*Scrollbar.takeFocus 0}
}
}
proc tixScrolledWindow:InitWidgetRec {w} {
upvar #0 $w data
tixChainMethod $w InitWidgetRec
set data(dx) 0
set data(dy) 0
}
proc tixScrolledWindow:ConstructWidget {w} {
upvar #0 $w data
global tcl_platform
tixChainMethod $w ConstructWidget
set data(pw:f1) \
[frame $w.f1 -relief sunken]
set data(pw:f2) \
[frame $w.f2 -bd 0]
set data(w:window) \
[frame $w.f2.window -bd 0]
pack $data(pw:f2) -in $data(pw:f1) -expand yes -fill both
set data(w:hsb) \
[scrollbar $w.hsb -orient horizontal -takefocus 0]
set data(w:vsb) \
[scrollbar $w.vsb -orient vertical -takefocus 0]
# set data(w:pann) \
# [frame $w.pann -bd 2 -relief groove]
$data(pw:f1) config -highlightthickness \
[$data(w:hsb) cget -highlightthickness]
set data(pw:client) $data(pw:f1)
}
proc tixScrolledWindow:SetBindings {w} {
upvar #0 $w data
tixChainMethod $w SetBindings
$data(w:hsb) config -command "tixScrolledWindow:ScrollBarCB $w x"
$data(w:vsb) config -command "tixScrolledWindow:ScrollBarCB $w y"
tixManageGeometry $data(w:window) "tixScrolledWindow:WindowGeomProc $w"
}
# This guy just keeps asking for a same size as the w:window
#
proc tixScrolledWindow:WindowGeomProc {w args} {
upvar #0 $w data
set rw [winfo reqwidth $data(w:window)]
set rh [winfo reqheight $data(w:window)]
if {$rw != [winfo reqwidth $data(pw:f2)] ||
$rh != [winfo reqheight $data(pw:f2)]} {
tixGeometryRequest $data(pw:f2) $rw $rh
}
}
proc tixScrolledWindow:Scroll {w axis total window first args} {
upvar #0 $w data
case [lindex $args 0] {
"scroll" {
set amt [lindex $args 1]
set unit [lindex $args 2]
case $unit {
"units" {
set incr $axis\scrollincrement
if {$data(-$incr) != ""} {
set by $data(-$incr)
} else {
set by [expr $window / 16]
}
set first [expr $first + $amt * $by]
}
"pages" {
set first [expr $first + $amt * $window]
}
}
}
"moveto" {
set to [lindex $args 1]
set first [expr int($to * $total)]
}
}
if {[expr $first + $window] > $total} {
set first [expr $total - $window]
}
if {$first < 0} {
set first 0
}
return $first
}
proc tixScrolledWindow:ScrollBarCB {w axis args} {
upvar #0 $w data
set bd \
[expr [$data(pw:f1) cget -bd] + [$data(pw:f1) cget -highlightthickness]]
set fw [expr [winfo width $data(pw:f1)] - 2*$bd]
set fh [expr [winfo height $data(pw:f1)] - 2*$bd]
set ww [winfo reqwidth $data(w:window)]
set wh [winfo reqheight $data(w:window)]
if {$axis == "x"} {
set data(dx) \
[eval tixScrolledWindow:Scroll $w $axis $ww $fw $data(dx) $args]
} else {
set data(dy) \
[eval tixScrolledWindow:Scroll $w $axis $wh $fh $data(dy) $args]
}
tixWidgetDoWhenIdle tixScrolledWindow:PlaceWindow $w
}
proc tixScrolledWindow:PlaceWindow {w} {
upvar #0 $w data
set bd \
[expr [$data(pw:f1) cget -bd] + [$data(pw:f1) cget -highlightthickness]]
set fw [expr [winfo width $data(pw:f1)] - 2*$bd]
set fh [expr [winfo height $data(pw:f1)] - 2*$bd]
set ww [winfo reqwidth $data(w:window)]
set wh [winfo reqheight $data(w:window)]
tixMapWindow $data(w:window)
if {$data(-expandmode) == "expand"} {
if {$ww < $fw} {
set ww $fw
}
if {$wh < $fh} {
set wh $fh
}
}
if {$data(-shrink) == "x"} {
if {$fw < $ww} {
set ww $fw
}
}
tixMoveResizeWindow $data(w:window) -$data(dx) -$data(dy) $ww $wh
set first [expr $data(dx).0 / $ww.0]
set last [expr $first + ($fw.0 / $ww.0)]
$data(w:hsb) set $first $last
set first [expr $data(dy).0 / $wh.0]
set last [expr $first + ($fh.0 / $wh.0)]
$data(w:vsb) set $first $last
}
#----------------------------------------------------------------------
# virtual functions to query the client window's scroll requirement
#
# When this function is called, the scrolled window is going to be
# mapped, if it is still unmapped. Also, it is going to change its
# size. Therefore, it is a good time to check whether the w:window needs
# to be re-positioned due to the new parent window size.
#----------------------------------------------------------------------
proc tixScrolledWindow:GeometryInfo {w mW mH} {
upvar #0 $w data
set bd \
[expr [$data(pw:f1) cget -bd] + [$data(pw:f1) cget -highlightthickness]]
set fw [expr $mW -2*$bd]
set fh [expr $mH -2*$bd]
set ww [winfo reqwidth $data(w:window)]
set wh [winfo reqheight $data(w:window)]
# Calculate the X info
#
if {$fw >= $ww} {
if {$data(dx) > 0} {
set data(dx) 0
}
set xinfo [list 0.0 1.0]
} else {
set maxdx [expr $ww - $fw]
if {$data(dx) > $maxdx} {
set data(dx) $maxdx
}
set first [expr $data(dx).0 / $ww.0]
set last [expr $first + ($fw.0 / $ww.0)]
set xinfo [list $first $last]
}
# Calculate the Y info
#
if {$fh >= $wh} {
if {$data(dy) > 0} {
set data(dy) 0
}
set yinfo [list 0.0 1.0]
} else {
set maxdy [expr $wh - $fh]
if {$data(dy) > $maxdy} {
set data(dy) $maxdy
}
set first [expr $data(dy).0 / $wh.0]
set last [expr $first + ($fh.0 / $wh.0)]
set yinfo [list $first $last]
}
return [list $xinfo $yinfo]
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| bitmaps | Folder | 0755 |
|
|
| html | Folder | 0755 |
|
|
| pref | Folder | 0755 |
|
|
| Balloon.tcl | File | 12.97 KB | 0644 |
|
| BtnBox.tcl | File | 2.61 KB | 0644 |
|
| CObjView.tcl | File | 7.56 KB | 0644 |
|
| ChkList.tcl | File | 4.97 KB | 0644 |
|
| ComboBox.tcl | File | 35.42 KB | 0644 |
|
| Compat.tcl | File | 870 B | 0644 |
|
| Console.tcl | File | 14.95 KB | 0644 |
|
| Control.tcl | File | 12.11 KB | 0644 |
|
| DefSchm.tcl | File | 2.94 KB | 0644 |
|
| DialogS.tcl | File | 4.2 KB | 0644 |
|
| DirBox.tcl | File | 5.3 KB | 0644 |
|
| DirDlg.tcl | File | 2.15 KB | 0644 |
|
| DirList.tcl | File | 6.9 KB | 0644 |
|
| DirTree.tcl | File | 8.76 KB | 0644 |
|
| DragDrop.tcl | File | 3.93 KB | 0644 |
|
| DtlList.tcl | File | 1002 B | 0644 |
|
| EFileBox.tcl | File | 11.12 KB | 0644 |
|
| EFileDlg.tcl | File | 1.68 KB | 0644 |
|
| Event.tcl | File | 5.11 KB | 0644 |
|
| FileBox.tcl | File | 14 KB | 0644 |
|
| FileCbx.tcl | File | 2.42 KB | 0644 |
|
| FileDlg.tcl | File | 2.13 KB | 0644 |
|
| FileEnt.tcl | File | 7.15 KB | 0644 |
|
| FloatEnt.tcl | File | 3.1 KB | 0644 |
|
| Grid.tcl | File | 21.16 KB | 0644 |
|
| HList.tcl | File | 17.72 KB | 0644 |
|
| HListDD.tcl | File | 4.39 KB | 0644 |
|
| IconView.tcl | File | 5.97 KB | 0644 |
|
| Init.tcl | File | 6.05 KB | 0644 |
|
| LabEntry.tcl | File | 2.09 KB | 0644 |
|
| LabFrame.tcl | File | 1.15 KB | 0644 |
|
| LabWidg.tcl | File | 3.86 KB | 0644 |
|
| ListNBk.tcl | File | 3.5 KB | 0644 |
|
| Meter.tcl | File | 3.04 KB | 0644 |
|
| MultView.tcl | File | 3.62 KB | 0644 |
|
| NoteBook.tcl | File | 6.02 KB | 0644 |
|
| OldUtil.tcl | File | 2.98 KB | 0644 |
|
| OptMenu.tcl | File | 9.17 KB | 0644 |
|
| PanedWin.tcl | File | 27.68 KB | 0644 |
|
| PopMenu.tcl | File | 5.37 KB | 0644 |
|
| Primitiv.tcl | File | 10.28 KB | 0644 |
|
| README.txt | File | 987 B | 0644 |
|
| ResizeH.tcl | File | 12.94 KB | 0644 |
|
| SGrid.tcl | File | 5.8 KB | 0644 |
|
| SHList.tcl | File | 3.7 KB | 0644 |
|
| SListBox.tcl | File | 6.97 KB | 0644 |
|
| STList.tcl | File | 2.37 KB | 0644 |
|
| SText.tcl | File | 3.09 KB | 0644 |
|
| SWidget.tcl | File | 9.52 KB | 0644 |
|
| SWindow.tcl | File | 6.75 KB | 0644 |
|
| Select.tcl | File | 7.04 KB | 0644 |
|
| Shell.tcl | File | 1.06 KB | 0644 |
|
| SimpDlg.tcl | File | 1.13 KB | 0644 |
|
| StackWin.tcl | File | 1.95 KB | 0644 |
|
| StatBar.tcl | File | 1.31 KB | 0644 |
|
| StdBBox.tcl | File | 1.62 KB | 0644 |
|
| StdShell.tcl | File | 1.15 KB | 0644 |
|
| TList.tcl | File | 17.59 KB | 0644 |
|
| Tix.tcl | File | 9.51 KB | 0644 |
|
| Tree.tcl | File | 4.57 KB | 0644 |
|
| Utils.tcl | File | 10.54 KB | 0644 |
|
| VResize.tcl | File | 4.95 KB | 0644 |
|
| VStack.tcl | File | 9.42 KB | 0644 |
|
| VTree.tcl | File | 4.31 KB | 0644 |
|
| Variable.tcl | File | 2.5 KB | 0644 |
|
| WInfo.tcl | File | 965 B | 0644 |
|
| fs.tcl | File | 3.9 KB | 0644 |
|
| libTix.so | File | 320.71 KB | 0755 |
|
| license.terms | File | 2.76 KB | 0644 |
|
| pkgIndex.tcl | File | 122 B | 0644 |
|