[Ironruby-core] A tiny DSL to build Windows::Forms menus from IronRuby - review wanted
Jimmy Schementi
Jimmy.Schementi at microsoft.com
Fri Feb 27 17:48:33 EST 2009
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: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Thibaut Barrère
Sent: Friday, February 27, 2009 2:46 PM
To: ironruby-core at rubyforge.org
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 <thibaut.barrere at gmail.com<mailto:thibaut.barrere at gmail.com>> 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: 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 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
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/20090227/5172f20b/attachment.html>
More information about the Ironruby-core
mailing list