projman/lib/tree.tcl

87 lines
2.3 KiB
Tcl
Raw Normal View History

2022-07-21 10:56:46 +03:00
#!/usr/bin/wish
######################################################
# ProjMan 2
2018-02-08 16:37:50 +03:00
# Distributed under GNU Public License
2022-07-21 10:56:46 +03:00
# Author: Sergey Kalinin svk@nuk-svk.ru
# Copyright (c) "", 2022, https://nuk-svk.ru
######################################################
2018-02-08 16:37:50 +03:00
#
2022-07-21 10:56:46 +03:00
# Tree widget working module
2018-02-08 16:37:50 +03:00
#
2022-07-21 10:56:46 +03:00
######################################################
2018-02-08 16:37:50 +03:00
2022-07-21 10:56:46 +03:00
namespace eval Tree {
proc InsertItem {tree parent item type text} {
# set img [GetImage $fileName]
set dot "_"
puts "$tree $parent $item $type $text"
switch $type {
file {
regsub -all {\.|/|\\|\s} $item "_" subNode
puts $subNode
set image imgFile
2018-02-08 16:37:50 +03:00
}
2022-07-21 10:56:46 +03:00
directory {
regsub -all {\.|/|\\|\s} $item "_" subNode
puts $subNode
set image folder
2018-02-08 16:37:50 +03:00
}
}
2022-07-21 10:56:46 +03:00
append id $type "::" $subNode
puts $id
if ![$tree exists $id] {
$tree insert $parent end -id "$id" -text $text -values "$item" -image $image
}
return "$id"
2018-02-08 16:37:50 +03:00
}
2022-07-21 10:56:46 +03:00
proc DoublePressItem {tree} {
set id [$tree selection]
$tree tag remove selected
$tree item $id -tags selected
2018-02-24 18:31:18 +03:00
2022-07-21 10:56:46 +03:00
set values [$tree item $id -values]
set key [lindex [split $id "::"] 0]
if {$values eq "" || $key eq ""} {return}
puts "$key $tree $values"
switch $key {
directory {
FileOper::ReadFolder $values
2018-02-08 16:37:50 +03:00
}
2022-07-21 10:56:46 +03:00
file {
FileOper::Edit $values
# $tree item $id -open false
2018-02-08 16:37:50 +03:00
}
}
}
2022-07-21 10:56:46 +03:00
proc PressItem {tree} {
set id [$tree selection]
$tree tag remove selected
$tree item $id -tags selected
set values [$tree item $id -values]
set key [lindex [split $id "::"] 0]
if {$values eq "" || $key eq ""} {return}
puts "$key $tree $values"
switch $key {
directory {
FileOper::ReadFolder $values
# $tree item $id -open false
}
file {
FileOper::Edit $values
2018-02-08 16:37:50 +03:00
}
}
2022-07-21 10:56:46 +03:00
#
2018-02-08 16:37:50 +03:00
}
2022-07-21 10:56:46 +03:00
proc GetItemID {tree item} {
if [$tree exists $item] {
return [$tree item $item -values]
2018-03-15 16:22:57 +03:00
}
}
}