Merge branch 'gf/maint-sh-setup-nongit-ok' into maint
[gitweb.git] / git-gui / lib / error.tcl
index 13565b7ab02b22123f0b7b9000dc1f4a993994b0..c0fa69af561b7789cdcfea46b14bf6d2646f5962 100644 (file)
@@ -1,6 +1,14 @@
 # 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 {}} {
@@ -11,8 +19,8 @@ proc error_popup {msg} {
                -type ok \
                -title [append "$title: " [mc "error"]] \
                -message $msg]
-       if {[winfo ismapped .]} {
-               lappend cmd -parent .
+       if {[winfo ismapped [_error_parent]]} {
+               lappend cmd -parent [_error_parent]
        }
        eval $cmd
 }
@@ -27,19 +35,19 @@ proc warn_popup {msg} {
                -type ok \
                -title [append "$title: " [mc "warning"]] \
                -message $msg]
-       if {[winfo ismapped .]} {
-               lappend cmd -parent .
+       if {[winfo ismapped [_error_parent]]} {
+               lappend cmd -parent [_error_parent]
        }
        eval $cmd
 }
 
-proc info_popup {msg {parent .}} {
+proc info_popup {msg} {
        set title [appname]
        if {[reponame] ne {}} {
                append title " ([reponame])"
        }
        tk_messageBox \
-               -parent $parent \
+               -parent [_error_parent] \
                -icon info \
                -type ok \
                -title $title \
@@ -56,35 +64,41 @@ proc ask_popup {msg} {
                -type yesno \
                -title $title \
                -message $msg]
-       if {[winfo ismapped .]} {
-               lappend cmd -parent .
+       if {[winfo ismapped [_error_parent]]} {
+               lappend cmd -parent [_error_parent]
        }
        eval $cmd
 }
 
-proc hook_failed_popup {hook msg} {
+proc hook_failed_popup {hook msg {is_fatal 1}} {
+       global use_ttk NS
        set w .hookfail
-       toplevel $w
+       Dialog $w
+       wm withdraw $w
 
-       frame $w.m
-       label $w.m.l1 -text "$hook hook failed:" \
+       ${NS}::frame $w.m
+       ${NS}::label $w.m.l1 -text "$hook hook failed:" \
                -anchor w \
                -justify left \
                -font font_uibold
        text $w.m.t \
-               -background white -borderwidth 1 \
+               -background white \
+               -foreground black \
+               -borderwidth 1 \
                -relief sunken \
                -width 80 -height 10 \
                -font font_diff \
                -yscrollcommand [list $w.m.sby set]
-       label $w.m.l2 \
-               -text [mc "You must correct the above errors before committing."] \
-               -anchor w \
-               -justify left \
-               -font font_uibold
-       scrollbar $w.m.sby -command [list $w.m.t yview]
+       ${NS}::scrollbar $w.m.sby -command [list $w.m.t yview]
        pack $w.m.l1 -side top -fill x
-       pack $w.m.l2 -side bottom -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
@@ -92,13 +106,14 @@ proc hook_failed_popup {hook msg} {
        $w.m.t insert 1.0 $msg
        $w.m.t conf -state disabled
 
-       button $w.ok -text OK \
+       ${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 [append "[appname] ([reponame]): " [mc "error"]]
+       wm title $w [strcat "[appname] ([reponame]): " [mc "error"]]
+       wm deiconify $w
        tkwait window $w
 }