From: Jez W. <je...@je...> - 2004-05-17 09:40:13
|
Hi, I've been looking into this change and there is a slight problem:) EndPaint (windows function) needs to have passed a structure that = contains the same painting information that was retrieved from = BeginPaint (windows function). Somehow this information needs to be = stored between the calls.=20 In the Perl world, you would do something like: $win->BeginPaint; #do painting here $win->EndPaint; Which means that the pointer returned from BeginPaint (or the contents = of the pointer) need to be stored somewhere. The current approach is to = create a hash and associate it with the window. The ideal way would be = to associate the pointer to the window - not the data. Or perhaps an alternative approach might be more suitable? Something = like: $win->BeginPaint( \&Paint); sub Paint { my ($DC,$x,$y,$x1,$y1)=3D@_; #do painting } Where BeginPaint, is passed a reference to a sub, BeginPaint then calls = windows BeginPaint, the sub ref is called, passed all the parameters, = then finally calls EndPaint? But, then why not define the Paint event = directly (ie, -onPaint)? Thoughts? Cheers, jez. ----- Original Message -----=20 From: Jez White=20 To: guihackers=20 Sent: Friday, May 14, 2004 3:22 PM Subject: [perl-win32-gui-hackers] GUI.xs (BeginPaint and EndPaint) Hi, Would any one have any objections if I change (fix depending on your = viewpoint:) ) the BeginPaint and EndPaint functions in GUI.xs?=20 I think these functions are left over from previous versions (along = with the other painting/drawing functions in GUI.xs). They are currently = not used by any other internal functions, nor are they documented = anywhere. The general usage would stay the same, but I plan to return = the details as an array (dc,x,y,x1,x2,flag) rather than messing with the = object itself. I think this would be cleaner, faster and more like other = xs functions. In general usage these functions would be used in conjunction with a = Hooked WS_PAINT message, allowing the users program to handle the = painting of window directly. A good example, would be the bitmap = scrolling example ask for by Glenn Linderman, instead of painting the = bitmap into a image control, it could be painted direct into the windows = DC (I'll try and put together an example this weekend). Comments? Cheers, jez.=20 |