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

📄 color.tk

📁 openPBS的开放源代码
💻 TK
字号:
#         OpenPBS (Portable Batch System) v2.3 Software License# # Copyright (c) 1999-2000 Veridian Information Solutions, Inc.# All rights reserved.# # ---------------------------------------------------------------------------# For a license to use or redistribute the OpenPBS software under conditions# other than those described below, or to purchase support for this software,# please contact Veridian Systems, PBS Products Department ("Licensor") at:# #    www.OpenPBS.org  +1 650 967-4675                  sales@OpenPBS.org#                        877 902-4PBS (US toll-free)# ---------------------------------------------------------------------------# # This license covers use of the OpenPBS v2.3 software (the "Software") at# your site or location, and, for certain users, redistribution of the# Software to other sites and locations.  Use and redistribution of# OpenPBS v2.3 in source and binary forms, with or without modification,# are permitted provided that all of the following conditions are met.# After December 31, 2001, only conditions 3-6 must be met:# # 1. Commercial and/or non-commercial use of the Software is permitted#    provided a current software registration is on file at www.OpenPBS.org.#    If use of this software contributes to a publication, product, or#    service, proper attribution must be given; see www.OpenPBS.org/credit.html# # 2. Redistribution in any form is only permitted for non-commercial,#    non-profit purposes.  There can be no charge for the Software or any#    software incorporating the Software.  Further, there can be no#    expectation of revenue generated as a consequence of redistributing#    the Software.# # 3. Any Redistribution of source code must retain the above copyright notice#    and the acknowledgment contained in paragraph 6, this list of conditions#    and the disclaimer contained in paragraph 7.# # 4. Any Redistribution in binary form must reproduce the above copyright#    notice and the acknowledgment contained in paragraph 6, this list of#    conditions and the disclaimer contained in paragraph 7 in the#    documentation and/or other materials provided with the distribution.# # 5. Redistributions in any form must be accompanied by information on how to#    obtain complete source code for the OpenPBS software and any#    modifications and/or additions to the OpenPBS software.  The source code#    must either be included in the distribution or be available for no more#    than the cost of distribution plus a nominal fee, and all modifications#    and additions to the Software must be freely redistributable by any party#    (including Licensor) without restriction.# # 6. All advertising materials mentioning features or use of the Software must#    display the following acknowledgment:# #     "This product includes software developed by NASA Ames Research Center,#     Lawrence Livermore National Laboratory, and Veridian Information#     Solutions, Inc.#     Visit www.OpenPBS.org for OpenPBS software support,#     products, and information."# # 7. DISCLAIMER OF WARRANTY# # THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. ANY EXPRESS# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT# ARE EXPRESSLY DISCLAIMED.# # IN NO EVENT SHALL VERIDIAN CORPORATION, ITS AFFILIATED COMPANIES, OR THE# U.S. GOVERNMENT OR ANY OF ITS AGENCIES BE LIABLE FOR ANY DIRECT OR INDIRECT,# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,# OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.# # This license will be governed by the laws of the Commonwealth of Virginia,# without reference to its choice of law rules.proc getNextNodeColorInUse {} {	global canvas	if {![info exists canvas(nodeColorINUSE_index)]} {		set canvas(nodeColorINUSE_index) -1	}	set newindex [expr ($canvas(nodeColorINUSE_index)+1) % \				     [llength $canvas(nodeColorINUSEexclusive)]]	set canvas(nodeColorINUSE_index) $newindex	set retcolor [lindex $canvas(nodeColorINUSEexclusive) $newindex]	if {[string compare $retcolor ""] == 0} {		set retcolor white	} 	return $retcolor}proc assignNodeColorInUse {job {defcolor ""}} {	global sysinfo	set retcolor ""	if [info exists sysinfo(color,$job)] {		set retcolor $sysinfo(color,$job)	} else {		if {[string compare $defcolor ""] == 0} {			set retcolor [getNextNodeColorInUse]		} else {			set retcolor $defcolor		}		set sysinfo(color,$job) $retcolor	}	if [info exists sysinfo(colorCnt,$job)] {		set sysinfo(colorCnt,$job) [expr $sysinfo(colorCnt,$job) + 1]	} else {		set sysinfo(colorCnt,$job) 1	}	return $retcolor}proc unsetNodeColorInUseMapping {} {	global sysinfo canvas	foreach s [array names sysinfo] {		set s_list [split $s ","]		set head [lindex $s_list 0]		if {[string compare $head "color"] == 0 || \		    [string compare $head "colorCnt"] == 0 } {			unset sysinfo($s)		}	}	set canvas(nodeColorINUSE_index) -1}proc colorBarPopulate {startx starty maplist tag} {	global canvas	set i 0	foreach stat $maplist {		set color [lindex $stat 0]		set label [lindex $stat 1]		if {$i == 0} {			set x1 $startx		} else {			set pos [$canvas(colorBarCanvas) bbox $previd]			set x1 [expr [lindex $pos 2] + $canvas(smallLabelFontWidth)]		}		set y1 $starty		set x2 [expr $x1 + $canvas(smallTextFontWidth)]		set y2 [expr $y1 + $canvas(smallTextFontHeight)]		set rid [$canvas(colorBarCanvas) create rect $x1 $y1 $x2 $y2 \				-fill $color -tags [list $tag all]]		set pos [$canvas(colorBarCanvas) bbox $rid]		set x1 [expr [lindex $pos 2] + 2]		set y1 [lindex $pos 1]			set previd [$canvas(colorBarCanvas) create text $x1 $y1 \		  		-anchor nw -text "$label" \				-font $canvas(smallLabelFont) \				-tags [list $tag all]]		incr i	}} proc colorBarCreate {frame_name} {	global sysinfo canvas	canvas $frame_name.c -confine 1 \		-height [expr 2*$canvas(smallLabelFontHeight)] \		-borderwidth 2 \		-relief ridge \	       	-width $canvas(systemMaxWidth) \		-xscrollcommand [list $frame_name.xscroll set] \		-scrollregion [list 0 0 $canvas(systemMaxWidth) \						$canvas(bigTextFontHeight)]	set canvas(colorBarCanvas) $frame_name.c	lappend nodestatus   "$canvas(nodeColorFREE) FREE"    \			 "$canvas(nodeColorDOWN)   DOWN"  \			 "$canvas(nodeColorOFFL)   OFFL"  \			 "$canvas(nodeColorRSVD)   RSVD"  \			 "$canvas(nodeColorNOINFO) NOINFO" \			 "$canvas(nodeColorINUSEshared) INUSE/SHARED"	colorBarPopulate [expr 2*$canvas(smallLabelFontWidth)] $canvas(bigBd) \			 $nodestatus fixed        scrollbar $frame_name.xscroll -orient horizontal \                -relief flat \                -borderwidth $canvas(bigBd) \                -background $canvas(bigScrollBg) \                -width $canvas(smallLabelFontHeight) \                -command [list $frame_name.c xview]	set canvas(colorBarScroll) $frame_name.xscroll	pack $frame_name.c -side left -anchor nw -fill x -expand true \							-padx 1m -pady 1m	set pos [$canvas(colorBarCanvas) bbox all]	set x1 [lindex $pos 0]	set y1 [lindex $pos 1]	set x2 [lindex $pos 2]	set y2 [lindex $pos 3]	set width  [expr ($x2 - $x1) + 2*$canvas(smallLabelFontWidth)]	set height [expr ($y2 - $y1) + 2*$canvas(smallLabelFontHeight)]	$canvas(colorBarCanvas) configure -scrollregion "0 0 $width $height"	if {$width > $canvas(systemMaxWidth)} {	   catch {pack $canvas(colorBarScroll) -side right -anchor se \		-expand true -pady [expr $canvas(smallLabelFontHeight)/2]}	}}proc colorBarUpdate {} {	global sysinfo canvas	foreach s [array names sysinfo] {		set s_list [split $s ","]		set head [lindex $s_list 0]		if {[string compare $head "color"] == 0} {			set job [lindex $s_list 1]			if {[string compare $job TIMESHARED] != 0} {				lappend color($sysinfo($s)) \					$job.$sysinfo(colorCnt,$job)nodes			}		}	}	set inuse ""	if {[string compare $canvas(nodeColorINUSEshared) \			    	     $canvas(nodeColorINUSEexclusive)] != 0 } {		foreach c [array names color] {			set jobs [join $color($c) ","]			lappend inuse "$c {INUSE($jobs)}"  		}	}	set pos [$canvas(colorBarCanvas) bbox fixed]		set x [lindex $pos 0]	set y [lindex $pos 3]	catch {$canvas(colorBarCanvas) delete variable}	colorBarPopulate $x [expr $y + $canvas(bigBd)] $inuse variable	set pos [$canvas(colorBarCanvas) bbox all]	set x1 [lindex $pos 0]	set y1 [lindex $pos 1]	set x2 [lindex $pos 2]	set y2 [lindex $pos 3]	set width  [expr ($x2 - $x1) + 2*$canvas(smallLabelFontWidth)]	set height [expr ($y2 - $y1) + 2*$canvas(smallLabelFontHeight)]	$canvas(colorBarCanvas) configure -scrollregion "0 0 $width $height"	if {$width > $canvas(systemMaxWidth)} {	   catch {pack $canvas(colorBarScroll) -side right -anchor se \		-expand true -pady [expr $canvas(smallLabelFontHeight)/2]}	} else {	   catch {pack forget $canvas(colorBarScroll)}	}}

⌨️ 快捷键说明

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