⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hierarchy

📁 openRisc2000编译链接器等,用于i386 cygwin
💻
字号:
# ----------------------------------------------------------------------#  DEMO: hierarchy in [incr Widgets]# ----------------------------------------------------------------------package require Iwidgets 4.0# This demo displays a users file system starting at thier HOME# directory.  You can change the starting directory by setting the# environment variable SHOWDIR.#if {![info exists env(SHOWDIR)]} {    set env(SHOWDIR) $env(HOME)}# ----------------------------------------------------------------------# PROC: get_files file## Used as the -querycommand for the hierarchy viewer.  Returns the# list of files under a particular directory.  If the file is "",# then the SHOWDIR is used as the directory.  Otherwise, the node itself# is treated as a directory.  The procedure returns a unique id and# the text to be displayed for each file.  The unique id is the complete# path name and the text is the file name.# ----------------------------------------------------------------------proc get_files {file} {    global env    if {$file == ""} {	set dir $env(SHOWDIR)    } else {	set dir $file    }    if {[catch {cd $dir}] != 0} {	return ""    }    set rlist ""    foreach file [lsort [glob -nocomplain *]] {	lappend rlist [list [file join $dir $file] $file]    }    return $rlist}# ----------------------------------------------------------------------# PROC: select_node tags status## Select/Deselect the node given the tags and current selection status.# The unique id which is the complete file path name is mixed in with # all the tags for the node.  So, we'll find it by searching for our # SHOWDIR and then doing the selection or deselection.# ----------------------------------------------------------------------proc select_node {tags status} {    global env    set uid [lindex $tags [lsearch -regexp $tags $env(SHOWDIR)]]    if {$status} {	.h selection remove $uid    } else {	.h selection add $uid    }}# ----------------------------------------------------------------------# PROC: expand_node tags## Expand the node given the tags.  The unique id which is the complete # file path name is mixed in with all the tags for the node.  So, we'll # find it by searching for our SHOWDIR and then doing the expansion.# ----------------------------------------------------------------------proc expand_node {tags} {    global env    set uid [lindex $tags [lsearch -regexp $tags $env(SHOWDIR)]]    .h expand $uid}# ----------------------------------------------------------------------# PROC: collapse_node tags## Collapse the node given the tags.  The unique id which is the complete # file path name is mixed in with all the tags for the node.  So, we'll # find it by searching for our SHOWDIR and then doing the collapse.# ----------------------------------------------------------------------proc collapse_node {tags} {    global env    set uid [lindex $tags [lsearch -regexp $tags $env(SHOWDIR)]]    .h collapse $uid}# ----------------------------------------------------------------------# PROC: expand_recursive## Recursively expand all the file nodes in the hierarchy.  # ----------------------------------------------------------------------proc expand_recursive {node} {    set files [get_files $node]    foreach tagset $files {	set uid [lindex $tagset 0]	.h expand $uid	if {[get_files $uid] != {}} {	    expand_recursive $uid	}    }}# ----------------------------------------------------------------------# PROC: expand_all## Expand all the file nodes in the hierarchy.  # ----------------------------------------------------------------------proc expand_all {} {    expand_recursive ""}# ----------------------------------------------------------------------# PROC: collapse_all## Collapse all the nodes in the hierarchy.# ----------------------------------------------------------------------proc collapse_all {} {    .h configure -querycommand "get_files %n"}# # Create the hierarchy mega-widget, adding commands to both the item# and background popup menus.#iwidgets::hierarchy .h -querycommand "get_files %n" -visibleitems 30x15 \    -labeltext $env(SHOWDIR) -selectcommand "select_node %n %s"pack .h -side left -expand yes -fill both.h component itemMenu add command -label "Select" \    -command {select_node [.h current] 0}.h component itemMenu add command -label "Deselect" \    -command {select_node [.h current] 1}.h component itemMenu add separator.h component itemMenu add command -label "Expand" \    -command {expand_node [.h current]}.h component itemMenu add command -label "Collapse" \    -command {collapse_node [.h current]}.h component bgMenu add command -label "Expand All" -command expand_all.h component bgMenu add command -label "Collapse All" -command collapse_all.h component bgMenu add command -label "Clear Selections" \    -command {.h selection clear}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -