
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1121 8e941d3f-bd1b-0410-a28a-d453659cc2b4
217 lines
11 KiB
Plaintext
217 lines
11 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
|
|
* Fixed position of editors while scrolling
|
|
* Header implementation
|
|
* Started handling of Header messages
|
|
* Made TVTHeaderPopupMenu.Popup virtual
|
|
* Added woekaround to drawing when scrolling
|
|
* Implemented column resize
|
|
* Implemented SetTimer/KillTimer
|
|
* Fixed column position
|
|
* Removed direct dependency from ActiveX, Oleutils
|
|
* Started to work in the gtk port
|
|
* Changed package to allow compilation
|
|
* Added dummy virtualdragmanager and mmsystem units to allow compilation
|
|
* Moved DelphiCompat and OleUtils to lclextensions package
|
|
* Added images demo
|
|
* Fixed header click when Header.States is empty
|
|
|
|
>> The remaining log can be obtained using the svn repository
|
|
|
|
#Major Tasks#
|
|
<*> General Painting
|
|
[*] The NodeBitmap width/Height is not reseted when erasing the background > LCL bug
|
|
< > 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
|
|
UPDATE: VirtualTrees.DrawTextW will be removed. Use DelphiCompat instead
|
|
<*> Find a way to mantain OLE drag and Drop in windows
|
|
[-] Also maintain OLE ClipBoard?? Necessary?? -> No will be removed
|
|
<-> Replace TWMTimer since is only called in win32. Or implement in GTK Intf?
|
|
[ ] Will be implemented under gtk
|
|
<-> Implement Imagelist handling
|
|
[-] See a properly way to setup the ImageLists (avoid current hack)
|
|
[ ] Create a mask using LclExt functions
|
|
< > 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??)
|
|
[ ] Add to DelphiCompat
|
|
<-> 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)
|
|
[ ] Will be removed
|
|
<*> 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
|
|
[ ] IsWinNT Will be removed. Win98 should use MS Unicode Layer
|
|
< > See what todo with GetTextAlign. Implement in LCL??
|
|
[ ] Implement in DelphiCompat
|
|
< > Thread support
|
|
[ ] Replace TVTCriticalSection by SyncObjs.TCriticalSection?? > YES
|
|
[ ] 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 > DelphiCompat
|
|
< > Begin/EndUpdate uses WM_SETREDRAW message to avoid painting. See a crossplatform way of doing it
|
|
[ ] Add a function in LCLExt
|
|
<*> 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)
|
|
[-] It seems to be working fine
|
|
<*> 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
|
|
[*] TLMPaint GetUpdateRect returna an empty rect unlike TWMPaint.
|
|
< > TWMPrint and WM_PRINT. See if is necessary
|
|
<*> In SetCursor uses TLMessage. Investigate > REMOVED
|
|
< > 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 are 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 > Removed
|
|
< > 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). Removed
|
|
<?> 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
|
|
< > Due to lclheader implementation, when a editor is scrolled out of the window it disppears (does not returns when scroled back)
|
|
< > Document differences of DrawFrameControl, ScrollWindow, InvalidateRect
|