Hi Jimmy et al, >> 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 =)
> glad you like it! I'll definitely extract it to a separate github project > later on - I'll ping you when I do so. not sure if my annoucement was clear - the separate project is now available. It's called Magic: http://github.com/thbar/magic/tree/master At the end I realize the syntax is totally shooesesque (http://shoooes.net/). I'm in the process of evolving it so that it works well with WPF and Silverlight (and QuickGraph, too). cheers, -- Thibaut > > > > 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]> > 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]] 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 on github) and the implementation. > > > > 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] > http://rubyforge.org/mailman/listinfo/ironruby-core > > > > > > _______________________________________________ > Ironruby-core mailing list > [email protected] > http://rubyforge.org/mailman/listinfo/ironruby-core > > _______________________________________________ Ironruby-core mailing list [email protected] http://rubyforge.org/mailman/listinfo/ironruby-core
