Thursday, July 22, 2010

GSoC 2010 Mid Term

Even though it was expected because we could see all of them working hard, I'm still happy to announce that all GSoC students working on wxWidgets this summer have passed their mid term evaluations with flying colours, congratulations! To give you some insight in what exactly has happened during the first half of the program, here are progress reports straight from the students themselves:

wxRichTextCtrl image support improvements project

Mingquan Yang

My project generally contains two main parts: an image controlling dialog and multiple image floating supports.

For controlling dailog, in the past weeks, a new class wxRichTextImageDlg was added to control the image properties.
And wxRichTextImageAttr is completed to pass the image property between image object and controlling dialog. Now the dialog supports image alignment, floating and image scaling change. And in layout, we only support image scaling now. The richtext sample application is changed to add the new feature.

The floating layout work started from last week and get a detail discuss about how to anchor an image to a paragraph and how the alignment/floating affect the image with my mentor. Now, code design is complete and I have started coding on this floating algorithm.

Implementing support for new Windows Vista/7 UI elements in wxWidgets

Rickard Westerlund

My work started out slow with school ending late and other issues I've had to deal with. It's going quite well now, I've finished my work on implementing wxCommandLinkButton and I should be finished with task dialog replacement for wxMessageDialog as well as the new wxRichMessageDialog pretty soon. I hope I will also be under way with the task dialog replacement for wxProgressDialog at the time of the mid-term evaluation.

Most of the problems I've encountered have been related to following the code structure and style of wxWidgets, since I haven't worked with it before. Since I've learnt a lot about that I believe the work on the remaining components to go much smoother.

For the next period I will work on implementing a wxSplitButton class and a native implementation of wxHyperLinkCtrl using syslinks for Windows. I've already looked into split buttons and syslinks and come up with some ideas for the implementation.
Finally, for the taskbar-related functionality I had planned I'd like to at least implement the progress bar as it should be possible to implement under other platforms as well.

Masked edit control implementation

Julien Weinzorn

In the beginning, my work was to write documentation and the base of the classes wxMaskedField and wxMaskedEdit. Next I have created unitary test and correct my code.

After this I got some problems with autoconf and event connection, but now it works well. Therefore my timeline was ambitious and the project is a bit more complicated than I thought.

Two weeks ago I have beginning to write a basic sample to test my code and it was not working according to wxPython. Therefore I have test an other way to code maskEdit and the new version works find with single field mask.

At present, wxMaskedField and wxMaskedEdit are completed. I think the docs is for a great part written. Unitary test are write and all test works. The connection between textCtrl and mask works. The connection between comboBox and mask works.

Now I want to add mouse support, and next add sample withing multiple field and default user input (it is an array of possible choice). Next add some advance features like change fill char, add some formatCode to change the mask behaviour and if I have the time, attempt to a regex validation options.

wxQt port

Javier Torres

wxQt is progressing well. I have already implemented wxDC and friends so we can paint on windows and bitmaps. Also, I have started
implementing the window functionality I needed to be able to test the image and drawing samples. Right now, both the drawing and images sample compile and work fine (although some functionality such as blitting is still not there). Some random screenshots comparing side to side with wxGTK (up and left is qt, down and right is gtk):
first and second one.

On the wxWindow front, the event handling architecture is there, and some random events are handled (mousewheeling, OnPaint and some more) and implementing all of these is the next objective. After that, the only thing missing to complete the initial idea for the project is all the details of windows and subclasses (mostly the scrolled window as it is the most different).

Unit tests for the GUI features

Steven Lamerton

GUI unit-testing work is coming along nicely, especially as my exams didn't finish until just before two weeks ago. Before my exams (and during them too!) I worked on wxUIActionSimulator. The keyboard related functions now all take a wxKeyCode rather than platform specific key codes and wxKeyModifiers rather than a long list of bools. The Unix implementation specifically was nearly completely re-written and a wxKeycode -> CGKeyCode function was written for OSX. I now feel wxUIActionSimulator could be enabled by default rather than disabled.

Since exams I have been working entirely on testing. I have written a new wxTestableFrame class for counting events and updated the existing unit-testing framework to make use of it. Once this was completed, and the issue I brought up on the list was solved, I started working on new test cases. In just over a week I have increased the number of tests from roughly 85 to 160. Many of these are testing the events generated by controls and ensuring they actually match up to the documentation.

Thanks once again for all of you and good luck for the rest of the program!

Monday, July 19, 2010

2.9.1 Finally Done

The 2.9.1 is finally officially done, all the files are here or at the FTP mirror. Not much to add to the previous posts about 2.9.1, I can only say that for me this is without doubt the best* wxWidgets release to date and it's incredibly more convenient and practical to use for development than 2.8.

Thanks to Stefan for quickly fixing the two important Mac bugs mentioned in the last update. And thanks for Source Forge for making the releases much, much less painful than in the past -- you can now simply scp the files to their file release system instead of passing by the hideous and incredibly slow (at least in the past when I had to use it) web-based file manager. It's a pleasure to see such outbreaks of common sense, even if (or "especially when"?) they come after years of torturing people with their old interface.

And, of course, thanks to everybody else who contributed to this release and the ongoing wxWidgets development. You're too numerous to be listed here but your help is really appreciated and, as hard as it could be to believe, the release would have taken even longer (if it ever happened at all) without it. Thank you!

* Barring some catastrophic bug which we didn't notice, of course...

Thursday, July 15, 2010

2.9.1 Update

Unfortunately some new bugs prevented us from making 2.9.1 as planned and now we aim at July 19 instead. Please let us know if you find any other important problems in the current svn!