Re: [PATCH 4/5] winemac: Implement rudimentary support for system tray icons as Mac status items.

2013-03-21 Thread Nikolay Sivov

On 3/22/2013 10:08, Ken Thomases wrote:

On Mar 21, 2013, at 3:41 PM, C.W. Betts wrote:


On Mar 18, 2013, at 3:22 PM, Ken Thomases  wrote:


On Mar 18, 2013, at 4:04 PM, Charles Davis wrote:


At this point, though, I'm wondering if it wouldn't just be easier to have 
Explorer draw the balloons itself à la Windows XP.

Probably.  I also considered using an NSPopover anchored to the status item.  
Again, that's 10.7+ functionality.

We could implement it and do compile- and runtime checks to make sure that the 
functions aren't called in unsupported OS X versions. However, this would 
probably add fragmentation, and I doubt Alexandre would be happy with this.

I think he'd be OK with some variant of this.  He might not want two 
implementations, one using NSPopover on 10.7+ and another for 10.6.  I don't 
know how he'd feel about notification balloons only being implemented on 10.7+.

Although I'm not sure how important notification balloons are in the grand 
scheme of things, anyway.  I guess users will let us know if they miss them 
(unless somebody is inspired to take on that particular corner of unimplemented 
functionality beforehand).
I might be wrong but I think it was some .net installer that wanted user 
to click on this balloon popup to complete, on the end of installation 
process it was just waiting for such user input.

Cheers,
Ken










Re: [PATCH 4/5] winemac: Implement rudimentary support for system tray icons as Mac status items.

2013-03-21 Thread Ken Thomases
On Mar 21, 2013, at 3:41 PM, C.W. Betts wrote:

> On Mar 18, 2013, at 3:22 PM, Ken Thomases  wrote:
> 
>> On Mar 18, 2013, at 4:04 PM, Charles Davis wrote:
>> 
>>> At this point, though, I'm wondering if it wouldn't just be easier to have 
>>> Explorer draw the balloons itself à la Windows XP.
>> 
>> Probably.  I also considered using an NSPopover anchored to the status item. 
>>  Again, that's 10.7+ functionality.
> 
> We could implement it and do compile- and runtime checks to make sure that 
> the functions aren't called in unsupported OS X versions. However, this would 
> probably add fragmentation, and I doubt Alexandre would be happy with this.

I think he'd be OK with some variant of this.  He might not want two 
implementations, one using NSPopover on 10.7+ and another for 10.6.  I don't 
know how he'd feel about notification balloons only being implemented on 10.7+.

Although I'm not sure how important notification balloons are in the grand 
scheme of things, anyway.  I guess users will let us know if they miss them 
(unless somebody is inspired to take on that particular corner of unimplemented 
functionality beforehand).

Cheers,
Ken





Re: [PATCH 4/5] winemac: Implement rudimentary support for system tray icons as Mac status items.

2013-03-21 Thread C.W. Betts

On Mar 18, 2013, at 3:22 PM, Ken Thomases  wrote:

> On Mar 18, 2013, at 4:04 PM, Charles Davis wrote:
> 
>> On Mar 18, 2013, at 2:23 PM, Ken Thomases wrote:
>> 
>>> On Mar 18, 2013, at 2:15 PM, Ken Thomases wrote:
>>> 
 On Mar 18, 2013, at 3:03 PM, C.W. Betts wrote:
 
> On Mar 17, 2013, at 9:40 PM, Ken Thomases  wrote:
> 
>> Doesn't support right-clicks, mouse moves, or notification balloons.
> Notification balloons can probably be done using either Notification 
> Center or Growl
 
 Yeah, I was thinking that the notification center is the right way to go.
>>> 
>>> Josh reminds me that only code-signed apps can use the Notification Center, 
>>> so that may not be very useful. *sigh*
>> So what? [...]
>> 
>> Though I wonder if it's a good idea to ask users to create a self-signed 
>> certificate just so Wine can use the Notification Center...
> 
> You answered your own question. ;)
> 
> 
>> At this point, though, I'm wondering if it wouldn't just be easier to have 
>> Explorer draw the balloons itself à la Windows XP.
> 
> Probably.  I also considered using an NSPopover anchored to the status item.  
> Again, that's 10.7+ functionality.
We could implement it and do compile- and runtime checks to make sure that the 
functions aren't called in unsupported OS X versions. However, this would 
probably add fragmentation, and I doubt Alexandre would be happy with this.



