From: Jez W. <je...@je...> - 2004-06-03 12:25:06
|
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. |