Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^2: Tk pop-up if condition is met

by IB2017 (Pilgrim)
on Aug 06, 2020 at 11:45 UTC ( [id://11120418]=note: print w/replies, xml ) Need Help??


in reply to Re: Tk pop-up if condition is met
in thread Tk pop-up if condition is met

Thank you. But how? I am trying several things with no success. For example

my $menu = $mw->Menu(-tearoff=>0, -postcommand => sub { return if $o +bj->getSelected eq "" }, -menuitems=>[ [command=>$messagePopupSave, -command=>[sub { my $UserInput=$obj->getSelected; print $UserInput; }, $obj,]], [qw/command Copy/, -command=>['clipboardCopy', $obj,]], ]);

Replies are listed 'Best First'.
Re^3: Tk pop-up if condition is met
by jcb (Parson) on Aug 07, 2020 at 01:53 UTC

    In the case where I needed this, I was attaching a submenu for suggestions while adding live spelling check to a Tk::Text widget. The code is basically a first draft of the concept as part of one of my personal "toy" projects. Here are some pieces:

    my $main_text_field = $top->Text(-width => 132, height => 24, -setgrid => 1, -wrap => 'word'); my $main_text_field_spelling_menu = $main_text_field->menu->Menu(-tear +off => 0); $main_text_field_spelling_menu->configure (-postcommand => [\&post_suggestion_menu, $main_text_field, $main_text_field_spelling_menu]) +; $main_text_field->menu->insert ('View', cascade => -label => 'Respell...', -underline => 0, -menu => $main_text_field_spelling_menu);
    sub post_suggestion_menu { my $widget = shift; my $menu = shift; my @wordpos; $menu->delete(0, 'end'); # extract word boundaries where user requested menu into @wordpos if (exists $spelling_suggestions{$word}) { $menu->add(command => -label => $_, -command => [\&replace_word, $widget, @wordpos, $_]) foreach @{$spelling_suggestions{$word}}; } else { $menu->add(command => -label => 'No suggestions.', -state => 'disa +bled'); } }

    The -postcommand callback is able to edit the menu before it is displayed, although in my use, I wanted a fully dynamic menu that is rebuilt every time the user (me) asks for it. Note that the menu will be displayed (as far as I know) after -postcommand returns. If you want to prevent displaying the menu at all, you would need to replace the binding that posts the menu.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11120418]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (3)
As of 2024-03-29 06:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found