Re: [PATCH 4/5] winemac: Implement rudimentary support for system tray icons as Mac status items.

2013-03-18 Thread Ken Thomases
On Mar 18, 2013, at 4:04 PM, Charles Davis wrote:

> On Mar 18, 2013, at 2:23 PM, Ken Thomases wrote:
> 
>> On Mar 18, 2013, at 2:15 PM, Ken Thomases wrote:
>> 
>>> On Mar 18, 2013, at 3:03 PM, C.W. Betts wrote:
>>> 
 On Mar 17, 2013, at 9:40 PM, Ken Thomases  wrote:
 
> Doesn't support right-clicks, mouse moves, or notification balloons.
 Notification balloons can probably be done using either Notification 
 Center or Growl
>>> 
>>> Yeah, I was thinking that the notification center is the right way to go.
>> 
>> Josh reminds me that only code-signed apps can use the Notification Center, 
>> so that may not be very useful. *sigh*
> So what? [...]
> 
> Though I wonder if it's a good idea to ask users to create a self-signed 
> certificate just so Wine can use the Notification Center...

You answered your own question. ;)


> At this point, though, I'm wondering if it wouldn't just be easier to have 
> Explorer draw the balloons itself à la Windows XP.

Probably.  I also considered using an NSPopover anchored to the status item.  
Again, that's 10.7+ functionality.

-Ken





Re: [PATCH 4/5] winemac: Implement rudimentary support for system tray icons as Mac status items.

2013-03-18 Thread Charles Davis

On Mar 18, 2013, at 2:23 PM, Ken Thomases wrote:

> On Mar 18, 2013, at 2:15 PM, Ken Thomases wrote:
> 
>> On Mar 18, 2013, at 3:03 PM, C.W. Betts wrote:
>> 
>>> On Mar 17, 2013, at 9:40 PM, Ken Thomases  wrote:
>>> 
 Doesn't support right-clicks, mouse moves, or notification balloons.
>>> Notification balloons can probably be done using either Notification Center 
>>> or Growl
>> 
>> 
>> Yeah, I was thinking that the notification center is the right way to go.
> 
> Josh reminds me that only code-signed apps can use the Notification Center, 
> so that may not be very useful. *sigh*
So what? It's actually possible to self-sign executables. (If you don't have a 
real code-signing certificate, you have to do this to build and use GDB or LLDB 
from source on Mac OS.) You probably won't be able to distribute the resulting 
executable, though.

LLDB has a nice document describing how you'd go about creating a self-signed 
certificate. You can find it here:

http://llvm.org/viewvc/llvm-project/lldb/trunk/docs/code-signing.txt

Though I wonder if it's a good idea to ask users to create a self-signed 
certificate just so Wine can use the Notification Center...

>> I'm not sure if we want to use Growl given that it's not part of the OS, but 
>> I guess I don't feel very strongly one way or another.
Most apps that want Growl come with their own Growl framework. Obviously, we 
can't do that for vanilla Wine. What we really need for this is some way to 
dynamically load and use frameworks (according to the standard rules for 
finding frameworks). That way, we can check for Growl at runtime and use it if 
it's present. I have a small library that wraps the CFBundle API in a 
dlopen(3)-style API. (As a matter of fact, I wrote it specifically to see if we 
could do something like that for Wine. As I recall, it was around the time we 
got OpenAL support.)

Or, we could just check for it in configure (like C.W. said), if that's easier. 
I guess it really depends on AJ, and we won't be hearing from him for a while.

At this point, though, I'm wondering if it wouldn't just be easier to have 
Explorer draw the balloons itself à la Windows XP.

Chip





Re: [PATCH 4/5] winemac: Implement rudimentary support for system tray icons as Mac status items.

2013-03-18 Thread C.W. Betts

On Mar 18, 2013, at 2:23 PM, Ken Thomases  wrote:

