 8051a03061
			
		
	
	8051a03061
	
	
	
		
			
			* 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
		
			
				
	
	
		
			172 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Tcl
		
	
	
	
	
	
			
		
		
	
	
			172 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Tcl
		
	
	
	
	
	
| # git-gui font chooser
 | |
| # Copyright (C) 2007 Shawn Pearce
 | |
| 
 | |
| class choose_font {
 | |
| 
 | |
| field w
 | |
| field w_family    ; # UI widget of all known family names
 | |
| field w_example   ; # Example to showcase the chosen font
 | |
| 
 | |
| field f_family    ; # Currently chosen family name
 | |
| field f_size      ; # Currently chosen point size
 | |
| 
 | |
| field v_family    ; # Name of global variable for family
 | |
| field v_size      ; # Name of global variable for size
 | |
| 
 | |
| variable all_families [list]  ; # All fonts known to Tk
 | |
| 
 | |
| constructor pick {path title a_family a_size} {
 | |
| 	variable all_families
 | |
| 	global use_ttk NS
 | |
| 
 | |
| 	set v_family $a_family
 | |
| 	set v_size $a_size
 | |
| 
 | |
| 	upvar #0 $v_family pv_family
 | |
| 	upvar #0 $v_size pv_size
 | |
| 
 | |
| 	set f_family $pv_family
 | |
| 	set f_size $pv_size
 | |
| 
 | |
| 	make_dialog top w
 | |
| 	wm withdraw $top
 | |
| 	wm title $top "[appname] ([reponame]): $title"
 | |
| 	wm geometry $top "+[winfo rootx $path]+[winfo rooty $path]"
 | |
| 
 | |
| 	${NS}::label $w.header -text $title -font font_uibold -anchor center
 | |
| 	pack $w.header -side top -fill x
 | |
| 
 | |
| 	${NS}::frame $w.buttons
 | |
| 	${NS}::button $w.buttons.select \
 | |
| 		-text [mc Select] \
 | |
| 		-default active \
 | |
| 		-command [cb _select]
 | |
| 	${NS}::button $w.buttons.cancel \
 | |
| 		-text [mc Cancel] \
 | |
| 		-command [list destroy $w]
 | |
| 	pack $w.buttons.select -side right
 | |
| 	pack $w.buttons.cancel -side right -padx 5
 | |
| 	pack $w.buttons -side bottom -fill x -pady 10 -padx 10
 | |
| 
 | |
| 	${NS}::frame $w.inner
 | |
| 
 | |
| 	${NS}::frame $w.inner.family
 | |
| 	${NS}::label $w.inner.family.l \
 | |
| 		-text [mc "Font Family"] \
 | |
| 		-anchor w
 | |
| 	set w_family $w.inner.family.v
 | |
| 	text $w_family \
 | |
| 		-background white \
 | |
| 		-foreground black \
 | |
| 		-borderwidth 1 \
 | |
| 		-relief sunken \
 | |
| 		-cursor $::cursor_ptr \
 | |
| 		-wrap none \
 | |
| 		-width 30 \
 | |
| 		-height 10 \
 | |
| 		-yscrollcommand [list $w.inner.family.sby set]
 | |
| 	rmsel_tag $w_family
 | |
| 	${NS}::scrollbar $w.inner.family.sby -command [list $w_family yview]
 | |
| 	pack $w.inner.family.l -side top -fill x
 | |
| 	pack $w.inner.family.sby -side right -fill y
 | |
| 	pack $w_family -fill both -expand 1
 | |
| 
 | |
| 	${NS}::frame $w.inner.size
 | |
| 	${NS}::label $w.inner.size.l \
 | |
| 		-text [mc "Font Size"] \
 | |
| 		-anchor w
 | |
| 	tspinbox $w.inner.size.v \
 | |
| 		-textvariable @f_size \
 | |
| 		-from 2 -to 80 -increment 1 \
 | |
| 		-width 3
 | |
| 	bind $w.inner.size.v <FocusIn> {%W selection range 0 end}
 | |
| 	pack $w.inner.size.l -fill x -side top
 | |
| 	pack $w.inner.size.v -fill x -padx 2
 | |
| 
 | |
| 	grid configure $w.inner.family $w.inner.size -sticky nsew
 | |
| 	grid rowconfigure $w.inner 0 -weight 1
 | |
| 	grid columnconfigure $w.inner 0 -weight 1
 | |
| 	pack $w.inner -fill both -expand 1 -padx 5 -pady 5
 | |
| 
 | |
| 	${NS}::frame $w.example
 | |
| 	${NS}::label $w.example.l \
 | |
| 		-text [mc "Font Example"] \
 | |
| 		-anchor w
 | |
| 	set w_example $w.example.t
 | |
| 	text $w_example \
 | |
| 		-background white \
 | |
| 		-foreground black \
 | |
| 		-borderwidth 1 \
 | |
| 		-relief sunken \
 | |
| 		-height 3 \
 | |
| 		-width 40
 | |
| 	rmsel_tag $w_example
 | |
| 	$w_example tag conf example -justify center
 | |
| 	$w_example insert end [mc "This is example text.\nIf you like this text, it can be your font."] example
 | |
| 	$w_example conf -state disabled
 | |
| 	pack $w.example.l -fill x
 | |
| 	pack $w_example -fill x
 | |
| 	pack $w.example -fill x -padx 5
 | |
| 
 | |
| 	if {$all_families eq {}} {
 | |
| 		set all_families [lsort [font families]]
 | |
| 	}
 | |
| 
 | |
| 	$w_family tag conf pick
 | |
| 	$w_family tag bind pick <Button-1> [cb _pick_family %x %y]\;break
 | |
| 	foreach f $all_families {
 | |
| 		set sel [list pick]
 | |
| 		if {$f eq $f_family} {
 | |
| 			lappend sel in_sel
 | |
| 		}
 | |
| 		$w_family insert end "$f\n" $sel
 | |
| 	}
 | |
| 	$w_family conf -state disabled
 | |
| 	_update $this
 | |
| 
 | |
| 	trace add variable @f_size write [cb _update]
 | |
| 	bind $w <Key-Escape> [list destroy $w]
 | |
| 	bind $w <Key-Return> [cb _select]\;break
 | |
| 	bind $w <Visibility> "
 | |
| 		grab $w
 | |
| 		focus $w
 | |
| 	"
 | |
| 	wm deiconify $w
 | |
| 	tkwait window $w
 | |
| }
 | |
| 
 | |
| method _select {} {
 | |
| 	upvar #0 $v_family pv_family
 | |
| 	upvar #0 $v_size pv_size
 | |
| 
 | |
| 	set pv_family $f_family
 | |
| 	set pv_size $f_size
 | |
| 
 | |
| 	destroy $w
 | |
| }
 | |
| 
 | |
| method _pick_family {x y} {
 | |
| 	variable all_families
 | |
| 
 | |
| 	set i [lindex [split [$w_family index @$x,$y] .] 0]
 | |
| 	set n [lindex $all_families [expr {$i - 1}]]
 | |
| 	if {$n ne {}} {
 | |
| 		$w_family tag remove in_sel 0.0 end
 | |
| 		$w_family tag add in_sel $i.0 [expr {$i + 1}].0
 | |
| 		set f_family $n
 | |
| 		_update $this
 | |
| 	}
 | |
| }
 | |
| 
 | |
| method _update {args} {
 | |
| 	variable all_families
 | |
| 
 | |
| 	set i [lsearch -exact $all_families $f_family]
 | |
| 	if {$i < 0} return
 | |
| 
 | |
| 	$w_example tag conf example -font [list $f_family $f_size]
 | |
| 	$w_family see [expr {$i + 1}].0
 | |
| }
 | |
| 
 | |
| }
 |