[Kde-bindings] Wt ruby bindings

Koen Deforche koen.deforche at gmail.com
Tue Aug 19 12:21:40 UTC 2008


Hey Richard,

On Mon, Aug 18, 2008 at 12:15 PM, Richard Dale <richard.j.dale at gmail.com> wrote:
> I didn't have time at Akademy, but yesterday I got the code generation
> working for a Wt smoke library for use with Ruby bindings, and it now builds
> and links with 130 or so Wt:: classes. The coverage of the api is pretty
> complete apart from the WSignalBase/WSignal classes and the methods that
> take function pointers, or templated arguments. The next steps would be:

That sounds very promising indeed...

> * Get a 'hello world' working by linking to the QtRuby runtime
> * Find out how much interest there would be in a Ruby Wt binding by mailing
> the Wt list
> * Create a WtRuby project be removing all Qt-specific code from QtRuby
> * Write marshallers for the various std::vector and std::map types etc
> * Work out how to do slots/signals in Ruby.
>
> I don't think I should put the code in the KDE svn as it isn't really
> possible to use it with any KDE code. So it could go on the Korundum
> RubyForge project or maybe as another WtRuby project on RubyForge. I'll
> check in the changes needed for the 'kalyptus' code generator as that won't
> do any harm. I've attached a tar ball of the smoke project, and I'll cc this
> mail to the kdebindings list.

Rubyforge sounds like a good place for this?

> Here are the issues that I came across:
>
> * The multiple inclusion guard macro on WPolygonArea was wrong

Oops.

> * An include was missing from WTableRow for WTableCell (I can special case
> this, but the include should be there I think)

I've changed this by a forward declaration to WTableCell. That should be fine?

> The following methods gave problems with linking, which usually means they
> are declared in the header, but not defined (I haven't checked what went
> wrong, just suppressed the code generation for now):
>
> Wt::RemoveExposedSignal(Wt::EventSignalBase*)
> Wt::AddExposedSignal(Wt::EventSignalBase*)
> Wt::WDate::isLeapYear(int)
> Wt::WDate::isValid(int, int, int)
> Wt::WPainter::drawImage(double, double, Wt::WPainter::Image const&, double,
> double, double, double)
> Wt::WPainterPath::addEllipse(Wt::WRectF const&)
> Wt::WRectF::WRectF(Wt::WPointF const&, Wt::WPointF const&)
> Wt::WSlider::setRange(int, int)
> Wt::WTextEdit::setStyleSheet(std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > const&)
> Wt::WTextEdit::setExtraPlugins(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)
> Wt::WTextEdit::setToolBar(int, std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)

I have fixed all these (in CVS).

Looking forward to more Ruby on Steroids!

Regards,
koen



More information about the Kde-bindings mailing list