git/git-gui/lib/error.tcl
Junio C Hamano 8051a03061 Merge git://repo.or.cz/git-gui
* git://repo.or.cz/git-gui:
  git-gui: update french translation
  git-gui: update Japanese translation
  git-gui: fix shortcut for menu "Commit/Revert Changes"
  git-gui: Quote git path when starting another gui in a submodule
  git-gui: update Italian translation
  git-gui: Update Swedish translation (520t0f0u)
  git-gui: use themed tk widgets with Tk 8.5
  git-gui: Update German translation (12 new or changed strings).
  git-gui: Update translation template
  git-gui: Remove unused icon file_parttick
  git-gui: use different icon for new and modified files in the index
  git-gui: set GIT_DIR and GIT_WORK_TREE after setup
  git-gui: update shortcut tools to use _gitworktree
  git-gui: handle bare repos correctly
  git-gui: handle non-standard worktree locations
  git-gui: Support applying a range of changes at once
  git-gui: Add a special diff popup menu for submodules
  git-gui: Use git diff --submodule when available
2010-02-07 15:52:28 -08:00

120 lines
2.5 KiB
Tcl

# 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
}