Awesome stuff! If you make this into its own github project, I can add it to 
http://github.com/ironruby/ironruby-contrib as a submodule. That'll force me to 
keep it updated =)

From: [email protected] 
[mailto:[email protected]] On Behalf Of Thibaut Barrère
Sent: Friday, February 27, 2009 2:46 PM
To: [email protected]
Subject: Re: [Ironruby-core] A tiny DSL to build Windows::Forms menus from 
IronRuby - review wanted

After chatting with Ivan, I created some code to build Forms too:




form = Magic.build do



  form(:text => "Hello") do



    flow_layout_panel(:dock => DockStyle.fill) do



      button(:text => "Click me!", :click => lambda { MessageBox.Show("Hello") 
})



      button(:text => "Quit", :click => lambda { Application.Exit })



    end



  end



end






I use method_missing and transform the method name from flow_layout_panel to 
FlowLayoutPanel class etc.

After using these a bit, I'm pretty sure we'll end up with some community 
project sharing that kind of stuff, at some point.

Nb: I hope it's not OT for the core list - or is it time to create a user group 
?

cheers,

-- Thibaut

On Fri, Feb 27, 2009 at 8:54 PM, Thibaut Barrère 
<[email protected]<mailto:[email protected]>> wrote:
Hi,

I think it looks very nice. It's a shame that you have to resort to direct 
lambda's since you can't pass two lambda's in, but otherwise it's a nice visual 
representation of the menu, in code.
thanks for the feedback, appreciated!

I just realised that I can also use this (without modifying the implementation):

    item("&PowerBlade").click { MessageBox.Show("Powerblades are amazing...") }

instead of

    item("&PowerBlade", lambda { MessageBox.Show("Powerblades are amazing...") }

same effect, slightly more readable though.

cheers, and I shall move on to long running operations.

-- Thibaut




JD



From: 
[email protected]<mailto:[email protected]> 
[mailto:[email protected]<mailto:[email protected]>]
 On Behalf Of Thibaut Barrère
Sent: Thursday, February 26, 2009 2:26 PM
To: ironruby-core
Subject: [Ironruby-core] A tiny DSL to build Windows::Forms menus from IronRuby 
- review wanted



Hi,



I started working on UI bits, both for Ivan book and because my customers are 
interested (and well - because it's fun, too!). First topic is how to build 
menus more easily (next one will be long running operations and how to sugar 
them).



I'd be interested to get your opinion on both the DSL syntax (below for quick 
read or 
here<http://github.com/thbar/ironruby-labs/blob/66b45fd6f13d2b3c8aa8021ee3f58303a9bb7eae/ui/003_dsl_menu.rb>
 on github) and the 
implementation<http://github.com/thbar/ironruby-labs/blob/66b45fd6f13d2b3c8aa8021ee3f58303a9bb7eae/ui/menu_builder.rb>.



form.menu = MainMenu.build do
  item("&File") {
    item("&New") {
      item("Spreadsheet")
      item("Document")
    }
    item "&Quit", lambda { Application.Exit }
  }
  item("&Tools") {
    item "&PowerBlade", lambda { MessageBox.Show("Powerblades are amazing...") }
    item "&Scissors"
  }
end



what do you think ?



cheers,



Thibaut Barrère

--
LoGeek
[blog] http://evolvingworker.com - tools for a better day
[blog] http://blog.logeek.fr - about writing software

_______________________________________________
Ironruby-core mailing list
[email protected]<mailto:[email protected]>
http://rubyforge.org/mailman/listinfo/ironruby-core


_______________________________________________
Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core

Reply via email to