Posted to tcl by emiliano at Tue Jul 14 19:35:43 GMT 2009view pretty

Index: library/iconlist.tcl
===================================================================
RCS file: /cvsroot/tktoolkit/tk/library/iconlist.tcl,v
retrieving revision 1.2
diff -u -r1.2 iconlist.tcl
--- library/iconlist.tcl	16 Feb 2009 00:57:26 -0000	1.2
+++ library/iconlist.tcl	14 Jul 2009 19:31:00 -0000
@@ -443,7 +443,9 @@
     #
     method Create {} {
 	ttk::frame $w
-	set hull [ttk::entry $w.cHull -takefocus 0]
+	set hull [ttk::frame $w.cHull -style TEntry -takefocus 0]
+	bind $hull <FocusIn>  {%W state focus}
+	bind $hull <FocusOut> {%W state !focus}
 	set sbar [ttk::scrollbar $w.cHull.sbar -orient horizontal -takefocus 0]
 	catch {$sbar configure -highlightthickness 0}
 	set canvas [canvas $w.cHull.canvas -highlightthick 0 -takefocus 1 \
Index: library/tkfbox.tcl
===================================================================
RCS file: /cvsroot/tktoolkit/tk/library/tkfbox.tcl,v
retrieving revision 1.74
diff -u -r1.74 tkfbox.tcl
--- library/tkfbox.tcl	14 Apr 2009 18:09:50 -0000	1.74
+++ library/tkfbox.tcl	14 Jul 2009 19:31:02 -0000
@@ -83,6 +83,29 @@
 	    KDHGfDZNcz2SZIx547/0BVRRX7n8uT/sAAAAAElFTkSuQmCC
 	}]
     }
+    if {![info exists ::tk::Priv(homeImage)]} {
+	set ::tk::Priv(homeImage)   [image create photo -data {
+        iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QA/wD/AP+gva
+        eTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH1QoOFCMCb8BVTwAAAyVJREFU
+        OMullcFvG0UUh7+Z7Dq1G+NtnEBdRG0hVTSiqkAoNFIvHCCgKmotWVUiCMpf4FO1FQ
+        KVf2CFVEgFJyCIHIKg0jpSLz330AMHGkI5EEEPkRM1iZ1CXLvx7gyHXa/WTZ1E6kij
+        3Z2Z9703v3lvVnCINg85oBp+vjkNv/G8bR7emge9Y9t6x7b1POjQ0b5NHAQFfi3adt
+        e46zgAJ6ZhrZetPAz00Z070XhtcZHQUXW/yOVB0Na9ewxks13zh4GL/aDeygrSMJCF
+        Qmf7FG2bzUoFKQSDFy/2lEX2gupqFZlOR9A/Jy6w+uEUruMwdOkSntb7Ri5i0Gngx6
+        Jto+v1YPLYMVzHofHxR2ycfo2XXjzOqfo2q1evUrRt1isVEj0ij4N10bah2YTdXchk
+        cB2HJ/YV/n35BCMjr5NKJmm1WqTW1nkwMxPAXZeElBF8OmQaIfRIx4FuNhGDg7iOg/
+        7CQWazvJEvkM/ng3kNu6+cxLx1i4VSialymXXX3XN4RvhMRdqE0L7vv8UzTM6fG8Oy
+        rMhAaw2AZVlk795lYWyMqXL54HS7fvMX/LnvaBsGo6NvMzAwgO/7Xb3dbuP7Pv3ZLO
+        P377MwOxtPANml8e2zZ2ceLi3NnVv5i08/+2RPBDe++hqlFNe/nEWLPrTXQhhH0P4T
+        Pr92jUo6zdCZM+UPlpdvxKVgfGnph8uTpbkLg0ExjIycRgiBEIFv3/fRWqOFpK8wjr
+        eyiMi/h35wG601lckShZOvfsPy8rOl6GiYSCQwTRPDMDBNE6VUBK9u7QDw+9+b+L6K
+        bBzH0c/S2IiDpZRIKUnIVQxRQymFUgqPBH/8swXAw/pjPNEf2RBkl4hL0QccjYM7Ei
+        hyNFsBNJfL8c75Ud5PHkXq47wrTTbWiIOzBAXiGaEHoxcY+kkmQSkFwKP6JmJ7q/tS
+        qtX2VLIRG5AdbS3LIpPJIJAEfMHw8DCNRoOJiYk9GZNKRWXQAHQHKEIp0pcnS7Xn+d
+        v8/NNNE/DioXfk6A8P4IVQryEgGc754dqd8L0NbAP/ARvA49iarvtYPCWLAMzYrogZ
+        6rD7YddPR/8/aWZWKFzoJj8AAAAASUVORK5CYII=
+    }]
+    }
 }
 
 # ::tk::dialog::file:: --
@@ -121,6 +144,7 @@
 	set data(dirMenuBtn) $w.contents.f1.menu
 	set data(dirMenu) $w.contents.f1.menu.menu
 	set data(upBtn) $w.contents.f1.up
+	set data(homeBtn) $w.contents.f1.home
 	set data(icons) $w.contents.icons
 	set data(ent) $w.contents.f2.ent
 	set data(typeMenuLab) $w.contents.f2.lab2
@@ -348,10 +372,13 @@
     $data(dirMenu) add radiobutton -label "" -variable \
 	    [format %s(selectPath) ::tk::dialog::file::$dataName]
     set data(upBtn) [ttk::button $f1.up]
-    $data(upBtn) configure -image $Priv(updirImage)
+    $data(upBtn) configure -image $Priv(updirImage) -default disabled
+    set data(homeBtn) [ttk::button $f1.home]
+    $data(homeBtn) configure -image $Priv(homeImage) -default disabled
 
     $f1.menu configure -takefocus 1;# -highlightthickness 2
 
+    pack $data(homeBtn) -side right -padx 4 -fill both
     pack $data(upBtn) -side right -padx 4 -fill both
     pack $f1.lab -side left -padx 4 -fill both
     pack $f1.menu -expand yes -fill both -padx 4
@@ -453,6 +480,7 @@
 
     wm protocol $w WM_DELETE_WINDOW [list ::tk::dialog::file::CancelCmd $w]
     $data(upBtn)     configure -command [list ::tk::dialog::file::UpDirCmd $w]
+    $data(homeBtn)   configure -command [list ::tk::dialog::file::HomeCmd $w]
     $data(cancelBtn) configure -command [list ::tk::dialog::file::CancelCmd $w]
     bind $w <KeyPress-Escape> [list $data(cancelBtn) invoke]
     bind $w <Alt-Key> [list tk::AltKeyInDialog $w %A]
@@ -964,6 +992,14 @@
     }
 }
 
+# Gets called when user presses the "home directory" button
+#
+proc ::tk::dialog::file::HomeCmd {w} {
+    upvar ::tk::dialog::file::[winfo name $w] data
+
+	set data(selectPath) $::env(HOME)
+}
+
 # Join a file name to a path name. The "file join" command will break if the
 # filename begins with ~
 #