Re: Custom drawing in IKImageBrowserView fails
Re: Custom drawing in IKImageBrowserView fails
- Subject: Re: Custom drawing in IKImageBrowserView fails
- From: Mike Abdullah <email@hidden>
- Date: Wed, 25 Nov 2009 14:34:36 +0000
On 25 Nov 2009, at 14:06, Florian Soenens wrote:
> Hi Thomas,
>
> thanks for the reply, i did try the first method you suggest with adding a layer but it didn't work either.
> I also tought of the second method but how would i make sure that my IKImageBrowserView still receives drop event?
You should be able to set the overlay to be invisible to mouse events etc. quite easily.
>
> I ned to be compatible with 10.5 so method 3 is out of the question.
>
> Thanks anyway!
>
> Florian.
>
> On 25 Nov 2009, at 14:44, Thomas Goossens wrote:
>
>> Hi Florian,
>>
>> You can't do custom drawing this way (because the IKImageBrowserView renders into an openGL surface, so AppKit or CoreGraphics calls won't do anything).
>> So to do what you want you can either:
>> - make the view layer backed and add a sub-layer
>> - add an overlay transparent window on top of the image browser view
>> - add an overlay layer with setForegroundLayer: (that's the easiest solution but it is SnowLeopard only).
>>
>> -- Thomas
>>
>>
>> On Nov 25, 2009, at 2:34 PM, Florian Soenens wrote:
>>
>>> Hi list,
>>>
>>> i'm trying to override an IKImageBrowserView to do some custom drawing but i'm stuck.
>>> What i try to accomplish is that when the view contains zero items, some custom drawing happens like drawing an NSAttributedString that says "Drop items here..."
>>> Problem is that my drawing code gets never called.
>>>
>>> Here's the drawRect method of my IKImageBrowserView:
>>>
>>> - (void)drawRect:(NSRect)rect
>>> {
>>> [super drawRect:rect];
>>>
>>> NSUInteger numItems = [[self dataSource] numberOfItemsInImageBrowser:self];
>>>
>>> if(numItems <= 0)
>>> {
>>> NSLog(@"No items in me"); // This gets called, so i'm sure the above code works
>>>
>>> NSRect bounds = [self bounds];
>>> bounds.size.width = 200;
>>> bounds.size.height = 200;
>>> bounds.origin.x += 200;
>>> bounds.origin.y += 200;
>>>
>>> //[NSGraphicsContext saveGraphicsState];
>>>
>>> [[NSColor yellowColor] set]; // Just for testing purposes
>>> NSRectFill(bounds);
>>>
>>> //[NSGraphicsContext restoreGraphicsState];
>>> }
>>> }
>>>
>>> Uncommenting the NSGrahicsContext doesn't help either.
>>>
>>> Anyone has any ideas or workarounds for this?
>>> Thanks in advance,
>>> Florian
>>> _______________________________________________
>>>
>>> Cocoa-dev mailing list (email@hidden)
>>>
>>> Please do not post admin requests or moderator comments to the list.
>>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>>
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>> This email sent to email@hidden
>>
>> _______________________________________________
>>
>> Cocoa-dev mailing list (email@hidden)
>>
>> Please do not post admin requests or moderator comments to the list.
>> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>>
>> Help/Unsubscribe/Update your Subscription:
>>
>> This email sent to email@hidden
>
>
>
> Looking for Web-to-Print Solutions?
> Visit our website : http://www.vit2print.com
>
>
> This e-mail, and any attachments thereto, is intended only for use by the addressee(s) named herein and may contain legally privileged and/or confidential information and/or information protected by intellectual property rights.
> If you are not the intended recipient, please note that any review, dissemination, disclosure, alteration, printing, copying or transmission of this e-mail and/or any file transmitted with it, is strictly prohibited and may be unlawful.
> If you have received this e-mail by mistake, please immediately notify the sender and permanently delete the original as well as any copy of any e-mail and any printout thereof.
> We may monitor e-mail to and from our network.
>
> NSS nv Tieltstraat 167 8740 Pittem Belgium_______________________________________________
>
> Cocoa-dev mailing list (email@hidden)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden