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

📄 xgsetup.tcl

📁 xgrafix 是PTSG模拟程序中的图形截面库 改版本是最新版本
💻 TCL
📖 第 1 页 / 共 3 页
字号:
source [info library]/init.tclsource $tk_library/tk.tclsource $XGrafixPath/xginit.tclsource $XGrafixPath/xgdialogs.tclset tcl_interactive 0proc Run { } \{	global WasRunning		if { $WasRunning == 0 } {		set WasRunning 1		C_Run		.lbframe.run configure -text Stop	} else {		set WasRunning 0		C_Stop		.lbframe.run configure -text Run	}}proc InitMainMenu { WasInputFileGiven File } \{	global time	global WaitVariable	global XGrafixIcon	global defaultMainMenuX	global defaultMainMenuY	global defaultMainMenuWidth	global WasRunning	global InputFile        append WinTitle "Control Panel"        wm title . $WinTitle        wm iconbitmap . $XGrafixIcon	set InputFile $File	#########################	# The Label and Buttons		frame .lbframe        frame .lbframe.inputf        label .lbframe.inputf.label1 -text  [expr {([string length $InputFile] < 17) ? "" : "..."}] -anchor e -width [expr {([string length $InputFile] < 17) ? 0 : 3}]label .lbframe.inputf.label2 -text $InputFile -anchor e -width [expr {([string length $InputFile] < 17) ? [string length $InputFile] : 17}]        pack .lbframe.inputf.label1 .lbframe.inputf.label2 -side left	frame .lbframe.lframe -relief ridge -bd 2	label .lbframe.lframe.label1 -text "Time =" -width 5 \		-anchor w	label .lbframe.lframe.label2 -textvariable time -width 14 \		-anchor w	pack .lbframe.lframe.label1 .lbframe.lframe.label2 -side left	button .lbframe.diags -padx 0 -pady 0 -highlightthickness 0 -text "Close Diagnostics" \		-command { PopupDiagWin }	button .lbframe.run -padx 0 -pady 0 -highlightthickness 0 -text Run -command { Run }	button .lbframe.step -padx 0 -pady 0 -highlightthickness 0 -text Step -command { C_Step }	button .lbframe.save -padx 0 -pady 0 -highlightthickness 0 -text Save -command { PopupSave }	button .lbframe.quit -padx 0 -pady 0 -highlightthickness 0 -text Quit -command { PopupQuit }	button .lbframe.special -padx 0 -pady 0 -highlightthickness 0 -text Special -command { C_Special }	pack .lbframe.inputf .lbframe.lframe .lbframe.diags .lbframe.run \		.lbframe.step .lbframe.save -fill both \		-expand true -ipady 3	if { $WasInputFileGiven == 1 } {		button .lbframe.view -padx 0 -pady 0 -highlightthickness 0 -text "Open Input File" -command \			{ ViewInputFile }		pack .lbframe.view -fill both -expand true -ipady 3	}	pack .lbframe.quit -fill both -side bottom -expand true -ipady 3	pack .lbframe -side left -fill y	CreateRescaleDialog 3D	CreateRescaleDialog 2D	CreatePrintDialog	Create3dDialog	CreateSaveDialog	CreateQuitDialog	CreateListBox $defaultMainMenuX $defaultMainMenuY	bind . <Enter> { focus .list.top.entry; break}}proc ViewInputFile { } \{	global InputFile	global InputFileCreated	global WasRunning	if { $InputFileCreated == 0 } {		if { $WasRunning == 1 } {			C_Stop		}		CreateInputFileDialog		.lbframe.view configure -text "Close Input File"		update idletasks		if { $WasRunning == 1 } {			C_Run		}	} else {		if { [ wm state .inputfile ] == "withdrawn" } {			wm deiconify .inputfile			raise .inputfile			.lbframe.view configure -text "Close Input File"		} else {			wm withdraw .inputfile			.lbframe.view configure -text "Open Input File"		}	}}proc ScrollProc args  \{     #C_printf $args     #C_printf [llength $args]     if { [llength $args] == "3" } {         set a [ lindex $args 0 ]         set b [ lindex $args 1 ]         set c [ lindex $args 2 ]	 #C_printf $a	 #C_printf $b	 #C_printf $c	 .list.lframe.openbox yview $a $b $c         .list.lframe.listbox yview $a $b $c     } else {         set a [ lindex $args 0 ]         set b [ lindex $args 1 ]         #C_printf $a	 #C_printf $b	 .list.lframe.openbox yview $a $b         .list.lframe.listbox yview $a $b     } }proc EntryKeyPressProc { key1 key2 } \{	switch $key1 {	"Return" 	{ .list.buttons.open invoke ; return }	"Up"            { ListboxScroll single up ; return }	"Down"          { ListboxScroll single down ; return }"Prior" { ListboxScroll page prior ; return }"Next" { ListboxScroll page next ; return }	"Shift_L"	-	"Shift_R"	-	"Control_L"	-	"Control_R"	-	"Escape"	-	"Tab"		{ return }	"Left"		{ .list.top.entry icursor [expr [.list.top.entry \				index insert] - 1] 			   return }	"Right"		{ .list.top.entry icursor [expr [.list.top.entry \				index insert] + 1]			  return }	"Delete" 	-	"BackSpace"	{ .list.top.entry delete [expr [.list.top.entry \				index insert] - 1]			  ListboxSearch			  return }	}#	.list.top.entry insert index $key2	.list.top.entry insert insert $key2        ListboxSearch}############################### The listbox of diagnostics proc CreateListBox { WinPosX WinPosY } {	global XGrafixIcon	toplevel .list	wm title .list Diagnostics	wm minsize .list 0 0	wm iconbitmap .list $XGrafixIcon	####################	# The search entry  	frame .list.top -relief raised -bd 2	label .list.top.label -text Search:	entry .list.top.entry -highlightthickness 0 -relief sunken -textvariable SearchVar	pack .list.top.label -side left -pady 3	pack .list.top.entry -side right -fill x -expand true -pady 3	pack .list.top -fill both		focus .list.top.entry	bind .list.top.entry <KeyPress> { EntryKeyPressProc %K %A; break }	#bind .list.top.entry <KeyPress> { ListboxSearch }	bind .list.top.entry <Control-KeyPress> { 		EntryControlProc %W %K 		if { "%K" == "d" } {			ListboxSearch		}; break	}	#############################	# The listbox and scrollbar	frame .list.lframe##	listbox .list.lframe.openbox -highlightthickness 0 -relief raised -yscroll { .list.lframe.scroll set } -geometry 2x10        #listbox .list.lframe.openbox -highlightthickness 0 -relief raised -yscroll { .list.lframe.scroll set } -width 2 -height 10        listbox .list.lframe.openbox -highlightthickness 0 -relief raised -width 2 -height 10	#bind .list.lframe.openbox <1> { }	#bind .list.lframe.openbox <B1-Motion> { }	#bind .list.lframe.openbox <B2-Motion> { }		listbox .list.lframe.listbox -selectmode extended -highlightthickness 0 -relief raised -yscroll { .list.lframe.scroll set }	#bind .list.lframe.listbox <B2-Motion> { }	scrollbar .list.lframe.scroll -highlightthickness 0 -relief raised \ -command { ScrollProc }        bind .list.lframe.scroll <B1-Motion> { tkScrollDragCuston %W %x %y; break}        bind .list.lframe.scroll <B2-Motion> { tkScrollDragCuston %W %x %y; break}	bind .list.lframe.scroll <Home> { break }	bind .list.lframe.scroll  <End> { break }	pack .list.lframe.openbox -side left -fill y	pack .list.lframe.listbox -side left -fill both -expand true	pack .list.lframe.scroll -side right -fill y	pack .list.lframe -fill both -expand true	frame .list.buttons -relief raised -bd 2	#################################	# The open and closeall buttons	button .list.buttons.open -padx 0 -pady 0 -highlightthickness 0 -text "Open" -command { PopupDiag }	button .list.buttons.closeall -padx 0 -pady 0 -highlightthickness 0 -text "Close All" \		-command { CloseAllDiags }	pack .list.buttons.closeall .list.buttons.open -side right -padx 3 \		-pady 3 -ipadx 3	pack .list.buttons -fill x	bind .list.lframe.listbox <Double-1> { PopupDiag; break }	bind .list.lframe.listbox <3> [bind Listbox <1>]	bind .list.lframe.listbox <Double-3> { CloseDiag; break }	bind .list.lframe.listbox <Shift-1> { }	bind .list <Enter> { focus .list.top.entry; break }}proc ListboxScroll { type direction } \{	set scrollUnits [ .list.lframe.scroll get ]	set totalUnits [ lindex $scrollUnits 0 ]	set windowUnits [ lindex $scrollUnits 1 ]	set firstUnit [ lindex $scrollUnits 2 ]	set lastUnit [ lindex $scrollUnits 3 ]	#if { [ .list.lframe.listbox curselection ] == "" } {	#	.list.lframe.listbox select adjust 0	#}	if {$type == "single"} {		set increment 1	} else {		set increment $windowUnits	}	switch $direction {	"down" { .list.lframe.listbox selection clear 0 [.list.lframe.listbox size]	        .list.lframe.listbox activate [expr \		[.list.lframe.listbox index active] + $increment] 	        .list.lframe.listbox selection set active	        .list.lframe.listbox yview active 		.list.lframe.openbox yview [.list.lframe.listbox index active]}	"up" { .list.lframe.listbox selection clear 0 [.list.lframe.listbox size] 		.list.lframe.listbox activate [expr \		[.list.lframe.listbox index active] -  $increment]                .list.lframe.listbox selection set active		.list.lframe.listbox yview active		.list.lframe.openbox yview [.list.lframe.listbox index active]}	"prior" {.list.lframe.listbox yview moveto [expr [ expr 2*[ lindex [ \		.list.lframe.listbox yview] 0] ] - [ lindex [ \		.list.lframe.listbox yview] 1] ] 	        .list.lframe.openbox yview moveto [expr [ expr 2*[ lindex [ \		.list.lframe.openbox yview] 0] ] - [ lindex [ \		.list.lframe.openbox yview] 1] ] }	"next" { .list.lframe.listbox yview moveto [ lindex [ \		.list.lframe.listbox yview] 1] 	        .list.lframe.openbox yview moveto [ lindex [ \		.list.lframe.openbox yview] 1] }    }}proc ListboxSearch { } \{	global SearchVar#C_printf [.list.lframe.listbox curselection]#foreach index [.list.lframe.listbox curselection] {#    .list.lframe.listbox selection clear  $index#}	for {set index 0} {$index < [.list.lframe.listbox size]} {incr index} {		if { [string match $SearchVar* [.list.lframe.listbox get $index]] == 1 } {			foreach index2 [.list.lframe.listbox curselection] {			    .list.lframe.listbox selection clear  $index2			}			# changed "from" to "set" below  --- djc for tk4		        # .list.lframe.listbox select clear end		        .list.lframe.listbox select set $index			.list.lframe.listbox yview $index			.list.lframe.openbox yview $index			return		}	}}####################################################### Sets up data structure for each diagnostics windowproc SetupWindow { WinName State WinPosULX WinPosULY \	WinType xMin xMax xAuto yMin yMax yAuto zMin zMax zAuto \	PSFile theta phi shading color grid xlog ylog zlog DumpFile xlabel \	ylabel } \{	global WinData	global SaveFile	global default3DHeight	global default3DWidth	global defaultVectorHeight	global defaultVectorWidth	global defaultWinHeight	global defaultWinWidth	global TwoD	global ThreeD	global VectorD	global openWindowsList	switch $WinType \	$TwoD { set WinWidth $defaultWinWidth		set WinHeight $defaultWinHeight } \	$ThreeD { set WinWidth $default3DWidth		  set WinHeight $default3DHeight } \	$VectorD { set WinWidth $defaultVectorWidth		   set WinHeight $defaultVectorHeight }	append Window . [string tolower $WinName]	append Geometry $WinWidth x $WinHeight + $WinPosULX + $WinPosULY	set WinData($Window,geometry) $Geometry	set WinData($Window,type) $WinType	set WinData($Window,title) $WinName	set WinData($Window,open) 0	set WinData($Window,xMin) $xMin	set WinData($Window,xMax) $xMax	set WinData($Window,xAuto) $xAuto	set WinData($Window,xLinLog) $xlog		  	set WinData($Window,yMin) $yMin	set WinData($Window,yMax) $yMax	set WinData($Window,yAuto) $yAuto	set WinData($Window,yLinLog) $ylog		  	set WinData($Window,zMin) $zMin	set WinData($Window,zMax) $zMax	set WinData($Window,zAuto) $zAuto	set WinData($Window,zLinLog) $zlog		  	set WinData($Window,origxMin) $xMin	set WinData($Window,origxMax) $xMax	set WinData($Window,origxAuto) $xAuto	set WinData($Window,origxLinLog) $xlog		  	set WinData($Window,origyMin) $yMin	set WinData($Window,origyMax) $yMax	set WinData($Window,origyAuto) $yAuto	set WinData($Window,origyLinLog) $ylog		  	set WinData($Window,origzMin) $zMin	set WinData($Window,origzMax) $zMax	set WinData($Window,origzAuto) $zAuto	set WinData($Window,origzLinLog) $zlog		  	set WinData($Window,trace) 0	set WinData($Window,PSFile) $PSFile	set WinData($Window,plot_title) $WinName	set WinData($Window,printType) eps	set WinData($Window,printMode) overwrite	set WinData($Window,printLimit) 0	set WinData($Window,printPeriod) 0	set WinData($Window,printNumber) 1	set WinData($Window,printSetStep) 0	set WinData($Window,xCoord) 0	set WinData($Window,yCoord) 0	set WinData($Window,theta) $theta	set WinData($Window,phi) $phi	set WinData($Window,shading) $shading

⌨️ 快捷键说明

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