wxWidgets
Developer(s) | wxWidgets Developers and Contributers |
---|---|
Stable release | 2.8.0
/ December 12, 2006 |
Repository | |
Operating system | Cross-platform |
Type | Development Library |
License | wxWindows Library Licence |
Website | www.wxwidgets.org |
In computing, wxWidgets ("Windows and X widgets", formerly known as wxWindows) is a free software/open source, cross-platform widget toolkit; that is, a library of basic elements for building a graphical user interface (GUI).
wxWidgets is released under the permissive, OSI-approved wxWidgets licence, "essentially the L-GPL (Lesser General Public Licence), with an exception stating that derived works in binary form may be distributed on the user's own terms".
It was started in 1992 by Julian Smart who, as primus inter pares, is still a core developer.
wxWidgets enables a program to compile and run on several computer platforms with minimal or no code changes. It covers systems like Windows, Apple Macintosh, Linux/Unix (X11, Motif, and GTK+), OpenVMS, and OS/2. An embedded version is under development.
The library is implemented in C++, but bindings are available for many commonly used programming languages, among them, Python (wxPython), Perl (wxPerl), Ruby (wxRuby), Smalltalk (wxSqueak), Java and even JavaScript (wxJS). For a complete list, with links to the respective project sites, see the external references at the end of this article.
wxWidgets is best described as a native toolkit. Instead of emulating the display of widgets using graphic primitives on the different supported platforms, wxWidgets provides a thin abstraction to the native widgets. In other words, the underlying wxWidgets code prefers calling a native widget on the platform, instead of reimplementing custom widgets. This leads to a faster, more native looking interface when compared to toolkits like Swing (for Java).
wxWidgets is not just designed to display GUIs only, it also has a built in ODBC-based database library, an Interprocess Communication layer, socket networking functionality, and more.
Name change from wxWindows to wxWidgets
On February 20th, 2004, the developers of wxWindows announced that the project was changing its name to wxWidgets, as a result of pressures from Microsoft on Julian Smart to respect Microsoft's United Kingdom trademark of the term Windows.
Some software that use wxWidgets
- aMule - 'All-platform' P2P client based on eMule
- Audacity - a free/open source sound editor
- Audiobook Cutter - A user-friendly MP3 audiobook splitter.
- Code::Blocks - The free/open source, cross platform Free C++ IDE
- e - Collaborative Text Editor for Windows
- Juice (podcasting), an aggregator application that is used to download podcast media files
- Mahogany - An OpenSource cross-platform mail and news client.
- Monolith - tool to distribute copyrighted data
- MUTE - anonymous file sharing
- VLC media player - cross platform multimedia player
See also
External links
- Official Website
- Name change announcement
- wxForum, unofficial forums
- wxSnippets, Code Snippets for wxWidgets
- wxCode, additional components for wxWidgets
- wyoGuide, well-designed cross-platform guidelines
- wxEmbedded, wxWidgets for embedded applications
- wxUniversal - The wxUniversal port is to create a set of widgets that are implemented in wxWidgets itself. wxUniversal can be compiled on platforms that have existing ports, such as Windows, but the wxUniversal widgets will replace the native ones.
- Tutorials
Language bindings
- wxBasic binding wxBasic for the BASIC programming language
- wxCL (formerly wxLisp) for Common Lisp
- wxD for the D programming language in October 2006 "alpha"
- wxEiffel for the Eiffel programming language
- wxErlang binding wxErlang for the Erlang programming language
- wxHaskell binding wxHaskell for Haskell
- wx4j for Java
- wxJS for JavaScript
- wx.NET for C#/.NET
- wxLua binding wxLua for the Lua programming language
- wxPerl binding wxPerl for the Perl programming language
- wxPython binding wxPython for the Python programming language
- wxRuby binding wxRuby for the Ruby programming language in October 2006 "early beta"
- wxSqueak binding wxSqueak for the Smalltalk programming language
IDE and RAD tools
- Comparison of RAD designers for wxWidgets
- wxDesigner dialog editor/RAD tool
- DialogBlocks a dialog editor generating C++ and XRC
- wxGlade GUI designer for wxWidgets
- wxDev-C++ A variation of the Dev-C++ IDE that incorporates a form designer for wxWidgets
- wxFormBuilder An open source GUI designer for wxWidgets written in C++
- wxVS2005Integration wxWidgets Project and Class wizard for Visual Studio.NET 2005
Reference documentation
- Cross-Platform GUI Programming with wxWidgets - the first published book covering wxWidgets specifically.
- Cross-Platform GUI Programming with wxWidgets pdf - E-Book Version of the above book.
- wxTutorial, comprehensive guide to wxWidgets - A website created in hope to create a better tutorial for wxWidgets/wxWindows.
- Drawing and Printing in C++ with wxWidgets - This chapter introduces the idea of the device context, generalizing the concept of a drawing surface such as a window or a printed page. It will discuss the available device context classes and the set of "drawing tools" that wxWidgets provides for handling fonts, color, line drawing, and filling.
- Introduction to wxWidgets - A beginner’s tutorial for cross platform wxWidgets based GUI development on Windows & Linux.
- wx-sdl - A tutorial on using wxWidgets and SDL (Simple DirectMedia Layer) together.
- The sbVB wxWidgets course - A free course on wxWidgets