Add files via upload
This commit is contained in:
186
windowsAgent/dist/tk/ttk/cursors.tcl
vendored
Normal file
186
windowsAgent/dist/tk/ttk/cursors.tcl
vendored
Normal file
@ -0,0 +1,186 @@
|
||||
#
|
||||
# Map symbolic cursor names to platform-appropriate cursors.
|
||||
#
|
||||
# The following cursors are defined:
|
||||
#
|
||||
# standard -- default cursor for most controls
|
||||
# "" -- inherit cursor from parent window
|
||||
# none -- no cursor
|
||||
#
|
||||
# text -- editable widgets (entry, text)
|
||||
# link -- hyperlinks within text
|
||||
# crosshair -- graphic selection, fine control
|
||||
# busy -- operation in progress
|
||||
# forbidden -- action not allowed
|
||||
#
|
||||
# hresize -- horizontal resizing
|
||||
# vresize -- vertical resizing
|
||||
#
|
||||
# Also resize cursors for each of the compass points,
|
||||
# {nw,n,ne,w,e,sw,s,se}resize.
|
||||
#
|
||||
# Platform notes:
|
||||
#
|
||||
# Windows doesn't distinguish resizing at the 8 compass points,
|
||||
# only horizontal, vertical, and the two diagonals.
|
||||
#
|
||||
# OSX doesn't have resize cursors for nw, ne, sw, or se corners.
|
||||
# We use the Tk-defined X11 fallbacks for these.
|
||||
#
|
||||
# X11 doesn't have a "forbidden" cursor (usually a slashed circle);
|
||||
# "pirate" seems to be the conventional cursor for this purpose.
|
||||
#
|
||||
# Windows has an IDC_HELP cursor, but it's not available from Tk.
|
||||
#
|
||||
# Tk does not support "none" on Windows.
|
||||
#
|
||||
|
||||
namespace eval ttk {
|
||||
|
||||
variable Cursors
|
||||
|
||||
# Use X11 cursor names as defaults, since Tk supplies these
|
||||
# on all platforms.
|
||||
#
|
||||
array set Cursors {
|
||||
"" ""
|
||||
none none
|
||||
|
||||
standard left_ptr
|
||||
text xterm
|
||||
link hand2
|
||||
crosshair crosshair
|
||||
busy watch
|
||||
forbidden pirate
|
||||
|
||||
hresize sb_h_double_arrow
|
||||
vresize sb_v_double_arrow
|
||||
|
||||
nresize top_side
|
||||
sresize bottom_side
|
||||
wresize left_side
|
||||
eresize right_side
|
||||
nwresize top_left_corner
|
||||
neresize top_right_corner
|
||||
swresize bottom_left_corner
|
||||
seresize bottom_right_corner
|
||||
move fleur
|
||||
|
||||
}
|
||||
|
||||
# Platform-specific overrides for Windows and OSX.
|
||||
#
|
||||
switch [tk windowingsystem] {
|
||||
"win32" {
|
||||
array set Cursors {
|
||||
none {}
|
||||
|
||||
standard arrow
|
||||
text ibeam
|
||||
link hand2
|
||||
crosshair crosshair
|
||||
busy wait
|
||||
forbidden no
|
||||
|
||||
vresize size_ns
|
||||
nresize size_ns
|
||||
sresize size_ns
|
||||
|
||||
wresize size_we
|
||||
eresize size_we
|
||||
hresize size_we
|
||||
|
||||
nwresize size_nw_se
|
||||
swresize size_ne_sw
|
||||
|
||||
neresize size_ne_sw
|
||||
seresize size_nw_se
|
||||
}
|
||||
}
|
||||
|
||||
"aqua" {
|
||||
if {[package vsatisfies [package provide Tk] 8.5]} {
|
||||
# appeared 2007-04-23, Tk 8.5a6
|
||||
array set Cursors {
|
||||
standard arrow
|
||||
text ibeam
|
||||
link pointinghand
|
||||
crosshair crosshair
|
||||
busy watch
|
||||
forbidden notallowed
|
||||
|
||||
hresize resizeleftright
|
||||
vresize resizeupdown
|
||||
nresize resizeup
|
||||
sresize resizedown
|
||||
wresize resizeleft
|
||||
eresize resizeright
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
## ttk::cursor $cursor --
|
||||
# Return platform-specific cursor for specified symbolic cursor.
|
||||
#
|
||||
proc ttk::cursor {name} {
|
||||
variable Cursors
|
||||
return $Cursors($name)
|
||||
}
|
||||
|
||||
## ttk::setCursor $w $cursor --
|
||||
# Set the cursor for specified window.
|
||||
#
|
||||
# [ttk::setCursor] should be used in <Motion> bindings
|
||||
# instead of directly calling [$w configure -cursor ...],
|
||||
# as the latter always incurs a server round-trip and
|
||||
# can lead to high CPU load (see [#1184746])
|
||||
#
|
||||
|
||||
proc ttk::setCursor {w name} {
|
||||
variable Cursors
|
||||
if {[$w cget -cursor] ne $Cursors($name)} {
|
||||
$w configure -cursor $Cursors($name)
|
||||
}
|
||||
}
|
||||
|
||||
## Interactive test harness:
|
||||
#
|
||||
proc ttk::CursorSampler {f} {
|
||||
ttk::frame $f
|
||||
|
||||
set r 0
|
||||
foreach row {
|
||||
{nwresize nresize neresize}
|
||||
{ wresize move eresize}
|
||||
{swresize sresize seresize}
|
||||
{text link crosshair}
|
||||
{hresize vresize ""}
|
||||
{busy forbidden ""}
|
||||
{none standard ""}
|
||||
} {
|
||||
set c 0
|
||||
foreach cursor $row {
|
||||
set w $f.${r}${c}
|
||||
ttk::label $w -text $cursor -cursor [ttk::cursor $cursor] \
|
||||
-relief solid -borderwidth 1 -padding 3
|
||||
grid $w -row $r -column $c -sticky nswe
|
||||
grid columnconfigure $f $c -uniform cols -weight 1
|
||||
incr c
|
||||
}
|
||||
grid rowconfigure $f $r -uniform rows -weight 1
|
||||
incr r
|
||||
}
|
||||
|
||||
return $f
|
||||
}
|
||||
|
||||
if {[info exists argv0] && $argv0 eq [info script]} {
|
||||
wm title . "[array size ::ttk::Cursors] cursors"
|
||||
pack [ttk::CursorSampler .f] -expand true -fill both
|
||||
bind . <KeyPress-Escape> [list destroy .]
|
||||
focus .f
|
||||
}
|
||||
|
||||
#*EOF*
|
Reference in New Issue
Block a user