WxWidgets
|
- The title of this article is incorrect because of technical limitations. The correct title is wxWidgets.
In computing, wxWidgets (formerly known as wxWindows) is an open source, cross-platform widget toolkit; that is, a library of basic elements for building a graphical user interface (GUI).
wxWidgets is released under "a permissive modified (but explicitly OSI-approved) LGPL". 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 none or minimal code changes. It covers systems like Windows, Apple Macintosh, Linux/Unix (for X11, Motif, and GTK), OpenVMS, and OS/2. An embedded version is being worked on.
The library is implemented in C++, but bindings are available for many commonly used programming languages, among them, Python (wxPython), Perl, and Java. 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. 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.
External links
- Official homepage (http://wxwidgets.org/)
- Name change announcement (http://wxwidgets.org/name.htm)
Language bindings:
- [1] (http://wxbasic.sourceforge.net/) binding wxBasic for the BASIC programming language
- [2] (http://wxperl.sourceforge.net/) binding wxPerl for the Perl programming language
- [3] (http://www.wxpython.org/) binding wxPython for the Python programming language
- [4] (http://wxruby.rubyforge.org/) binding wxRuby for the Ruby programming language in September 2004 "early beta"
- wxLua for Lua
- wx4j (http://www.wx4j.org/) for Java
- wxJS (http://wxjs.sourceforge.net/) for JavaScript
- wxHaskell for Haskell
- wxEiffel for the Eiffel programming language
- wx.NET for C#/.NET
- wxGlade GUI designer for wxWidgets.
- wxDev-C++ (http://wxdsgn.sourceforge.net) A variation of the Dev-C++ IDE that incorporates a form designer for wxWidgetsde:WxWidgets