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:
Przemyslaw Czerpak
2007-11-21 19:00:01 +00:00
parent ff7e0891fa
commit a966524338
2 changed files with 37 additions and 0 deletions

View File

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

View File

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