| proc TkW:debug {msg} { | |
| } | |
| proc TkW:fixme {msg} { | |
| } | |
| proc TkW:wineconf1 {} { | |
| # propmt the user for a choice of the default config file: | |
| # can be: | |
| # Existing {--> menu ~/.winerc or /etc/wineconf or custom} | |
| # autogenarated with tools/wineconf | |
| # built-in the script | |
| # test of existing is preformed first; test of existing wineconf also | |
| # | |
| set ExistEtc [TkW:ListConfig /etc/wine.conf] | |
| set ExistHome [TkW:ListConfig "~/.winerc"] | |
| TkW:AskUserConfMethod $ExistEtc $ExistHome | |
| tkwait vis .askConf | |
| while [winfo exists .askConf] {update} | |
| } | |
| proc TkW:ListConfig {fileConf} { | |
| global HOME | |
| set ExistConf 0 | |
| if [file writa $fileConf] {return 1} {return 0} | |
| } | |
| proc TkW:AskUserConfMethod {ExistEtc ExistHome} { | |
| global USER ChDefautConf DejaConf HOME OK CANCEL WAITfilename | |
| global DefaultType EtcState HomeState GiveCustomDefault Default | |
| global GetFileName GenereConf TkWBuiltConf | |
| toplevel .askConf -backgr #ffffff | |
| label .askConf.banner -text $ChDefautConf -backgr #0000ff \ | |
| -foregr #ffffff -height 2 | |
| pack .askConf.banner -side top -fill x | |
| if {$USER == "root" && $ExistEtc == 1} { | |
| set Default /etc/wine.conf | |
| } else { | |
| if {$ExistHome == 1} {set Default "~/.winerc"} \ | |
| else {set Default Custom} | |
| } | |
| if {[file writable /etc/wine.conf]} {set EtcState normal} {set EtcState disabled} | |
| if {$ExistHome == 1} {set HomeState normal} {set HomeState disabled} | |
| set DefaultType 0 | |
| frame .askConf.deja -width 200 -backgr #ffffff | |
| radiobutton .askConf.deja.rad -backgr #dddddd -text $DejaConf\ | |
| -anchor nw -value 0 -variable DefaultType \ | |
| -indicatoron 1 -relief raised -selectcolor #00ff00 | |
| pack .askConf.deja.rad -side left -padx 5 | |
| menubutton .askConf.deja.men -backgr #dddddd \ | |
| -menu .askConf.deja.men.m -width 50 -text $Default\ | |
| -relief raised | |
| menu .askConf.deja.men.m -cursor {} -tearoff 0 | |
| .askConf.deja.men.m add command \ | |
| -command { | |
| set Default "$HOME/.winerc" | |
| .askConf.deja.men configure -text $Default | |
| } -label "~/.winerc" -state $HomeState | |
| .askConf.deja.men.m add command \ | |
| -command { | |
| set Default "/etc/wine.conf" | |
| .askConf.deja.men configure -text $Default | |
| } -state $EtcState \ | |
| -label "/etc/wine.conf (System wide configuration)" | |
| .askConf.deja.men.m add command \ | |
| -command { | |
| TkW:GetFileName $GiveCustomDefault $OK $CANCEL File | |
| #set WAITfilename wait | |
| #while {$WAITfilename == "wait"} {update} | |
| if {$WAITfilename == "opt1"} { | |
| set Default $GetFileName | |
| } | |
| .askConf.deja.men configure -text $Default | |
| update | |
| } \ | |
| -label "Custom (Give your own configuration file)" | |
| pack .askConf.deja -padx 5 -pady 10 | |
| pack .askConf.deja.men | |
| label .askConf.img -image wine_half -backgr #ffffff -relief flat | |
| pack .askConf.img -side right -anchor se -padx 5 -pady 5 | |
| # Next radiobutton: tools/wineconf: | |
| frame .askConf.radio -backgr #ffffff -relief flat | |
| radiobutton .askConf.radio.generate -text $GenereConf\ | |
| -anchor nw -value 1 -variable DefaultType \ | |
| -selectcolor #00ff00 -relief raised | |
| pack .askConf.radio.generate -padx 5 -pady 5 -anchor w -fill x | |
| # Next radiobutton : TkWine Built-in | |
| radiobutton .askConf.radio.tkwbuilt -text $TkWBuiltConf\ | |
| -anchor nw -value 2 -variable DefaultType \ | |
| -selectcolor #00ff00 -relief raised | |
| pack .askConf.radio.tkwbuilt -padx 5 -pady 5 -anchor w -fill x | |
| pack .askConf.radio -padx 0 -pady 0 -anchor w | |
| # now OK or CANCEL.... | |
| frame .askConf.buttons -backgr #ffffff -relief flat -height 25 | |
| button .askConf.buttons.ok -width 8 -text $OK -command { | |
| destroy .askConf | |
| TkW:CallWineConf | |
| } | |
| button .askConf.buttons.cancel -width 8 -text $CANCEL -command { | |
| destroy .askConf | |
| } | |
| pack .askConf.buttons.ok -side left -padx 25 -pady 5 | |
| pack .askConf.buttons.cancel -side left -padx 5 -pady 5 | |
| pack .askConf.buttons -anchor w -padx 5 | |
| } | |
| proc TkW:CallWineConf {} { | |
| global Default DefaultType TKW | |
| switch $DefaultType { | |
| 0 {TkW:wineconf $Default} | |
| 1 { | |
| set FoundWineConf 0 | |
| set FoundWineConf [TkW:autoconf /tmp/auto_generated_wineconf] | |
| while {$FoundWineConf == 0} update | |
| TkW:wineconf /tmp/auto_generated_wineconf | |
| } | |
| 2 {TkW:wineconf $TKW/setupfiles/wine.ini} | |
| } | |
| } | |
| proc TkW:GenereTmpConf {wineconfTool} { | |
| global specialwhere | |
| set wherearewe ConfTool | |
| set Pipe [open "| $wineconfTool " r+] | |
| exec rm -f /tmp/auto_generated_wineconf | |
| set TmpConf [open /tmp/auto_generated_wineconf w] | |
| while {![eof $Pipe]} { | |
| gets $Pipe line | |
| puts $TmpConf $line | |
| } | |
| close $TmpConf | |
| set specialwhere CloseWineAutoConf | |
| close $Pipe | |
| } |