# git-gui branch (create/delete) support # Copyright (C) 2006, 2007 Shawn Pearce proc _error_parent {} { set p [grab current .] if {$p eq {}} { return . } return $p } proc error_popup {msg} { set title [appname] if {[reponame] ne {}} { append title " ([reponame])" } set cmd [list tk_messageBox \ -icon error \ -type ok \ -title [append "$title: " [mc "error"]] \ -message $msg] if {[winfo ismapped [_error_parent]]} { lappend cmd -parent [_error_parent] } eval $cmd } proc warn_popup {msg} { set title [appname] if {[reponame] ne {}} { append title " ([reponame])" } set cmd [list tk_messageBox \ -icon warning \ -type ok \ -title [append "$title: " [mc "warning"]] \ -message $msg] if {[winfo ismapped [_error_parent]]} { lappend cmd -parent [_error_parent] } eval $cmd } proc info_popup {msg} { set title [appname] if {[reponame] ne {}} { append title " ([reponame])" } tk_messageBox \ -parent [_error_parent] \ -icon info \ -type ok \ -title $title \ -message $msg } proc ask_popup {msg} { set title [appname] if {[reponame] ne {}} { append title " ([reponame])" } set cmd [list tk_messageBox \ -icon question \ -type yesno \ -title $title \ -message $msg] if {[winfo ismapped [_error_parent]]} { lappend cmd -parent [_error_parent] } eval $cmd } proc hook_failed_popup {hook msg {is_fatal 1}} { set w .hookfail toplevel $w frame $w.m label $w.m.l1 -text "$hook hook failed:" \ -anchor w \ -justify left \ -font font_uibold text $w.m.t \ -background white \ -foreground black \ -borderwidth 1 \ -relief sunken \ -width 80 -height 10 \ -font font_diff \ -yscrollcommand [list $w.m.sby set] scrollbar $w.m.sby -command [list $w.m.t yview] pack $w.m.l1 -side top -fill x if {$is_fatal} { label $w.m.l2 \ -text [mc "You must correct the above errors before committing."] \ -anchor w \ -justify left \ -font font_uibold pack $w.m.l2 -side bottom -fill x } pack $w.m.sby -side right -fill y pack $w.m.t -side left -fill both -expand 1 pack $w.m -side top -fill both -expand 1 -padx 5 -pady 10 $w.m.t insert 1.0 $msg $w.m.t conf -state disabled button $w.ok -text OK \ -width 15 \ -command "destroy $w" pack $w.ok -side bottom -anchor e -pady 10 -padx 10 bind $w "grab $w; focus $w" bind $w "destroy $w" wm title $w [strcat "[appname] ([reponame]): " [mc "error"]] tkwait window $w }