[Lazarus] TTabControl reverted to it's old implementation

Martin Schreiber mse00000 at gmail.com
Wed Jul 27 20:42:12 CEST 2011


Am Mittwoch 27 Juli 2011, 12:22:01 schrieb Martin:
> >> view changes to reflect which tool is selected.
> > 
> > I simplified this whole tab/notebook mess in fpGUI. I have one
> > PageControl component.
> 
> Do you have a difference between WinControls and none WinControls? Or 
> actually do you have a need for it?
> 
> probably not... Though I don't know how InvalidateRect is implement for 
> fpGui? You must have some interaction with the OS/Widgetset there, as 
> invalidation can happen from outside the app
> 
> Anyway, in W32 (and probably others too) If I invalidate multiply rects 
> of the same WinControl (a wincontrol has a handle in the OS) then the 
> minimum bounding rect is invalidated => so I may end up painting more 
> than actually required.
> If I have separate WinControls, then each of them has it's invalidated 
> rect (and each will get a callback invoking it's Paint.

In MSEgui twidget has no window handle. Attached to the top level twidget is a 
twindow which manages the window handle and communicates with the window 
manager. Every twidget can act as top level widget so there is no distinction 
between  WinControls and none WinControls in MSEgui.
twindow collects invalidataed rects in a region. While updating the window 
only twidget which intersect the update region were painted. The widgets paint 
on a common offscreen bitmap for platform independent double buffering. 

Martin




More information about the Lazarus mailing list