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<n>:" instead of "COM<n>" as serial port name in WinCE
      builds - it's suggested by MSDN but if some of you has different
      experience then please inform me.
This commit is contained in:
Przemysław Czerpak
2015-10-22 10:13:39 +02:00
parent b66470b9a5
commit 2a743e15e1
4 changed files with 38 additions and 51 deletions

View File

@@ -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<n>:" instead of "COM<n>" 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

View File

@@ -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 );

View File

@@ -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;

View File

@@ -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 );