Difference between revisions of "Roadmap"

From Free Pascal wiki
Jump to navigationJump to search
Line 421: Line 421:
  
 
==Status of TCustomControl based controls on each widgetset==
 
==Status of TCustomControl based controls on each widgetset==
'''Note:''' These are for LCL wrapped components only, '''not''' for the specific GUI toolkit features itself.
+
Note that being a TCustomControl descendent 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.
  
 
{| BORDER="1" CELLSPACING="0"
 
{| BORDER="1" CELLSPACING="0"

Revision as of 19:50, 10 December 2011

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 missings

In progress - Someone is working on this

Not Implemented - Nothing done, needs your help

Unknown - Please review if this component works and set it´s status here


General status of widgetsets

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 - -
Win32 Desktop Windows for both 32 and 64 bits working 1.0 WinAPI Paul Ishenin and Vincent -
Qt The QT interface working 1.0 Qt and LCL Zeljan Depends on qt bindings
WinCE The Windows CE interface working 1.0 Windows API and LCL Felipe
fpGUI The fpGUI interface in progress no target fpGUI and LCL - Depends on volunteers
Carbon The Carbon interface working 1.0 Carbon and LCL - -
Cocoa The Cocoa interface in progress 1.2 Cocoa and LCL Paul Ishenin
CustomDrawn The CustomDrawn interface in progress 1.2 LCL, X11, Android NDK and SDK Felipe

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 childs) in progress 0.9.28 deep knowledge of LCL Mattias, Paul -
IDE Visual Form Inheritence in progress post 1.0 IDE Mattias IDE's File-New dialog needs to be extended so you can select which forms in you project to inherit form. The Form Designer must be extended to support

VFI as well.

LCL MDI - Multiple Documents Interfaces Putting fo ... in progress 1.0 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 have full MDI support, others are in progress and should be ready for 0.99.
LCL Palette support not implemented - - - Required to correctly show colors on a 256 colors display
LCL TControlBar not implemented - - - -
LCL TMaskEdit working - - - -
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 - See sourceforge project cups for lazarus.
GTK Focus working 0.9.x Gtk, X - switching focus between windows. Might be impossible due to windowmanagers and limitations of gtk1
GTK Special Keys working 0.9.x Gtk, X - for example Ctrl-Shift-1
GTK BringToFront, SendToBack in progress - Gtk, X - -
GTK Doublebuffering in progress - Gtk, X - -
GTK Minimizing windows Working - Gtk, X - -

Status of features 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
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 Not Implemented Not Implemented
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 Not Implemented Not Implemented
TCustomControl descendents Working Working Working Partially Implemented Working Working Not Implemented Not Implemented 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 Partially Implemented Partially Implemented
TBitmap/TPixmap/TIcon/etc Working Working Working Working Partially Implemented Working Not Implemented Not Implemented Partially Implemented
TBrush Working Working Working Partially Implemented Working Partially Implemented Not Implemented Not Implemented Working
TFont Working Working Partially Implemented Working Working Working Not Implemented Not Implemented Not Implemented
TPen Working Working Working Working Working Partially Implemented Not Implemented Not Implemented Working

Status of native controls on each widgetset

Native controls are TWinControl descendens.

Component win32 gtk gtk2 carbon qt wince fpgui cocoa customdrawn
TBitBtn Working Working Working Working Working Working Not Implemented Partially Implemented Not Implemented
TButton Working Working Working Working Working Working Working Working Partially Implemented
TCalendar Working Working Working Partially Implemented Working Working Not Implemented Not Implemented Not Implemented
TCheckBox Working Working Working Working Working Working Working Working Partially Implemented
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 Not Implemented
TEdit Working Working Working Working Working Working Working Working Not Implemented
TForm Working Working Working Working Working Working Working Partially Implemented Partially Implemented
TGroupBox Working Working Working Working Working Working Working Not Implemented Not Implemented
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 Partially Implemented Working Working Working Working Not Implemented 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 Not Implemented Not Implemented
TMemo Working Working Working Working Working Working Working Working Not Implemented
TMenuItem Working Working Working Working Working Working Working Not Implemented Not Implemented
TPage Working Working Working Working Working Unknown Not Implemented Not Implemented Not Implemented
TPageControl Working Working Working Working Working Working Not Implemented Not Implemented Not Implemented
TPairSplitter Working Working Working Working Working Not Implemented Not Implemented Not Implemented Not Implemented
TPanel Working Working Working Working Working Working Working Not Implemented Partially Implemented
TPopupMenu Working Working Working Working Working Working Not Implemented Not Implemented Not Implemented
TProgressBar Working Working Working Working Working Working Not Implemented Not Implemented Working
TRadioButton Working Working Working Working Working Working Working Partially Implemented Not Implemented
TRadioGroup Working Working Working Working Working Working Not Implemented Not Implemented Not Implemented
TScrollBar Working Working Working Working Working Working Not Implemented Not Implemented Not Implemented
TScrollBox Working Working Working Partially Implemented Working Unknown Not Implemented Not Implemented Not Implemented
TSpinEdit Working Working Working Working Working Unknown Not Implemented Not Implemented Not Implemented
TSplitter Working Working Working Working Working Unknown Not Implemented Not Implemented Not Implemented
TStaticText Working Working Working Working Working Working Not Implemented Not Implemented Not Implemented
TStatusBar Working Working Working Working Working Working Not Implemented Not Implemented Not Implemented
TTimer Working Working Working Working Working Partially Implemented Not Implemented Not Implemented Not Implemented
TToggleBox Working Working Working Working Working Partially Implemented Not Implemented Not Implemented Not Implemented
TTrackbar Working Working Working Working Working Working Not Implemented Not Implemented Working
TTrayIcon Working Working Working Partially Implemented Working Not Implemented Not Implemented Not Implemented Not Implemented
TTreeView Working Working Working Partially Implemented Working Working Not Implemented Not Implemented Not Implemented

Status of dialogs on each widgetset

Component win32 gtk gtk2 carbon qt wince fpgui cocoa customdrawn
Application.MessageBox Working Working Working Working Working Working Not Implemented Unknown Not Implemented
MessageDlg 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 Not Implemented Not Implemented
TOpenDialog Working Working Working Working Working Working Working Not Implemented Not Implemented
TPrinterSetupDialog Working Working Working Not Implemented Working Not Implemented Not Implemented Not Implemented Not Implemented
TSaveDialog Working Working Partially Implemented Working Working Working Working Not Implemented Not Implemented

Status of TCustomControl based controls on each widgetset

Note that being a TCustomControl descendent 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 Not Implemented Working
TNoteBook Working Working Working Working Working Working Not Implemented Not Implemented Not Implemented
TUpDown Working Working Working Working Working Partially Implemented Not Implemented Not Implemented Not Implemented
TStringGrid Working Working Working Partially Implemented Working Partially Implemented Not Implemented Not Implemented Not Implemented
TDrawGrid Working Working Working Partially Implemented Working Unknown Not Implemented Not Implemented Not Implemented
TToolBar Working Working Working Working Working Working 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 Not Implemented Not Implemented
TLabel Working Working Working Working Working Working Not Implemented Working Not Implemented
TShape Working Working Working Partially Implemented Working Partially Implemented Not Implemented Not Implemented Not Implemented
TSpeedButton Working Working Working Working Working Unknown Not Implemented Not Implemented Not Implemented
TPaintBox Working Working Working Working Working Unknown Not Implemented Not Implemented Not Implemented
TImage Working Working Working Working Working Partially Implemented Not Implemented Not Implemented Not Implemented

Status of asynchronous Mainthread Signaling features on each LCLWidgetType

Note: These features allow for scheduling Main Thread events not based on manual GUI interactions Note: noGUI right now is a dummy Widget Type, not providing any functionality just allowing for compiling. It might be sensible to rename it to "dummy", once a Widget Type is provided that allows for Mainthread signaling without requiring attaching to an external GUI framework.

Feature win32 gtk gtk2 carbon qt wince fpgui cocoa customdrawn noGUI
TTimer Working Working Working Working Working Partially Implemented Not Working Not Implemented Not Implemented Not Implemented
TApplication.QueueAsyncCall Working Unknown Working Unknown Working Unknown Not Working Unknown Not Implemented Not Implemented
TThread.Synchronize Working Unknown Working Unknown Working Unknown Working Unknown Not Implemented Not Implemented
PostMessage Working Unknown Working Unknown Working Unknown Not Working Unknown Not Implemented Not Implemented
PostThreadMessage Working Unknown Unknown Unknown Unknown Unknown Unknown Unknown Not Implemented Not Implemented

See Also