Hi all, I seem to step in every hole there is on my IronRuby test drive. Using the latest git head I am failing to register a button click event in WPF:>>> require "WindowsBase, Version=3.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35" => true>>> require "PresentationCore, Version=3.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35" => true>>> require ''PresentationFramework, Version=3.0.0.0, Culture=neutral,PublicKeyToken=31bf3856ad364e35'' => true>>> b = System::Windows::Controls::Button.new=> #<System::Windows::Controls::Button:0x0000064>>>> def on_click o, args... puts "clicked!!" ... end => nil>>> b.add_Click( method(:on_click)):0: can''t convert Method into System::Windows::RoutedEventHandler (TypeError)>>> h=System::Windows::RoutedEventHandler.new{|o, args| puts "clicked!!" }=> #<System::Windows::RoutedEventHandler:0x000006a>>>> h.Invoke(nil, nil)clicked!! => nil>>> b.add_Click(h):0: can''t convert Method into System::Windows::RoutedEventHandler (TypeError) Actually I would have expected b.add_Click( method(:on_click)) or b.add_Click( lambda {|o, args| ... } ) to work, just like it does in IronPython:>>> clr.AddReference( ''WindowsBase'') >>> clr.AddReference( ''PresentationCore'') >>> clr.AddReference( ''PresentationFramework'') >>> import System >>> from System import Windows >>> from System.Windows import Controls >>> from System.Windows.Controls import * >>> b= Button() >>> def on_click(o, args):... print "clicked!!" ...>>> b.add_Click(on_click) >>>I hope, I am not starting to annoy you guys ;) -- henon -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20090209/ce351ae7/attachment.html>
b.click { puts "clicked!!" }
should do. We are going to enable more ways how to hook event handlers.
Tomas
From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at
rubyforge.org] On Behalf Of Meinrad Recheis
Sent: Sunday, February 08, 2009 3:46 PM
To: ironruby-core
Subject: [Ironruby-core] WPF: registering a routed event
Hi all,
I seem to step in every hole there is on my IronRuby test drive. Using the
latest git head I am failing to register a button click event in
WPF:>>> require "WindowsBase, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"
=> true>>> require "PresentationCore, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"
=> true>>> require ''PresentationFramework, Version=3.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35''
=> true>>> b = System::Windows::Controls::Button.new
=>
#<System::Windows::Controls::Button:0x0000064>>>> def on_click o, args
... puts "clicked!!"
... end
=> nil>>> b.add_Click( method(:on_click))
:0: can''t convert Method into System::Windows::RoutedEventHandler
(TypeError)>>> h=System::Windows::RoutedEventHandler.new{|o, args| puts
"clicked!!" }
=>
#<System::Windows::RoutedEventHandler:0x000006a>>>> h.Invoke(nil, nil)
clicked!!
=> nil>>> b.add_Click(h)
:0: can''t convert Method into System::Windows::RoutedEventHandler
(TypeError)
Actually I would have expected b.add_Click( method(:on_click)) or b.add_Click(
lambda {|o, args| ... } ) to work, just like it does in IronPython:
>>> clr.AddReference( ''WindowsBase'')
>>> clr.AddReference( ''PresentationCore'')
>>> clr.AddReference( ''PresentationFramework'')
>>> import System
>>> from System import Windows
>>> from System.Windows import Controls
>>> from System.Windows.Controls import *
>>> b= Button()
>>> def on_click(o, args):
... print "clicked!!"
...>>> b.add_Click(on_click)
>>>
I hope, I am not starting to annoy you guys ;)
-- henon
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://rubyforge.org/pipermail/ironruby-core/attachments/20090208/38997d7b/attachment.html>
We only have blocks/lambda->event handlers working. Passing a method handle is on the list, but not done yet. Feel free to post a bug on RubyForge to make sure we get around to it. http://rubyforge.org/tracker/?func=add&group_id=4359&atid=16798 ~js From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Meinrad Recheis Sent: Sunday, February 08, 2009 3:46 PM To: ironruby-core Subject: [Ironruby-core] WPF: registering a routed event Hi all, I seem to step in every hole there is on my IronRuby test drive. Using the latest git head I am failing to register a button click event in WPF:>>> require "WindowsBase, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"=> true>>> require "PresentationCore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"=> true>>> require ''PresentationFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35''=> true>>> b = System::Windows::Controls::Button.new=> #<System::Windows::Controls::Button:0x0000064>>>> def on_click o, args... puts "clicked!!" ... end => nil>>> b.add_Click( method(:on_click)):0: can''t convert Method into System::Windows::RoutedEventHandler (TypeError)>>> h=System::Windows::RoutedEventHandler.new{|o, args| puts "clicked!!" }=> #<System::Windows::RoutedEventHandler:0x000006a>>>> h.Invoke(nil, nil)clicked!! => nil>>> b.add_Click(h):0: can''t convert Method into System::Windows::RoutedEventHandler (TypeError) Actually I would have expected b.add_Click( method(:on_click)) or b.add_Click( lambda {|o, args| ... } ) to work, just like it does in IronPython:>>> clr.AddReference( ''WindowsBase'') >>> clr.AddReference( ''PresentationCore'') >>> clr.AddReference( ''PresentationFramework'') >>> import System >>> from System import Windows >>> from System.Windows import Controls >>> from System.Windows.Controls import * >>> b= Button() >>> def on_click(o, args):... print "clicked!!" ...>>> b.add_Click(on_click) >>>I hope, I am not starting to annoy you guys ;) -- henon -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20090209/e6c7d2e0/attachment-0001.html>
FYI, Tomas''s latest patch (http://www.ruby-forum.com/topic/179668)
expands IronRuby''s .NET event support to:
def handler a,b
puts ""handler: #{a} #{b}""
end
c = C.new
# using a block:
h = c.on_foo { |a,b| ... }
c.on_foo.remove(h)
# using a method object:
h = method(:handler)
c.on_foo.add(h)
c.on_foo.remove(h)
~js
From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at
rubyforge.org] On Behalf Of Jimmy Schementi
Sent: Monday, February 09, 2009 6:28 PM
To: ironruby-core at rubyforge.org
Subject: Re: [Ironruby-core] WPF: registering a routed event
We only have blocks/lambda->event handlers working. Passing a method handle
is on the list, but not done yet. Feel free to post a bug on RubyForge to make
sure we get around to it.
http://rubyforge.org/tracker/?func=add&group_id=4359&atid=16798
~js
From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at
rubyforge.org] On Behalf Of Meinrad Recheis
Sent: Sunday, February 08, 2009 3:46 PM
To: ironruby-core
Subject: [Ironruby-core] WPF: registering a routed event
Hi all,
I seem to step in every hole there is on my IronRuby test drive. Using the
latest git head I am failing to register a button click event in
WPF:>>> require "WindowsBase, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"
=> true>>> require "PresentationCore, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"
=> true>>> require ''PresentationFramework, Version=3.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35''
=> true>>> b = System::Windows::Controls::Button.new
=>
#<System::Windows::Controls::Button:0x0000064>>>> def on_click o, args
... puts "clicked!!"
... end
=> nil>>> b.add_Click( method(:on_click))
:0: can''t convert Method into System::Windows::RoutedEventHandler
(TypeError)>>> h=System::Windows::RoutedEventHandler.new{|o, args| puts
"clicked!!" }
=>
#<System::Windows::RoutedEventHandler:0x000006a>>>> h.Invoke(nil, nil)
clicked!!
=> nil>>> b.add_Click(h)
:0: can''t convert Method into System::Windows::RoutedEventHandler
(TypeError)
Actually I would have expected b.add_Click( method(:on_click)) or b.add_Click(
lambda {|o, args| ... } ) to work, just like it does in IronPython:
>>> clr.AddReference( ''WindowsBase'')
>>> clr.AddReference( ''PresentationCore'')
>>> clr.AddReference( ''PresentationFramework'')
>>> import System
>>> from System import Windows
>>> from System.Windows import Controls
>>> from System.Windows.Controls import *
>>> b= Button()
>>> def on_click(o, args):
... print "clicked!!"
...>>> b.add_Click(on_click)
>>>
I hope, I am not starting to annoy you guys ;)
-- henon
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://rubyforge.org/pipermail/ironruby-core/attachments/20090225/f4363569/attachment-0001.html>