Interaction of class libraries and widgetsets in Lazarus and Free Pascal
Widgetsets support platform-sensitive development with the Lazarus IDE system. They act as adapter libraries that provide an interface between a platform-independent sourcecode written in Free Pascal and platform-specific system functions. Thus they allow for development of platform-native software without requiring to provide specific source code for different target platforms.
Widgetsets act as basis for the Lazarus Component Library (LCL).
Currently (June 2020), the development status of widget toolkit interfaces is roughly as follows:[ 1]
Widget set
Supported operating systems
Status
Windows API, GDI
Windows
Mainstream use
Windows CE API, GDI
Windows CE
Mainstream use
GTK+ 1.2.x
Linux (via X11 )
Deprecated
GTK+ 2.8+
Linux (X11 and framebuffer), Windows , and Mac OS X (via X11 )
Mainstream use
GTK+ 3.x
As Gtk2
Alpha
Qt 4.5+, 5.6+[ 2]
Linux (X11 and framebuffer), Windows , Mac OS X
Mainstream use. Works in Windows, Linux, Mac OS X, Maemo, etc
Cocoa
Mac OS X
In progress
Carbon
Mac OS X
Mainstream use
fpGUI
Windows , Windows CE , Linux (via X11 )
Initial stage
Lazarus Custom Drawn Controls
Android , Windows , Linux (via X11 ), Mac OS X
Initial stage
References
Further reading
Michaël van Canneyt; Florian Klämpfl (2012), Free Pascal (Free Pascal 2 ed.), Computer & Literatur Verlag GmbH, ISBN 978-3936546729 , OL 25421359M , 393654672X
Michaël van Canneyt; Mattias Gärtner; Swen Heinig; Felipe Monteiro de Carvalho; Inoussa Ouedraogo; Jörg Braun (2011), Lazarus , Böblingen, Germany: Computer & Literatur Verlag GmbH, OL 25426539M
Michaël van Canneyt; Mathias Gärtner; Swen Heinig; Felipe Monteiro de Carvalho; Inoussa Ouedraogo (2011), Lazarus - the complete guide , Blaise Pascal Magazine, OL 25427992M
Roderick Person (2013), Getting Started with Lazarus IDE , Packt Publishing, ISBN 978-1782163404 , OL 25426631M , 1782163409