> On Mar 18, 2013, at 3:15 PM, Ken Thomases wrote:
> 
>> On Mar 18, 2013, at 3:03 PM, C.W. Betts wrote:
>> 
>>> On Mar 17, 2013, at 9:40 PM, Ken Thomases  wrote:
>>> 
 Doesn't support right-clicks, mouse moves, or notification balloons.
>>> Notification balloons can probably be done using either Notification Center 
>>> or Growl
>> 
>> Yeah, I was thinking that the notification center is the right way to go.
> 
> Josh reminds me that only code-signed apps can use the Notification Center, 
> so that may not be very useful. *sigh*
> 
I can see that not being an issue on CrossOver, but yes, I doubt that the 
average person compiling Wine on their Macs has a proper certificate to sign it.

As for implementing Growl, a configure check can be done, and a warning shown 
if a) they are compiling the Mac driver and b) they do not have the Growl 
development framework installed. This would, however, probably require some 
work to maintain the Growl framework's presence so that, in example, Wine 
compiled by MacPorts can be moved to another computer that does not have the 
Growl framework installed in either /Library/Frameworks or ~/Library/Frameworks.

I have done some work with the OS X linker in my project PlayerPRO to get a 
command-line app to access the framework that is in the same directory of the 
program, but other than that my linker skills aren't that great.



Re: [PATCH 4/5] winemac: Implement rudimentary support for system tray icons as Mac status items.

2013-03-18 Thread Ken Thomases
On Mar 18, 2013, at 3:15 PM, Ken Thomases wrote:

> On Mar 18, 2013, at 3:03 PM, C.W. Betts wrote:
> 
>> On Mar 17, 2013, at 9:40 PM, Ken Thomases  wrote:
>> 
>>> Doesn't support right-clicks, mouse moves, or notification balloons.
>> Notification balloons can probably be done using either Notification Center 
>> or Growl
> 
> Yeah, I was thinking that the notification center is the right way to go.

Josh reminds me that only code-signed apps can use the Notification Center, so 
that may not be very useful. *sigh*

-Ken





Re: [PATCH 4/5] winemac: Implement rudimentary support for system tray icons as Mac status items.

2013-03-18 Thread Ken Thomases
On Mar 18, 2013, at 3:03 PM, C.W. Betts wrote:

> On Mar 17, 2013, at 9:40 PM, Ken Thomases  wrote:
> 
>> Doesn't support right-clicks, mouse moves, or notification balloons.
> Notification balloons can probably be done using either Notification Center 
> or Growl

Yeah, I was thinking that the notification center is the right way to go.  Of 
course, we need to code support for it in a way that still builds and runs on 
10.6.

I'm not sure if we want to use Growl given that it's not part of the OS, but I 
guess I don't feel very strongly one way or another.

-Ken





Re: [PATCH 4/5] winemac: Implement rudimentary support for system tray icons as Mac status items.

2013-03-18 Thread C.W. Betts

On Mar 17, 2013, at 9:40 PM, Ken Thomases  wrote:

> 
> Doesn't support right-clicks, mouse moves, or notification balloons.
Notification balloons can probably be done using either Notification Center or 
Growl, but either due to an out-of-date version of Growl in Twitter or a bug in 
Growl itself, clicking on the Growl notification doesn't bring Twitter to the 
front for me.
> ---
> dlls/winemac.drv/Makefile.in |2 +
> dlls/winemac.drv/cocoa_status_item.m |  175 +
> dlls/winemac.drv/event.c |5 +
> dlls/winemac.drv/image.c |2 +-
> dlls/winemac.drv/macdrv.h|3 +
> dlls/winemac.drv/macdrv_cocoa.h  |   13 ++
> dlls/winemac.drv/systray.c   |  358 ++
> dlls/winemac.drv/winemac.drv.spec|3 +
> 8 files changed, 560 insertions(+), 1 deletions(-)
> create mode 100644 dlls/winemac.drv/cocoa_status_item.m
> create mode 100644 dlls/winemac.drv/systray.c
> 
> <0004-winemac-Implement-rudimentary-support-for-system-tra.patch>