2007-11-21 19:59 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/hbgtcore.c
+ added emulation for clipboard in core GT code.
Now:
hb_gtInfo( GTI_CLIPBOARDDATA ) -> <cClipData>
and:
hb_gtInfo( GTI_CLIPBOARDDATA, <cNewClipData> )
is working in all GTs even if such functionality is not supported
by OS.
This commit is contained in:
@@ -8,6 +8,16 @@
|
||||
2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org>
|
||||
*/
|
||||
|
||||
2007-11-21 19:59 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/source/rtl/hbgtcore.c
|
||||
+ added emulation for clipboard in core GT code.
|
||||
Now:
|
||||
hb_gtInfo( GTI_CLIPBOARDDATA ) -> <cClipData>
|
||||
and:
|
||||
hb_gtInfo( GTI_CLIPBOARDDATA, <cNewClipData> )
|
||||
is working in all GTs even if such functionality is not supported
|
||||
by OS.
|
||||
|
||||
2007-11-21 18:30 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/make_vcce.bat
|
||||
* harbour/make_vcce.mak
|
||||
|
||||
@@ -78,6 +78,9 @@ static USHORT s_uiClearChar = ' ';
|
||||
static BYTE s_bClearColor = 0x07;
|
||||
static FHANDLE s_hStdIn = 0, s_hStdOut = 1, s_hStdErr = 2;
|
||||
|
||||
static char * s_szClipboardData = NULL;
|
||||
static ULONG s_ulClipboardLen = 0;
|
||||
|
||||
static BOOL s_fDispTrans = FALSE;
|
||||
static PHB_CODEPAGE s_cdpTerm = NULL;
|
||||
static PHB_CODEPAGE s_cdpHost = NULL;
|
||||
@@ -179,6 +182,11 @@ static void hb_gt_def_Exit( void )
|
||||
hb_xfree( s_pColor );
|
||||
s_iColorCount = 0;
|
||||
}
|
||||
if( s_ulClipboardLen )
|
||||
{
|
||||
hb_xfree( s_szClipboardData );
|
||||
s_ulClipboardLen = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static BOOL hb_gt_def_CheckPos( int iRow, int iCol, long *plIndex )
|
||||
@@ -1525,6 +1533,25 @@ static BOOL hb_gt_def_Info( int iType, PHB_GT_INFO pInfo )
|
||||
}
|
||||
break;
|
||||
|
||||
case GTI_CLIPBOARDDATA:
|
||||
if( hb_itemType( pInfo->pNewVal ) & HB_IT_STRING )
|
||||
{ /* set new Clipboard value */
|
||||
if( s_ulClipboardLen )
|
||||
hb_xfree( s_szClipboardData );
|
||||
s_ulClipboardLen = hb_itemGetCLen( pInfo->pNewVal );
|
||||
if( s_ulClipboardLen )
|
||||
{
|
||||
s_szClipboardData = ( char * ) hb_xgrab( s_ulClipboardLen + 1 );
|
||||
memcpy( s_szClipboardData, hb_itemGetCPtr( pInfo->pNewVal ),
|
||||
s_ulClipboardLen );
|
||||
s_szClipboardData[ s_ulClipboardLen ] = '\0';
|
||||
}
|
||||
}
|
||||
else /* get Clipboard value */
|
||||
pInfo->pResult = hb_itemPutCL( pInfo->pResult, s_szClipboardData,
|
||||
s_ulClipboardLen );
|
||||
break;
|
||||
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user