__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ 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: DirTree.tcl,v 1.4 2004/03/28 02:44:57 hobbs Exp $
#
# DirTree.tcl --
#
# Implements directory tree for Unix file systems
#
# What the indicators mean:
#
# (+): There are some subdirectories in this directory which are not
# currently visible.
# (-): This directory has some subdirectories and they are all visible
#
# none: The dir has no subdirectori(es).
#
# 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.
#
##
## The tixDirTree require special FS handling due to it's limited
## separator idea (instead of real tree).
##
tixWidgetClass tixDirTree {
-classname TixDirTree
-superclass tixVTree
-method {
activate chdir refresh
}
-flag {
-browsecmd -command -directory -disablecallback -showhidden -value
}
-configspec {
{-browsecmd browseCmd BrowseCmd ""}
{-command command Command ""}
{-disablecallback disableCallback DisableCallback 0 tixVerifyBoolean}
{-showhidden showHidden ShowHidden 0 tixVerifyBoolean}
{-value value Value ""}
}
-alias {
{-directory -value}
}
-default {
{.scrollbar auto}
{*Scrollbar.takeFocus 0}
{*borderWidth 1}
{*hlist.indicator 1}
{*hlist.background #c3c3c3}
{*hlist.drawBranch 1}
{*hlist.height 10}
{*hlist.highlightBackground #d9d9d9}
{*hlist.indent 20}
{*hlist.itemType imagetext}
{*hlist.padX 3}
{*hlist.padY 0}
{*hlist.relief sunken}
{*hlist.takeFocus 1}
{*hlist.wideSelection 0}
{*hlist.width 20}
}
}
proc tixDirTree:InitWidgetRec {w} {
upvar #0 $w data
tixChainMethod $w InitWidgetRec
if {$data(-value) == ""} {
set data(-value) [pwd]
}
tixDirTree:SetDir $w [file normalize $data(-value)]
}
proc tixDirTree:ConstructWidget {w} {
upvar #0 $w data
tixChainMethod $w ConstructWidget
tixDoWhenMapped $w [list tixDirTree:StartUp $w]
$data(w:hlist) config -separator [tixFSSep] \
-selectmode "single" -drawbranch 1
# We must creat an extra copy of these images to avoid flashes on
# the screen when user changes directory
#
set data(images) [image create compound -window $data(w:hlist)]
$data(images) add image -image [tix getimage act_fold]
$data(images) add image -image [tix getimage folder]
$data(images) add image -image [tix getimage openfold]
}
proc tixDirTree:SetBindings {w} {
upvar #0 $w data
tixChainMethod $w SetBindings
}
# Add one dir into the node (parent directory), sorted alphabetically
#
proc tixDirTree:AddToList {w fsdir image} {
upvar #0 $w data
set dir [tixFSInternal $fsdir]
if {[$data(w:hlist) info exists $dir]} { return }
set parent [file dirname $fsdir]
if {$fsdir eq $parent} {
# root node
set node ""
} else {
# regular node
set node [tixFSInternal $parent]
}
set added 0
set text [tixFSDisplayFileName $fsdir]
foreach sib [$data(w:hlist) info children $node] {
if {[string compare $dir $sib] < 0} {
$data(w:hlist) add $dir -before $sib -text $text -image $image
set added 1
break
}
}
if {!$added} {
$data(w:hlist) add $dir -text $text -image $image
}
# Check to see if we have children (%% optimize!)
if {[llength [tixFSListDir $fsdir 1 0 0 $data(-showhidden)]]} {
tixVTree:SetMode $w $dir open
}
}
proc tixDirTree:LoadDir {w fsdir {mode toggle}} {
if {![winfo exists $w]} { return }
upvar #0 $w data
# Add the directory and set it to the active directory
#
set fsdir [tixFSNormalize $fsdir]
set dir [tixFSInternal $fsdir]
if {![$data(w:hlist) info exists $dir]} {
# Add $dir and all ancestors of $dir into the HList widget
set fspath ""
set imgopenfold [tix getimage openfold]
foreach part [tixFSAncestors $fsdir] {
set fspath [file join $fspath $part]
tixDirTree:AddToList $w $fspath $imgopenfold
}
}
$data(w:hlist) entryconfig $dir -image [tix getimage act_fold]
if {$mode eq "toggle"} {
if {[llength [$data(w:hlist) info children $dir]]} {
set mode flatten
} else {
set mode expand
}
}
if {$mode eq "expand"} {
# Add all the sub directories of fsdir into the HList widget
tixBusy $w on $data(w:hlist)
set imgfolder [tix getimage folder]
foreach part [tixFSListDir $fsdir 1 0 0 $data(-showhidden)] {
tixDirTree:AddToList $w [file join $fsdir $part] $imgfolder
}
tixWidgetDoWhenIdle tixBusy $w off $data(w:hlist)
# correct indicator to represent children status (added above)
if {[llength [$data(w:hlist) info children $dir]]} {
tixVTree:SetMode $w $dir close
} else {
tixVTree:SetMode $w $dir none
}
} else {
$data(w:hlist) delete offsprings $dir
tixVTree:SetMode $w $dir open
}
}
proc tixDirTree:ToggleDir {w value mode} {
upvar #0 $w data
tixDirTree:LoadDir $w $value $mode
tixDirTree:CallCommand $w
}
proc tixDirTree:CallCommand {w} {
upvar #0 $w data
if {[llength $data(-command)] && !$data(-disablecallback)} {
set bind(specs) {%V}
set bind(%V) $data(-value)
tixEvalCmdBinding $w $data(-command) bind $data(-value)
}
}
proc tixDirTree:CallBrowseCmd {w ent} {
upvar #0 $w data
if {[llength $data(-browsecmd)] && !$data(-disablecallback)} {
set bind(specs) {%V}
set bind(%V) $data(-value)
tixEvalCmdBinding $w $data(-browsecmd) bind [list $data(-value)]
}
}
proc tixDirTree:StartUp {w} {
if {![winfo exists $w]} { return }
upvar #0 $w data
# make sure that all the basic volumes are listed
set imgopenfold [tix getimage openfold]
foreach fspath [tixFSVolumes] {
tixDirTree:AddToList $w $fspath $imgopenfold
}
tixDirTree:LoadDir $w [tixFSExternal $data(i-directory)]
}
proc tixDirTree:ChangeDir {w fsdir {forced 0}} {
upvar #0 $w data
set dir [tixFSInternal $fsdir]
if {!$forced && $data(i-directory) eq $dir} {
return
}
if {!$forced && [$data(w:hlist) info exists $dir]} {
# Set the old directory to "non active"
#
if {[$data(w:hlist) info exists $data(i-directory)]} {
$data(w:hlist) entryconfig $data(i-directory) \
-image [tix getimage folder]
}
$data(w:hlist) entryconfig $dir -image [tix getimage act_fold]
} else {
if {$forced} {
if {[llength [$data(w:hlist) info children $dir]]} {
set mode expand
} else {
set mode flatten
}
} else {
set mode toggle
}
tixDirTree:LoadDir $w $fsdir $mode
tixDirTree:CallCommand $w
}
tixDirTree:SetDir $w $fsdir
}
proc tixDirTree:SetDir {w path} {
upvar #0 $w data
set data(i-directory) [tixFSInternal $path]
set data(-value) [tixFSNativeNorm $path]
}
#----------------------------------------------------------------------
#
# Virtual Methods
#
#----------------------------------------------------------------------
proc tixDirTree:OpenCmd {w ent} {
set fsdir [tixFSExternal $ent]
tixDirTree:ToggleDir $w $fsdir expand
tixDirTree:ChangeDir $w $fsdir
tixDirTree:CallBrowseCmd $w $fsdir
}
proc tixDirTree:CloseCmd {w ent} {
set fsdir [tixFSExternal $ent]
tixDirTree:ToggleDir $w $fsdir flatten
tixDirTree:ChangeDir $w $fsdir
tixDirTree:CallBrowseCmd $w $fsdir
}
proc tixDirTree:Command {w B} {
upvar #0 $w data
upvar $B bind
set ent [tixEvent flag V]
tixChainMethod $w Command $B
if {[llength $data(-command)]} {
set fsdir [tixFSExternal $ent]
tixEvalCmdBinding $w $data(-command) bind $fsdir
}
}
# This is a virtual method
#
proc tixDirTree:BrowseCmd {w B} {
upvar #0 $w data
upvar 1 $B bind
set ent [tixEvent flag V]
set fsdir [tixFSExternal $ent]
# This is a hack because %V may have been modified by callbrowsecmd
set fsdir [file normalize $fsdir]
tixDirTree:ChangeDir $w $fsdir
tixDirTree:CallBrowseCmd $w $fsdir
}
#----------------------------------------------------------------------
#
# Public Methods
#
#----------------------------------------------------------------------
proc tixDirTree:chdir {w value} {
tixDirTree:ChangeDir $w [file normalize $value]
}
proc tixDirTree:refresh {w {dir ""}} {
upvar #0 $w data
if {$dir eq ""} {
set dir $data(-value)
}
set dir [file normalize $dir]
tixDirTree:ChangeDir $w $dir 1
# Delete any stale directories that no longer exist
#
foreach child [$data(w:hlist) info children [tixFSInternal $dir]] {
if {![file exists [tixFSExternal $child]]} {
$data(w:hlist) delete entry $child
}
}
}
proc tixDirTree:config-directory {w value} {
tixDirTree:ChangeDir $w [file normalize $value]
}
| 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 |
|