neingeist
/
arduinisten
Archived
1
0
Fork 0
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

60 lines
1.5 KiB
Tcl

# wingrab.tcl -- grab support for Windows.
# Copyright (C) 1997 Cygnus Solutions.
# Written by Ian Lance Taylor <ian@cygnus.com>.
# Disable a list of windows.
proc WINGRAB_disable { args } {
foreach w $args {
ide_grab_support_disable [wm frame $w]
}
}
# Disable all top level windows, other than the argument, which are
# children of `.'. Note that if you do this, and then destroy the
# frame of the only enabled window, your application will lose the
# input focus to some other application. Make sure that you reenable
# the windows before calling wm transient or wm withdraw or destroy on
# the only enabled window.
proc WINGRAB_disable_except { window } {
foreach w [winfo children .] {
if {$w != $window} then {
ide_grab_support_disable [wm frame [winfo toplevel $w]]
}
}
}
# Enable a list of windows.
proc WINGRAB_enable { args } {
foreach w $args {
ide_grab_support_enable [wm frame $w]
}
}
# Enable all top level windows which are children of `.'.
proc WINGRAB_enable_all {} {
foreach w [winfo children .] {
ide_grab_support_enable [wm frame [winfo toplevel $w]]
}
}
# The basic routine. All commands are subcommands of this.
proc ide_grab_support {dispatch args} {
global tcl_platform
if {[info commands WINGRAB_$dispatch] == ""} then {
error "unrecognized key \"$dispatch\""
}
# We only need to do stuff on Windows.
if {$tcl_platform(platform) != "windows"} then {
return
}
eval WINGRAB_$dispatch $args
}