WxWidgets
Vorlage:Falscher Titel wxWidgets (ehemals wxWindows) ist ein Open Source C++-Framework zur plattformunabhängigen Entwicklung von Anwendungen mit grafischer Benutzeroberfläche (GUI).
Umfang
Die API erlaubt es, Anwendungen für Windows/Unix/Mac und viele weitere Plattformen (Ports für Symbian OS, PalmOS, Windows CE) zu entwickeln. wxWidgets abstrahiert plattformnative Funktionalitäten, wie z.B. die IPC-Klassen, oder implementiert fehlende Funktionalitäten wie z.B. die treecontrols. Einige Funktionen wie z.B. wxMetafile oder OLE werden notgedrungen für die Plattform einzeln in wxWidgets implementiert. Für bessere Portabilität verzichtet wxWidgets auf Ausnahmen (exception) oder Templates (statt dessen Pseudo-Template-Container-Klasse). Die API umfasst über 300 Klassen mit über 5000 Funktionen. Wichtigste Funktionalitäten decken folgende Bereiche ab:
- DeviceContext (Grafikausgabe)
- Platformnatives GUI-Layout (sizerlayout) mit Fenstern und Dialogen
- XML-basiertes laden von UI-Ressourcen (XRC)
- Online-Hilfe (z.B. HTML, CHM)
- Unicode und Meldungskataloge
- XPM-Unterstützung für alle Plattformen
- wxImage-Klasse
- Maschinenunabhängige Streamklasse
- Kontainer/Daten-Klassen
- wxODBC-Klassen
- Multithreading
- Konfiguration per Datei, Registry oder *.ini
Lizenz
Die wxWidgets-Lizenz ist eine leicht modifizierte LGPL und erlaubt daher die freie Verwendung in kommerzieller und freier Software und den weiteren Vertrieb unter einer selbst gewählten Lizenz.
Kurze Übersicht zur Entwicklung
- 1992: erste Ausgabe, für XView und MFC
- 1993-1995: Motif und Xt Port, wxPython
- 1998-2002: wxGTK Port; wxMac 2.0 Port begonnen; wxX11 Port begonnen; OS/2 Port
- 2003: wxWidgets Software Foundation gegründet (nach einigen Monaten aufgelöst); WinCE Port
- 2004: Umbenennung von wxWindows zu wxWidgets nach Anfrage von Microsoft
- 2005: Nach langer Wartezeit Veröffentlichung von wxWidgets 2.6.0, löst vorherige 'stable' Version 2.4.2 von Mitte 2003 ab
Unterstützung weiterer Sprachen für wxWidgets
- Basic: wxBasic, wxBasic
- C: wxC
- Eiffel: wxEiffel
- Java: wx4j
- Javascript: wxJS
- Haskell: wxHaskell
- Lua: wxLua
- .NET (C#): wx.NET
- Perl: wxPerl
- Python: wxPython
- Ruby: wxRuby
Werkzeuge, Anbindungen und Klassen für wxWidgets
- XML-Unterstützung: xml4wxwindows
- Mozilla-Anbindung: wxMozilla
- SSL-Unterstützung: wxSSL
- SQLite-Anbindung: wxSQLite
- Scintilla-Anbindung: (als wxSTC in den "Contribs")
- Verschiedene Komponenten: wxCode
- poEdit ist ein Werkzeug zur Internationalisierung von wxWidgets Anwendungen
- wxDesigner ist ein kommerzieller GUI Designer
Programme die mit wxWidgets erstellt wurden
- AOL Communicator: http://www.aolepk.com/communicator/
- Audacity Bearbeitungsprogramm für Tondateien: http://audacity.sourceforge.net/
- Forte Agent: Ein News- und Mailreader für Windows
- Mahogany: Ein plattformunabhängiger News- und Mailreader
- Share Deamon: P2P Filesharing Programm: http://sharedaemon.sourceforge.net/sharedaemon.php
- TortoiseCVS: Ein CVS-Client für Windows
- VLC media player: Ein portabler Multimedia-Player