quite cool!

Stef

On Nov 18, 2013, at 11:25 AM, Bernat Romagosa <tibabenfortlapala...@gmail.com> 
wrote:

> Ok guys, in the end I implemented a big time clutch that simulates the 
> behaviour I was after:
> 
> I created a tiny app in C++ that starts Pharo, the image reads the --serve 
> flag (that I implemented in DefaultCommandLineHandler), hides itself via NB, 
> and kills the UIManager process to prevent refreshes.
> 
> Then it adds an icon into the tray, with a single context-menu entry (Quit) 
> that kills the Pharo process quits the tiny app itself.
> 
> I know it's ugly, but it does work and, to the end user, it looks like Pharo 
> just started minimized to tray.
> 
> Thanks a lot for your help! :)
> 
> Bernat.
> 
> 
> 2013/11/13 Igor Stasenko <siguc...@gmail.com>
> 
> 
> 
> On 13 November 2013 12:02, Bernat Romagosa <tibabenfortlapala...@gmail.com> 
> wrote:
> Thanks a lot Torsten!
> 
> I'll invest the whole morning tomorrow in trying to get a little bit more of 
> this to work.
> 
> If I don't succeed... there are lots of very good restaurants in Barcelona, 
> Igor ;)
> 
> i can imagine :) I hope i will be able come there once more one day.
>  Barcelona is very beautiful city.
> :)
> 
> 
> 2013/11/13 Torsten Bergmann <asta...@gmx.de>
> Hi Bernat,
> 
> >how do I translate this into NB code
> 
> Either invite Igor (author of NB) for lunch or try this:
> 
> 
> Its a C-structure, you convert it by wrapping this in a sublcass
> of "NBExternalStructure". See the examples already in a Pharo 3.0 image.
> 
> Basically you need:
> 
> - define a subclass NBExternalStructure subclass: #WinNotifyIconData ...
> - define the correct fields in a class side #fieldsDesc method according to 
> the native data types used in the structure
> - call "WinNotifyIconData rebuildFieldAccessors"
> - setup the types in a shared pool that you can include later:
> 
>    - define the pool:       SharedPool subclass: #WinTryIconConstants ...
>    - in a class initialize method you can setup the type
> 
>      initialize
> 
>         NOTIFYICONDATA := #WinNotifyIconData.
>         PNOTIFYICONDATA:= 'NOTIFYICONDATA *'.
> 
> - by including the pool you can use "NOTIFYICONDATA" or "PNOTIFYICONDATA" in 
> any native boost call.
> 
> 
> If you are in Pharo 3.0 load "OS-Windows" package from the config browser.
> Check the subclasses of NBExternalStructure there.
> 
> I wrapped many other windows structures already so you can get an idea about
> it. For instance have a look at WinConsoleConstants>>initTypeConstants, there 
> you will find
> the CONSOLE_CURSOR_INFO, CONSOLE_SCREEN_BUFFER_INFO structs wrapped in 
> WinConsoleCursor, WinConsoleScreenBuffer classes.
> 
> Compare them with the MSDN struct description.
> 
> >Could the Windows API be any more convoluted and dev-unfriendly in any
> >possible sense?
> 
> This question should go to M$ not Pharo-user ;)
> 
> Bye
> T.
> 
> 
> BTW: I'm not sure "PNOTIFYICONDATA" alone will solve your problem if I 
> remember correctly
>      from my Smalltalk/MT and C/C++ times also playing with tray icons.
>      I guess you need a callback that gets called when the icon is clicked or 
> the tray icon menu
>      is choosen (see uCallbackMessage member in the struct).
>      You also need a handle to an icon - either the icon from the EXEs 
> resource section or
>      by loading one from a bitmap. That means wrapping the icon or bitmap 
> apis too...
> 
> 
> 
> 
> -- 
> Bernat Romagosa.
> 
> 
> 
> -- 
> Best regards,
> Igor Stasenko.
> 
> 
> 
> -- 
> Bernat Romagosa.

Reply via email to