about summary refs log tree commit diff
path: root/third_party/git/git-gui/lib/error.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/git-gui/lib/error.tcl')
-rw-r--r--third_party/git/git-gui/lib/error.tcl119
1 files changed, 119 insertions, 0 deletions
diff --git a/third_party/git/git-gui/lib/error.tcl b/third_party/git/git-gui/lib/error.tcl
new file mode 100644
index 000000000000..8968a57f33e3
--- /dev/null
+++ b/third_party/git/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 [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
+}