[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.227.140.251: ~ $
#
# Sizegrip widget bindings.
#
# Dragging a sizegrip widget resizes the containing toplevel.
#
# NOTE: the sizegrip widget must be in the lower right hand corner.
#

switch -- [tk windowingsystem] {
    x11 -
    win32 {
	option add *TSizegrip.cursor [ttk::cursor seresize]
    }
    aqua {
    	# Aqua sizegrips use default Arrow cursor.
    }
}

namespace eval ttk::sizegrip {
    variable State
    array set State {
	pressed 	0
	pressX 		0
	pressY 		0
	width 		0
	height 		0
	widthInc	1
	heightInc	1
        resizeX         1
        resizeY         1
	toplevel 	{}
    }
}

bind TSizegrip <ButtonPress-1> 		{ ttk::sizegrip::Press	%W %X %Y }
bind TSizegrip <B1-Motion> 		{ ttk::sizegrip::Drag 	%W %X %Y }
bind TSizegrip <ButtonRelease-1> 	{ ttk::sizegrip::Release %W %X %Y }

proc ttk::sizegrip::Press {W X Y} {
    variable State

    if {[$W instate disabled]} { return }

    set top [winfo toplevel $W]

    # If the toplevel is not resizable then bail
    foreach {State(resizeX) State(resizeY)} [wm resizable $top] break
    if {!$State(resizeX) && !$State(resizeY)} {
        return
    }

    # Sanity-checks:
    #	If a negative X or Y position was specified for [wm geometry],
    #   just bail out -- there's no way to handle this cleanly.
    #
    if {[scan [wm geometry $top] "%dx%d+%d+%d" width height x y] != 4} {
	return;
    }

    # Account for gridded geometry:
    #
    set grid [wm grid $top]
    if {[llength $grid]} {
	set State(widthInc) [lindex $grid 2]
	set State(heightInc) [lindex $grid 3]
    } else {
	set State(widthInc) [set State(heightInc) 1]
    }

    set State(toplevel) $top
    set State(pressX) $X
    set State(pressY) $Y
    set State(width)  $width
    set State(height) $height
    set State(x)      $x
    set State(y)      $y
    set State(pressed) 1
}

proc ttk::sizegrip::Drag {W X Y} {
    variable State
    if {!$State(pressed)} { return }
    set w $State(width)
    set h $State(height)
    if {$State(resizeX)} {
        set w [expr {$w + ($X - $State(pressX))/$State(widthInc)}]
    }
    if {$State(resizeY)} {
        set h [expr {$h + ($Y - $State(pressY))/$State(heightInc)}]
    }
    if {$w <= 0} { set w 1 }
    if {$h <= 0} { set h 1 }
    set x $State(x) ; set y $State(y)
    wm geometry $State(toplevel) ${w}x${h}+${x}+${y}
}

proc ttk::sizegrip::Release {W X Y} {
    variable State
    set State(pressed) 0
}

#*EOF*

Filemanager

Name Type Size Permission Actions
altTheme.tcl File 3.26 KB 0644
aquaTheme.tcl File 1.95 KB 0644
button.tcl File 2.91 KB 0644
clamTheme.tcl File 4.16 KB 0644
classicTheme.tcl File 3.44 KB 0644
combobox.tcl File 12.1 KB 0644
cursors.tcl File 3.91 KB 0644
defaults.tcl File 3.6 KB 0644
entry.tcl File 15.77 KB 0644
fonts.tcl File 5.44 KB 0644
menubutton.tcl File 4.77 KB 0644
notebook.tcl File 5.49 KB 0644
panedwindow.tcl File 1.88 KB 0644
progress.tcl File 1.06 KB 0644
scale.tcl File 2.49 KB 0644
scrollbar.tcl File 3.02 KB 0644
sizegrip.tcl File 2.34 KB 0644
spinbox.tcl File 4.16 KB 0644
treeview.tcl File 8.66 KB 0644
ttk.tcl File 4.44 KB 0644
utils.tcl File 8.36 KB 0644
vistaTheme.tcl File 9.13 KB 0644
winTheme.tcl File 2.58 KB 0644
xpTheme.tcl File 1.88 KB 0644