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!

No comments: