wxWidgets is a C++ library that lets developers create applications for Windows, Mac OS X, Linux and other platforms with a single code base. It has popular language bindings for Python, Perl, Ruby and many other languages, and unlike other cross-platform toolkits, wxWidgets gives applications a truly native look and feel because it uses the platform's native API rather than emulating the GUI. It's also extensive, free, open-source and mature.
Google Summer of Code 2014 wrapped up back on August 25th, and we're pleased to announce that all six of our students passed their evaluations! We wanted to share the results of these projects today.
wxGraphicsContext using Direct2D - Alexandru Pana has brought together a very functional Direct2D wxGraphicsContext renderer for Windows 7 and later. This work has been merged to wxWidgets SVN trunk. You can review a summary of what has been done here. Be sure to check out the "drawing" sample!
wxTaskBarButton under Windows Vista/7+ - Chaobin Zhang has implemented the native Windows 7 taskbar functionality with a very clean and easy to use API available through wxTaskBarButton. This project was cut short of an OSX implementation, however, nearly every native feature of the Windows 7 taskbar is available for use, and has been merged to wxWidgets SVN trunk. We would encourage others interested in working on the OSX implemention to get involved now that GSoC has ended. Here's an overview of the features, and be sure to check out the new "taskbarbutton" sample.
Chromium backend for wxWebView - Haojian Wu has brought wxWidgets the ability to integrate a single common, modern browser engine on all platforms based on the CEF3 library. This adds wxWebViewChromium to wxWidgets, but requires a bit more work to enable out of the box due to library dependencies. This has not been merged to SVN trunk yet, check out the pull request to get involved in the review, and it's new "webview_chromium" sample. Here's the overview of the project as well.
wxQt Port - Mariano Reingart continues the work from Peter Most, Javier Torres, Kolya Kosenko, and his own work even back in 2013, building out the new Qt-based wxWidgets port to a usable state. Being one of the more ambitious projects, we're very pleased to see the success of this project. We'd also like to thank Sean D'Epagnier for his help as well. This work has been merged to SVN trunk. Check out the installation instructions, the project overview and wxQt status, and the merge pull request with screenshots.
wxAndroid Port - Nikola Miljkovic worked on this fresh new port, with the goal of building just a single minimal sample into an Android app. The majority of this project involved working out the details of wrapping wxWidgets C++ calls through JNI just for the main required application components. Nikola has achieved this as seen by the wxWidgets-based android app in the Google Play Store, but to be clear, this port still requires a lot of work before it's usable. There aren't any plans to merge this to SVN trunk just yet, but we would encourage interested developers to check out the documentation, and the SOC2014_ANDROID branch Nikola has been working on.
wxUniversal Cleanup - Sun Boxiang chose to tackle general issues with our very neglected wxUniversal port. About 80 unique issues were resolved while expanding the test coverage from 308 to 518 unit tests. This work has not been merged to SVN trunk yet, but hopefully soon. In the mean time, check out the project overview, and the development branch.
Once again, we really want to thank all of our students for one of the most exceptional years we've had participating in the Google Summer of Code program. We'd also like to thank all of the community who stepped up to help these students besides just their mentors.
wxWidgets 3.0.1 bug fix release is now available. Upgrading to it is strongly recommended for all users of 3.0.0 as it contains more than a hundred of important bug fixes to all ports but remains 100% compatible with 3.0.0, both at the API and the ABI level, and so upgrading to it doesn't require absolutely any changes to the existing applications.
In addition to the fixes, described in more details in the change log, this release also includes project files for Microsoft Visual C++ 2012 and 2013 users.
As usual, please download the sources or binaries if you are using one of the supported Windows compilers (Microsoft Visual C++ or MinGW-TDM) from SourceForge or our FTP mirror. The documentation can be downloaded for the offline use from the same locations or consulted online.
Thanks to everybody who contributed, by reporting bugs and submitting patches, to this wxWidgets release. We hope you will find it even better than the previous one and will enjoy using it!
We are very happy to announce that six students have been accepted to work on wxWidgets during this year Google Summer of Code. This is the most projects we have ever had, but unfortunately we still had to reject several other good proposals. We hope to see the students who couldn't be accepted this year during the next year GSoC.
In the meanwhile, congratulations to the students chosen this year and we hope to see a lot of great changes in wxWidgets at the end of the summer. The most exciting project this year is probably the new wxAndroid port, but there are also projects to add support for Direct2D and DirectText, integrate Chromium backend in wxWebView, improve the state of wxUniv port, add support for the Windows taskbar features such as jump lists and even wxQt port.
We are looking forward to all of them and good luck to our students and big thanks to their mentors!
Andrew Smart has created a NuGet package containing a template allowing to easily configure and build wxWidgets applications in Microsoft Visual Studio. See the detailed instructions on the wiki and give it a try if you use MSVS 2010 or later!
Notice that the template works with the official binaries if you use the matching options, i.e. DLL with the correct version-dependent compiler prefix, but if you prefer to use another configuration, for example a static library build of wxWidgets, you can easily build it using the solution files for MSVS 2011 and 2013 which are now also provided (and will be included in the upcoming 3.0.1 release) thanks to the contribution from Artur Wieczorek.
The wxWidgets project has been accepted for participation in Google Summer of Code 2014 program which allows students to work on open source projects during the summer and be paid for it. We propose a number of project ideas this summer but are also open to other suggestions, please see our GSoC page for more information about this program.
This is a great opportunity both for the students and wxWidgets and we hope to see many applications this year. Please help to spread the word and encourage any motivated students you know to apply (or apply yourself if you can, of course)!