<div dir="ltr">Hi Koen<br><br><div class="gmail_quote">On Tue, Aug 12, 2008 at 1:02 PM, Koen Deforche <span dir="ltr"><<a href="mailto:koen.deforche@gmail.com">koen.deforche@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Richard,<br>
<br>
Geert is the person who is making Python bindings for Wt (and has<br>
already progressed very far). So I guess he could certainly help you<br>
with specific issues for making Ruby bindings.<br>
<br>
Geert Verbruggen: <a href="mailto:verbruggen.geert@gmail.com">verbruggen.geert@gmail.com</a></blockquote><div>Thanks, I'll contact him about his ideas for getting slots/signals working in language bindings.<br><br>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:<br>
<br>* Get a 'hello world' working by linking to the QtRuby runtime<br>* Find out how much interest there would be in a Ruby Wt binding by mailing the Wt list<br>* Create a WtRuby project be removing all Qt-specific code from QtRuby<br>
* Write marshallers for the various std::vector and std::map types etc<br>* Work out how to do slots/signals in Ruby.<br><br>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.<br>
<br>Here are the issues that I came across:<br><br>* The multiple inclusion guard macro on WPolygonArea was wrong<br>* An include was missing from WTableRow for WTableCell (I can special case this, but the include should be there I think)<br>
<br>diff -r src/Wt/WPolygonArea src.patched/Wt/WPolygonArea<br>7,8c7,8<br>< #ifndef WCIRCLE_AREA_H_<br>< #define WCIRCLE_AREA_H_<br>---<br>> #ifndef WPOLYGON_AREA_H_<br>> #define WPOLYGON_AREA_H_<br>95c95<br>< #endif // WIMAGE_AREA_H_<br>
---<br>> #endif // WPOLYGON_AREA_H_<br>diff -r src/Wt/WTableRow src.patched/Wt/WTableRow<br>10a11<br>> #include <Wt/WTableCell><br><br>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):<br>
<br>Wt::RemoveExposedSignal(Wt::EventSignalBase*)<br>Wt::AddExposedSignal(Wt::EventSignalBase*)<br>Wt::WDate::isLeapYear(int)<br>Wt::WDate::isValid(int, int, int)<br>Wt::WPainter::drawImage(double, double, Wt::WPainter::Image const&, double, double, double, double)<br>
Wt::WPainterPath::addEllipse(Wt::WRectF const&)<br>Wt::WRectF::WRectF(Wt::WPointF const&, Wt::WPointF const&)<br>Wt::WSlider::setRange(int, int)<br>Wt::WTextEdit::setStyleSheet(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)<br>
Wt::WTextEdit::setExtraPlugins(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)<br>Wt::WTextEdit::setToolBar(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)<br>
<br>The FindWt.cmake script is expecting to find the fastcgi Wt lib, which isn't built be default.<br><br>regards<br>-- Richard<br> </div></div><br></div>