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.
After a two year hiatus, wxWidgets is participating in Google Summer of Code (GSoC) program again! GSoC is a great program allowing students to do something useful to many people and gain experience and learn new things during the summer and be paid a stipend for doing it. As for the open source projects, such as wxWidgets, it's a great opportunity to attract more developers to the projects.
Please see the program site to learn more about it and, most importantly, please spread the word among any students or professors you know -- we are looking for motivated students who would be interested in working on wxWidgets during the summer. Thanks in advance!
wxWidgets 3.1.0 has been released today, as planned, and can be downloaded from GitHub. As for the last couple of releases, we provide binaries for the selected Windows compilers (Microsoft Visual C++ and MinGW-TDM) in addition to the source downloads.
As always, there were too many new features and bug fixes to list them all here, please see the change log for the fuller list but, briefly, the main changes in this release are:
- Better support for high DPI displays, especially under Windows.
- Support for latest compilers including MSVS 2015, g++ 5.3 and clang 3.8, including in C++11 mode.
- Revamped OpenGL support better suited to modern OpenGL (3.2+).
- New wxActivityIndicator and wxNativeWindow classes.
- Significant improvements to wxNotificationMessage.
- Several helpful new methods such as wxTextEntry::ForceUpper(), wxProcess::Activate(), wxDateTime::GetWeekBasedYear(), wxListBox::GetTopItem(), wxStandardPaths::GetUserDir(), wxUIActionSimulator::Select() and others.
- Updated versions of the bundled third party libraries and support for GStreamer 1.0 under Unix.
- New experimental wxQt port.
- Many, many bug fixes.
Please notice that while 3.1.0 is officially a "development" version because it is not fully compatible with 3.0.x, the list of backwards incompatible changes is very short, so you shouldn't have any problems updating to this version from 3.0.x in practice, and you're encouraged to try this version out and use it in production in spite of its odd version number.
Thanks to all the people who have contributed to this release and we hope that you will find it useful and enjoy working with it!
wxWidgets is now officially on GitHub!
While we were using this repository since quite some time before, it was only a mirror of the main, Subversion, repository hosted elsewhere. But we have finally left Subversion behind and are now using Git exclusively. Most of the documentation has been updated to reflect the switch, but please let us know if we forgot something and there are still mentions of svn anywhere.
This should make getting the latest wxWidgets sources and participating in its development even simpler than before. We still continue to use our own bug tracker, but you can also submit pull requests on GitHub, if only to test your changes with Travis CI.
wxWidgets 3.0.2 maintenance release is now available. Upgrading to it is strongly recommended for all users of the previous 3.0.x release as it bring a lot of bug fixes 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 a few minor new features, notably a couple of additions to XRC.
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!
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.