diff --git a/ChangeLog.txt b/ChangeLog.txt index 480860dcb5..7169ee43b9 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,16 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2015-10-22 10:13 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * src/rtl/gtwvt/gtwvt.c + * src/rtl/gtwvt/gtwvt.h + * merged and simplified code for HB_GTI_ICONFILE and HB_GTI_ICONRES + + * src/rtl/hbcom.c + * use "COM:" instead of "COM" as serial port name in WinCE + builds - it's suggested by MSDN but if some of you has different + experience then please inform me. + 2015-10-21 19:26 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * contrib/hbfoxpro/hbfoxpro.hbx * contrib/hbfoxpro/occurs.prg diff --git a/src/rtl/gtwvt/gtwvt.c b/src/rtl/gtwvt/gtwvt.c index d09facf191..6422c27dc1 100644 --- a/src/rtl/gtwvt/gtwvt.c +++ b/src/rtl/gtwvt/gtwvt.c @@ -274,8 +274,8 @@ static void hb_gt_wvt_Free( PHB_GTWVT pWVT ) if( pWVT->hWnd ) DestroyWindow( pWVT->hWnd ); - if( pWVT->hIcon && pWVT->bIconToFree ) - DestroyIcon( pWVT->hIcon ); + if( pWVT->hIconToFree ) + DestroyIcon( pWVT->hIconToFree ); if( pWVT->TextLine ) hb_xfree( pWVT->TextLine ); @@ -3792,69 +3792,44 @@ static HB_BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo ) break; #endif case HB_GTI_ICONFILE: - - if( hb_itemType( pInfo->pNewVal ) & HB_IT_STRING ) - { - HICON hIconToFree = pWVT->bIconToFree ? pWVT->hIcon : NULL; - void * hImageName; - - pWVT->bIconToFree = HB_TRUE; - pWVT->hIcon = ( HICON ) LoadImage( ( HINSTANCE ) NULL, - HB_ITEMGETSTR( pInfo->pNewVal, &hImageName, NULL ), - IMAGE_ICON, 0, 0, LR_LOADFROMFILE | LR_DEFAULTSIZE ); - hb_strfree( hImageName ); - if( pWVT->hWnd ) - { - SendNotifyMessage( pWVT->hWnd, WM_SETICON, ICON_SMALL, ( LPARAM ) pWVT->hIcon ); /* Set Title Bar Icon */ - SendNotifyMessage( pWVT->hWnd, WM_SETICON, ICON_BIG , ( LPARAM ) pWVT->hIcon ); /* Set Task List Icon */ - } - - if( hIconToFree ) - DestroyIcon( hIconToFree ); - } - pInfo->pResult = hb_itemPutNInt( pInfo->pResult, ( HB_PTRDIFF ) pWVT->hIcon ); - break; - case HB_GTI_ICONRES: + { + HICON hIcon = NULL, hIconToFree = NULL; if( hb_itemType( pInfo->pNewVal ) & HB_IT_STRING ) { - HICON hIconToFree = pWVT->bIconToFree ? pWVT->hIcon : NULL; void * hIconName; - pWVT->bIconToFree = HB_FALSE; - pWVT->hIcon = LoadIcon( pWVT->hInstance, - HB_ITEMGETSTR( pInfo->pNewVal, &hIconName, NULL ) ); + if( iType == HB_GTI_ICONFILE ) + hIcon = hIconToFree = ( HICON ) + LoadImage( ( HINSTANCE ) NULL, + HB_ITEMGETSTR( pInfo->pNewVal, &hIconName, NULL ), + IMAGE_ICON, 0, 0, LR_LOADFROMFILE | LR_DEFAULTSIZE ); + else + hIcon = LoadIcon( pWVT->hInstance, + HB_ITEMGETSTR( pInfo->pNewVal, &hIconName, NULL ) ); hb_strfree( hIconName ); - if( pWVT->hWnd ) - { - SendNotifyMessage( pWVT->hWnd, WM_SETICON, ICON_SMALL, ( LPARAM ) pWVT->hIcon ); /* Set Title Bar Icon */ - SendNotifyMessage( pWVT->hWnd, WM_SETICON, ICON_BIG , ( LPARAM ) pWVT->hIcon ); /* Set Task List Icon */ - } - - if( hIconToFree ) - DestroyIcon( hIconToFree ); } else if( hb_itemType( pInfo->pNewVal ) & HB_IT_NUMERIC ) { - HICON hIconToFree = pWVT->bIconToFree ? pWVT->hIcon : NULL; - - pWVT->bIconToFree = HB_FALSE; - pWVT->hIcon = LoadIcon( pWVT->hInstance, - MAKEINTRESOURCE( hb_itemGetNI( pInfo->pNewVal ) ) ); - + hIcon = LoadIcon( pWVT->hInstance, + MAKEINTRESOURCE( hb_itemGetNI( pInfo->pNewVal ) ) ); + } + if( hIcon != pWVT->hIcon ) + { if( pWVT->hWnd ) { - SendNotifyMessage( pWVT->hWnd, WM_SETICON, ICON_SMALL, ( LPARAM ) pWVT->hIcon ); /* Set Title Bar Icon */ - SendNotifyMessage( pWVT->hWnd, WM_SETICON, ICON_BIG , ( LPARAM ) pWVT->hIcon ); /* Set Task List Icon */ + SendNotifyMessage( pWVT->hWnd, WM_SETICON, ICON_SMALL, ( LPARAM ) hIcon ); /* Set Title Bar Icon */ + SendNotifyMessage( pWVT->hWnd, WM_SETICON, ICON_BIG , ( LPARAM ) hIcon ); /* Set Task List Icon */ } - - if( hIconToFree ) - DestroyIcon( hIconToFree ); + if( pWVT->hIconToFree ) + DestroyIcon( pWVT->hIconToFree ); + pWVT->hIconToFree = hIconToFree; + pWVT->hIcon = hIcon; } pInfo->pResult = hb_itemPutNInt( pInfo->pResult, ( HB_PTRDIFF ) pWVT->hIcon ); break; - + } case HB_GTI_VIEWPORTWIDTH: case HB_GTI_VIEWMAXWIDTH: pInfo->pResult = hb_itemPutNI( pInfo->pResult, pWVT->COLS ); diff --git a/src/rtl/gtwvt/gtwvt.h b/src/rtl/gtwvt/gtwvt.h index 23a3bbcbc9..b646cb2b3a 100644 --- a/src/rtl/gtwvt/gtwvt.h +++ b/src/rtl/gtwvt/gtwvt.h @@ -300,7 +300,7 @@ typedef struct HB_BOOL fInit; /* logical variable indicating that window should be open */ HICON hIcon; /* Title Bar and Task List icon. Can be NULL. */ - HB_BOOL bIconToFree; /* Do we need to free this icon when it's not NULL? */ + HICON hIconToFree; /* Do we need to free this icon when it's not NULL? */ void * hWindowTitle; LPCTSTR lpWindowTitle; diff --git a/src/rtl/hbcom.c b/src/rtl/hbcom.c index 1672a407c4..5a9b47d519 100644 --- a/src/rtl/hbcom.c +++ b/src/rtl/hbcom.c @@ -205,8 +205,10 @@ static const char * hb_comGetNameRaw( PHB_COM pCom, char * buffer, int size ) # else /* defined( HB_OS_LINUX ) || defined( HB_OS_CYGWIN ) || ... */ hb_snprintf( buffer, size, "/dev/ttyS%d", pCom->port - 1 ); # endif +#elif defined( HB_OS_WIN_CE ) + hb_snprintf( buffer, size, "COM%d:", pCom->port ); #else - if( hb_iswinnt() ) + if( hb_iswinnt() || hb_iswince() ) hb_snprintf( buffer, size, "\\\\.\\COM%d", pCom->port ); else hb_snprintf( buffer, size, "COM%d", pCom->port );