blob: 1f579f93feb8ca9b1e4669aded226acc62a786e0 [file] [log] [blame]
# 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
}