Difference between revisions of "LCL Interface Redesign Idea"

From Lazarus wiki
Jump to navigationJump to search
 
Line 10: Line 10:
 
TWSxxWinControl.CreateHandle Returns a TLCLHandle
 
TWSxxWinControl.CreateHandle Returns a TLCLHandle
  
ILCLHandle = IInterface;
+
TLCLHandle = IInterface;
  
TLCLHandle = ILCLHandle;
+
TxxPrivate = class(TPrivate, TLCLHandle);
 
 
TxxPrivate = class(TPrivate, ILCLHandle);
 
  
 
TGtkPrivateButton = class(TGtkBin, TLCLHandle);
 
TGtkPrivateButton = class(TGtkBin, TLCLHandle);

Revision as of 00:38, 4 April 2007

This is current Idea for managing the connection to the interface and how it relates to handles

Overview:

  • Fork a branch of lazarus/
  • Replace TWinControl.Handle with TWinControl.LCLHandle (there should exist no Handle yet)
  • Try to get the LCL compiled and maybe the IDE so it doesn't use the (inefficient) .Handle anymore
  • Introduce .Handle again, now as WSclass call
  • Merge the branches

TWSxxWinControl.CreateHandle Returns a TLCLHandle

TLCLHandle = IInterface;

TxxPrivate = class(TPrivate, TLCLHandle);

TGtkPrivateButton = class(TGtkBin, TLCLHandle);

Other possibilities

{$IFDEF X11} TGtkPrivateWidget = class(TGtkPrivate, ILCLHandle, IX11);