Difference between revisions of "Roadmap"
Sekelsenmat (talk | contribs) |
(→Status of dialogs on each LCL Interface: TTaskDialog) |
||
(72 intermediate revisions by 13 users not shown) | |||
Line 2: | Line 2: | ||
This document gives an idea of the current status of the various parts of Lazarus and also helps new contributors to find a suitable place where they can help. It also shows the people implementing the various parts and the targets. | This document gives an idea of the current status of the various parts of Lazarus and also helps new contributors to find a suitable place where they can help. It also shows the people implementing the various parts and the targets. | ||
+ | |||
+ | {{Note|This page refers to the LCL Interface portion (that talks to the backend toolkits) of the Lazarus Component Library. It does NOT reflect on the actual features of the individual GUI toolkits (eg: GTK2, GTK3, Qt, Qt5, Qt6, fpGUI etc)}} | ||
__TOC__ | __TOC__ | ||
Line 7: | Line 9: | ||
{{Template:Development Status}} | {{Template:Development Status}} | ||
− | ==General status of | + | ==General status of LCL interfaces== |
− | {{Template: | + | {{Template:Widgetset_Roadmap}} |
==Current status of the various parts of Lazarus== | ==Current status of the various parts of Lazarus== | ||
− | |||
− | |||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
! Unit !! Item !! State !! Target !! Skills !! Responsible !! Comments | ! Unit !! Item !! State !! Target !! Skills !! Responsible !! Comments | ||
|---- class="working" | |---- class="working" | ||
− | |IDE||TCollection Editor||working||0.9.x||FCL, RTTI, IDE||-||A generic TCollection editor for the various TCollections in the LCL/FCL. | + | |IDE|| TCollection Editor || working||0.9.x||FCL, RTTI, IDE||-||A generic TCollection editor for the various TCollections in the LCL/FCL. |
|---- class="working" | |---- class="working" | ||
− | |IDE||TActionList||working||0.9.x||-||-||- | + | |IDE|| [[TActionList]] || working||0.9.x||-||-||- |
|---- class="working" | |---- class="working" | ||
− | |IDE||Doc Editor||working||-||fpdoc||-||The doc editor will be an integrated fpDoc editor similar to fpde. It will be a process of its own, so that it can show help for dialogs as well. It should also be able to write help for packages. | + | |IDE|| Doc Editor ||working||-||fpdoc||-||The doc editor will be an integrated fpDoc editor similar to fpde. It will be a process of its own, so that it can show help for dialogs as well. It should also be able to write help for packages. |
|---- class="working" | |---- class="working" | ||
− | |IDE||Export LFM as xml||working||-||-||-||Load and save LFM files to XML. | + | |IDE|| Export LFM as xml ||working||-||-||-||Load and save LFM files to XML. |
|---- class="partial" | |---- class="partial" | ||
− | |IDE||[[Icon Editor Roadmap]]||in progress||post 1.0||-||-||A simple icon editor with the ability to create lrs files. It will be a good example and can help newbies to create icons for their components. | + | |IDE|| [[Icon Editor Roadmap]] ||in progress||post 1.0||-||-||A simple icon editor with the ability to create lrs files. It will be a good example and can help newbies to create icons for their components. |
|---- class="working" | |---- class="working" | ||
− | |LCL||Borderspacing||working||0.9.x||-||-||for aligned controls | + | |LCL|| Borderspacing ||working||0.9.x||-||-||for aligned controls |
|---- class="working" | |---- class="working" | ||
|LCL||Drag&Drop||working||||-||-|| | |LCL||Drag&Drop||working||||-||-|| | ||
|---- class="working" | |---- class="working" | ||
− | |LCL||Port to Darwin Power PC, | + | |LCL||Port to Darwin Power PC, macOS||working||0.9.x||-||-||depends on FPC 1.9.5 |
|---- class="working" | |---- class="working" | ||
− | |LCL||Port to | + | |LCL||Port to macOS (x86)||working||-||-||-||depends on FPC 2.1.1 |
|---- class="working" | |---- class="working" | ||
− | |LCL||TSplitter||working||0.9.x||easy||-||- | + | |LCL|| [[TSplitter]] ||working||0.9.x||easy||-||- |
|---- class="working" | |---- class="working" | ||
− | |LCL||TFindDialog||working||-||-||-||Implemented in 0.9.16 | + | |LCL|| [[TFindDialog]] ||working||-||-||-||Implemented in 0.9.16 |
|---- class="working" | |---- class="working" | ||
− | |LCL||TReplaceDialog||working||-||-||-||Implemented in 0.9.16 | + | |LCL|| [[TReplaceDialog]] ||working||-||-||-||Implemented in 0.9.16 |
|---- class="working" | |---- class="working" | ||
− | |LCL||TControl.Font||in progress||0.9.x||-||-||- | + | |LCL|| TControl.Font ||in progress||0.9.x||-||-||- |
|---- class="working" | |---- class="working" | ||
− | |LCL||TTabControl||in progress||0.9.x||-||-||- | + | |LCL|| [[TTabControl]] ||in progress||0.9.x||-||-||- |
|---- class="partial" | |---- class="partial" | ||
− | |LCL||Docking (= the combination of forms)||partially working, in progress||post 1.0||deep LCL and interfaces||Mattias||- | + | |LCL|| Docking (= the combination of forms)||partially working, in progress||post 1.0||deep LCL and interfaces||Mattias||- |
|---- class="working" | |---- class="working" | ||
− | |LCL|| | + | |LCL|| [[TFrame]] (= forms as children)||working||0.9.28||deep knowledge of LCL||Mattias, Paul||- |
|---- class="working" | |---- class="working" | ||
− | |IDE||Visual Form Inheritence||working||post 1.0||IDE||Mattias||Properties are not yet propagated to open descendants | + | |IDE|| Visual Form Inheritence||working||post 1.0||IDE||Mattias||Properties are not yet propagated to open descendants |
|---- class="partial" | |---- class="partial" | ||
− | |LCL||MDI - Multiple Documents Interfaces Putting fo ...||in progress||1.2||deep LCL and interfaces||[[User:Zeljan|Zeljan]]||An MDI LCL emulator for widgetsets which does not support MDI, also native implementation of MDI for qt and win32/64. Currently only qt has full MDI support, others are in progress. | + | |LCL|| MDI - Multiple Documents Interfaces Putting fo ...||in progress||1.2||deep LCL and interfaces||[[User:Zeljan|Zeljan]]||An MDI LCL emulator for widgetsets which does not support MDI, also native implementation of MDI for qt and win32/64. Currently only qt has full MDI support, others are in progress. |
|---- class="not" | |---- class="not" | ||
|LCL||Palette support||not implemented||-||-||-||Required to correctly show colors on a 256 colors display | |LCL||Palette support||not implemented||-||-||-||Required to correctly show colors on a 256 colors display | ||
|---- class="partial" | |---- class="partial" | ||
− | |LCL||TCoolBar||partially working, in progress||post 1.0||LCL and anchoring||[[User:JuhaManninen|Juha]]||- | + | |LCL|| [[TCoolBar]] ||partially working, in progress||post 1.0||LCL and anchoring||[[User:JuhaManninen|Juha]]||- |
|---- class="partial" | |---- class="partial" | ||
− | |LCL||TControlBar||skeleton implementation to prevent errors in Delphi conversion, in progress||post 1.0||LCL and anchoring||[[User:JuhaManninen|Juha]]||- | + | |LCL|| [[TControlBar]] ||skeleton implementation to prevent errors in Delphi conversion, in progress||post 1.0||LCL and anchoring||[[User:JuhaManninen|Juha]]||- |
|---- class="working" | |---- class="working" | ||
− | |LCL||TMaskEdit||working||-||-||[[User:Bart|Bart]]||- | + | |LCL|| [[TMaskEdit]] ||working||-||-||[[User:Bart|Bart]]||- |
|---- class="not" | |---- class="not" | ||
− | |LCL||TDirectoryTreeView||not implemented||-||-||-||- | + | |LCL|| [[TDirectoryTreeView]] ||not implemented||-||-||-||- |
|---- class="not" | |---- class="not" | ||
− | |LCL||Constrain maximization to specific area||not implemented||-||winapi, gtk||-||When maximizing a window, the left, top, width and height can all be constrained to a specific rectangular area on the screen/desktop. After this is done, constrain the source editor and maybe other windows | + | |LCL|| Constrain maximization to specific area ||not implemented||-||winapi, gtk||-||When maximizing a window, the left, top, width and height can all be constrained to a specific rectangular area on the screen/desktop. After this is done, constrain the source editor and maybe other windows |
|---- class="working" | |---- class="working" | ||
− | |Components||TIcon||working||0.9.26||-||Marc||- | + | |Components|| [[TIcon]] ||working||0.9.26||-||Marc||- |
|---- class="working" | |---- class="working" | ||
− | |Components||CUPS Package||working||0.9.x||easy||-|| | + | |Components|| CUPS Package ||working||0.9.x||easy||-|| |
|---- class="working" | |---- class="working" | ||
|} | |} | ||
− | ==Status of features on each | + | ==Status of features on each LCL Interface== |
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
− | ! Component !! win32 !! gtk !! gtk2 !! carbon !! qt !! wince !! fpgui !! cocoa !! customdrawn | + | ! Component !! win32 !! gtk !! gtk2 !! carbon !! qt/qt5/qt6 !! wince !! fpgui !! cocoa !! customdrawn |
|---- | |---- | ||
|Accelerator Keys | |Accelerator Keys | ||
|class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | |class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | ||
|class="partial"|Partially Implemented||class="working"|Working||class="unknown"|Not Applicable | |class="partial"|Partially Implemented||class="working"|Working||class="unknown"|Not Applicable | ||
− | |class="not"|Not Implemented||class=" | + | |class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
|Caret | |Caret | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="unknown"|Unknown | |class="working"|Working||class="working"|Working||class="unknown"|Unknown | ||
− | |class="not"|Not Implemented||class=" | + | |class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
− | |Clipboard | + | |[[Clipboard]] |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class="not"|Not Implemented||class="working"|Working||class="partial"|Implemented in Android | + | |class="not"|Not Implemented||class="working"|[[Cocoa Internals/Clipboard|Working]]||class="partial"|Implemented in Android |
|---- | |---- | ||
|Cursors | |Cursors | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class=" | + | |class="partial"|Partially Implemented||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
|Drag & Drop | |Drag & Drop | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="partial"|Partially Implemented||class="working"|Working||class="not"|Not Applicable | |class="partial"|Partially Implemented||class="working"|Working||class="not"|Not Applicable | ||
− | |class="not"|Not Implemented||class=" | + | |class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
|[[Drop files event]] | |[[Drop files event]] | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="partial"|Partially Implemented||class="working"|Working||class="not"|Not Applicable | |class="partial"|Partially Implemented||class="working"|Working||class="not"|Not Applicable | ||
− | |class="not"|Not Implemented||class=" | + | |class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
|MDI Support | |MDI Support | ||
Line 119: | Line 119: | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class=" | + | |class="partial"|Partially Implemented||class="partial"|Partially Implemented||class="working"|Working |
|---- | |---- | ||
|TCustomControl descendents | |TCustomControl descendents | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="partial"|Partially Implemented||class="working"|Working||class="working"|Working | |class="partial"|Partially Implemented||class="working"|Working||class="working"|Working | ||
− | |class=" | + | |class="working"|Working||class="working"|Working||class="working"|Working |
|---- | |---- | ||
|Unicode Support | |Unicode Support | ||
Line 138: | Line 138: | ||
|Application||class="working"|Working||class="working"|Working||class="working"|Working | |Application||class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | |class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | ||
− | |class="partial"|Partially Implemented||class="working"|Working||class="working"|Working | + | |class="partial"|Partially Implemented||class="working"|[[Cocoa Internals/Application|Working]]||class="working"|Working |
|---- | |---- | ||
− | |TTimer||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TTimer]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | |class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | ||
− | |class=" | + | |class="working"|Working||class="working"|Working||class="working"|Working |
|---- | |---- | ||
|TApplication.QueueAsyncCall||class="working"|Working||class="unknown"|Unknown||class="working"|Working | |TApplication.QueueAsyncCall||class="working"|Working||class="unknown"|Unknown||class="working"|Working | ||
|class="unknown"|Unknown||class="working"|Working||class="unknown"|Unknown | |class="unknown"|Unknown||class="working"|Working||class="unknown"|Unknown | ||
− | |class=" | + | |class="working"|Working||class="working"|[[Cocoa_Internals/Application|Working]]||class="not"|Not Implemented |
|---- | |---- | ||
|TThread.Synchronize||class="working"|Working||class="unknown"|Unknown||class="working"|Working | |TThread.Synchronize||class="working"|Working||class="unknown"|Unknown||class="working"|Working | ||
|class="unknown"|Unknown||class="working"|Working||class="unknown"|Unknown | |class="unknown"|Unknown||class="working"|Working||class="unknown"|Unknown | ||
− | |class="working"|Working||class=" | + | |class="working"|Working||class="working"|[[Cocoa_Internals/Application|Working]]||class="not"|Not Implemented |
|---- | |---- | ||
|PostMessage||class="working"|Working||class="unknown"|Unknown||class="working"|Working | |PostMessage||class="working"|Working||class="unknown"|Unknown||class="working"|Working | ||
− | |class=" | + | |class="working"|Working||class="working"|Working||class=""unknown"|Unknown |
− | |class=" | + | |class="working"|Working||class="working"|[[Cocoa_Internals/Application|Working]]||class="not"|Not Implemented |
|---- | |---- | ||
|PostThreadMessage||class="working"|Working||class="unknown"|Unknown||class="unknown"|Unknown | |PostThreadMessage||class="working"|Working||class="unknown"|Unknown||class="unknown"|Unknown | ||
− | |class="unknown"|Unknown||class=" | + | |class="unknown"|Unknown||class="working"|Working||class="unknown"|Unknown |
− | |class=" | + | |class="not"|Not Implemented||class="unknown"|Unknown||class="not"|Not Implemented |
|} | |} | ||
− | ==Status of Graphics on each | + | ==Status of Graphics on each LCL Interface== |
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
− | ! Component !! win32 !! gtk !! gtk2 !! carbon !! qt !! wince !! fpgui !! cocoa !! customdrawn | + | ! Component !! win32 !! gtk !! gtk2 !! carbon !! qt/qt5/qt6 !! wince !! fpgui !! cocoa !! customdrawn |
|---- | |---- | ||
|TBitmap/TPixmap/TIcon/etc||class="working"|Working||class="working"|Working||class="working"|Working | |TBitmap/TPixmap/TIcon/etc||class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class="working"|Working||class=" | + | |class="working"|Working||class="working"|Working||class="working"|Working |
− | |class=" | + | |class="partial"|Partially Implemented||class="working"|Working||class="working"|Working |
|---- | |---- | ||
|TBrush||class="working"|Working||class="working"|Working||class="working"|Working | |TBrush||class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="partial"|Partially Implemented||class="working"|Working||class="working"|Working | |class="partial"|Partially Implemented||class="working"|Working||class="working"|Working | ||
− | |class=" | + | |class="partial"|Partially Implemented||class="working"|Working||class="working"|Working |
|---- | |---- | ||
|TFont||class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | |TFont||class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class=" | + | |class="partial"|Partially Implemented||class="working"|Working||class="working"|Working |
|---- | |---- | ||
|TPen||class="working"|Working||class="working"|Working||class="working"|Working | |TPen||class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class=" | + | |class="partial"|Partially Implemented||class="working"|Working||class="working"|Working |
|---- | |---- | ||
|ExtTextOut||class="working"|Working||class="working"|Working||class="working"|Working | |ExtTextOut||class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class=" | + | |class="working"|Working||class="working"|Working||class="working"|Working |
|} | |} | ||
− | ==Status of native controls on each | + | ==Status of native controls on each LCL Interface== |
Native controls are TWinControl descendants which do not descend from TCustomControl. | Native controls are TWinControl descendants which do not descend from TCustomControl. | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
− | ! Component !! win32 !! gtk !! gtk2 !! carbon !! qt !! wince !! fpgui !! cocoa !! customdrawn | + | ! Component !! win32 !! gtk !! gtk2 !! carbon !! qt/qt5/qt6 !! wince !! fpgui !! cocoa !! customdrawn |
|---- | |---- | ||
− | |TBitBtn||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TBitBtn]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class=" | + | |class="working"|Working||class="working"|Working||class="partial"|Partially Implemented |
|---- | |---- | ||
− | |TButton||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TButton]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|---- | |---- | ||
− | |TCalendar||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TCalendar]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="partial"|Partially Implemented||class="working"|Working||class="working"|Working | |class="partial"|Partially Implemented||class="working"|Working||class="working"|Working | ||
− | |class="not"|Not Implemented||class=" | + | |class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
− | |TCheckBox||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TCheckBox]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|---- | |---- | ||
− | |TCheckGroup||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TCheckGroup]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class=" | + | |class="working"|Working||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
− | |TCheckListBox||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TCheckListBox]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class=" | + | |class="working"|Working||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
− | |TComboBox||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TComboBox]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="partial"|Partially Implemented||class="working"|Working||class="working"|Working | |class="partial"|Partially Implemented||class="working"|Working||class="working"|Working | ||
− | |class=" | + | |class="partial"|Partially Implemented||class="working"|[[Cocoa Internals/Text Controls|Working]]||class="partial"|Implemented in Android |
|---- | |---- | ||
− | |TEdit||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TEdit]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|---- | |---- | ||
− | |TForm||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TForm]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|---- | |---- | ||
− | |TGroupBox||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TGroupBox]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|---- | |---- | ||
− | |TIdleTimer||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TIdleTimer]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class=" | + | |class="working"|Working||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
− | |TImageList||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TImageList]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="partial"|Partially Implemented||class="working"|Working|| class="working"|Working | |class="partial"|Partially Implemented||class="working"|Working|| class="working"|Working | ||
− | |class="not"|Not Implemented||class=" | + | |class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
− | |TListBox||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TListBox]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="not"|Not Implemented | |class="working"|Working||class="working"|Working||class="not"|Not Implemented | ||
|---- | |---- | ||
− | |TListView||class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | + | |[[TListView]]||class="working"|Working||class="working"|Working||class="partial"|Partially Implemented |
|class="partial"|Partially Implemented||class="working"|Working||class="working"|Working | |class="partial"|Partially Implemented||class="working"|Working||class="working"|Working | ||
− | |class="not"|Not Implemented||class=" | + | |class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
− | |TMainMenu||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TMainMenu]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="partial"|Implemented in Android | |class="working"|Working||class="working"|Working||class="partial"|Implemented in Android | ||
|---- | |---- | ||
− | |TMemo| | + | |[[TMemo]]||class="working"|Working||class="working"|Working||class="working"|Working |
− | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
+ | |class="working"|Working||class="working"|[[Cocoa Internals/Text Controls|Working]]||class="working"|Working | ||
|---- | |---- | ||
− | |TMenuItem||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TMenuItem]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="partial"|Implemented in Android | |class="working"|Working||class="working"|Working||class="partial"|Implemented in Android | ||
|---- | |---- | ||
− | |TPageControl and TTabSheet||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TPageControl]] and [[TTabSheet]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented | |class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented | ||
|---- | |---- | ||
− | |TPairSplitter||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TPairSplitter]]||class="working"|Working||class="working"|Working||class="working"|Working |
+ | |class="working"|Working||class="working"|Working||class="not"|Not Implemented | ||
|class="working"|Working||class="working"|Working||class="not"|Not Implemented | |class="working"|Working||class="working"|Working||class="not"|Not Implemented | ||
− | |||
|---- | |---- | ||
− | |TPanel||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TPanel]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|---- | |---- | ||
− | |TPopupMenu||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TPopupMenu]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class=" | + | |class="working"|Working||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
− | |TProgressBar||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TProgressBar]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|---- | |---- | ||
− | |TRadioButton||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TRadioButton]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | |class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | ||
|---- | |---- | ||
− | |TRadioGroup||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TRadioGroup]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class=" | + | |class="working"|Working||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
− | |TScrollBar||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TScrollBar]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class=" | + | |class="partial"|Partially Implemented||class="working"|Working||class="partial"|Partially Implemented |
|---- | |---- | ||
− | |TScrollBox||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TScrollBox]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="partial"|Partially Implemented||class="working"|Working||class="unknown"|Unknown | |class="partial"|Partially Implemented||class="working"|Working||class="unknown"|Unknown | ||
− | |class=" | + | |class="partial"|Partially Implemented||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
− | |TSpinEdit||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TSpinEdit]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="unknown"|Unknown | |class="working"|Working||class="working"|Working||class="unknown"|Unknown | ||
|class="not"|Not Implemented||class="working"|Working||class="partial"|Partially Implemented | |class="not"|Not Implemented||class="working"|Working||class="partial"|Partially Implemented | ||
|---- | |---- | ||
− | |TSplitter||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TSplitter]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="unknown"|Unknown | |class="working"|Working||class="working"|Working||class="unknown"|Unknown | ||
− | |class=" | + | |class="partial"|Partially Implemented||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
− | |TStaticText||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TStaticText]]||class="working"|Working||class="working"|Working||class="working"|Working |
+ | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |||
|---- | |---- | ||
− | |TStatusBar||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TStatusBar]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented | |class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented | ||
|---- | |---- | ||
− | |TToggleBox||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TToggleBox]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | |class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | ||
|class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented | |class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented | ||
|---- | |---- | ||
− | | | + | |[[TTrackBar]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="not"|Not Implemented||class="working"|Working||class="working"|Working | |class="not"|Not Implemented||class="working"|Working||class="working"|Working | ||
|---- | |---- | ||
− | |TTrayIcon||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TTrayIcon]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="partial"|Partially Implemented||class="working"|Working||class="not"|Not Implemented | |class="partial"|Partially Implemented||class="working"|Working||class="not"|Not Implemented | ||
|class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented | |class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented | ||
|} | |} | ||
− | ==Status of dialogs on each | + | ==Status of dialogs on each LCL Interface== |
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
− | ! Component !! win32 !! gtk !! gtk2 !! carbon !! qt !! wince !! fpgui !! cocoa !! customdrawn | + | ! Component !! win32 !! gtk !! gtk2 !! carbon !! qt/qt5 !! wince !! fpgui !! cocoa !! customdrawn |
|---- | |---- | ||
|LCLIntf.MessageBox||class="working"|Working||class="working"|Working||class="working"|Working | |LCLIntf.MessageBox||class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class=" | + | |class="not"|Not Implemented||class="working"|Working||class="working"|Working |
− | |class="working"|Working||class=" | + | |class="working"|Working||class="working"|Working||class="partial"|Implemented for Android |
|---- | |---- | ||
|Application.MessageBox, MessageDlg, LCLIntf.PromptUser||class="working"|Working||class="working"|Working||class="working"|Working | |Application.MessageBox, MessageDlg, LCLIntf.PromptUser||class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class="working"|Working||class=" | + | |class="working"|Working||class="working"|Working||class="partial"|Implemented for Android |
|---- | |---- | ||
|LCLIntf.AskUser||class="working"|Working||class="working"|Working||class="working"|Working | |LCLIntf.AskUser||class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class="not"|Not Implemented||class=" | + | |class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
− | |TColorDialog||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TColorDialog]]||class="working"|Working||class="working"|Working||class="working"|Working |
+ | |class="working"|Working||class="working"|Working||class="not"|Not Implemented | ||
|class="working"|Working||class="working"|Working||class="not"|Not Implemented | |class="working"|Working||class="working"|Working||class="not"|Not Implemented | ||
− | |||
|---- | |---- | ||
− | |TFontDialog||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TFontDialog]]||class="working"|Working||class="working"|Working||class="working"|Working |
− | |class=" | + | |class="working"|Working||class="working"|Working||class="not"|Not Implemented |
− | |class=" | + | |class="working"|Working||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
− | |TOpenDialog||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TOpenDialog]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="not"|Not Implemented | |class="working"|Working||class="working"|Working||class="not"|Not Implemented | ||
|---- | |---- | ||
− | |TPrinterSetupDialog||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TPrinterSetupDialog]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented | |class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented | ||
|class="not"|Not Implemented||class="not"|Not Implemented||class="not"|Not Implemented | |class="not"|Not Implemented||class="not"|Not Implemented||class="not"|Not Implemented | ||
|---- | |---- | ||
− | |TSaveDialog||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TSaveDialog]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
+ | |class="working"|Working||class="working"|Working||class="not"|Not Implemented | ||
+ | |---- | ||
+ | |[[TTaskDialog]]||class="working"|Working||class="unknown"|Unknown||class="working"|Working | ||
+ | |class="working"|Working||class="working"|Working||class="unknown"|Unknown | ||
|class="working"|Working||class="working"|Working||class="not"|Not Implemented | |class="working"|Working||class="working"|Working||class="not"|Not Implemented | ||
|} | |} | ||
− | ==Status of TCustomControl based controls on each | + | ==Status of TCustomControl based controls on each LCL Interface== |
Note that being a TCustomControl descendant does not guarantee that a control has no widgetset implementation. TArrow has it, although it has a good default implementation. TNotebook is fully implemented in the LCL. | Note that being a TCustomControl descendant does not guarantee that a control has no widgetset implementation. TArrow has it, although it has a good default implementation. TNotebook is fully implemented in the LCL. | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
− | ! Component !! win32 !! gtk !! gtk2 !! carbon !! qt !! wince !! fpgui !! cocoa !! customdrawn | + | ! Component !! win32 !! gtk !! gtk2 !! carbon !! qt/qt5/qt6 !! wince !! fpgui !! cocoa !! customdrawn |
|---- | |---- | ||
− | |TArrow ||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TArrow]] ||class="working"|Working||class="working"|Working||class="working"|Working |
+ | |class="working"|Working||class="working"|Working||class="working"|Working | ||
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |||
|---- | |---- | ||
− | | | + | |[[TNotebook]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class="not"|Not Implemented||class=" | + | |class="not"|Not Implemented||class="working"|Working||class="working"|Working |
|---- | |---- | ||
− | |TUpDown||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TUpDown]]||class="working"|Working||class="working"|Working||class="working"|Working |
+ | |class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | ||
|class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | |class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | ||
− | |||
|---- | |---- | ||
− | |TStringGrid||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TStringGrid]]||class="working"|Working||class="working"|Working||class="working"|Working |
+ | |class="partial"|Partially Implemented||class="working"|Working||class="partial"|Partially Implemented | ||
|class="partial"|Partially Implemented||class="working"|Working||class="partial"|Partially Implemented | |class="partial"|Partially Implemented||class="working"|Working||class="partial"|Partially Implemented | ||
− | |||
|---- | |---- | ||
− | |TDrawGrid||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TDrawGrid]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="partial"|Partially Implemented||class="working"|Working||class="unknown"|Unknown | |class="partial"|Partially Implemented||class="working"|Working||class="unknown"|Unknown | ||
− | |class=" | + | |class="partial"|Partially Implemented||class="working"|Working||class="partial"|Partially Implemented |
|---- | |---- | ||
− | |TToolBar||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TToolBar]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class="not"|Not Implemented||class=" | + | |class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
− | |TTreeView||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TTreeView]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="partial"|Partially Implemented||class="working"|Working||class="working"|Working | |class="partial"|Partially Implemented||class="working"|Working||class="working"|Working | ||
|class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented | |class="not"|Not Implemented||class="working"|Working||class="not"|Not Implemented | ||
|---- | |---- | ||
− | |TValueListEditor||class=" | + | |[[TValueListEditor]]||class="working"|Working||class="working"|Working||class="working"|Working |
− | |class="partial"|Partially Implemented||class=" | + | |class="partial"|Partially Implemented||class="working"|Working||class="working"|Working |
− | |class=" | + | |class="partial"|Partially Implemented||class="working"|Working||class="not"|Not Implemented |
|} | |} | ||
− | ==Status of TGraphicControl based controls on each | + | ==Status of TGraphicControl based controls on each LCL Interface== |
'''Note:''' These are for LCL wrapped components only, '''not''' for the specific GUI toolkit features itself. | '''Note:''' These are for LCL wrapped components only, '''not''' for the specific GUI toolkit features itself. | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
− | ! Component !! win32 !! gtk !! gtk2 !! carbon !! qt !! wince !! fpgui !! cocoa !! customdrawn | + | ! Component !! win32 !! gtk !! gtk2 !! carbon !! qt/qt5/qt6 !! wince !! fpgui !! cocoa !! customdrawn |
|---- | |---- | ||
− | |TBevel||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TBevel]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | |class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | ||
− | |class=" | + | |class="working"|Working||class="working"|Working||class="not"|Not Implemented |
|---- | |---- | ||
− | |TLabel||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TLabel]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="working"|Working | |class="working"|Working||class="working"|Working||class="working"|Working | ||
− | |class=" | + | |class="working"|Working||class="working"|Working||class="partial"|Implemented for Android |
|---- | |---- | ||
− | |TShape||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TShape]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="partial"|Partially Implemented||class="working"|Working||class="partial"|Partially Implemented | |class="partial"|Partially Implemented||class="working"|Working||class="partial"|Partially Implemented | ||
− | |class=" | + | |class="working"|Working||class="working"|Working||class="working"|Working |
|---- | |---- | ||
− | |TSpeedButton||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TSpeedButton]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="unknown"|Unknown | |class="working"|Working||class="working"|Working||class="unknown"|Unknown | ||
− | |class=" | + | |class="working"|Working||class="working"|Working||class="working"|Working |
|---- | |---- | ||
− | |TPaintBox||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TPaintBox]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="unknown"|Unknown | |class="working"|Working||class="working"|Working||class="unknown"|Unknown | ||
− | |class=" | + | |class="working"|Working||class="working"|Working||class="working"|Working |
|---- | |---- | ||
− | |TImage||class="working"|Working||class="working"|Working||class="working"|Working | + | |[[TImage]]||class="working"|Working||class="working"|Working||class="working"|Working |
|class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | |class="working"|Working||class="working"|Working||class="partial"|Partially Implemented | ||
− | |class=" | + | |class="working"|Working||class="working"|Working||class="working"|Working |
|} | |} | ||
==Status of LazDeviceAPIs on each widgetset== | ==Status of LazDeviceAPIs on each widgetset== | ||
− | |||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
! Component !! customdrawn-android | ! Component !! customdrawn-android | ||
Line 445: | Line 448: | ||
|PositionInfo||class="working"|Working | |PositionInfo||class="working"|Working | ||
|} | |} | ||
+ | |||
+ | {{Navbar Lazarus Release Notes}} | ||
==See Also== | ==See Also== | ||
Line 450: | Line 455: | ||
*[[LCL Internals]] | *[[LCL Internals]] | ||
*[[TAChart Roadmap]] | *[[TAChart Roadmap]] | ||
− | + | *[[Debugger Status]] | |
− | [[ | ||
− |
Latest revision as of 23:29, 27 March 2024
│
English (en) │
русский (ru) │
This document gives an idea of the current status of the various parts of Lazarus and also helps new contributors to find a suitable place where they can help. It also shows the people implementing the various parts and the targets.
Legend:
Working - Stable, most or all parts implemented.
Partially Implemented - Works, but has some features missing
In progress - Someone is working on this
Not Implemented - Nothing done, needs your help
Deprecated - Outdated, obsolete, usage not recommended for new projects
Unknown - Please review whether this component is working, and set its status here
General status of LCL interfaces
Unit | Item | State | Target | Backend | Responsible | Comments |
---|---|---|---|---|---|---|
GTK1 | Deprecated interface | working | 1.0 | Gtk | - | - |
GTK2 | Main Linux (and similar UNIXes) interface | working | 1.0 | Gtk2 | Zeljan | - |
GTK3 | Linux (and similar UNIXes) interface | progress | 1.4 | Gtk3 | Zeljan | Alpha state |
Win32 | Desktop Windows for both 32 and 64 bits | working | 1.0 | WinAPI | Paul Ishenin and Vincent | - |
Qt | The Qt4 interface | working | 1.0 | Qt and LCL | Zeljan | Depends on qt4 bindings |
Qt5 | The Qt5 interface | working | 1.8 | Qt5 and LCL | Zeljan | Depends on qt5 bindings |
Qt6 | The Qt6 interface | working | 2.4 | Qt6 and LCL | Zeljan | Depends on qt6 bindings |
WinCE | The Windows CE interface | working | 1.0 | Windows API and LCL | - | Depends on volunteers |
fpGUI | The fpGUI interface | in progress | no target | fpGUI and LCL | - | Depends on volunteers |
Carbon | The Carbon interface | stalled (deprecated) | 1.0 | Carbon and LCL | - | - |
Cocoa | The Cocoa interface | working | 2.6 - 2.8? | Cocoa and LCL | Dmitry | Depends on volunteers |
CustomDrawn | The CustomDrawn interface | in progress | no target | LCL, X11, Android NDK and SDK | - | Depends on volunteers |
Current status of the various parts of Lazarus
Unit | Item | State | Target | Skills | Responsible | Comments |
---|---|---|---|---|---|---|
IDE | TCollection Editor | working | 0.9.x | FCL, RTTI, IDE | - | A generic TCollection editor for the various TCollections in the LCL/FCL. |
IDE | TActionList | working | 0.9.x | - | - | - |
IDE | Doc Editor | working | - | fpdoc | - | The doc editor will be an integrated fpDoc editor similar to fpde. It will be a process of its own, so that it can show help for dialogs as well. It should also be able to write help for packages. |
IDE | Export LFM as xml | working | - | - | - | Load and save LFM files to XML. |
IDE | Icon Editor Roadmap | in progress | post 1.0 | - | - | A simple icon editor with the ability to create lrs files. It will be a good example and can help newbies to create icons for their components. |
LCL | Borderspacing | working | 0.9.x | - | - | for aligned controls |
LCL | Drag&Drop | working | - | - | ||
LCL | Port to Darwin Power PC, macOS | working | 0.9.x | - | - | depends on FPC 1.9.5 |
LCL | Port to macOS (x86) | working | - | - | - | depends on FPC 2.1.1 |
LCL | TSplitter | working | 0.9.x | easy | - | - |
LCL | TFindDialog | working | - | - | - | Implemented in 0.9.16 |
LCL | TReplaceDialog | working | - | - | - | Implemented in 0.9.16 |
LCL | TControl.Font | in progress | 0.9.x | - | - | - |
LCL | TTabControl | in progress | 0.9.x | - | - | - |
LCL | Docking (= the combination of forms) | partially working, in progress | post 1.0 | deep LCL and interfaces | Mattias | - |
LCL | TFrame (= forms as children) | working | 0.9.28 | deep knowledge of LCL | Mattias, Paul | - |
IDE | Visual Form Inheritence | working | post 1.0 | IDE | Mattias | Properties are not yet propagated to open descendants |
LCL | MDI - Multiple Documents Interfaces Putting fo ... | in progress | 1.2 | deep LCL and interfaces | Zeljan | An MDI LCL emulator for widgetsets which does not support MDI, also native implementation of MDI for qt and win32/64. Currently only qt has full MDI support, others are in progress. |
LCL | Palette support | not implemented | - | - | - | Required to correctly show colors on a 256 colors display |
LCL | TCoolBar | partially working, in progress | post 1.0 | LCL and anchoring | Juha | - |
LCL | TControlBar | skeleton implementation to prevent errors in Delphi conversion, in progress | post 1.0 | LCL and anchoring | Juha | - |
LCL | TMaskEdit | working | - | - | Bart | - |
LCL | TDirectoryTreeView | not implemented | - | - | - | - |
LCL | Constrain maximization to specific area | not implemented | - | winapi, gtk | - | When maximizing a window, the left, top, width and height can all be constrained to a specific rectangular area on the screen/desktop. After this is done, constrain the source editor and maybe other windows |
Components | TIcon | working | 0.9.26 | - | Marc | - |
Components | CUPS Package | working | 0.9.x | easy | - |
Status of features on each LCL Interface
Component | win32 | gtk | gtk2 | carbon | qt/qt5/qt6 | wince | fpgui | cocoa | customdrawn |
---|---|---|---|---|---|---|---|---|---|
Accelerator Keys | Working | Working | Partially Implemented | Partially Implemented | Working | Not Applicable | Not Implemented | Working | Not Implemented |
Caret | Working | Working | Working | Working | Working | Unknown | Not Implemented | Working | Not Implemented |
Clipboard | Working | Working | Working | Working | Working | Working | Not Implemented | Working | Implemented in Android |
Cursors | Working | Working | Working | Working | Working | Working | Partially Implemented | Working | Not Implemented |
Drag & Drop | Working | Working | Working | Partially Implemented | Working | Not Applicable | Not Implemented | Working | Not Implemented |
Drop files event | Working | Working | Working | Partially Implemented | Working | Not Applicable | Not Implemented | Working | Not Implemented |
MDI Support | Not Implemented | Not Implemented | Not Implemented | Not Implemented | Working | Not Implemented | Not Implemented | Not Implemented | Not Implemented |
Printing | Working | Working | Working | Partially Implemented | Working | Unknown | Not Implemented | Not Implemented | Not Implemented |
Regions | Working | Working | Working | Working | Working | Working | Partially Implemented | Partially Implemented | Working |
TCustomControl descendents | Working | Working | Working | Partially Implemented | Working | Working | Working | Working | Working |
Unicode Support | Working | Impossible to Implement | Working | Working | Working | Working | Working | Working | Working |
BidiMode | Working | Not Implemented | Partially Implemented | Not Implemented | Working | Not Implemented | Not Implemented | Not Implemented | Not Implemented |
Application | Working | Working | Working | Working | Working | Partially Implemented | Partially Implemented | Working | Working |
TTimer | Working | Working | Working | Working | Working | Partially Implemented | Working | Working | Working |
TApplication.QueueAsyncCall | Working | Unknown | Working | Unknown | Working | Unknown | Working | Working | Not Implemented |
TThread.Synchronize | Working | Unknown | Working | Unknown | Working | Unknown | Working | Working | Not Implemented |
PostMessage | Working | Unknown | Working | Working | Working | Unknown | Working | Working | Not Implemented |
PostThreadMessage | Working | Unknown | Unknown | Unknown | Working | Unknown | Not Implemented | Unknown | Not Implemented |
Status of Graphics on each LCL Interface
Component | win32 | gtk | gtk2 | carbon | qt/qt5/qt6 | wince | fpgui | cocoa | customdrawn |
---|---|---|---|---|---|---|---|---|---|
TBitmap/TPixmap/TIcon/etc | Working | Working | Working | Working | Working | Working | Partially Implemented | Working | Working |
TBrush | Working | Working | Working | Partially Implemented | Working | Working | Partially Implemented | Working | Working |
TFont | Working | Working | Partially Implemented | Working | Working | Working | Partially Implemented | Working | Working |
TPen | Working | Working | Working | Working | Working | Working | Partially Implemented | Working | Working |
ExtTextOut | Working | Working | Working | Working | Working | Working | Working | Working | Working |
Status of native controls on each LCL Interface
Native controls are TWinControl descendants which do not descend from TCustomControl.
Component | win32 | gtk | gtk2 | carbon | qt/qt5/qt6 | wince | fpgui | cocoa | customdrawn |
---|---|---|---|---|---|---|---|---|---|
TBitBtn | Working | Working | Working | Working | Working | Working | Working | Working | Partially Implemented |
TButton | Working | Working | Working | Working | Working | Working | Working | Working | Working |
TCalendar | Working | Working | Working | Partially Implemented | Working | Working | Not Implemented | Working | Not Implemented |
TCheckBox | Working | Working | Working | Working | Working | Working | Working | Working | Working |
TCheckGroup | Working | Working | Working | Working | Working | Working | Working | Working | Not Implemented |
TCheckListBox | Working | Working | Working | Working | Working | Working | Working | Working | Not Implemented |
TComboBox | Working | Working | Working | Partially Implemented | Working | Working | Partially Implemented | Working | Implemented in Android |
TEdit | Working | Working | Working | Working | Working | Working | Working | Working | Working |
TForm | Working | Working | Working | Working | Working | Working | Working | Working | Working |
TGroupBox | Working | Working | Working | Working | Working | Working | Working | Working | Working |
TIdleTimer | Working | Working | Working | Working | Working | Working | Working | Working | Not Implemented |
TImageList | Working | Working | Working | Partially Implemented | Working | Working | Not Implemented | Working | Not Implemented |
TListBox | Working | Working | Working | Working | Working | Working | Working | Working | Not Implemented |
TListView | Working | Working | Partially Implemented | Partially Implemented | Working | Working | Not Implemented | Working | Not Implemented |
TMainMenu | Working | Working | Working | Working | Working | Working | Working | Working | Implemented in Android |
TMemo | Working | Working | Working | Working | Working | Working | Working | Working | Working |
TMenuItem | Working | Working | Working | Working | Working | Working | Working | Working | Implemented in Android |
TPageControl and TTabSheet | Working | Working | Working | Working | Working | Working | Not Implemented | Working | Not Implemented |
TPairSplitter | Working | Working | Working | Working | Working | Not Implemented | Working | Working | Not Implemented |
TPanel | Working | Working | Working | Working | Working | Working | Working | Working | Working |
TPopupMenu | Working | Working | Working | Working | Working | Working | Working | Working | Not Implemented |
TProgressBar | Working | Working | Working | Working | Working | Working | Working | Working | Working |
TRadioButton | Working | Working | Working | Working | Working | Working | Working | Working | Partially Implemented |
TRadioGroup | Working | Working | Working | Working | Working | Working | Working | Working | Not Implemented |
TScrollBar | Working | Working | Working | Working | Working | Working | Partially Implemented | Working | Partially Implemented |
TScrollBox | Working | Working | Working | Partially Implemented | Working | Unknown | Partially Implemented | Working | Not Implemented |
TSpinEdit | Working | Working | Working | Working | Working | Unknown | Not Implemented | Working | Partially Implemented |
TSplitter | Working | Working | Working | Working | Working | Unknown | Partially Implemented | Working | Not Implemented |
TStaticText | Working | Working | Working | Working | Working | Working | Working | Working | Working |
TStatusBar | Working | Working | Working | Working | Working | Working | Not Implemented | Working | Not Implemented |
TToggleBox | Working | Working | Working | Working | Working | Partially Implemented | Not Implemented | Working | Not Implemented |
TTrackBar | Working | Working | Working | Working | Working | Working | Not Implemented | Working | Working |
TTrayIcon | Working | Working | Working | Partially Implemented | Working | Not Implemented | Not Implemented | Working | Not Implemented |
Status of dialogs on each LCL Interface
Component | win32 | gtk | gtk2 | carbon | qt/qt5 | wince | fpgui | cocoa | customdrawn |
---|---|---|---|---|---|---|---|---|---|
LCLIntf.MessageBox | Working | Working | Working | Not Implemented | Working | Working | Working | Working | Implemented for Android |
Application.MessageBox, MessageDlg, LCLIntf.PromptUser | Working | Working | Working | Working | Working | Working | Working | Working | Implemented for Android |
LCLIntf.AskUser | Working | Working | Working | Working | Working | Working | Not Implemented | Working | Not Implemented |
TColorDialog | Working | Working | Working | Working | Working | Not Implemented | Working | Working | Not Implemented |
TFontDialog | Working | Working | Working | Working | Working | Not Implemented | Working | Working | Not Implemented |
TOpenDialog | Working | Working | Working | Working | Working | Working | Working | Working | Not Implemented |
TPrinterSetupDialog | Working | Working | Working | Not Implemented | Working | Not Implemented | Not Implemented | Not Implemented | Not Implemented |
TSaveDialog | Working | Working | Working | Working | Working | Working | Working | Working | Not Implemented |
TTaskDialog | Working | Unknown | Working | Working | Working | Unknown | Working | Working | Not Implemented |
Status of TCustomControl based controls on each LCL Interface
Note that being a TCustomControl descendant does not guarantee that a control has no widgetset implementation. TArrow has it, although it has a good default implementation. TNotebook is fully implemented in the LCL.
Component | win32 | gtk | gtk2 | carbon | qt/qt5/qt6 | wince | fpgui | cocoa | customdrawn |
---|---|---|---|---|---|---|---|---|---|
TArrow | Working | Working | Working | Working | Working | Working | Working | Working | Working |
TNotebook | Working | Working | Working | Working | Working | Working | Not Implemented | Working | Working |
TUpDown | Working | Working | Working | Working | Working | Partially Implemented | Working | Working | Partially Implemented |
TStringGrid | Working | Working | Working | Partially Implemented | Working | Partially Implemented | Partially Implemented | Working | Partially Implemented |
TDrawGrid | Working | Working | Working | Partially Implemented | Working | Unknown | Partially Implemented | Working | Partially Implemented |
TToolBar | Working | Working | Working | Working | Working | Working | Not Implemented | Working | Not Implemented |
TTreeView | Working | Working | Working | Partially Implemented | Working | Working | Not Implemented | Working | Not Implemented |
TValueListEditor | Working | Working | Working | Partially Implemented | Working | Working | Partially Implemented | Working | Not Implemented |
Status of TGraphicControl based controls on each LCL Interface
Note: These are for LCL wrapped components only, not for the specific GUI toolkit features itself.
Component | win32 | gtk | gtk2 | carbon | qt/qt5/qt6 | wince | fpgui | cocoa | customdrawn |
---|---|---|---|---|---|---|---|---|---|
TBevel | Working | Working | Working | Working | Working | Partially Implemented | Working | Working | Not Implemented |
TLabel | Working | Working | Working | Working | Working | Working | Working | Working | Implemented for Android |
TShape | Working | Working | Working | Partially Implemented | Working | Partially Implemented | Working | Working | Working |
TSpeedButton | Working | Working | Working | Working | Working | Unknown | Working | Working | Working |
TPaintBox | Working | Working | Working | Working | Working | Unknown | Working | Working | Working |
TImage | Working | Working | Working | Working | Working | Partially Implemented | Working | Working | Working |
Status of LazDeviceAPIs on each widgetset
Component | customdrawn-android |
---|---|
Accelerometer | Working |
Messaging (SMS, MMS and E-Mail) | SMS Implemented |
PositionInfo | Working |