On Sun, 09 Dec 2007, Pritpal Bedi wrote:
> Hello
> I did not know that Harbour painting behavior is optimized to not repaint
> any region if its color attribute or character buffer is not different than
> the previous one.
Yes, it is.
> However this does not hold good in GTWVG context. GUI elements are super
> imposed over character region. So this GT need that region is always painted
> whenever it is requested.
This is sth what we should probably discuss in the future.
It's not clear for me how GTWVG uses different display
context and merge it to show final screen, what is the
priority of text and GUI objects, how it interacts with
SAVE/REST screen. Of course I can see what happens in
current code but I'd like to know the ideas rather then
results of implementation because it is hardly oriented
to MS-Windows API.
> How this can be forced in local GT? May be we need a flag to set it like
> hb_forceRepaint( .t. ) or alike.
It's enough to overload PUTCHAR() method and call TOUCHCELL() inside,
f.e. add to gtwvg.c:
static BOOL hb_gt_wvg_PutChar( PHB_GT pGT, int iRow, int iCol,
BYTE bColor, BYTE bAttr, USHORT usChar )
{
if( HB_GTSUPER_PUTCHAR( pGT, iRow, iCol, bColor, bAttr, usChar ) )
{
HB_GTSELF_TOUCHCELL( pGT, iRow, iCol );
return TRUE;
}
return FALSE;
}
and to hb_gt_FuncInit() function:
pFuncTable->PutChar = hb_gt_wvt_PutChar;
It will cause that "touched" screen characters will be always redrawn.
best regards,
Przemek
_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour