2008-06-07 09:39 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* source/rtl/gtwvt/gtwvt.c
! Fixed cursor width to be synced properly after
a font change.
! Fixed cursor SC_NORMAL height to be calculated
from the font height, instead of being a static
number. [RC1_TOMERGE]
* contrib/hbcurl/hbcurl.c
+ Added RTEs when wrong parameter was passed
to the remaining functions:
CURL_EASY_STRERROR()
CURL_SHARE_STRERROR()
CURL_MULTI_STRERROR()
CURL_GETDATE()
This commit is contained in:
@@ -8,6 +8,22 @@
|
||||
2008-12-31 13:59 UTC+0100 Foo Bar <foo.bar@foobar.org>
|
||||
*/
|
||||
|
||||
2008-06-07 09:39 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
|
||||
* source/rtl/gtwvt/gtwvt.c
|
||||
! Fixed cursor width to be synced properly after
|
||||
a font change.
|
||||
! Fixed cursor SC_NORMAL height to be calculated
|
||||
from the font height, instead of being a static
|
||||
number. [RC1_TOMERGE]
|
||||
|
||||
* contrib/hbcurl/hbcurl.c
|
||||
+ Added RTEs when wrong parameter was passed
|
||||
to the remaining functions:
|
||||
CURL_EASY_STRERROR()
|
||||
CURL_SHARE_STRERROR()
|
||||
CURL_MULTI_STRERROR()
|
||||
CURL_GETDATE()
|
||||
|
||||
2008-06-06 23:30 UTC+0800 Pritpal Bedi (pritpal@vouchcac.com
|
||||
* harbour/source/rtl/gtwvt/gtwvt.c
|
||||
! hb_gt_wvt_Info()
|
||||
|
||||
@@ -1673,23 +1673,36 @@ HB_FUNC( CURL_VERSION_INFO )
|
||||
|
||||
HB_FUNC( CURL_EASY_STRERROR )
|
||||
{
|
||||
hb_retc( curl_easy_strerror( ( CURLcode ) hb_parnl( 1 ) ) );
|
||||
if( ISNUM( 1 ) )
|
||||
hb_retc( curl_easy_strerror( ( CURLcode ) hb_parnl( 1 ) ) );
|
||||
else
|
||||
hb_errRT_BASE( EG_ARG, 2010, NULL, "CURL_EASY_STRERROR", HB_ERR_ARGS_BASEPARAMS );
|
||||
}
|
||||
|
||||
HB_FUNC( CURL_SHARE_STRERROR )
|
||||
{
|
||||
hb_retc( curl_share_strerror( ( CURLSHcode ) hb_parnl( 1 ) ) );
|
||||
if( ISNUM( 1 ) )
|
||||
hb_retc( curl_share_strerror( ( CURLSHcode ) hb_parnl( 1 ) ) );
|
||||
else
|
||||
hb_errRT_BASE( EG_ARG, 2010, NULL, "CURL_SHARE_STRERROR", HB_ERR_ARGS_BASEPARAMS );
|
||||
}
|
||||
|
||||
HB_FUNC( CURL_MULTI_STRERROR )
|
||||
{
|
||||
hb_retc( curl_multi_strerror( ( CURLMcode ) hb_parnl( 1 ) ) );
|
||||
if( ISNUM( 1 ) )
|
||||
hb_retc( curl_multi_strerror( ( CURLMcode ) hb_parnl( 1 ) ) );
|
||||
else
|
||||
hb_errRT_BASE( EG_ARG, 2010, NULL, "CURL_MULTI_STRERROR", HB_ERR_ARGS_BASEPARAMS );
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/* NOTE: This returns the number of seconds since January 1st 1970 in the UTC time zone. */
|
||||
/* TODO: Add support for second curl_getdate() parameter: 'time_t * now' */
|
||||
HB_FUNC( CURL_GETDATE )
|
||||
{
|
||||
hb_retnint( ( HB_LONG ) curl_getdate( hb_parcx( 1 ), NULL ) );
|
||||
if( ISCHAR( 1 ) )
|
||||
hb_retnint( ( HB_LONG ) curl_getdate( hb_parcx( 1 ), NULL ) );
|
||||
else
|
||||
hb_errRT_BASE( EG_ARG, 2010, NULL, "CURL_GETDATE", HB_ERR_ARGS_BASEPARAMS );
|
||||
}
|
||||
|
||||
@@ -193,17 +193,6 @@ static PHB_GTWVT hb_gt_wvt_New( PHB_GT pGT )
|
||||
pWVT->COLORS[14] = YELLOW;
|
||||
pWVT->COLORS[15] = BRIGHT_WHITE;
|
||||
|
||||
pWVT->CaretExist = FALSE;
|
||||
pWVT->CaretHidden = FALSE;
|
||||
pWVT->CaretSize = 4;
|
||||
pWVT->MousePos.x = 0;
|
||||
pWVT->MousePos.y = 0;
|
||||
pWVT->MouseMove = TRUE;
|
||||
pWVT->hWnd = NULL;
|
||||
pWVT->keyPointerIn = 0;
|
||||
pWVT->keyPointerOut = 0;
|
||||
pWVT->keyLast = 0;
|
||||
|
||||
/* THEESE are the default font parameters, if not changed by user */
|
||||
pWVT->PTEXTSIZE.x = WVT_DEFAULT_FONT_WIDTH;
|
||||
pWVT->PTEXTSIZE.y = WVT_DEFAULT_FONT_HEIGHT;
|
||||
@@ -213,6 +202,17 @@ static PHB_GTWVT hb_gt_wvt_New( PHB_GT pGT )
|
||||
pWVT->fontQuality = DEFAULT_QUALITY;
|
||||
hb_strncpy( pWVT->fontFace, WVT_DEFAULT_FONT_NAME, sizeof( pWVT->fontFace ) - 1 );
|
||||
|
||||
pWVT->CaretExist = FALSE;
|
||||
pWVT->CaretHidden = FALSE;
|
||||
pWVT->CaretSize = max( ( pWVT->PTEXTSIZE.y >> 2 ) - 1, 1 );
|
||||
pWVT->MousePos.x = 0;
|
||||
pWVT->MousePos.y = 0;
|
||||
pWVT->MouseMove = TRUE;
|
||||
pWVT->hWnd = NULL;
|
||||
pWVT->keyPointerIn = 0;
|
||||
pWVT->keyPointerOut = 0;
|
||||
pWVT->keyLast = 0;
|
||||
|
||||
pWVT->CentreWindow = TRUE; /* Default is to always display window in centre of screen */
|
||||
pWVT->CodePage = OEM_CHARSET; /* GetACP(); - set code page to default system */
|
||||
|
||||
@@ -520,6 +520,94 @@ static HFONT hb_gt_wvt_GetFont( char * pszFace, int iHeight, int iWidth, int iWe
|
||||
return hFont;
|
||||
}
|
||||
|
||||
static POINT hb_gt_wvt_GetXYFromColRow( PHB_GTWVT pWVT, USHORT col, USHORT row )
|
||||
{
|
||||
POINT xy;
|
||||
|
||||
xy.x = col * pWVT->PTEXTSIZE.x;
|
||||
xy.y = row * pWVT->PTEXTSIZE.y;
|
||||
|
||||
return xy;
|
||||
}
|
||||
|
||||
static RECT hb_gt_wvt_GetXYFromColRowRect( PHB_GTWVT pWVT, RECT colrow )
|
||||
{
|
||||
RECT xy;
|
||||
|
||||
xy.left = colrow.left * pWVT->PTEXTSIZE.x;
|
||||
xy.top = colrow.top * pWVT->PTEXTSIZE.y;
|
||||
xy.right = ( colrow.right + 1 ) * pWVT->PTEXTSIZE.x;
|
||||
xy.bottom = ( colrow.bottom + 1 ) * pWVT->PTEXTSIZE.y;
|
||||
|
||||
return xy;
|
||||
}
|
||||
|
||||
static void hb_gt_wvt_UpdateCaret( PHB_GTWVT pWVT )
|
||||
{
|
||||
int iRow, iCol, iStyle, iCaretSize;
|
||||
|
||||
HB_GTSELF_GETSCRCURSOR( pWVT->pGT, &iRow, &iCol, &iStyle );
|
||||
|
||||
if( iRow < 0 || iCol < 0 || iRow >= pWVT->ROWS || iCol >= pWVT->COLS )
|
||||
{
|
||||
iCaretSize = 0;
|
||||
}
|
||||
else switch( iStyle )
|
||||
{
|
||||
case SC_INSERT:
|
||||
iCaretSize = pWVT->PTEXTSIZE.y >> 1;
|
||||
break;
|
||||
case SC_SPECIAL1:
|
||||
iCaretSize = pWVT->PTEXTSIZE.y;
|
||||
break;
|
||||
case SC_SPECIAL2:
|
||||
iCaretSize = - ( pWVT->PTEXTSIZE.y >> 1 );
|
||||
break;
|
||||
case SC_NORMAL:
|
||||
iCaretSize = max( ( pWVT->PTEXTSIZE.y >> 2 ) - 1, 1 );
|
||||
break;
|
||||
default:
|
||||
iCaretSize = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
if( iCaretSize == 0 )
|
||||
{
|
||||
if( pWVT->CaretExist && !pWVT->CaretHidden )
|
||||
{
|
||||
HideCaret( pWVT->hWnd );
|
||||
pWVT->CaretHidden = TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( iCaretSize != pWVT->CaretSize || !pWVT->CaretExist )
|
||||
{
|
||||
pWVT->CaretSize = iCaretSize;
|
||||
pWVT->CaretExist = CreateCaret( pWVT->hWnd, ( HBITMAP ) NULL, pWVT->PTEXTSIZE.x,
|
||||
pWVT->CaretSize < 0 ? - pWVT->CaretSize : pWVT->CaretSize );
|
||||
}
|
||||
if( pWVT->CaretExist )
|
||||
{
|
||||
POINT xy;
|
||||
xy = hb_gt_wvt_GetXYFromColRow( pWVT, ( SHORT ) iCol, ( SHORT ) iRow );
|
||||
SetCaretPos( xy.x, pWVT->CaretSize < 0 ?
|
||||
xy.y : xy.y + pWVT->PTEXTSIZE.y - pWVT->CaretSize );
|
||||
ShowCaret( pWVT->hWnd );
|
||||
pWVT->CaretHidden = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void hb_gt_wvt_KillCaret( PHB_GTWVT pWVT )
|
||||
{
|
||||
if( pWVT->CaretExist )
|
||||
{
|
||||
DestroyCaret();
|
||||
pWVT->CaretExist = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static void hb_gt_wvt_ResetWindowSize( PHB_GTWVT pWVT )
|
||||
{
|
||||
HDC hdc;
|
||||
@@ -579,6 +667,9 @@ static void hb_gt_wvt_ResetWindowSize( PHB_GTWVT pWVT )
|
||||
width += ( USHORT ) ( wi.right - wi.left - ci.right );
|
||||
height += ( USHORT ) ( wi.bottom - wi.top - ci.bottom );
|
||||
|
||||
hb_gt_wvt_KillCaret( pWVT );
|
||||
hb_gt_wvt_UpdateCaret( pWVT );
|
||||
|
||||
/*
|
||||
* Centre the window within the CLIENT area on the screen
|
||||
* but only if pWVT->CentreWindow == TRUE
|
||||
@@ -654,28 +745,6 @@ static RECT hb_gt_wvt_GetColRowFromXYRect( PHB_GTWVT pWVT, RECT xy )
|
||||
return colrow;
|
||||
}
|
||||
|
||||
static POINT hb_gt_wvt_GetXYFromColRow( PHB_GTWVT pWVT, USHORT col, USHORT row )
|
||||
{
|
||||
POINT xy;
|
||||
|
||||
xy.x = col * pWVT->PTEXTSIZE.x;
|
||||
xy.y = row * pWVT->PTEXTSIZE.y;
|
||||
|
||||
return xy;
|
||||
}
|
||||
|
||||
static RECT hb_gt_wvt_GetXYFromColRowRect( PHB_GTWVT pWVT, RECT colrow )
|
||||
{
|
||||
RECT xy;
|
||||
|
||||
xy.left = colrow.left * pWVT->PTEXTSIZE.x;
|
||||
xy.top = colrow.top * pWVT->PTEXTSIZE.y;
|
||||
xy.right = ( colrow.right + 1 ) * pWVT->PTEXTSIZE.x;
|
||||
xy.bottom = ( colrow.bottom + 1 ) * pWVT->PTEXTSIZE.y;
|
||||
|
||||
return xy;
|
||||
}
|
||||
|
||||
/*
|
||||
* functions for handling the input queues for the mouse and keyboard
|
||||
*/
|
||||
@@ -1247,72 +1316,6 @@ static void hb_gt_wvt_PaintText( PHB_GTWVT pWVT, RECT updateRect )
|
||||
EndPaint( pWVT->hWnd, &ps );
|
||||
}
|
||||
|
||||
static void hb_gt_wvt_UpdateCaret( PHB_GTWVT pWVT )
|
||||
{
|
||||
int iRow, iCol, iStyle, iCaretSize;
|
||||
|
||||
HB_GTSELF_GETSCRCURSOR( pWVT->pGT, &iRow, &iCol, &iStyle );
|
||||
|
||||
if( iRow < 0 || iCol < 0 || iRow >= pWVT->ROWS || iCol >= pWVT->COLS )
|
||||
{
|
||||
iCaretSize = 0;
|
||||
}
|
||||
else switch( iStyle )
|
||||
{
|
||||
case SC_INSERT:
|
||||
iCaretSize = pWVT->PTEXTSIZE.y >> 1;
|
||||
break;
|
||||
case SC_SPECIAL1:
|
||||
iCaretSize = pWVT->PTEXTSIZE.y;
|
||||
break;
|
||||
case SC_SPECIAL2:
|
||||
iCaretSize = - ( pWVT->PTEXTSIZE.y >> 1 );
|
||||
break;
|
||||
case SC_NORMAL:
|
||||
iCaretSize = 4;
|
||||
break;
|
||||
default:
|
||||
iCaretSize = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
if( iCaretSize == 0 )
|
||||
{
|
||||
if( pWVT->CaretExist && !pWVT->CaretHidden )
|
||||
{
|
||||
HideCaret( pWVT->hWnd );
|
||||
pWVT->CaretHidden = TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( iCaretSize != pWVT->CaretSize || !pWVT->CaretExist )
|
||||
{
|
||||
pWVT->CaretSize = iCaretSize;
|
||||
pWVT->CaretExist = CreateCaret( pWVT->hWnd, ( HBITMAP ) NULL, pWVT->PTEXTSIZE.x,
|
||||
pWVT->CaretSize < 0 ? - pWVT->CaretSize : pWVT->CaretSize );
|
||||
}
|
||||
if( pWVT->CaretExist )
|
||||
{
|
||||
POINT xy;
|
||||
xy = hb_gt_wvt_GetXYFromColRow( pWVT, ( SHORT ) iCol, ( SHORT ) iRow );
|
||||
SetCaretPos( xy.x, pWVT->CaretSize < 0 ?
|
||||
xy.y : xy.y + pWVT->PTEXTSIZE.y - pWVT->CaretSize );
|
||||
ShowCaret( pWVT->hWnd );
|
||||
pWVT->CaretHidden = FALSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void hb_gt_wvt_KillCaret( PHB_GTWVT pWVT )
|
||||
{
|
||||
if( pWVT->CaretExist )
|
||||
{
|
||||
DestroyCaret();
|
||||
pWVT->CaretExist = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static LRESULT CALLBACK hb_gt_wvt_WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
|
||||
{
|
||||
PHB_GTWVT pWVT = hb_gt_wvt_Find( hWnd );
|
||||
@@ -1563,13 +1566,13 @@ static void hb_gt_wvt_Init( PHB_GT pGT, FHANDLE hFilenoStdin, FHANDLE hFilenoStd
|
||||
|
||||
if( ! hb_winmainArgGet( &s_hInstance, &s_hPrevInstance, &s_iCmdShow ) )
|
||||
{
|
||||
hb_errInternal( 10001, "It's not a window GUI program.", "", "" );
|
||||
hb_errInternal( 10001, "It's not a window GUI program.", NULL, NULL );
|
||||
}
|
||||
|
||||
pWVT = hb_gt_wvt_New( pGT );
|
||||
if( !pWVT )
|
||||
{
|
||||
hb_errInternal( 10001, "Cannot allocate new window", "", "" );
|
||||
hb_errInternal( 10001, "Cannot allocate new window", NULL, NULL );
|
||||
}
|
||||
|
||||
HB_GTLOCAL( pGT ) = ( void * ) pWVT;
|
||||
@@ -1580,7 +1583,7 @@ static void hb_gt_wvt_Init( PHB_GT pGT, FHANDLE hFilenoStdin, FHANDLE hFilenoStd
|
||||
if( !pWVT->hWnd )
|
||||
{
|
||||
/* hb_errRT_TERM( EG_CREATE, 10001, "WINAPI CreateWindow() failed", "hb_gt_wvt_Init()", 0, 0 ); */
|
||||
hb_errInternal( 10001, "WINAPI CreateWindow() failed", "", "" );
|
||||
hb_errInternal( 10001, "WINAPI CreateWindow() failed", NULL, NULL );
|
||||
}
|
||||
|
||||
hb_gt_wvt_InitWindow( pWVT, WVT_DEFAULT_ROWS, WVT_DEFAULT_COLS );
|
||||
@@ -1984,7 +1987,7 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
|
||||
if( hb_gt_wvt_GetWindowTitle( pWVT->hWnd, &szTitle ) )
|
||||
pInfo->pResult = hb_itemPutCPtr( pInfo->pResult, szTitle, strlen( szTitle ) );
|
||||
else
|
||||
pInfo->pResult = hb_itemPutC( pInfo->pResult, "" );
|
||||
pInfo->pResult = hb_itemPutC( pInfo->pResult, NULL );
|
||||
if( hb_itemType( pInfo->pNewVal ) & HB_IT_STRING )
|
||||
hb_gt_wvt_SetWindowTitle( pWVT->hWnd, hb_itemGetCPtr( pInfo->pNewVal ) );
|
||||
break;
|
||||
@@ -2077,7 +2080,7 @@ static BOOL hb_gt_wvt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
|
||||
}
|
||||
else
|
||||
{
|
||||
pInfo->pResult = hb_itemPutC( pInfo->pResult, "" );
|
||||
pInfo->pResult = hb_itemPutC( pInfo->pResult, NULL );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user