gWidgetstcltk/0000755000175100001440000000000012363022067013110 5ustar hornikusersgWidgetstcltk/inst/0000755000175100001440000000000012350164246014067 5ustar hornikusersgWidgetstcltk/inst/images/0000755000175100001440000000000012275245141015334 5ustar hornikusersgWidgetstcltk/inst/images/matrix.gif0000644000175100001440000000057111406426757017343 0ustar hornikusersGIF89a,PPP!Created with GIMP! ?,pH,Ȥrl:Ix $: a|N5!pa$+* qurra"a  a ?a?A;gWidgetstcltk/inst/images/integer.gif0000644000175100001440000000053411406426757017473 0ustar hornikusersGIF89a18,cccnnneee`e_@2yn_b]```_Rad_ʏXaW?1]e\hhh]b\gggA3bbbfffwae``c^9-pppT`R{XcV`f`D5mmm[bZ?2! ?,ypH,G2rEW%Ĩ2&(5auTJZ*@G0i{nskun jt~D tn(D- C $EOFA;gWidgetstcltk/inst/images/checkbutton-off.gif0000644000175100001440000000207511612675220021107 0ustar hornikusersGIF89axy{{øõĶŸƵɻ¶ɷɷ˹ƹǸʻƹ˻Ⱦǻɿ;νѿ!Created with GIMP! , H&]T%|Iɔ@GZlTi"HXIa!T O5.T,~ā&@o'rڜ& 8P܀a0NBfC (b'+Bj8bC[t )J#2DKcD+N c9HÔCMb?NcBPcDQeEThGUiHVkIYmLYmUbuXgx\l}bn~cn~dqeqhqesfsjxrqrzwvwwytuwwzy{|~òŷǺĻºǽþĿƿǻ̿!Created with GIMP! , ' +V[46-O?A@Dv ّC+[ 韧7b$*D!<܀/ZAS :꟤(K! Աߣ'<~DhȄT_#')^X `aD#'%VH-T` 0ڰɌ"G0H&w.*O$8j̘aG1{:5]U0WL%G^ \5JS$E RUcZuJOB Z*;gWidgetstcltk/inst/images/directory.gif0000644000175100001440000000053611406426757020044 0ustar hornikusersGIF89aeee!calll ``_~6myWAz|||mmm\lBzjjjmvxIuxxxx"d*ir-g!Created with GIMP! ?,fpH,hqb8Ψd@ Z)HظSUH<4y { x Mxe(weB#"BrX?A;gWidgetstcltk/inst/images/README0000644000175100001440000000016611406426757016230 0ustar hornikusersThese were modified from the GPL originals found at http://www.lullabot.com/articles/free_gpl_icons_lullacons_pack_1 gWidgetstcltk/inst/images/numeric.gif0000644000175100001440000000053411406426757017500 0ustar hornikusersGIF89a18,cccnnneee`e_@2yn_b]```_Rad_ʏXaW?1]e\hhh]b\gggA3bbbfffwae``c^9-pppT`R{XcV`f`D5mmm[bZ?2! ?,ypH,G2rEW%Ĩ2&(5auTJZ*@G0i{nskun jt~D tn(D- C $EOFA;gWidgetstcltk/inst/images/factor.gif0000644000175100001440000000053111406426757017311 0ustar hornikusersGIF89a18,cccnnneee`e_@2yn_b]```_Rad_ʏXaW?1]e\hhh]b\gggA3bbbfffwae``c^9-pppT`R{XcV`f`D5mmm[bZ?2! ?,vpH,G2rEW%Ĩ2&(5auTJZ*@G0q{nztun t~D n(D- C $EOFA;gWidgetstcltk/inst/images/file.gif0000644000175100001440000000055611406426757016761 0ustar hornikusersGIF89a3Lcccnnneee!W`^af_b]^bfAt```ad_Z_f U!Vgggppp_c^T[eNmmmU[c!Xfffhhhbbb_a^uX]cj[^c#\OWbae`!Created with GIMP! ?,vpH,9- d)YK.&bL5y`Vd>Z)@Ol8q{ &nztun t~D n.D  'C$%(EFA;gWidgetstcltk/inst/images/function.gif0000644000175100001440000000053411406426757017663 0ustar hornikusersGIF89a18,cccnnneee`e_@2yn_b]```_Rad_ʏXaW?1]e\hhh]b\gggA3bbbfffwae``c^9-pppT`R{XcV`f`D5mmm[bZ?2! ?,ypH,G2rEW%Ĩ2&(5auTJZ*@G0q{nstun ip~D n(D- C $EOFA;gWidgetstcltk/inst/images/logical.gif0000644000175100001440000000053211406426757017446 0ustar hornikusersGIF89a18,cccnnneee`e_@2yn_b]```_Rad_ʏXaW?1]e\hhh]b\gggA3bbbfffwae``c^9-pppT`R{XcV`f`D5mmm[bZ?2! ?,wpH,G2rEW%Ĩ2&(5auTJZ*@G0q{nztun i~D n(D- C $EOFA;gWidgetstcltk/inst/pkgIndex.tcl0000644000175100001440000000114311350417656016350 0ustar hornikusers# Tcl package index file, version 1.1 # This file is generated by the "pkg_mkIndex" command # and sourced either when an application starts up or # by a "package unknown" script. It invokes the # "package ifneeded" command to set up package-related # information so that packages will be loaded automatically # in response to "package require" commands. When this # script is sourced, the variable $dir must contain the # full path name of this file's directory. if { ![package vsatisfies [package provide Tcl] 8.2] } { return } package ifneeded autoscroll 1.1 [list source [file join $dir autoscroll.tcl]] gWidgetstcltk/inst/example.tcl0000644000175100001440000000036111350417656016233 0ustar hornikuserssource ./autoscroll.tcl text .t -highlightthickness 0 -yscrollcommand ".scrolly set" scrollbar .scrolly -orient v -command ".t yview" pack .scrolly -side right -fill y pack .t -side left -fill both -expand 1 ::autoscroll::autoscroll .scrollygWidgetstcltk/inst/tcl/0000755000175100001440000000000012275245141014651 5ustar hornikusersgWidgetstcltk/inst/tcl/autoscroll.tcl0000644000175100001440000001176111420452522017544 0ustar hornikusers# This came from http://wiki.tcl.tk/950 # assuming this is released into public domain, as no copyright # accompanied. ## to use, something like #tcl("source",system.file("exec","autoscroll.tcl",package="gWidgetstcltk")) #tclRequire("autoscroll") #tcl("namespace","import","::autoscroll::autoscroll") # then after setting up scrollbars, simply: tcl("autoscroll", scr) #---------------------------------------------------------------------- # # autoscroll.tcl -- # # Package to create scroll bars that automatically appear when # a window is too small to display its content. # #---------------------------------------------------------------------- package provide autoscroll 1.0 namespace eval autoscroll { namespace export autoscroll bind Autoscroll [namespace code [list delete %W]] bind Autoscroll [namespace code [list map %W]] } #---------------------------------------------------------------------- # # autoscroll::autoscroll -- # # Create a scroll bar that disappears when it is not needed, and # reappears when it is. # # Parameters: # w -- Path name of the scroll bar, which should already # exist and have its geometry managed by the gridder. # # Results: # None. # # Side effects: # The widget command is renamed, so that the 'set' command can # be intercepted and determine whether the widget should appear. # In addition, the 'Autoscroll' bind tag is added to the widget, # so that the event can be intercepted. # # Notes: # It is an error to change the widget's gridding after # calling 'autoscroll' on it. # #---------------------------------------------------------------------- proc autoscroll::autoscroll { w } { variable grid variable needed rename $w [namespace current]::renamed$w proc ::$w {args} " return \[eval \[list autoscroll::widgetCommand $w\] \$args\] " set i [grid info $w] if { [string match {} $i] } { error "$w is not gridded" } set grid($w) $i set needed($w) 1 bindtags $w [linsert [bindtags $w] 1 Autoscroll] eval [list ::$w set] [renamed$w get] return } #---------------------------------------------------------------------- # # autoscroll::widgetCommand -- # # Widget command on an 'autoscroll' scrollbar # # Parameters: # w -- Path name of the scroll bar # command -- Widget command being executed # args -- Arguments to the commane # # Results: # Returns whatever the widget command returns # # Side effects: # Has whatever side effects the widget command has. In # addition, the 'set' widget command is handled specially, # by setting/unsetting the 'needed' flag and gridding/ungridding # the scroll bar according to whether it is required. # #---------------------------------------------------------------------- proc autoscroll::widgetCommand { w command args } { variable grid variable needed switch -exact -- $command { set { foreach { min max } $args {} if { $min <= 0 && $max >= 1 } { if { [info exists needed($w)] } { unset needed($w) grid forget $w } } else { if { ! [info exists needed($w)] } { set needed($w) {} eval [list grid $w] $grid($w) } } } } return [eval [list renamed$w $command] $args] } #---------------------------------------------------------------------- # # autoscroll::delete -- # # Delete an automatic scroll bar # # Parameters: # w -- Path name of the scroll bar # # Results: # None. # # Side effects: # Cleans up internal memory. # #---------------------------------------------------------------------- proc autoscroll::delete { w } { variable grid variable needed catch { unset grid($w) } catch { unset needed($w) } catch { rename renamed$w {} } return } #---------------------------------------------------------------------- # # autoscroll::map -- # # Callback executed when an automatic scroll bar is mapped. # # Parameters: # w -- Path name of the scroll bar. # # Results: # None. # # Side effects: # Geometry of the scroll bar's top-level window is constrained. # # This procedure keeps the top-level window associated with an # automatic scroll bar from being resized automatically after the # scroll bar is mapped. This effect avoids a potential endless loop # in the case where the resize of the top-level window resizes the # widget being scrolled, causing the scroll bar no longer to be needed. # #---------------------------------------------------------------------- proc autoscroll::map { w } { wm geometry [winfo toplevel $w] \ [wm geometry [winfo toplevel $w]] } gWidgetstcltk/inst/ChangeLog0000644000175100001440000000216111350417656015646 0ustar hornikusers2009-01-21 Andreas Kupries * * Released and tagged Tklib 0.5 ======================== * 2005-11-10 Andreas Kupries * * Released and tagged Tklib 0.4.1 ======================== * 2005-11-02 Andreas Kupries * * Released and tagged Tklib 0.4 ======================== * 2005-05-18 Andreas Kupries * autoscroll.tcl: Added missing 'require Tk'. 2005-04-01 Aaron Faupell * autoscroll.tcl: updated to not fail if autoscroll called twice on a the same scrollbar 2005-03-24 Aaron Faupell * bumped version number for new wrap commands 2005-03-24 Aaron Faupell * autoscroll.tcl: added commands wrap and unwrap * autoscroll.man: added docs for wrap and unwrap, and an example 2003-07-27 Aaron Faupell initial import 2000-09-18 Kevin Kenny * autoscroll.tcl: Initial version posted to http://wiki.tcl.tk/950gWidgetstcltk/inst/tklibs/0000755000175100001440000000000012275245142015360 5ustar hornikusersgWidgetstcltk/inst/tklibs/autoscroll.tcl0000644000175100001440000001571011350417656020263 0ustar hornikusers# autoscroll.tcl -- # # Package to create scroll bars that automatically appear when # a window is too small to display its content. # # Copyright (c) 2003 Kevin B Kenny # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # RCS: @(#) $Id: autoscroll.tcl,v 1.8 2005/06/01 02:37:51 andreas_kupries Exp $ package require Tk package provide autoscroll 1.1 namespace eval ::autoscroll { namespace export autoscroll unautoscroll bind Autoscroll [namespace code [list destroyed %W]] bind Autoscroll [namespace code [list map %W]] } #---------------------------------------------------------------------- # # ::autoscroll::autoscroll -- # # Create a scroll bar that disappears when it is not needed, and # reappears when it is. # # Parameters: # w -- Path name of the scroll bar, which should already exist # # Results: # None. # # Side effects: # The widget command is renamed, so that the 'set' command can # be intercepted and determine whether the widget should appear. # In addition, the 'Autoscroll' bind tag is added to the widget, # so that the event can be intercepted. # #---------------------------------------------------------------------- proc ::autoscroll::autoscroll { w } { if { [info commands ::autoscroll::renamed$w] != "" } { return $w } rename $w ::autoscroll::renamed$w interp alias {} ::$w {} ::autoscroll::widgetCommand $w bindtags $w [linsert [bindtags $w] 1 Autoscroll] eval [list ::$w set] [renamed$w get] return $w } #---------------------------------------------------------------------- # # ::autoscroll::unautoscroll -- # # Return a scrollbar to its normal static behavior by removing # it from the control of this package. # # Parameters: # w -- Path name of the scroll bar, which must have previously # had ::autoscroll::autoscroll called on it. # # Results: # None. # # Side effects: # The widget command is renamed to its original name. The widget # is mapped if it was not currently displayed. The widgets # bindtags are returned to their original state. Internal memory # is cleaned up. # #---------------------------------------------------------------------- proc ::autoscroll::unautoscroll { w } { if { [info commands ::autoscroll::renamed$w] != "" } { variable grid rename ::$w {} rename ::autoscroll::renamed$w ::$w if { [set i [lsearch -exact [bindtags $w] Autoscroll]] > -1 } { bindtags $w [lreplace [bindtags $w] $i $i] } if { [info exists grid($w)] } { eval [join $grid($w) \;] unset grid($w) } } } #---------------------------------------------------------------------- # # ::autoscroll::widgetCommand -- # # Widget command on an 'autoscroll' scrollbar # # Parameters: # w -- Path name of the scroll bar # command -- Widget command being executed # args -- Arguments to the commane # # Results: # Returns whatever the widget command returns # # Side effects: # Has whatever side effects the widget command has. In # addition, the 'set' widget command is handled specially, # by gridding/packing the scroll bar according to whether # it is required. # #------------------------------------------------------------ proc ::autoscroll::widgetCommand { w command args } { variable grid if { $command == "set" } { foreach { min max } $args {} if { $min <= 0 && $max >= 1 } { switch -exact -- [winfo manager $w] { grid { lappend grid($w) "[list grid $w] [grid info $w]" grid forget $w } pack { foreach x [pack slaves [winfo parent $w]] { lappend grid($w) "[list pack $x] [pack info $x]" } pack forget $w } } } elseif { [info exists grid($w)] } { eval [join $grid($w) \;] unset grid($w) } } return [eval [list renamed$w $command] $args] } #---------------------------------------------------------------------- # # ::autoscroll::destroyed -- # # Callback executed when an automatic scroll bar is destroyed. # # Parameters: # w -- Path name of the scroll bar # # Results: # None. # # Side effects: # Cleans up internal memory. # #---------------------------------------------------------------------- proc ::autoscroll::destroyed { w } { variable grid catch { unset grid($w) } rename ::$w {} } #---------------------------------------------------------------------- # # ::autoscroll::map -- # # Callback executed when an automatic scroll bar is mapped. # # Parameters: # w -- Path name of the scroll bar. # # Results: # None. # # Side effects: # Geometry of the scroll bar's top-level window is constrained. # # This procedure keeps the top-level window associated with an # automatic scroll bar from being resized automatically after the # scroll bar is mapped. This effect avoids a potential endless loop # in the case where the resize of the top-level window resizes the # widget being scrolled, causing the scroll bar no longer to be needed. # #---------------------------------------------------------------------- proc ::autoscroll::map { w } { wm geometry [winfo toplevel $w] [wm geometry [winfo toplevel $w]] } #---------------------------------------------------------------------- # # ::autoscroll::wrap -- # # Arrange for all new scrollbars to be automatically autoscrolled # # Parameters: # None. # # Results: # None. # # Side effects: # ::scrollbar is overloaded to automatically autoscroll any new # scrollbars. # #---------------------------------------------------------------------- proc ::autoscroll::wrap {} { if {[info commands ::autoscroll::_scrollbar] != ""} {return} rename ::scrollbar ::autoscroll::_scrollbar proc ::scrollbar {w args} { eval ::autoscroll::_scrollbar [list $w] $args ::autoscroll::autoscroll $w return $w } } #---------------------------------------------------------------------- # # ::autoscroll::unwrap -- # # Turns off automatic autoscrolling of new scrollbars. Does not # effect existing scrollbars. # # Parameters: # None. # # Results: # None. # # Side effects: # ::scrollbar is returned to its original state # #---------------------------------------------------------------------- proc ::autoscroll::unwrap {} { if {[info commands ::autoscroll::_scrollbar] == ""} {return} rename ::scrollbar {} rename ::autoscroll::_scrollbar ::scrollbar } gWidgetstcltk/inst/tklibs/autoscroll1.1/0000755000175100001440000000000012275245141017766 5ustar hornikusersgWidgetstcltk/inst/tklibs/autoscroll1.1/autoscroll.tcl0000644000175100001440000001571011350417656022672 0ustar hornikusers# autoscroll.tcl -- # # Package to create scroll bars that automatically appear when # a window is too small to display its content. # # Copyright (c) 2003 Kevin B Kenny # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # RCS: @(#) $Id: autoscroll.tcl,v 1.8 2005/06/01 02:37:51 andreas_kupries Exp $ package require Tk package provide autoscroll 1.1 namespace eval ::autoscroll { namespace export autoscroll unautoscroll bind Autoscroll [namespace code [list destroyed %W]] bind Autoscroll [namespace code [list map %W]] } #---------------------------------------------------------------------- # # ::autoscroll::autoscroll -- # # Create a scroll bar that disappears when it is not needed, and # reappears when it is. # # Parameters: # w -- Path name of the scroll bar, which should already exist # # Results: # None. # # Side effects: # The widget command is renamed, so that the 'set' command can # be intercepted and determine whether the widget should appear. # In addition, the 'Autoscroll' bind tag is added to the widget, # so that the event can be intercepted. # #---------------------------------------------------------------------- proc ::autoscroll::autoscroll { w } { if { [info commands ::autoscroll::renamed$w] != "" } { return $w } rename $w ::autoscroll::renamed$w interp alias {} ::$w {} ::autoscroll::widgetCommand $w bindtags $w [linsert [bindtags $w] 1 Autoscroll] eval [list ::$w set] [renamed$w get] return $w } #---------------------------------------------------------------------- # # ::autoscroll::unautoscroll -- # # Return a scrollbar to its normal static behavior by removing # it from the control of this package. # # Parameters: # w -- Path name of the scroll bar, which must have previously # had ::autoscroll::autoscroll called on it. # # Results: # None. # # Side effects: # The widget command is renamed to its original name. The widget # is mapped if it was not currently displayed. The widgets # bindtags are returned to their original state. Internal memory # is cleaned up. # #---------------------------------------------------------------------- proc ::autoscroll::unautoscroll { w } { if { [info commands ::autoscroll::renamed$w] != "" } { variable grid rename ::$w {} rename ::autoscroll::renamed$w ::$w if { [set i [lsearch -exact [bindtags $w] Autoscroll]] > -1 } { bindtags $w [lreplace [bindtags $w] $i $i] } if { [info exists grid($w)] } { eval [join $grid($w) \;] unset grid($w) } } } #---------------------------------------------------------------------- # # ::autoscroll::widgetCommand -- # # Widget command on an 'autoscroll' scrollbar # # Parameters: # w -- Path name of the scroll bar # command -- Widget command being executed # args -- Arguments to the commane # # Results: # Returns whatever the widget command returns # # Side effects: # Has whatever side effects the widget command has. In # addition, the 'set' widget command is handled specially, # by gridding/packing the scroll bar according to whether # it is required. # #------------------------------------------------------------ proc ::autoscroll::widgetCommand { w command args } { variable grid if { $command == "set" } { foreach { min max } $args {} if { $min <= 0 && $max >= 1 } { switch -exact -- [winfo manager $w] { grid { lappend grid($w) "[list grid $w] [grid info $w]" grid forget $w } pack { foreach x [pack slaves [winfo parent $w]] { lappend grid($w) "[list pack $x] [pack info $x]" } pack forget $w } } } elseif { [info exists grid($w)] } { eval [join $grid($w) \;] unset grid($w) } } return [eval [list renamed$w $command] $args] } #---------------------------------------------------------------------- # # ::autoscroll::destroyed -- # # Callback executed when an automatic scroll bar is destroyed. # # Parameters: # w -- Path name of the scroll bar # # Results: # None. # # Side effects: # Cleans up internal memory. # #---------------------------------------------------------------------- proc ::autoscroll::destroyed { w } { variable grid catch { unset grid($w) } rename ::$w {} } #---------------------------------------------------------------------- # # ::autoscroll::map -- # # Callback executed when an automatic scroll bar is mapped. # # Parameters: # w -- Path name of the scroll bar. # # Results: # None. # # Side effects: # Geometry of the scroll bar's top-level window is constrained. # # This procedure keeps the top-level window associated with an # automatic scroll bar from being resized automatically after the # scroll bar is mapped. This effect avoids a potential endless loop # in the case where the resize of the top-level window resizes the # widget being scrolled, causing the scroll bar no longer to be needed. # #---------------------------------------------------------------------- proc ::autoscroll::map { w } { wm geometry [winfo toplevel $w] [wm geometry [winfo toplevel $w]] } #---------------------------------------------------------------------- # # ::autoscroll::wrap -- # # Arrange for all new scrollbars to be automatically autoscrolled # # Parameters: # None. # # Results: # None. # # Side effects: # ::scrollbar is overloaded to automatically autoscroll any new # scrollbars. # #---------------------------------------------------------------------- proc ::autoscroll::wrap {} { if {[info commands ::autoscroll::_scrollbar] != ""} {return} rename ::scrollbar ::autoscroll::_scrollbar proc ::scrollbar {w args} { eval ::autoscroll::_scrollbar [list $w] $args ::autoscroll::autoscroll $w return $w } } #---------------------------------------------------------------------- # # ::autoscroll::unwrap -- # # Turns off automatic autoscrolling of new scrollbars. Does not # effect existing scrollbars. # # Parameters: # None. # # Results: # None. # # Side effects: # ::scrollbar is returned to its original state # #---------------------------------------------------------------------- proc ::autoscroll::unwrap {} { if {[info commands ::autoscroll::_scrollbar] == ""} {return} rename ::scrollbar {} rename ::autoscroll::_scrollbar ::scrollbar } gWidgetstcltk/inst/tklibs/autoscroll1.1/pkgIndex.tcl0000644000175100001440000000114311350417656022247 0ustar hornikusers# Tcl package index file, version 1.1 # This file is generated by the "pkg_mkIndex" command # and sourced either when an application starts up or # by a "package unknown" script. It invokes the # "package ifneeded" command to set up package-related # information so that packages will be loaded automatically # in response to "package require" commands. When this # script is sourced, the variable $dir must contain the # full path name of this file's directory. if { ![package vsatisfies [package provide Tcl] 8.2] } { return } package ifneeded autoscroll 1.1 [list source [file join $dir autoscroll.tcl]] gWidgetstcltk/inst/tklibs/autoscroll1.1/example.tcl0000644000175100001440000000036111350417656022132 0ustar hornikuserssource ./autoscroll.tcl text .t -highlightthickness 0 -yscrollcommand ".scrolly set" scrollbar .scrolly -orient v -command ".t yview" pack .scrolly -side right -fill y pack .t -side left -fill both -expand 1 ::autoscroll::autoscroll .scrollygWidgetstcltk/inst/tklibs/autoscroll1.1/autoscroll.man0000644000175100001440000000367311350417656022670 0ustar hornikusers[comment {-*- tcl -*- doctools manpage}] [manpage_begin autoscroll n 1.1] [moddesc {Automatic mapping of scrollbars}] [titledesc {Provides for a scrollbar to automatically mapped and unmapped as needed}] [require Tcl] [require autoscroll [opt 1.1]] [description] This package allows scrollbars to be mapped and unmapped as needed depending on the size and content of the scrollbars scrolled widget. The scrollbar must be managed by either pack or grid, other geometry managers are not supported. [para] When managed by pack, any geometry changes made in the scrollbars parent between the time a scrollbar is unmapped, and when it is mapped will be lost. It is an error to destroy any of the scrollbars siblings while the scrollbar is unmapped. When managed by grid, if anything becomes gridded in the same row and column the scrollbar occupied it will be replaced by the scrollbar when remapped. [para] This package may be used on any scrollbar-like widget as long as it supports the [const set] subcommand in the same style as scrollbar. If the [const set] subcommand is not used then this package will have no effect. [para] [list_begin definitions] [call [cmd ::autoscroll::autoscroll] [arg scrollbar]] Arranges for the already existing scrollbar [const scrollbar] to be mapped and unmapped as needed. [call [cmd ::autoscroll::unautoscroll] [arg scrollbar]] Returns the named scrollbar to its original static state. [call [cmd ::autoscroll::wrap]] Arranges for all scrollbars created after this command is run to be automatically mapped and unmapped as needed. [call [cmd ::autoscroll::unwrap]] Turns off the automatic autoscrolling of all new scrollbars. Does not effect existing scrollbars [list_end] [example { text .t -yscrollcommand ".scrolly set" scrollbar .scrolly -orient v -command ".t yview" pack .scrolly -side right -fill y pack .t -side left -fill both -expand 1 ::autoscroll::autoscroll .scrolly }] [keywords scroll scrollbar] [manpage_end] gWidgetstcltk/inst/tklibs/autoscroll1.1/ChangeLog0000644000175100001440000000216111350417656021545 0ustar hornikusers2009-01-21 Andreas Kupries * * Released and tagged Tklib 0.5 ======================== * 2005-11-10 Andreas Kupries * * Released and tagged Tklib 0.4.1 ======================== * 2005-11-02 Andreas Kupries * * Released and tagged Tklib 0.4 ======================== * 2005-05-18 Andreas Kupries * autoscroll.tcl: Added missing 'require Tk'. 2005-04-01 Aaron Faupell * autoscroll.tcl: updated to not fail if autoscroll called twice on a the same scrollbar 2005-03-24 Aaron Faupell * bumped version number for new wrap commands 2005-03-24 Aaron Faupell * autoscroll.tcl: added commands wrap and unwrap * autoscroll.man: added docs for wrap and unwrap, and an example 2003-07-27 Aaron Faupell initial import 2000-09-18 Kevin Kenny * autoscroll.tcl: Initial version posted to http://wiki.tcl.tk/950gWidgetstcltk/inst/tklibs/tooltip1.4/0000755000175100001440000000000012275245142017275 5ustar hornikusersgWidgetstcltk/inst/tklibs/tooltip1.4/tipstack.tcl0000644000175100001440000000766511350417656021645 0ustar hornikusers# tipstack.tcl -- # # Based on 'tooltip', provides a dynamic stack of tip texts per # widget. This allows dynamic transient changes to the tips, for # example to temporarily replace a standard epxlanation with an # error message. # # Copyright (c) 2003 ActiveState Corporation. # # See the file "license.terms" for information on usage and # redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # RCS: @(#) $Id: tipstack.tcl,v 1.4 2009/01/09 05:46:12 andreas_kupries Exp $ # # ### ######### ########################### # Requisites package require tooltip namespace eval ::tipstack {} # ### ######### ########################### # Public API # ## Basic syntax for all commands having a widget reference: # ## tipstack::command .w ... ## tipstack::command .m -index foo ... # ### ######### ########################### ## Push new text for a widget (or menu) proc ::tipstack::push {args} { if {([llength $args] != 2) && (([llength $args] != 4))} { return -code error "wrong#args: expected w ?-index index? text" } # Extract valueable parts. set text [lindex $args end] set wref [lrange $args 0 end-1] # Remember new data (setup/extend db) variable db if {![info exists db($wref)]} { set db($wref) [list $text] } else { lappend db($wref) $text } # Forward to standard tooltip package. eval [linsert [linsert $wref end $text] 0 tooltip::tooltip] return } # ### ######### ########################### ## Pop text from stack of tip for widget. ## ! Keeps the bottom-most entry. proc ::tipstack::pop {args} { if {([llength $args] != 1) && (([llength $args] != 3))} { return -code error "wrong#args: expected w ?-index index?" } # args == wref (see 'push'). set wref $args # Pop top information form the database. Except if the # text is the last in the stack. Then we will keep it, it # is the baseline for the widget. variable db if {![info exists db($wref)]} { set text "" } else { set data $db($wref) if {[llength $data] == 1} { set text [lindex $data 0] } else { set data [lrange $data 0 end-1] set text [lindex $data end] set db($wref) $data } } # Forward to standard tooltip package. eval [linsert [linsert $wref end $text] 0 tooltip::tooltip] return } # ### ######### ########################### ## Clears out all data about a widget (or menu). proc ::tipstack::clear {args} { if {([llength $args] != 1) && (([llength $args] != 3))} { return -code error "wrong#args: expected w ?-index index?" } # args == wref (see 'push'). set wref $args # Remove data about widget. variable db catch {unset db($wref)} eval [linsert [linsert $wref end ""] 0 tooltip::tooltip] return } # ### ######### ########################### ## Convenient definition of tooltips for multiple ## independent widgets. No menus possible proc ::tipstack::def {defs} { foreach {path text} $defs { push $path $text } return } # ### ######### ########################### ## Convenient definition of tooltips for multiple ## widgets in a containing widget. No menus possible. ## This is for megawidgets. proc ::tipstack::defsub {base defs} { foreach {subpath text} $defs { push $base$subpath $text } return } # ### ######### ########################### ## Convenient clearage of tooltips for multiple ## widgets in a containing widget. No menus possible. ## This is for megawidgets. proc ::tipstack::clearsub {base} { variable db foreach k [array names db ${base}*] { # Danger. Will fail if 'base' matches a menu reference. clear $k } return } # ### ######### ########################### # Internal commands -- None # ### ######### ########################### ## Data structures namespace eval ::tipstack { # Map from widget references to stack of tooltips. variable db array set db {} } # ### ######### ########################### # Ready package provide tipstack 1.0.1 gWidgetstcltk/inst/tklibs/tooltip1.4/pkgIndex.tcl0000644000175100001440000000024611350417656021560 0ustar hornikusers# -*- tcl -*- package ifneeded tooltip 1.4.4 [list source [file join $dir tooltip.tcl]] package ifneeded tipstack 1.0.1 [list source [file join $dir tipstack.tcl]] gWidgetstcltk/inst/tklibs/tooltip1.4/example.tcl0000644000175100001440000000167711350417656021453 0ustar hornikusers# Demonstrate widget tooltip #package require tooltip source ./tooltip.tcl pack [label .l -text "label"] tooltip::tooltip .l "This is a label widget" # Demonstrate menu tooltip #package require tooltip . configure -menu [menu .menu] .menu add cascade -label Test -menu [menu .menu.test -tearoff 0] .menu.test add command -label Tooltip tooltip::tooltip .menu.test -index 0 "This is a menu tooltip" # Demonstrate canvas item tooltip #package require tooltip pack [canvas .c] set item [.c create rectangle 10 10 80 80] tooltip::tooltip .c -item $item "Canvas item tooltip" # Demonstrate listbox item tooltip #package require tooltip pack [listbox .lb] .lb insert 0 "item one" tooltip::tooltip .lb -item 0 "Listbox item tooltip" # Demonstrate text tag tooltip #package require tooltip pack [text .txt] .txt tag configure TIP-1 -underline 1 tooltip::tooltip .txt -tag TIP-1 "tooltip one text" .txt insert end "An example of a " {} "tooltip" TIP-1 " tag.\n" {}gWidgetstcltk/inst/tklibs/tooltip1.4/tooltip.tcl0000644000175100001440000003361311350417656021505 0ustar hornikusers# tooltip.tcl -- # # Balloon help # # Copyright (c) 1996-2007 Jeffrey Hobbs # # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. # # RCS: @(#) $Id: tooltip.tcl,v 1.16 2008/12/01 23:37:16 hobbs Exp $ # # Initiated: 28 October 1996 package require Tk 8.4 package require msgcat #------------------------------------------------------------------------ # PROCEDURE # tooltip::tooltip # # DESCRIPTION # Implements a tooltip (balloon help) system # # ARGUMENTS # tooltip