You've already forked lazarus-ccr
188 lines
9.5 KiB
Plaintext
188 lines
9.5 KiB
Plaintext
![]() |
Port started in 26/01/07
|
||
|
1) Remove Delphi/Windows dependencies
|
||
|
* Determine what windows functions are used. Store in windows_functions.txt
|
||
|
* Undefine ThemeSupport in VTConfig.inc
|
||
|
* Comment OleAcc unit from uses
|
||
|
* Convert windows messages to LCL correspondent. Store in windows_messages.txt
|
||
|
* toShowButtons duplicated in DefaultPaintOptions (Delphi compiles this!!)
|
||
|
* unclosed comment in OLE Drag definitions
|
||
|
* VTV uses OLE to drag and drop and clipboard. Necessary to see how LCL handle this. For now enclose all
|
||
|
clipboard and drag and drop ole under ifdefs
|
||
|
* added {$mode delphi}{$H+}
|
||
|
* Change header of TEnumFormatETC, TVTDragManager, TVTDataObject to match fpc
|
||
|
* Add Types unit (TSize)
|
||
|
* THintWindow.IsHintMsg is not implemented in LCL. Comment the code
|
||
|
* Commented Consts and AxCtrls units in implementation
|
||
|
* Isolated NC functions. They are used to paint the header
|
||
|
* Isolated GetControlsAlignment. (Is not used in the LCL)
|
||
|
* Commented TStringEditLink HideSelection and OEMConvert published formats
|
||
|
* Added lcltypes.inc
|
||
|
* Added TBidiMode and BidiMode property set default to LTR
|
||
|
* Commented Bevel* properties publishing
|
||
|
* Commented ParentBidiMode property
|
||
|
* Commented implementation of RaiseLastOSError
|
||
|
* Added missing clipboard constants
|
||
|
* Added LCLIntf unit
|
||
|
* Replaced GetClipboardFormatName by ClipboardFormatToMimeType in RegisterVTClipboardFormat
|
||
|
* Replaced RegisterClipboardFormat by ClipboardRegisterFormat
|
||
|
* Added win32 color constants
|
||
|
* Removed ISWin2k and XP since was not used. Assume IsWinNt true
|
||
|
* Removed Global HintFont var used to < Delphi4. Use Screen.HintFont.
|
||
|
* Commented the global imagelists code. Will be implemented later
|
||
|
* Added dummy GetTextAlign function
|
||
|
* Added simple ExtTextOutW and GetTextExtentPoint32W functions. Will be revisited later
|
||
|
* Commented code that was using GetCurrentObject
|
||
|
* Commented code for a bug in the Delphi package code
|
||
|
* Changed way to get NeedToUnitialize. Removed succeeded
|
||
|
* Replaced LoadCursor by LoadCursorFromLazarusResource.
|
||
|
* Added virtualtrees.lrs
|
||
|
* Changed WorkEvent from THandle to TEvent
|
||
|
* Added INFINITE constant
|
||
|
* Removed RaiseLastOSError
|
||
|
* Changed typecast of EnterStates in TWorkerThread.ChangeTreeStates
|
||
|
* Changed parameter of ReleaseStgMedium to a Pointer
|
||
|
* Replaced unkForRelease for PunkForRelease in TStgMedium records, similar with stm and stg
|
||
|
* Isolated DragFunctions dependent of windows
|
||
|
* replaced lstrLenW by fpc way
|
||
|
* Replace Windows.DrawTextW by customized
|
||
|
* Added TVirtualTreeHintWindow.BidiMode property
|
||
|
* Replace UpdateBounds by SetBounds in Hint show routine
|
||
|
* In TCustomVirtualTreeOptions.SetMiscOptions called RecreateWnd
|
||
|
* Commented ValidateRect functions
|
||
|
* Implemented procedure ChangeBiDiModeAlignment
|
||
|
* Isolated code from TVTDragImage.MakeAlphaChannel
|
||
|
* In LoadFromStream changed typecast to longword
|
||
|
* Added dummy ImageList_DrawEx implementation
|
||
|
* Replaced ZeroMemory by FillChar
|
||
|
* Commented BevelKind in PaintHeadder
|
||
|
* Implemented TBaseVirtualTree.UseRightToLeftAlignment dummy function
|
||
|
* Isolated Header messages handling
|
||
|
* Added missing SetWindowPos constants
|
||
|
* Implemented MapWindowPoints
|
||
|
* Added dummy RedrawWindow function
|
||
|
* Commented call to DestroyWindowHandle in Destroy. Probably will not be necessary since the header will be
|
||
|
in the client area
|
||
|
* Used Application.ProcessMessages in InterruptValidation instead of direct call
|
||
|
* Added dummy LPtoDP
|
||
|
* Replaced LoadBitmap by LoadFromLazarusResource
|
||
|
* Added dummy CreatePatternBrush
|
||
|
* Added Dummy GetBkColor
|
||
|
* Replaced Reader.ReadStr by Reader.ReadString
|
||
|
* Added WM_SETREDRAW constant
|
||
|
* Added MAKEROP4
|
||
|
* Added dummy ImageList_DragShowNolock
|
||
|
* Replaced GetUpdateRect in WMPaint
|
||
|
* Added dummy ToAscii and GetKeyboardState
|
||
|
* Added WHEEL_ constants
|
||
|
* Added Dummy SystemParametersInfo
|
||
|
* Added Dummy SetTimer, isolated timer functions
|
||
|
* Isolated CreateParams function
|
||
|
* Added Failed function
|
||
|
* Added dummy SubtractRect function
|
||
|
* Replaced Canvas.TextFlags by TextStyle
|
||
|
* Added LResources unit
|
||
|
* Used the PackArray Implmentation from original port
|
||
|
* The TCanvas of VCL does not has width and height as LCL does. This cause conflict with "with" operator
|
||
|
* Implemented TOLEStream
|
||
|
* Fixed bug in LCL.GetScrollPos
|
||
|
* Fixed Draw problems due to TCanvas.Color
|
||
|
* Fixed Align problems of TVirtualNode (Hint from original port)
|
||
|
* Fixed MouseWheel
|
||
|
* Fixed drawing problem when using ScrollBar or MouseWheel
|
||
|
* Implemented Support for check images
|
||
|
|
||
|
#Major Tasks#
|
||
|
< > General Painting
|
||
|
[ ] The NodeBitmap width/Height is not reseted when erasing the background
|
||
|
< > Define the UNICODE support schema. Probably change from widestring to ansistring and let LCL do the rest
|
||
|
[ ] Use GetTextExtentPoint instead of GetTextExtentPoint32 since the later is a wrapper to the former in LCL
|
||
|
[ ] For now all rendering will be done with DrawTextW wrapper > Windows.DrawTextW
|
||
|
< > Find a way to mantain OLE drag and Drop in windows
|
||
|
[ ] Also maintain OLE ClipBoard?? Necessary??
|
||
|
< > Replace TWMTimer since is only called in win32. Or implement in GTK Intf?
|
||
|
< > Implement Imagelist handling
|
||
|
[ ] See a properly way to setup the ImageLists (avoid current hack)
|
||
|
< > GetCurrentObject used for blending does not exists in LCL. Add it?
|
||
|
[ ] Gtk.GetObject does not return dmBits (is always nil) -> Is not viable to implement
|
||
|
GetObject under Gtk. See another way to do alpha blend (Disable in GTK??)
|
||
|
< > Implement the header
|
||
|
[ ] BevelEdges is used to paint the Header. See if is worth implementing it
|
||
|
[ ] Process the header messages or do another way
|
||
|
[ ] See if DestroyWindowHandle is necessary in Destroy
|
||
|
< > Bidi Support
|
||
|
[ ]Properly Implement TBaseVirtualTree.UseRightToLeftAlignment
|
||
|
#Secondary Tasks#
|
||
|
< > (low) OleAcc: MSAA (Accessibility)
|
||
|
<*> WMContextMenu: replace by DoContextPopup??. Add to LCL??
|
||
|
[*] Fix Double MouseRUp
|
||
|
[*] in line 2042 of callback simplify
|
||
|
<-> pceltFetched in TEnumFormatEtc.Next is declared as ULong in fpc but PLongInt in Delphi
|
||
|
[*] Already reported. No response
|
||
|
< > Implement THintWindow.IsHintMsg ?
|
||
|
< > Add TLMEnable ??
|
||
|
< > Replace WMSetFont since LM_SETFONT is not used in LCL
|
||
|
<*> Replace RaiseLastOSError. Is used in only one place -> Removed
|
||
|
< > IsWinNT is currently set to True. See if will support win98 and how do it
|
||
|
< > See what todo with GetTextAlign. Implement in LCL??
|
||
|
< > Thread support
|
||
|
[ ] Replace TVTCriticalSection by SyncObjs.TCriticalSection??
|
||
|
[ ] See appropriate value for INFINITE constant in Linux/BSD etc
|
||
|
< > TWorkerThread.ChangeTreeStates uses SendMessage. See if it works both in win and linux
|
||
|
<-> In fpc TStgMedium records have PunkForRelease instead of unkForRelease, same for stm and stg
|
||
|
[*] Already reported. No response
|
||
|
< > Add a way to replace TBitmap.Scanline and all advanced graphics routines
|
||
|
[ ] Use TLazIntfImage?
|
||
|
[ ] Properly implement CreatePatternBrush or find a way to paint the lines
|
||
|
< > Implement GetBkColor in LCL
|
||
|
< > Begin/EndUpdate uses WM_SETREDRAW message to avoid painting. See a crossplatform way of doing it
|
||
|
<*> Translate MAKEROP4 from C to Pascal. Done copied from fpc
|
||
|
< > TCMMouseWheel type is not used in Lazarus. Remove
|
||
|
< > Revise CM* functions and messages
|
||
|
< > Implement SubtractRect
|
||
|
< > Implement WMSetFont
|
||
|
< > Implement PackArray using asm
|
||
|
[ ] Wait for fpc2.2
|
||
|
[ ] Adapt for fpc
|
||
|
[ ] Create versions for not i386
|
||
|
|
||
|
#Checks#
|
||
|
< > See if getting the length of PWideChar by typecasting to WideString is correct
|
||
|
< > See if the Hint is being show in the correct place
|
||
|
< > See the effect of using RecreateWnd (in TCustomVirtualTreeOptions.SetMiscOptions)
|
||
|
<*> WM_NCPAINT: see the behavior under LCL
|
||
|
[*] Is not handled. TControl will never receive it
|
||
|
< > TVMGet* functions: probably it can be ignored, since is windows specific and not necessary at all
|
||
|
< > See if WM_COPY can be mapped to LM_COPYTOCLIP
|
||
|
< > See WM_ENABLE,WM_GETDLGCODE behavior under lcl/win32
|
||
|
< > See function of WM_GETOBJECT and if is necessary to add to LCL
|
||
|
< > See the difference between TWMPaint and TLMPaint
|
||
|
< > TWMPrint and WM_PRINT. See if is necessary
|
||
|
< > In SetCursor uses TLMessage. Investigate
|
||
|
< > See if GetRGBColor is necessary. Probably not. If so remove color constants
|
||
|
< > Found no way to replace ValidateRect in Hint Window animation. See how to replace it
|
||
|
< > See if the typecasts to longword in TVirtualTreeColumn.LoadFromStream is correct
|
||
|
< > See te meaning of Bevel* properties. See what values it should be in LCL
|
||
|
<*> See if custom MapWindowPoints is returning correct values
|
||
|
[*] AFAIK yes
|
||
|
< > See if Application.ProcessMessages in InterruptValidation will work (WM_QUIT handling??)
|
||
|
<*> See if windows.GetUpdateRect is equal to PaintStruct in WM Paint
|
||
|
[*] Yes and no. The values of GetUpdateRect and rcPaint is equal in most times. So is safe to use it
|
||
|
But GetUpdateRect will always return an empty Rect when called inside LM_PAINT because there's a
|
||
|
prior BeginPaint call
|
||
|
< > In TWMKillfocus the code to nullify the active control is probably not necessary
|
||
|
< > See if DeleteObject is necessary in AdjustCursorPanning
|
||
|
< > See if WHEEL_ constants are valids under gtk
|
||
|
< > See if is necessary WM_SYSCOLORCHANGE
|
||
|
< > See if is necessary handle LM_SETCURSOR (not used in LCL)
|
||
|
< > See how replace CreateParams
|
||
|
< > See if Canvas Respect TextStyle properties and if is necessary to set the bk in PaintNormalText
|
||
|
< > IStream.SetSize expects ULARGE_INTEGER instead of LARGE_INTEGER
|
||
|
< > Remove TRect copy in FillRect
|
||
|
< > In paint tree avoid using TBitmap.Canvas since it does a check each time is called
|
||
|
< > Why there's a extra 1 in the NodeBitmap that clears the backGround
|
||
|
< > See code duplicate in TBitmap.SetWidthHeight
|
||
|
< > Document problem of TCanvas.Color
|
||
|
< > Document differences between WMMouseWheel
|
||
|
< > Document Differences between WMPaint
|
||
|
< > Document that ScrollWindow does not exists in gtk
|