Hi,
I've just committed the initial code for an -onPaint event handler for =
windows. This allows you full control when painting a window. In many =
cases the current Graphic control is adequate, but for more complicated =
problems (for example child windows with scroll bars) more control is =
needed. The event handler calls the windows API BeginPaint and EndPaint, =
so other than the logic to paint the window no other action is required.
The main work is done in GUI_MessageLoops.cpp - but should it be done in =
Window.xs?=20
We (Glenn and I) have been doing some playing/testing and it seems to =
work well. We also have had some discussions to what should be passed as =
parameters to the hander. Currently the parameters that are passed are =
the window and the DC. The DC parameter could potentially removed, since =
in almost all cases the window DC and the DC to be painted are always =
the same (the only exception seems to be when the -noflicker option is =
used). The bounding rectangle of the area to be redrawn could also be =
passed. In most cases this bounding rectangle is not required since in =
typical usage you repaint the entire window (by a BitBlt), the clipping =
region is created automatically before the event is called. =20
Usage:
-onPaint =3D> \&Paint,
=20
sub Paint {
my ($win,$dc)=3D@_;
#paint into the passed DC
}
Comments?
Cheers,
jez.
|