in reply to Running a SystemTray::Applet with a callback in infinite loop

Have you looked inside SystemTray::Applet? Maybe I am missing something, but it doesn't appear to do anything useful.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"I'd rather go naked than blow up my ass"
  • Comment on Re: Running a SystemTray::Applet with a callback in infinite loop

Replies are listed 'Best First'.
Re^2: Running a SystemTray::Applet with a callback in infinite loop
by Corion (Patriarch) on Mar 25, 2010 at 13:57 UTC

    Maybe you're supposed to have one of the SystemTray::Applet plugins installed, although that doesn't seem too clear to me either.

      I thought of that, but the only one I found was SystemTray::Applet::CmdLine, which doesn't seem to do much of anything either. There is mention of subclassing, so maybe you're supposed to create you own subclass with the appropriate implementation, but then the utility of the meagre and restrictive interface is questionable.

      Seems I looked in the worng place. I should have clicked your link.


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.

      Well I can get the app to run and display in the SystemTray, just not with a callback.

      The callback takes hold of the object creation right at ->new.

        I think you have the problem of two competing event loops. I don't think you will be able to solve this. The SystemTray::Applet mainloop will not cooperate with the POE mainloop. You will have to understand the two systems and then think about a way to reconcile their differences. Starting a POE session from within the callback will not work and not do what you seem to think it does.