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

📄 box.tk

📁 openPBS的开放源代码
💻 TK
📖 第 1 页 / 共 2 页
字号:
#         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.# NOTE: we restrict to one element keys only for efficiency!proc box {frame_name {args}} {  set boxName [string trim $frame_name "."]  global $boxName canvas sysinfo  set configure 0  set argc [llength $args]  for {set i 0} {$i < $argc} {incr i} {    switch -exact -- [lindex $args $i] {      configure  {                set configure 1      }      -title {                set [set boxName](title) [lindex $args [incr i]]      }      title {		if { ![info exists [set boxName](title)]} {			return ""		}                return [set [set boxName](title)]      }      -class {                set [set boxName](class) [lindex $args [incr i]]      }      class {		if { ![info exists [set boxName](class)]} {			return Plain		}                return [set [set boxName](class)]      }      titlelabel {		if { ![info exists [set boxName](titlelabel)]} {			return ""		}                return [set [set boxName](titlelabel)]      }		      -key {                set [set boxName](key) [lindex $args [incr i]]      }      key {		if { ![info exists [set boxName](key)]} {			return 0		}                return [set [set boxName](key)]      }      -entrylabels {                set [set boxName](entrylabels) [lindex $args [incr i]]      }      entrylabels {		if { ![info exists [set boxName](entrylabels)]} {			return ""		}                return [set [set boxName](entrylabels)]      }      -lboxlabels {                set [set boxName](lboxlabels) [lindex $args [incr i]]      }      lboxlabels {		if { ![info exists [set boxName](lboxlabels)]} {			return ""		}                return [set [set boxName](lboxlabels)]      }      -lboxwidths {                set [set boxName](lboxwidths) [lindex $args [incr i]]      }      lboxwidths {		if { ![info exists [set boxName](lboxwidths)]} {			return 0		}                return [set [set boxName](lboxwidths)]      }      -lboxheights {                set [set boxName](lboxheights) [lindex $args [incr i]]      }      lboxheights {		if { ![info exists [set boxName](lboxheights)]} {			return 0		}                return [set [set boxName](lboxheights)]      }      -orient {                set [set boxName](orient) [lindex $args [incr i]]      }      orient {		if { ![info exists [set boxName](orient)]} {			return "x"		}                return [set [set boxName](orient)]      }      -grabBox {                set [set boxName](grabBox) [lindex $args [incr i]]      }      grabBox {		if { ![info exists [set boxName](grabBox)]} {			return ""		}                return [set [set boxName](grabBox)]      }      -selindex {                set [set boxName](selindex) [lindex $args [incr i]]      }      selindex {		if { ![info exists [set boxName](selindex)]} {			return -1		}                return [set [set boxName](selindex)]      }      vscroll {		if { ![info exists [set boxName](vscroll)]} {			return ""		}                return [set [set boxName](vscroll)]      }      ncols {		if { ![info exists [set boxName](ncols)]} {			return 1		}                return [set [set boxName](ncols)]      }      -nrows {		set lbox [box $frame_name lbox 0]		if { [string compare $lbox ""] != 0 } {			set [set boxName](nrows) [$lbox size]		}		incr [set boxName](nrows) [lindex $args [incr i]]                return [set [set boxName](nrows)]      }      nrows {		set lbox [box $frame_name lbox 0]		if { [string compare $lbox ""] == 0 } {			return 0		}		set [set boxName](nrows) [$lbox size]                return [set [set boxName](nrows)]      }      lbox {		set index [lindex $args [incr i]]		if {![info exists [set boxName](lbox,$index)]} {			return ""		}                return [set [set boxName](lbox,$index)]      }      entry {		set index [lindex $args [incr i]]		if {![info exists [set boxName](entry,$index)]} {			return ""		}                return [set [set boxName](entry,$index)]      }      -entryval {		set index [lindex $args [incr i]]		set eval [lindex $args [incr i]]                set [set boxName](entryval,$index) $eval                return [set [set boxName](entryval,$index)]      }      entryval {		set index [lindex $args [incr i]]		if {![info exists [set boxName](entryval,$index)]} {			return ""		}                return [set [set boxName](entryval,$index)]      }      -entryvalDeleted {                set [set boxName](entryvalDeleted) [lindex $args [incr i]]		return      }      entryvalDeleted {		if { ![info exists [set boxName](entryvalDeleted)]} {			return ""		}                return [set [set boxName](entryvalDeleted)]      }      -noUpdateButton {                set [set boxName](noUpdateButton) [lindex $args [incr i]]      }      noUpdateButton {		if { ![info exists [set boxName](noUpdateButton)]} {			return 0		}                return [set [set boxName](noUpdateButton)]      }      -addCmd {                set [set boxName](addCmd) [lindex $args [incr i]]      }      addCmd {		if { ![info exists [set boxName](addCmd)]} {			return ""		}                return [set [set boxName](addCmd)]      }      -remCmd {                set [set boxName](remCmd) [lindex $args [incr i]]      }      remCmd {		if { ![info exists [set boxName](remCmd)]} {			return ""		}                return [set [set boxName](remCmd)]      }      updateButton {		if { ![info exists [set boxName](updateButton)]} {			return ""		}                return [set [set boxName](updateButton)]      }      create     {                catch {unset $boxName}      }      unset {                catch {unset $boxName}		return      }      getBoxArray {                return "[set boxName]"      }    }  }  # create one frame to hold everything  set f [frame $frame_name -class [box $frame_name class]]  if { ![info exists sysinfo(boxes)] || \	[lsearch -exact $sysinfo(boxes) $f] == -1 } {  		lappend sysinfo(boxes) $f  }  $f configure -relief ridge -borderwidth 2  frame $f.t -class CmdFrame -relief raised -borderwidth 2  frame $f.b -relief flat  frame $f.b.e -relief flat  frame $f.b.l -relief ridge -bd 4  frame $f.b.b -relief flat    label  $f.t.label -text [box $f title] -justify center  pack $f.t.label -anchor nw -side left -expand 1 -fill both  set [set boxName](titlelabel) $f.t.label## build the entry widget ## build the add button  button $f.b.e.add -text add -height 2 \	-command "boxAdd $f \"[box $f addCmd]\""  if {[string compare [box $f orient] x] == 0} {  	pack $f.b.e.add -side right -anchor c -pady 1m  } else {  	pack $f.b.e.add -side bottom -anchor c -pady 1m  }  set k 0  set packlist ""  set entrylabels [box $f entrylabels]

⌨️ 快捷键说明

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