2013-04-23 14:00 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)

* harbour/contrib/rddads/adsfunc.c
    * ADSREGCALLBACK() implemented using AdsRegisterCallbackFunction() instead
      of obsolete AdsRegisterProgressCallback(). This enables draw progress
      bar for both indexing and SQL query processing.
    ; implementation unchanged for old ADS versions (<= 6.1)
This commit is contained in:
Mindaugas Kavaliauskas
2013-04-23 13:59:25 +03:00
parent 8ce27f3b51
commit 22603b95c2
2 changed files with 28 additions and 4 deletions

View File

@@ -10,6 +10,13 @@
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
*/
2013-04-23 14:00 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* harbour/contrib/rddads/adsfunc.c
* ADSREGCALLBACK() implemented using AdsRegisterCallbackFunction() instead
of obsolete AdsRegisterProgressCallback(). This enables draw progress
bar for both indexing and SQL query processing.
; implementation unchanged for old ADS versions (<= 6.1)
2013-04-22 22:05 UTC+0200 Przemysław Czerpak (druzus/at/poczta.onet.pl)
* bin/check.hb
* bin/commit.hb

View File

@@ -1430,22 +1430,31 @@ HB_FUNC( ADSCONVERTTABLE )
}
#if ! defined( ADS_LINUX )
UNSIGNED32 WINAPI hb_adsShowPercentageCB( UNSIGNED16 usPercentDone )
#if ADS_LIB_VERSION >= 620
UNSIGNED32 WINAPI hb_adsShowCallback( UNSIGNED16 usPercentDone, UNSIGNED32 ulCallbackID )
#else
UNSIGNED32 WINAPI hb_adsShowCallback( UNSIGNED16 usPercentDone )
#endif
{
PHB_ITEM pCallBack = hb_ads_getCallBack();
if( pCallBack )
{
PHB_ITEM pPercentDone = hb_itemPutNI( NULL, usPercentDone );
#if ADS_LIB_VERSION >= 620
PHB_ITEM pCallbackID = hb_itemPutNL( NULL, ulCallbackID );
HB_BOOL fResult = hb_itemGetL( hb_vmEvalBlockV( pCallBack, 2, pPercentDone, pCallbackID ) );
hb_itemRelease( pCallbackID );
#else
HB_BOOL fResult = hb_itemGetL( hb_vmEvalBlockV( pCallBack, 1, pPercentDone ) );
#endif
hb_itemRelease( pPercentDone );
return fResult ? 1 : 0;
}
#if HB_TR_LEVEL >= HB_TR_DEBUG
else
HB_TRACE( HB_TR_DEBUG, ( "hb_adsShowPercentageCB(%d) called with no codeblock set.", usPercentDone ) );
HB_TRACE( HB_TR_DEBUG, ( "hb_adsShowCallback(%d) called with no codeblock set.", usPercentDone ) );
#endif
return 0;
@@ -1469,7 +1478,11 @@ HB_FUNC( ADSREGCALLBACK )
if( pCallBack )
{
hb_ads_setCallBack( pCallBack );
if( AdsRegisterProgressCallback( hb_adsShowPercentageCB ) == AE_SUCCESS )
#if ADS_LIB_VERSION >= 620
if( AdsRegisterCallbackFunction( hb_adsShowCallback, hb_parnl( 2 ) ) == AE_SUCCESS )
#else
if( AdsRegisterProgressCallback( hb_adsShowCallback ) == AE_SUCCESS )
#endif
fResult = HB_TRUE;
else
hb_ads_setCallBack( NULL );
@@ -1483,7 +1496,11 @@ HB_FUNC( ADSCLRCALLBACK )
{
#if ! defined( ADS_LINUX )
hb_ads_setCallBack( NULL );
#if ADS_LIB_VERSION >= 620
hb_retnl( AdsClearCallbackFunction() );
#else
hb_retnl( AdsClearProgressCallback() );
#endif
#else
hb_retnl( 0 );
#endif /* ADS_LINUX */