📄 system.tk
字号:
-command [list $frame.m.c.canvas yview] systemYscrollPut $frame $frame.m.y.yscroll set scrollWidth [expr \ $canvas(bigBd) + \ 2*[lindex [$frame.m.y.yscroll configure -borderwidth] end] \ + [lindex [$frame.m.y.yscroll configure -width] end]] $frame.m.y configure -width $scrollWidth colorBarCreate $frame.s set footerWidth [expr 2*$canvas(bigBd) + 2*$canvas(bigLabelBd)] systemFooterWidthPut $frame $footerWidth set footerHeight [expr 2*$canvas(bigLabelBd) + \ $canvas(bigBd) + \ 2*$canvas(smallLabelFontHeight)] systemFooterHeightPut $frame $footerHeight set retwidth [expr $canvasFrameWidth + $totwidth + $scrollWidth] if {$labelWidth > $retwidth && $labelWidth > $footerWidth} { set retwidth $labelWidth } elseif {$footerWidth > $retwidth && $footerWidth > $labelWidth} { set retwidth $footerWidth } systemDisplayWidthPut $frame $retwidth set canvWidth $totwidth systemCanvasWidthPut $frame $canvWidth systemScrollWidthPut $frame $scrollWidth if { $retwidth > $canvas(systemMaxWidth) } { set canvWidth [expr $canvas(systemMaxWidth) - \ $canvasFrameWidth - $scrollWidth] if {$canvWidth > 0} { systemCanvasWidthPut $frame $canvWidth systemDisplayWidthPut $frame $canvas(systemMaxWidth) set retwidth $canvas(systemMaxWidth) } } set retheight [expr $labelHeight + $canvasFrameHeight + $totheight + \ $scrollHeight + $footerHeight] systemDisplayHeightPut $frame $retheight set canvHeight $totheight systemCanvasHeightPut $frame $canvHeight systemScrollHeightPut $frame $scrollHeight if { $retheight > $canvas(systemMaxHeight) } { set canvHeight [expr $canvas(systemMaxHeight) - \ $labelHeight - $canvasFrameHeight - \ $scrollHeight - $footerHeight] if {$canvHeight > 0} { systemCanvasHeightPut $frame $canvHeight systemDisplayHeightPut $frame $canvas(systemMaxHeight) set retheight $canvas(systemMaxHeight) } } set canvWidth [systemCanvasWidthGet $frame] set canvHeight [systemCanvasHeightGet $frame] $frame.m.c.canvas configure \ -width $canvWidth \ -height $canvHeight \ -xscrollcommand [list $frame.m.x.xscroll set] \ -yscrollcommand [list $frame.m.y.yscroll set] \ -scrollregion [list 0 0 $scrollRegionWidth $scrollRegionHeight] if {$canvWidth > 0 && $scrollRegionWidth > $canvWidth} { pack $frame.m.x.xscroll -side bottom -fill x -padx 0 -pady 0 \ -ipadx 0 -ipady 0 } if {$canvHeight > 0 && $scrollRegionHeight > $canvHeight} { pack $frame.m.y.yscroll -side right -fill y -padx 0 -pady 0 \ -ipadx 0 -ipady 0 -anchor nw } pack $frame.l.label -fill both -expand true -padx 0 -pady 0 -ipadx 0 \ -ipady 0 pack $frame.m.c.canvas -expand true -fill both -padx 0 -pady 0 \ -ipadx 0 -ipady 0 pack $frame.m.x -side bottom -fill x -padx 0 -pady 0 -ipadx 0 -ipady 0 pack $frame.m.y -side right -fill y -padx 0 -pady 0 -ipadx 0 -ipady 0 pack $frame.m.c -expand true -fill both -padx 0 -pady 0 -ipadx 0 \ -ipady 0 pack $frame.l $frame.m $frame.s -side top -anchor nw -fill both \ -expand true -padx 0 -pady 0 -ipadx 0 -ipady 0 pack $frame -anchor c -expand true -fill both -padx 0 -pady 0 -ipadx 0 -ipady 0 systemAdjustNodesDistances $frame}proc systemNodesReCreate {frame } { global canvas sysnodes set systemName [systemNameGet $frame] $frame.l.label configure -text $systemName set labelWidth [expr \ 2*$canvas(bigBd) + 2*$canvas(bigLabelBd) + \ $canvas(bigLabelFontWidth)*[string length $systemName]] systemLabelWidthPut $frame $labelWidth set labelHeight [expr $canvas(bigBd) + 2*$canvas(bigLabelBd) \ + $canvas(bigLabelFontHeight)] systemLabelHeightPut $frame $labelHeight set canvasFrameWidth [expr $canvas(bigBd) + 2*$canvas(bigCanvasBd)] systemCanvasFrameWidthPut $frame $canvasFrameWidth set canvasFrameHeight [expr 2*$canvas(bigCanvasBd)] systemCanvasFrameHeightPut $frame $canvasFrameHeight set x1 0 set y1 0 set totwidth 0 set totheight 0 set pw 0 set ph 0 set maxWidth 0 set prevCluster "" set rowClusters "" set i 0 set j 0 foreach a [systemServerNamesGet $frame] { set clusterLabel [lindex $sysnodes($systemName,$a) 0] clusterNamePut $frame.m.c.$i $a clusterLabelTextPut $frame.m.c.$i $clusterLabel $frame.m.c.canvas delete $frame.m.c.$i systemClusterFramePut $frame $a $frame.m.c.$i set pos [clusterReCreate $frame.m.c.$i] set w [expr [lindex $pos 0] + 2*$canvas(medBd)] set h [lindex $pos 1] if { $i == 0 } { set rowClusters $frame.m.c.$i incr totwidth $w } elseif { [expr $j % $canvas(systemNumBoxesPerRow)] == 0 || \ [expr $totwidth + $w] > $canvas(systemMaxWidth) } { set rowOffset [expr \ ($canvas(systemMaxWidth) - $totwidth) / 2] if {$rowOffset > 0} { foreach fr $rowClusters { clusterOffsetWidthPut $fr $rowOffset } } set rowClusters $frame.m.c.$i set x1 0 incr y1 $ph incr totheight $ph if {$totwidth > $maxWidth} { set maxWidth $totwidth } set totwidth $w set j 0 set ph 0 } else { lappend rowClusters $frame.m.c.$i incr x1 $pw incr totwidth $w if {[string compare $prevCluster ""] != 0} { clusterNextPut $prevCluster $frame.m.c.$i } } pack forget $frame.m.c.$i $frame.m.c.canvas create window $x1 $y1 -window $frame.m.c.$i \ -anchor nw -width $w -height $h -tags $frame.m.c.$i clusterXposPut $frame.m.c.$i $x1 clusterYposPut $frame.m.c.$i $y1 # save current width set pw $w if {$h > $ph} { set ph $h } set prevCluster $frame.m.c.$i incr i incr j } if {[string compare $rowClusters ""] != 0} { set rowOffset [expr ($canvas(systemMaxWidth) - $totwidth) / 2] if {$rowOffset > 0} { foreach fr $rowClusters { clusterOffsetWidthPut $fr $rowOffset } } } if {$maxWidth > $totwidth} { set totwidth $maxWidth } incr totheight $ph systemScrollRegionWidthPut $frame $totwidth systemScrollRegionHeightPut $frame $totheight set scrollRegionWidth $totwidth set scrollRegionHeight $totheight $frame.m.x.xscroll configure -orient horizontal \ -width $canvas(bigLabelFontHeight) \ -command [list $frame.m.c.canvas xview] set scrollHeight [expr \ 2*[lindex [$frame.m.x.xscroll configure -borderwidth] end] \ + [lindex [$frame.m.x.xscroll configure -width] end]] $frame.m.y.yscroll configure -orient vertical \ -width $canvas(bigLabelFontHeight) \ -command [list $frame.m.c.canvas yview] set scrollWidth [expr \ $canvas(bigBd) + \ 2*[lindex [$frame.m.y.yscroll configure -borderwidth] end] \ + [lindex [$frame.m.y.yscroll configure -width] end]] set footerWidth [expr 2*$canvas(bigBd) + 2*$canvas(bigLabelBd)] set footerHeight [expr 2*$canvas(bigLabelBd) + \ $canvas(bigBd) + \ 2*$canvas(smallLabelFontHeight)] systemFooterHeightPut $frame $footerHeight set retwidth [expr $canvasFrameWidth + $totwidth + $scrollWidth] if {$labelWidth > $retwidth && $labelWidth > $footerWidth} { set retwidth $labelWidth } elseif {$footerWidth > $retwidth && $footerWidth > $labelWidth} { set retwidth $footerWidth } systemDisplayWidthPut $frame $retwidth set canvWidth $totwidth systemCanvasWidthPut $frame $canvWidth systemScrollWidthPut $frame $scrollWidth if { $retwidth > $canvas(systemMaxWidth) } { set canvWidth [expr $canvas(systemMaxWidth) - \ $canvasFrameWidth - $scrollWidth] if {$canvWidth > 0} { systemCanvasWidthPut $frame $canvWidth systemDisplayWidthPut $frame $canvas(systemMaxWidth) set retwidth $canvas(systemMaxWidth) } } set retheight [expr $labelHeight + $canvasFrameHeight + $totheight + \ $scrollHeight + $footerHeight] systemDisplayHeightPut $frame $retheight set canvHeight $totheight systemCanvasHeightPut $frame $canvHeight systemScrollHeightPut $frame $scrollHeight if { $retheight > $canvas(systemMaxHeight) } { set canvHeight [expr $canvas(systemMaxHeight) - \ $labelHeight - $canvasFrameHeight - \ $scrollHeight - $footerHeight] if {$canvHeight > 0} { systemCanvasHeightPut $frame $canvHeight systemDisplayHeightPut $frame $canvas(systemMaxHeight) set retheight $canvas(systemMaxHeight) } } set canvWidth [systemCanvasWidthGet $frame] set canvHeight [systemCanvasHeightGet $frame] $frame.m.c.canvas configure -width $canvWidth -height $canvHeight \ -xscrollcommand [list $frame.m.x.xscroll set] \ -yscrollcommand [list $frame.m.y.yscroll set] \ -scrollregion [list 0 0 $scrollRegionWidth $scrollRegionHeight] catch {pack forget $frame.m.x.xscroll} if {$canvWidth > 0 && $scrollRegionWidth > $canvWidth} { pack $frame.m.x.xscroll -side bottom -fill x -padx 0 -pady 0 \ -ipadx 0 -ipady 0 } catch {pack forget $frame.m.y.yscroll} if {$canvHeight > 0 && $scrollRegionHeight > $canvHeight} { pack $frame.m.y.yscroll -side right -fill y -padx 0 -pady 0 \ -ipadx 0 -ipady 0 -anchor nw } pack $frame -anchor c -expand true -fill both -padx 0 -pady 0 -ipadx 0 -ipady 0 systemAdjustNodesDistances $frame}proc systemRepack {systemframe} { global canvas if {[string compare $systemframe ""] == 0} { return } set canv [systemCanvasGet $systemframe] set xscroll [systemXscrollGet $systemframe] set yscroll [systemYscrollGet $systemframe] set labelWidth [systemLabelWidthGet $systemframe] set footerWidth [systemFooterWidthGet $systemframe] set canvasFrameWidth [systemCanvasFrameWidthGet $systemframe] set scrollWidth [systemScrollWidthGet $systemframe] set labelHeight [systemLabelHeightGet $systemframe] set canvasFrameHeight [systemCanvasFrameHeightGet $systemframe] set scrollHeight [systemScrollHeightGet $systemframe] set footerHeight [systemFooterHeightGet $systemframe] set scrollRegionWidth [systemScrollRegionWidthGet $systemframe] set scrollRegionHeight [systemScrollRegionHeightGet $systemframe] set canvWidth [systemCanvasWidthGet $systemframe] set canvHeight [systemCanvasHeightGet $systemframe] set dispWidth [systemDisplayWidthGet $systemframe] set dispHeight [systemDisplayHeightGet $systemframe] set retwidth [expr $canvasFrameWidth + $canvWidth + $scrollWidth] set footerWidth [expr $retwidth + 1] if {$labelWidth > $retwidth && $labelWidth > $footerWidth} { set retwidth $labelWidth } elseif {$footerWidth > $retwidth && $footerWidth > $labelWidth} { set retwidth $footerWidth } systemDisplayWidthPut $systemframe $retwidth if { $retwidth > $canvas(systemMaxWidth) } { set canvWidth [expr $canvas(systemMaxWidth) - \ $canvasFrameWidth - $scrollWidth] if {$canvWidth > 0} { systemCanvasWidthPut $systemframe $canvWidth systemDisplayWidthPut $systemframe \ $canvas(systemMaxWidth) set retwidth $canvas(systemMaxWidth) } } set retheight [expr $labelHeight + $canvasFrameHeight + $canvHeight + \ $scrollHeight + $footerHeight] systemDisplayHeightPut $systemframe $retheight if { $retheight > $canvas(systemMaxHeight) } { set canvHeight [expr $canvas(systemMaxHeight) - \ $labelHeight - $canvasFrameHeight - \ $scrollHeight - $footerHeight] if {$canvHeight > 0} { systemCanvasHeightPut $systemframe $canvHeight systemDisplayHeightPut $systemframe \ $canvas(systemMaxHeight) set retheight $canvas(systemMaxHeight) } } set canvWidth [systemCanvasWidthGet $systemframe] set canvHeight [systemCanvasHeightGet $systemframe] $canv configure -width $canvWidth -height $canvHeight \ -scrollregion [list 0 0 $scrollRegionWidth $scrollRegionHeight] if {$canvWidth > 0 && $scrollRegionWidth > $canvWidth} { catch {pack $xscroll -side bottom -fill x -padx 0 -pady 0 \ -ipadx 0 -ipady 0} } else { catch {pack forget $xscroll} } if {$canvHeight > 0 && $scrollRegionHeight > $canvHeight} { pack $yscroll -side right -fill y -padx 0 -pady 0 -ipadx 0 \ -ipady 0 -anchor nw } else { catch {pack forget $yscroll} }}proc systemDelete {sysframe} { if {![winfo exists $sysframe]} { return } set sysname [systemNameGet $sysframe] foreach n [systemNodeNamesGet $sysframe] { set nframe [systemNodeFrameGet $sysframe $n FULL] nodeDelete $nframe } foreach c [systemClusterNamesGet $sysframe] { set cframe [systemClusterFrameGet $sysframe $c] clusterDelete $cframe } set array [string trimleft $sysframe .] global $array unset $array destroy $sysframe}proc systemRefreshDisplay {sysframe} { global canvas systemRefreshPut $sysframe 0 foreach nn [systemNodeNamesGet $sysframe] { set nf [systemNodeFrameGet $sysframe $nn FULL] if [nodeRefreshGet $nf] { update idletasks clusterRefreshPut [nodeClusterFrameGet $nf] 1 systemRefreshPut $sysframe 1 nodeRefreshPut $nf 0 } } foreach cn [systemClusterNamesGet $sysframe] { set cf [systemClusterFrameGet $sysframe $cn] if [clusterRefreshGet $cf] { update idletasks systemRefreshPut $sysframe 1 clusterRefreshPut $cf 0 } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -