# # Copyright 2003 (c) Pointwise, Inc. # All rights reserved. # # This sample Gridgen script is not supported by Pointwise, Inc. # It is provided freely for demonstration purposes only. # SEE THE WARRANTY DISCLAIMER AT THE BOTTOM OF THIS FILE. # gg::tkLoad catch { set scriptDir [file dirname [info script]] source [file join $scriptDir pwiLogo.glf] } proc makeWindow { } { global gui label .title -text "Quick Glyph Script" set font [.title cget -font] .title configure -font [font create -family [font actual $font -family] -weight bold] pack .title -expand 1 -side top pack [frame .hr1 -relief sunken -height 2 -bd 1] -side top -padx 2 -fill x -pady 1 pack [frame .inputs] -fill x -padx 2 pack [frame .buttons] -fill x -padx 2 -pady 2 -side bottom pack [button .buttons.cancel -text "Quit" -command {saveScriptVar; exit }] -side right -padx 2 pack [button .buttons.ok -text "Execute Script" -command {runScript}] -side right -padx 2 pack [button .buttons.clear -text "Clear" -command {clearText}] -side right -padx 2 if {![catch {pwiLogoCreate .buttons.logo 1} b]} { $b configure -bd 0 -relief flat pack $b -side left -padx 5 -fill y } set f [frame .top] pack $f -side top -padx 2 -pady 1 -fill both -expand 1 set sbar [scrollbar $f.sbar -command "$f.t yview" ] pack $sbar -side right -fill y -expand 0 set gui(text) [text $f.t -width 80 -height 25 \ -font {courier 8} -yscrollcommand "$sbar set" ] pack $gui(text) -side left -fill both -expand 1 focus $gui(text) loadScriptVar } ###################################################################### ## PROC: ErrorMsg ## Error popup message ###################################################################### proc ErrorMsg {msg {title "Error"}} { global dialog_win tk_messageBox -message "$msg" -type ok -icon error -title $title if { [info exists dialog_win] } { after 20 {RaiseWin $dialog_win} } } ###################################################################### ## PROC: runScript ## Run the contents of the script text widget ###################################################################### proc runScript {} { global gui set script [$gui(text) get 0.1 end] if {[string length $script] > 0 } { if [catch {uplevel #0 $script} msg] { ErrorMsg $msg } } } ###################################################################### ## PROC: clearText ## Clear the contents of the script text widget ###################################################################### proc clearText {} { global gui $gui(text) delete 0.1 end } set scriptVarName "_quickScript" proc saveScriptVar {} { global gui scriptVarName set script [$gui(text) get 0.1 end] set script [string trim $script] gg::varSet $scriptVarName $script } proc loadScriptVar {} { global gui scriptVarName global $scriptVarName if {![info exists $scriptVarName]} { return } set script [set $scriptVarName] set script [string trim $script] if {[string length $script] > 0 } { clearText $gui(text) insert end $script } } makeWindow ::tk::PlaceWindow . widget wm protocol . WM_DELETE_WINDOW "saveScriptVar; destroy ." gg::tkLoop # # DISCLAIMER: # TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, POINTWISE DISCLAIMS # ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED # TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR # PURPOSE, WITH REGARD TO THIS SCRIPT. TO THE MAXIMUM EXTENT PERMITTED # BY APPLICABLE LAW, IN NO EVENT SHALL POINTWISE BE LIABLE TO ANY PARTY # FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES # WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF # BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE # USE OF OR INABILITY TO USE THIS SCRIPT EVEN IF POINTWISE HAS BEEN # ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND REGARDLESS OF THE # FAULT OR NEGLIGENCE OF POINTWISE. #