# 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 [mc "%s: error" $title] \ -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 [mc "%s: warning" $title] \ -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}} { global use_ttk NS set w .hookfail Dialog $w wm withdraw $w ${NS}::frame $w.m ${NS}::label $w.m.l1 -text [mc "%s hook failed:" $hook] \ -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] ${NS}::scrollbar $w.m.sby -command [list $w.m.t yview] pack $w.m.l1 -side top -fill x if {$is_fatal} { ${NS}::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 ${NS}::button $w.ok -text OK \ -width 15 \ -command "destroy $w" pack $w.ok -side bottom -anchor e -pady 10 -padx 10 bind $w <Visibility> "grab $w; focus $w" bind $w <Key-Return> "destroy $w" wm title $w [mc "%s (%s): error" [appname] [reponame]] wm deiconify $w tkwait window $w }