[MacRuby-devel] How do I handle file drop events in HotCocoa?

Matt Aimonetti mattaimonetti at gmail.com
Mon Mar 16 23:01:14 PDT 2009


You can define your own mapping within your app or extend the existing ones,
delegation can also be added on each instance of any object.

Here is a sample app I wrote with a custom mapping (which was later on
merged in HotCocoa):
http://github.com/mattetti/macruby-examples/blob/fe06617645c8809183fb15bca025016937e1c84b/download/lib/progress_indicator.rb

You can see that I defined my mapping like any other mappings and just
required the file in my application.rb file:
http://github.com/mattetti/macruby-examples/blob/fe06617645c8809183fb15bca025016937e1c84b/download/lib/application.rb#L5

- Matt

2009/3/16 Jeff Cohen <cohen.jeff at gmail.com>

> Hi Laurant,
>
> Thanks a lot for your reply.  And perhaps I misspoke somewhat - I'm not
> trying to implement full drag and drop within my application, but only
> receive simple filename drop events that originate from outside the
> application.  I think that it's just a matter of adding a few extra delegate
> mappings, but I don't understand how to "extend" more mappings into the
> hotcocoa wrapper classes.
>
> Perhaps instead I will try to build from source and add the mappings there,
> and use a local build to test with.  If a miracle occurs and I can figure it
> out, I will submit a patch. :-)
>
> Thanks again!
> Jeff
>
>
>
> On Mon, Mar 16, 2009 at 1:02 PM, Laurent Sansonetti <lsansonetti at apple.com
> > wrote:
>
>> Hi Jeff,
>>
>> (Sorry for the late reply.)
>>
>>
>> On Mar 14, 2009, at 9:09 PM, Jeff Cohen wrote:
>>
>>  Hello,
>>>
>>> I'm just getting started with MacRuby and HotCocoa (was a longtime .NET
>>> developer, and wasn't interested in learning Cocoa until MacRuby came
>>> along).  I have a simple HotCocoa app with just a table view, and I'd like
>>> the user to be able to drop a filename from the Finder onto the table view
>>> (or anywhere in my app). I can call registerForDraggedTypes() on my table
>>> view object successfully.  But I'm not sure how to have events delegated to
>>> my Application class (or if that's even possible).
>>>
>>> Looking at the hotcocoa source for wrapping NSView (view.rb), I don't see
>>> delegate mappings for the draggingEntered or performDragOperation events.  I
>>> think I need to do something like the mapping code does and write code like
>>> this:
>>>
>>> delegating "draggingEntered", :to => :dragging_entered
>>>
>>> but I don't know where I can or should do that, or if I'm even on the
>>> right track.
>>>
>>> Any hint of where I should get started would be appreciated.
>>>
>>
>> I don't think HotCocoa exposes drag and drop facilities yet. In general
>> drag and drop in Cocoa is non trivial to do (esp. if you want to integrate
>> it with complex views such as NSTableViews).
>>
>> The following article describes how to implement drag and drop in Cocoa:
>>
>>
>> http://developer.apple.com/documentation/Cocoa/Conceptual/DragandDrop/DragandDrop.html
>>
>> It even has a special section dedicated to NSTableViews.
>>
>> You should be able to do everything  described in this article using
>> "pure" MacRuby code but if you want to use some kind of syntax sugar via
>> HotCocoa I'm afraid you will have to wait until someone implements them.
>>
>> HTH,
>> Laurent
>> _______________________________________________
>> MacRuby-devel mailing list
>> MacRuby-devel at lists.macosforge.org
>> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>>
>
>
> _______________________________________________
> MacRuby-devel mailing list
> MacRuby-devel at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-devel/attachments/20090316/032d951d/attachment.html>


More information about the MacRuby-devel mailing list