Not exactly what I was looking for. I am building the menu within my code
and so there is no _Click subroutine for each menu item. Unless I can build
subroutines within my code as well, but I don't know how to go about doing
that.
I am making a subroutine for all the menu options of this type, kind of like
this:

sub menuclicked_Click
        {
        $lastclicked=$Menu->Clicked();
        print "$lastclicked\n";
        }
-----------------------------------------------
Here's the actual section of the code I am working with, you can see how I
build the menu and call testit_Click, but testit_Click doesn't know which
menu item called it. I need to find the text of the menu item or even which
item in the sequence was clicked, then I can figure it out from there. you
can see in testit_Click the various ways I have tried to determine what
menuitem was selected.

sub testit_Click
        {
        print "sent:@_\n";
        print "Text it click!\n";
        print $RightClickMenu->Selected(),"\n";
        print $RightClickMenu->Clicked(),"\n";
        print $RightClickMenu->Text(),"\n";
        print "\n$windowtext\n";
        }

sub TrayIcon_RightClick
        {

        my @tempmenu=(
                "$title Options" => "POPUP_TrayIcon",
                "   >&Open"                     => "TrayIconOpen",
                "   >&Close"            => "TrayIconClose",
                "   > -"                        => 0,
        );

        Win32::Setupsup::EnumWindows(\@windows);
        foreach $window (@windows)
                {
                Win32::Setupsup::GetWindowText($window, \$windowtext);
                if ((GUI::IsEnabled($window)) and (!GUI::IsVisible($window))
and (GUI::IsIconic($window)) and ($windowtext))
                        {@tempmenu=(@tempmenu,"   >&$windowtext"
=> "testit",);}
                }

        $RightClickMenu = Win32::GUI::MakeMenu(@tempmenu);

        my($X, $Y) = Win32::GUI::GetCursorPos();
        $Window->TrackPopupMenu($RightClickMenu ->{POPUP_TrayIcon}, $X, $Y);
        Refresh_Click();
        return 1;
        }


----------------------------------------------------------------------------
---------------------
Tim Thomas
Unix Systems Administrator
Lockheed Martin EIS · Denver Data Center
303-430-2281 · Pager 800-545-3704
mailto:[EMAIL PROTECTED]
Pager: mailto:[EMAIL PROTECTED]
----------------------------------------------------------------------------
---------------------

> -----Original Message-----
> From: Eric C. Hansen [SMTP:[EMAIL PROTECTED]]
> Sent: Friday, February 25, 2000 11:43 AM
> To:   [EMAIL PROTECTED]
> Subject:      RE: [perl-win32-gui] Last Menu Item Clicked?
> 
> Sure.  Just declare a global variable such as $last_clicked.  Then, in the
> click event for each menu option, set the $last_clicked variable to some
> value that lets you identify that menu item.
> 
> # Example Source
> .
> .
> .
> $last_clicked="";
> Win32::GUI::Dialog();
> 
> 
> sub Open_Click {
>    $last_clicked="Open";
> }
> 
> sub Browse_Click {
>    $last_clicked="Browse";
> }
> 
> Regards,
> Eric
> 
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]On Behalf Of Thomas, Timothy B
> Sent: Friday, February 25, 2000 12:19 PM
> To: '[EMAIL PROTECTED]'
> Subject: [perl-win32-gui] Last Menu Item Clicked?
> 
> 
> Is there any way to determine after the fact which Menu item was clicked
> last?
> Maybe something like?
>       print $Menu->Clicked(),"\n";
> 
> 
> --------------------------------------------------------------------------
> --
> ---------------------
> Tim Thomas
> Unix Systems Administrator
> Lockheed Martin EIS · Denver Data Center
> 303-430-2281 · Pager 800-545-3704
> mailto:[EMAIL PROTECTED]
> Pager: mailto:[EMAIL PROTECTED]
> --------------------------------------------------------------------------
> --
> ---------------------
> 
> 
> 

Reply via email to