[Ironruby-core] Events?

Tomas Matousek Tomas.Matousek at microsoft.com
Thu Aug 14 18:08:56 EDT 2008


It seems that both parts of the code are Ruby. So you should use Ruby language features. It's possible to emulate CLR events by a list of blocks.

event = []

# adding a handler:
handler = lambda { ... }
event << handler

# removing a handler:
event.delete handler

# firing an event:
event.each { |handler| handler[args] }

Tomas

From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Sean Clark Hess
Sent: Thursday, August 14, 2008 1:29 PM
To: ironruby-core at rubyforge.org
Subject: Re: [Ironruby-core] Events?

Let's say I create a class called MovieControls, that wraps some existing xaml.  The xaml has several buttons, including a toggle play/pause button, and a previous and next button.

MovieControls would listen to the click of the play/pause button, and would dispatch a "play" event when they clicked it to play it, and "pause" for the opposite.

I want to be able to listen to MovieControls to know when to tell my video to "play" and "pause".

So, it would be something like this...  In MovieControls
play_pause_button.click { if (isPlayState) dispatch("play") else dispatch("pause") end }

Then, in my app
myMovieControls.play { doPlay }
myMovieControls.pause { doPause }

Does that make more sense now? If this seems totally out of the blue, how are people currently handling abstracting away this kind of functionality?

Thanks
~sean

On Thu, Aug 14, 2008 at 2:22 PM, Tomas Matousek <Tomas.Matousek at microsoft.com<mailto:Tomas.Matousek at microsoft.com>> wrote:

I'm not sure I understand the scenario. Would you like to declare an event on Ruby object that you want to hook from C# code? Like rubyEngine.Operations.GetMember(obj, "my_event") += delegate { ...}?



Tomas



From: ironruby-core-bounces at rubyforge.org<mailto:ironruby-core-bounces at rubyforge.org> [mailto:ironruby-core-bounces at rubyforge.org<mailto:ironruby-core-bounces at rubyforge.org>] On Behalf Of Sean Clark Hess
Sent: Thursday, August 14, 2008 12:04 PM
To: ironruby-core at rubyforge.org<mailto:ironruby-core at rubyforge.org>
Subject: [Ironruby-core] Events?



Hi all,



Is there a built-in event system for IronRuby?  I know I can handle events with button.click { }, but what if I want to dispatch my own, custom events (from a class I created myself?).



I wrote my own event system, but I would prefer to use a built-in dispatch method if it exists.



Thanks!

~sean

_______________________________________________
Ironruby-core mailing list
Ironruby-core at rubyforge.org<mailto:Ironruby-core at rubyforge.org>
http://rubyforge.org/mailman/listinfo/ironruby-core

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20080814/42303f57/attachment-0001.html>


More information about the Ironruby-core mailing list