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

📄 button.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.################################################################################ buildCmdButtons: creates a row or column of command buttons on 'frame_name' #	following the arrangement specified in 'cmdbutton_list'.## INPUT FORMATS:#	'cmdbutton_list' - #		{ {group1_button1_name group1_button1_label group1_button1_assoc}#		  {group1_button2_name group1_button2_label group1_button1_assoc}#		   . . . }#		{ {group2_button1_name group2_button1_label group2_button1_assoc}#		  {group2_button2_name group2_button2_label group2_button1_assoc}#		   . . . }#		}#		#	'orient' - how the group of cmd buttons are to be arranged: x (lie in#		a horizontal line), y (line in a vertical line), xy (row of columned#		buttons).#	'spacing' - amount of spacing between groups of checkbuttons (in Get_Pixels#		    format).#       'button_width'      - the width of a command button (in Get_Pixels format)#        'button_height'     - the height of a command button(in Get_Pixels format)# OPTIONS:#        'first_group_spacing' - an optional boolean value that says to put#                             a button spacing before the 1st group of buttons#	'spread_out_buttons' - if 1 (true), then the buttons will be spread out#                            in the frame#	'group_spacing'	   - spacing between groups of cmd buttons.#	'cmdbutton_labelstr' - if the entire groups of cmdbuttons are to be given one#		 label string.###############################################################################proc buildCmdButtons {frame_name cmdbutton_list orient spacing button_width\                      button_height {first_group_spacing 0} \                      {spread_out_buttons 1} {group_spacing "10m"} \		      {cmdButton_labelstr ""} {place_buttonAssoc_right 1} \		      {place_labelstr_top 0} {button_assoc_groove_relief 0} } {  global canvas  set procname "buildCmdboxes"## Let's be defensive about the input  if { ![regexp "\\." $frame_name] || \        ([string compare $orient "x"] != 0 &&   \         [string compare $orient "y"] != 0 &&   \         [string compare $orient "xy"] != 0) || \	 ![regexp "\[0-9]+" $button_width]  ||  \	 ![regexp "\[0-9]+" $button_height] } {        puts "Error $BADPARAM in \{$procname $frame_name\}: $errmsg(BADPARAM)"        exit $BADPARAM  }    if { [string compare $frame_name "."] == 0 } {       set frame_name ""	  }  if { [string compare $cmdButton_labelstr ""] != 0 } {    message $frame_name.clabel -text $cmdButton_labelstr \            -aspect 1000    pack $frame_name.clabel -side top -anchor nw  }  if {$spread_out_buttons} {    pack forget $frame_name    pack $frame_name -fill both -expand 1 -ipadx 5m -ipady 5m  }  set i 1  set allButtonsList ""  foreach group [lrange $cmdbutton_list 0 end] {    frame $frame_name.$i -class Plain    set buttonList ""    foreach button_entry $group {      set buttonName  [lindex $button_entry 0]      set buttonLabel [lindex $button_entry 1]      set buttonAssoc [lindex $button_entry 2]      if {[string compare $buttonAssoc ""] != 0} {         if {$button_assoc_groove_relief} {  	  frame $frame_name.$i.f$buttonName -relief groove -borderwidth 2 -bg blue        } else {	  frame $frame_name.$i.f$buttonName -class Plain        }        button $frame_name.$i.f$buttonName.$buttonName -anchor nw \		    -text $buttonLabel -width $button_width \		    -relief raised -borderwidth 2 \		    -height $button_height -padx 1 -pady 1	if {$place_buttonAssoc_right} {	  pack $frame_name.$i.f$buttonName.$buttonName -side left -anchor nw \		-side left -anchor nw -fill x	} else {	  pack $frame_name.$i.f$buttonName.$buttonName -side top -anchor nw \		-side top -anchor nw -fill y	}        pack forget $buttonAssoc	if { $place_buttonAssoc_right } {          pack $buttonAssoc -in $frame_name.$i.f$buttonName -side right \		-anchor nw -fill x        } else {          pack $buttonAssoc -in $frame_name.$i.f$buttonName -side bottom \		-anchor nw -fill y        }        raise $buttonAssoc $frame_name.$i.f$buttonName        append buttonList " " $frame_name.$i.f$buttonName        append allButtonsList " " $frame_name.$i.f$buttonName.$buttonName      } else {		button $frame_name.$i.$buttonName -anchor c \                  -text $buttonLabel -width $button_width \		  -relief raised -borderwidth 2 \		  -height $button_height -padx 1 -pady 1	append buttonList " " $frame_name.$i.$buttonName	append allButtonsList " " $frame_name.$i.$buttonName      }	    }    if { [string compare $orient "y"] == 0 } {  	eval pack "$buttonList" -side top -anchor nw -pady $spacing    } else {	eval pack "$buttonList" -side left -anchor c -padx $spacing -expand 1    }    if {$i == 1 && $first_group_spacing} {   ;# put an extra spacing before 1st      label $frame_name.empty$i -width $button_width -height $button_height \	    -padx 1 -pady 1      if { [string compare $orient "x"] == 0 } {	if {$spread_out_buttons} {          eval pack "$frame_name.empty$i $frame_name.$i" -anchor c \	            -expand 1 -fill both        } else {          eval pack "$frame_name.empty$i $frame_name.$i" -anchor c         }      } else {	if {$spread_out_buttons} {          eval pack "$frame_name.empty$i $frame_name.$i" -side top -anchor c \		-fill both -expand 1	} else {          eval pack "$frame_name.empty$i $frame_name.$i" -side top -anchor c	}      }    } elseif { [expr $i % 2] == 0 } {	   ;# space even number buttons      if { [string compare $orient "x"] == 0 } {	if {$spread_out_buttons} {          eval pack "$frame_name.$i" -padx $group_spacing  -side left -anchor c \	             -fill both -expand 1        } else {          eval pack "$frame_name.$i" -padx $group_spacing -side left -anchor c        }      } else {	if {$spread_out_buttons} {          eval pack "$frame_name.$i" -pady $group_spacing -side top -anchor c \	            -fill both -expand 1	} else {          eval pack "$frame_name.$i" -pady $group_spacing -side top -anchor c        }      }    } else {      if { [string compare $orient "x"] == 0 } {	if {$spread_out_buttons} {          eval pack "$frame_name.$i" -side left -anchor c -fill both -expand 1	} else {          eval pack "$frame_name.$i" -side left -anchor c	}      } else {	if {$spread_out_buttons} {          eval pack "$frame_name.$i" -side top -anchor c -fill both -expand 1        } else {          eval pack "$frame_name.$i" -side top -anchor c        }      }    }    incr i  }  if {[string compare $cmdButton_labelstr ""] != 0} {    return [concat $frame_name $allButtonsList $frame_name.clabel]  } else {    return [concat $frame_name $allButtonsList]  }}# disable_button: disables a command button.proc disable_button button_name {  global sysinfo  set state [lindex [$button_name configure -state] 4]  if {[string compare $state "disabled"] == 0} {    return		;# ignore if already disabled  }  $button_name configure -state disabled}# enable_button: enables a command button.proc enable_button button_name {  $button_name configure -state normal}

⌨️ 快捷键说明

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