Sujet : ISO a way to select programmatically an entry from a popup De : hgiese (at) *nospam* ratiosoft.com (Helmut Giese) Groupes :comp.lang.tcl Date : 13. Sep 2024, 00:31:34 Autres entêtes Organisation : ratiosoft Message-ID :<l4t6ejp2n55d7dpkt497ntummfi1m7ns9h@4ax.com> User-Agent : Forte Free Agent 1.93/32.576 English (American)
Hello out there, it seems like as long as a popup is posted the app cannot do anything - in particular it cannot post any events. Consider this script: --- package require Tk foreach ch [winfo children "."] {destroy $ch}
# Turn $x & $y into absolute coords proc mkAbsCoords {c x y} { # get the canvas's coord relative to the toplevel set xOfs [expr {[winfo rootx $c]}] set yOfs [expr {[winfo rooty $c]}] return [list [expr {$x + $xOfs}] [expr {$y + $yOfs}]] }
set num [lindex $argv 0] set c [canvas .c -width 200 -height 200] pack $c set id [$c create rectangle 50 50 150 150 -fill lightyellow] $c bind $id <Button-3> [list popupMenu $c %x %y] update if {$num} { set event Button } else { set event ButtonPress } event generate $c <$event> -button 3 -x 100 -y 100 -warp 1 puts "Back from '$event'" if {$num == 0} { event generate $c <ButtonRelease> -button 3 -x 100 -y 100 -warp 1 puts "Back from 'ButtonRelease'" } --- and this output: --- Microsoft Windows [Version 10.0.19045.4894] (c) Microsoft Corporation. Alle Rechte vorbehalten.
d:\proj\_ToolsSE\Skeleton\TclTests>tclsh tst.tcl 1 Back from 'Button' Op1 selected
d:\proj\_ToolsSE\Skeleton\TclTests>tclsh tst.tcl 0 Back from 'ButtonPress' Back from 'ButtonRelease' Op1 selected --- To me this seems to clearly indicate that the selection cannot be influenced by the controlling app: control only returns when the selection has happened - which is too bad.
Or is there a trick by which one can influence the selection from a popup? Any idea will be highly appreciated. Helmut Oh, this is on Windows 64 bit under Tcl 8.6.10
Date
Sujet
#
Auteur
13 Sep 24
ISO a way to select programmatically an entry from a popup