Difference between revisions of "Roadmap"

From Free Pascal wiki
Jump to navigationJump to search
Line 163: Line 163:
 
|}
 
|}
  
==Status of Graphics on each widgetset==
+
==Status of Graphics on each LCL Interface==
  
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"

Revision as of 14:56, 21 April 2015

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.

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, fpGUI etc).

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, Mac OS X working 0.9.x - - depends on FPC 1.9.5
LCL Port to Mac OS X 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 Frames (= 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 wince fpgui cocoa customdrawn
Accelerator Keys Working Working Partially Implemented Partially Implemented Working Not Applicable Not Implemented Not Implemented Not Implemented
Caret Working Working Working Working Working Unknown Not Implemented Not Implemented Not Implemented
Clipboard Working Working Working Working Working Working Not Implemented Working Implemented in Android
Cursors Working Working Working Working Working Working Not Implemented Not Implemented Not Implemented
Drag & Drop Working Working Working Partially Implemented Working Not Applicable Not Implemented Not Implemented Not Implemented
Drop files event Working Working Working Partially Implemented Working Not Applicable Not Implemented Not Implemented 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 Not Implemented Partially Implemented Working
TCustomControl descendents Working Working Working Partially Implemented Working Working Not Implemented 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 Not Implemented Working Working
TApplication.QueueAsyncCall Working Unknown Working Unknown Working Unknown Not Working Unknown Not Implemented
TThread.Synchronize Working Unknown Working Unknown Working Unknown Working Unknown Not Implemented
PostMessage Working Unknown Working Unknown Working Unknown Not Working Unknown Not Implemented
PostThreadMessage Working Unknown Unknown Unknown Unknown Unknown Unknown Unknown Not Implemented

Status of Graphics on each LCL Interface

Component win32 gtk gtk2 carbon qt wince fpgui cocoa customdrawn
TBitmap/TPixmap/TIcon/etc Working Working Working Working Partially Implemented Working Not Implemented Working Working
TBrush Working Working Working Partially Implemented Working Working Not Implemented Working Working
TFont Working Working Partially Implemented Working Working Working Not Implemented Working Working
TPen Working Working Working Working Working Working Not Implemented Working Working
ExtTextOut Working Working Working Working Working Working Not Implemented Unknown Working

Status of native controls on each widgetset

Native controls are TWinControl descendants which do not descend from TCustomControl.

Component win32 gtk gtk2 carbon qt wince fpgui cocoa customdrawn
TBitBtn Working Working Working Working Working Working Not Implemented Partially Implemented Partially Implemented
TButton Working Working Working Working Working Working Working Working Working
TCalendar Working Working Working Partially Implemented Working Working Not Implemented Not Implemented Not Implemented
TCheckBox Working Working Working Working Working Working Working Working Working
TCheckGroup Working Working Working Working Working Working Not Implemented Not Implemented Not Implemented
TCheckListBox Working Working Working Working Working Working Not Implemented Not Implemented Not Implemented
TComboBox Working Working Working Partially Implemented Working Working Working 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 Not Implemented Not Implemented Not Implemented
TImageList Working Working Working Partially Implemented Working Working Not Implemented Not Implemented Not Implemented
TListBox Working Working Working Working Working Working Working Working Not Implemented
TListView Working Working Partially Implemented Partially Implemented Working Working Not Implemented Not Implemented 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 Not Implemented Not Implemented Not Implemented
TPanel Working Working Working Working Working Working Working Working Working
TPopupMenu Working Working Working Working Working Working Not Implemented 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 Not Implemented Partially Implemented Not Implemented
TScrollBar Working Working Working Working Working Working Not Implemented Not Implemented Partially Implemented
TScrollBox Working Working Working Partially Implemented Working Unknown Not Implemented Not Implemented Not Implemented
TSpinEdit Working Working Working Working Working Unknown Not Implemented Working Partially Implemented
TSplitter Working Working Working Working Working Unknown Not Implemented Not Implemented Not Implemented
TStaticText Working Working Working Working Working Working Not Implemented 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 widgetset

Component win32 gtk gtk2 carbon qt wince fpgui cocoa customdrawn
LCLIntf.MessageBox Working Working Working Working Partially Implemented Working Working Unknown Implemented for Android
Application.MessageBox, MessageDlg, LCLIntf.PromptUser Working Working Working Working Working Working Working Unknown Implemented for Android
LCLIntf.AskUser Working Working Working Working Working Working Not Implemented Unknown Not Implemented
TColorDialog Working Working Working Working Working Not Implemented Not Implemented Not Implemented Not Implemented
TFontDialog Working Working Working Partially Implemented Working Not Implemented Not Implemented 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

Status of TCustomControl based controls on each widgetset

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 wince fpgui cocoa customdrawn
TArrow Working Working Working Working Working Working Not Implemented Working Working
TNoteBook Working Working Working Working Working Working Not Implemented Not Implemented Working
TUpDown Working Working Working Working Working Partially Implemented Not Implemented Not Implemented Partially Implemented
TStringGrid Working Working Working Partially Implemented Working Partially Implemented Not Implemented Not Implemented Partially Implemented
TDrawGrid Working Working Working Partially Implemented Working Unknown Not Implemented Not Implemented Partially Implemented
TToolBar Working Working Working Working Working Working Not Implemented Not Implemented Not Implemented
TTreeView Working Working Working Partially Implemented Working Working Not Implemented Working Not Implemented
TValueListEditor Partially Implemented Partially Implemented Partially Implemented Partially Implemented Partially Implemented Partially Implemented Not Implemented Not Implemented Not Implemented

Status of TGraphicControl based controls on each widgetset

Note: These are for LCL wrapped components only, not for the specific GUI toolkit features itself.

Component win32 gtk gtk2 carbon qt wince fpgui cocoa customdrawn
TBevel Working Working Working Working Working Partially Implemented Not Implemented Working Not Implemented
TLabel Working Working Working Working Working Working Not Implemented Working Implemented for Android
TShape Working Working Working Partially Implemented Working Partially Implemented Not Implemented Not Implemented Working
TSpeedButton Working Working Working Working Working Unknown Not Implemented Not Implemented Working
TPaintBox Working Working Working Working Working Unknown Not Implemented Not Implemented Working
TImage Working Working Working Working Working Partially Implemented Not Implemented Working Working

Status of LazDeviceAPIs on each widgetset

Component customdrawn-android
Accelerometer Working
Messaging (SMS, MMS and E-Mail) SMS Implemented
PositionInfo Working

See Also