From d8a45bde9eeba3ceda50ae5d96e96a924d6009e3 Mon Sep 17 00:00:00 2001 From: Paul Tucker Date: Thu, 29 Jul 1999 16:03:45 +0000 Subject: [PATCH] *** empty log message *** --- harbour/ChangeLog | 7 +++++++ harbour/source/rtl/console.c | 38 +++++++++++++++++++++++++++++------- 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index fb50d3c3c0..f26de528e6 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,10 @@ +19990729-11:35 EDT Paul Tucker + * source/rtl/console.c + * hb_setCursor - account for optional param. #ifdef .. GTAPI + * hb_Save/RestScreen #ifdef .. GTAPI + * account for nil params ie: SaveScreen(,,,,@Buf) + * use hb_gtRectSize + 19990729-13:26 GMT+1 Antonio Linares * source/rtl/gt/gtwin.c * Fixed gtGetCursorStyle when cci.bVisible returning SC_NORMAL diff --git a/harbour/source/rtl/console.c b/harbour/source/rtl/console.c index 961a85988d..096b13c325 100644 --- a/harbour/source/rtl/console.c +++ b/harbour/source/rtl/console.c @@ -995,26 +995,50 @@ HARBOUR HB_DBGSHADOW (void) HARBOUR HB_SAVESCREEN (void) { - ULONG ulSize = ( hb_parni( 3 ) - hb_parni( 1 ) + 1 ) * - ( hb_parni( 4 ) - hb_parni( 2 ) + 1 ) * 2; - char * pBuffer = ( char * ) hb_xgrab( ulSize ); - hb_gtSave( hb_parni( 1 ), hb_parni( 2 ), hb_parni( 3 ), hb_parni( 4 ), pBuffer ); - hb_retclen( pBuffer, ulSize ); +#ifdef HARBOUR_USE_GTAPI + USHORT uiX; + USHORT uiCoords[] = {0,0,hb_gtMaxRow(), hb_gtMaxCol()}; + + for( uiX = 1; uiX < 5; uiX++ ) + if( ISNUM( uiX ) ) + uiCoords[uiX - 1 ] = hb_parni( uiX ); + + hb_gtRectSize( uiCoords[0], uiCoords[1], uiCoords[2], uiCoords[3], &uiX ); + + char * pBuffer = ( char * ) hb_xgrab( uiX ); + hb_gtSave( uiCoords[0], uiCoords[1], uiCoords[2], uiCoords[3], pBuffer ); + hb_retclen( pBuffer, uiX ); hb_xfree( ( void * ) pBuffer ); +#endif } HARBOUR HB_RESTSCREEN (void) { +#ifdef HARBOUR_USE_GTAPI + USHORT uiX; + USHORT uiCoords[] = {0,0,hb_gtMaxRow(), hb_gtMaxCol()}; + if( hb_pcount() == 5 ) - hb_gtRest( hb_parni( 1 ), hb_parni( 2 ), hb_parni( 3 ), hb_parni( 4 ), + { + for( uiX = 1; uiX < 5; uiX++ ) + if( ISNUM( uiX ) ) + uiCoords[uiX - 1 ] = hb_parni( uiX ); + + hb_gtRest( uiCoords[0], uiCoords[1], uiCoords[2], uiCoords[3], hb_parc( 5 ) ); + } +#endif } HARBOUR HB_SETCURSOR( void ) { +#ifdef HARBOUR_USE_GTAPI USHORT usPreviousCursor; hb_gtGetCursor( &usPreviousCursor ); - hb_gtSetCursor( hb_parni( 1 ) ); + if( hb_pcount() == 5 ) + hb_gtSetCursor( hb_parni( 1 ) ); + hb_retni( usPreviousCursor ); +#endif }