Annotation of micropolis/res/button.tcl, revision 1.1

1.1     ! root        1: # button.tcl --
        !             2: #
        !             3: # This file contains Tcl procedures used to manage Tk buttons.
        !             4: #
        !             5: # $Header: /user6/ouster/wish/scripts/RCS/button.tcl,v 1.7 92/07/28 15:41:13 ouster Exp $ SPRITE (Berkeley)
        !             6: #
        !             7: # Copyright 1992 Regents of the University of California
        !             8: # Permission to use, copy, modify, and distribute this
        !             9: # software and its documentation for any purpose and without
        !            10: # fee is hereby granted, provided that this copyright
        !            11: # notice appears in all copies.  The University of California
        !            12: # makes no representations about the suitability of this
        !            13: # software for any purpose.  It is provided "as is" without
        !            14: # express or implied warranty.
        !            15: #
        !            16: 
        !            17: # $tk_priv(window@$screen) keeps track of the button containing the mouse, 
        !            18: # and $tk_priv(relief@$screen) saves the original relief of the button so 
        !            19: # it can be restored when the mouse button is released.
        !            20: 
        !            21: # The procedure below is invoked when the mouse pointer enters a
        !            22: # button widget.  It records the button we're in and changes the
        !            23: # state of the button to active unless the button is disabled.
        !            24: 
        !            25: proc tk_butEnter w {
        !            26:     global tk_priv
        !            27:     set screen [winfo screen $w]
        !            28:     if {[lindex [$w config -state] 4] != "disabled"} {
        !            29:        $w config -state active
        !            30:        set tk_priv(window@$screen) $w
        !            31:     } else {
        !            32:        set tk_priv(window@$screen) ""
        !            33:     }
        !            34: }
        !            35: 
        !            36: # The procedure below is invoked when the mouse pointer leaves a
        !            37: # button widget.  It changes the state of the button back to
        !            38: # inactive.
        !            39: 
        !            40: proc tk_butLeave w {
        !            41:     global tk_priv
        !            42:     if {[lindex [$w config -state] 4] != "disabled"} {
        !            43:        $w config -state normal
        !            44:     }
        !            45:     set screen [winfo screen $w]
        !            46:     set tk_priv(window@$screen) ""
        !            47: }
        !            48: 
        !            49: # The procedure below is invoked when the mouse button is pressed in
        !            50: # a button/radiobutton/checkbutton widget.  It records information
        !            51: # (a) to indicate that the mouse is in the button, and
        !            52: # (b) to save the button's relief so it can be restored later.
        !            53: 
        !            54: proc tk_butDown w {
        !            55:     global tk_priv
        !            56:     set screen [winfo screen $w]
        !            57:     set tk_priv(relief@$screen) [lindex [$w config -relief] 4]
        !            58:     if {[lindex [$w config -state] 4] != "disabled"} {
        !            59:        $w config -relief sunken
        !            60:        update idletasks
        !            61:     }
        !            62: }
        !            63: 
        !            64: # The procedure below is invoked when the mouse button is released
        !            65: # for a button/radiobutton/checkbutton widget.  It restores the
        !            66: # button's relief and invokes the command as long as the mouse
        !            67: # hasn't left the button.
        !            68: 
        !            69: proc tk_butUp w {
        !            70:     global tk_priv
        !            71:     set screen [winfo screen $w]
        !            72:     $w config -relief $tk_priv(relief@$screen)
        !            73:     update idletasks
        !            74:     if {($w == $tk_priv(window@$screen))
        !            75:            && ([lindex [$w config -state] 4] != "disabled")} {
        !            76:        uplevel #0 [list $w invoke]
        !            77:     }
        !            78: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.