From 4176d85bb7930f3adfc1a437755307771fe34993 Mon Sep 17 00:00:00 2001 From: Przemyslaw Czerpak Date: Sat, 11 Oct 2008 09:21:52 +0000 Subject: [PATCH] 2008-10-11 11:21 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/common/expropt2.c * formatting and minor cleanup * harbour/source/rtl/gtapi.c % do not set and restore default color set in hb_gtPutText() and hb_gtDrawBox() but decode colors from passed string --- harbour/ChangeLog | 8 ++++++++ harbour/source/common/expropt2.c | 16 ++++++++-------- harbour/source/rtl/gtapi.c | 28 ++++++++++++++++------------ 3 files changed, 32 insertions(+), 20 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index e301d933be..47a6674ba6 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,14 @@ 2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2008-10-11 11:21 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/source/common/expropt2.c + * formatting and minor cleanup + + * harbour/source/rtl/gtapi.c + % do not set and restore default color set in hb_gtPutText() and + hb_gtDrawBox() but decode colors from passed string + 2008-10-11 11:06 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * include/hbextern.ch + New functions added. diff --git a/harbour/source/common/expropt2.c b/harbour/source/common/expropt2.c index 363f866698..cf73e1c737 100644 --- a/harbour/source/common/expropt2.c +++ b/harbour/source/common/expropt2.c @@ -1607,14 +1607,14 @@ BOOL hb_compExprReduceCHR( HB_EXPR_PTR pSelf, HB_COMP_DECL ) pExpr->value.asString.dealloc = FALSE; pExpr->ulLength = 1; } - + HB_COMP_EXPR_FREE( pParms ); HB_COMP_EXPR_FREE( pSelf->value.asFunCall.pFunName ); memcpy( pSelf, pExpr, sizeof( HB_EXPR ) ); HB_COMP_EXPR_CLEAR( pExpr ); return TRUE; } - + return FALSE; } @@ -1914,7 +1914,7 @@ BOOL hb_compExprReduceMIN( HB_EXPR_PTR pSelf, HB_COMP_DECL ) { HB_EXPR_PTR pExpr = NULL; - if( pNext->ExprType == HB_ET_NUMERIC ) + if( pFirst->ExprType == HB_ET_NUMERIC ) { BYTE bType = ( pFirst->value.asNum.NumType & pNext->value.asNum.NumType ); @@ -1932,10 +1932,10 @@ BOOL hb_compExprReduceMIN( HB_EXPR_PTR pSelf, HB_COMP_DECL ) default: if( pFirst->value.asNum.NumType == HB_ET_DOUBLE ) - pExpr = pFirst->value.asNum.val.d <= ( double ) pNext->value.asNum.val.l ? + pExpr = ( pFirst->value.asNum.val.d <= ( double ) pNext->value.asNum.val.l ) ? pFirst : pNext; else - pExpr = ( double ) pFirst->value.asNum.val.l <= pNext->value.asNum.val.d ? + pExpr = ( ( double ) pFirst->value.asNum.val.l <= pNext->value.asNum.val.d ) ? pFirst : pNext; } } @@ -1983,7 +1983,7 @@ BOOL hb_compExprReduceMAX( HB_EXPR_PTR pSelf, HB_COMP_DECL ) { HB_EXPR_PTR pExpr = NULL; - if( pNext->ExprType == HB_ET_NUMERIC ) + if( pFirst->ExprType == HB_ET_NUMERIC ) { BYTE bType = ( pFirst->value.asNum.NumType & pNext->value.asNum.NumType ); @@ -2001,10 +2001,10 @@ BOOL hb_compExprReduceMAX( HB_EXPR_PTR pSelf, HB_COMP_DECL ) default: if( pFirst->value.asNum.NumType == HB_ET_DOUBLE ) - pExpr = pFirst->value.asNum.val.d >= ( double ) pNext->value.asNum.val.l ? + pExpr = ( pFirst->value.asNum.val.d >= ( double ) pNext->value.asNum.val.l ) ? pFirst : pNext; else - pExpr = ( double ) pFirst->value.asNum.val.l >= pNext->value.asNum.val.d ? + pExpr = ( ( double ) pFirst->value.asNum.val.l >= pNext->value.asNum.val.d ) ? pFirst : pNext; } } diff --git a/harbour/source/rtl/gtapi.c b/harbour/source/rtl/gtapi.c index 44f7d15ab6..bc60b4f0fd 100644 --- a/harbour/source/rtl/gtapi.c +++ b/harbour/source/rtl/gtapi.c @@ -252,17 +252,19 @@ HB_EXPORT ERRCODE hb_gtDrawBox( SHORT Top, SHORT Left, SHORT Bottom, SHORT Right pGT = hb_gt_Base(); if( pGT ) { - char szOldColor[ HB_CLRSTR_LEN ]; + int iColor; if( pszColor ) { - HB_GTSELF_GETCOLORSTR( pGT, szOldColor ); - HB_GTSELF_SETCOLORSTR( pGT, pszColor ); + iColor = HB_GTSELF_COLORNUM( pGT, pszColor ); + if( iColor == -1 ) + iColor = HB_GTSELF_COLORNUM( pGT, "W/N" ); } - HB_GTSELF_BOX( pGT, Top, Left, Bottom, Right, pbyFrame, HB_GTSELF_GETCOLOR( pGT ) ); + else + iColor = HB_GTSELF_GETCOLOR( pGT ); + + HB_GTSELF_BOX( pGT, Top, Left, Bottom, Right, pbyFrame, iColor ); HB_GTSELF_FLUSH( pGT ); - if( pszColor ) - HB_GTSELF_SETCOLORSTR( pGT, szOldColor ); hb_gt_BaseFree( pGT ); return SUCCESS; } @@ -788,16 +790,18 @@ HB_EXPORT ERRCODE hb_gtPutText( USHORT uiRow, USHORT uiCol, pGT = hb_gt_Base(); if( pGT ) { - char szOldColor[ HB_CLRSTR_LEN ]; + int iColor; if( pszColor ) { - HB_GTSELF_GETCOLORSTR( pGT, szOldColor ); - HB_GTSELF_SETCOLORSTR( pGT, pszColor ); + iColor = HB_GTSELF_COLORNUM( pGT, pszColor ); + if( iColor == -1 ) + iColor = HB_GTSELF_COLORNUM( pGT, "W/N" ); } - HB_GTSELF_PUTTEXT( pGT, uiRow, uiCol, HB_GTSELF_GETCOLOR( pGT ), pStr, ulLength ); - if( pszColor ) - HB_GTSELF_SETCOLORSTR( pGT, szOldColor ); + else + iColor = HB_GTSELF_GETCOLOR( pGT ); + + HB_GTSELF_PUTTEXT( pGT, uiRow, uiCol, ( BYTE ) iColor, pStr, ulLength ); HB_GTSELF_FLUSH( pGT ); hb_gt_BaseFree( pGT );