summaryrefslogtreecommitdiff
path: root/git-gui/lib/error.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'git-gui/lib/error.tcl')
-rw-r--r--git-gui/lib/error.tcl119
1 files changed, 119 insertions, 0 deletions
diff --git a/git-gui/lib/error.tcl b/git-gui/lib/error.tcl
new file mode 100644
index 0000000..c0fa69a
--- /dev/null
+++ b/git-gui/lib/error.tcl
@@ -0,0 +1,119 @@
+# 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}} {
+ global use_ttk NS
+ set w .hookfail
+ Dialog $w
+ wm withdraw $w
+
+ ${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 \
+ -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 [strcat "[appname] ([reponame]): " [mc "error"]]
+ wm deiconify $w
+ tkwait window $w
+}