2009-04-12 08:57 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* harbour/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtqtc/qtconsolearea.cpp
* harbour/contrib/gtqtc/tests/demoqtc.prg
! Few more HACKS - I know there are better ways to organize them.
Now our inkey() loop is active and demoqtc exits properly.
Plus you may see some activity in console.
This commit is contained in:
@@ -8,6 +8,14 @@
|
||||
2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
|
||||
*/
|
||||
|
||||
2009-04-12 08:57 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
|
||||
* harbour/contrib/gtqtc/gtqtc.cpp
|
||||
* harbour/contrib/gtqtc/qtconsolearea.cpp
|
||||
* harbour/contrib/gtqtc/tests/demoqtc.prg
|
||||
! Few more HACKS - I know there are better ways to organize them.
|
||||
Now our inkey() loop is active and demoqtc exits properly.
|
||||
Plus you may see some activity in console.
|
||||
|
||||
2009-04-11 21:53 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
|
||||
* harbour/contrib/gtqtc/gtqtc.cpp
|
||||
* harbour/contrib/gtqtc/gtqtc.h
|
||||
|
||||
@@ -1531,14 +1531,8 @@ static LRESULT CALLBACK hb_gt_wvt_WndProc( HWND hWnd, UINT message, WPARAM wPara
|
||||
|
||||
static DWORD hb_gt_wvt_ProcessMessages( void )
|
||||
{
|
||||
MSG msg;
|
||||
|
||||
while( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
|
||||
{
|
||||
TranslateMessage( &msg );
|
||||
DispatchMessage( &msg );
|
||||
}
|
||||
return msg.wParam;
|
||||
app->processEvents();
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
static BOOL hb_gt_wvt_ValidWindowSize( HWND hWnd, int rows, int cols, QFont *qFont, int iWidth )
|
||||
@@ -1648,18 +1642,14 @@ void hbqt_exit( PHB_GT pGT )
|
||||
{
|
||||
PHB_GTWVT pWVT;
|
||||
|
||||
HB_TRACE(HB_TR_DEBUG, ("hb_gt_wvt_Exit(%p)", pGT));
|
||||
HB_TRACE(HB_TR_DEBUG, ("hbqt_exit(%p)", pGT));
|
||||
|
||||
pWVT = HB_GTWVT_GET( pGT );
|
||||
HB_GTSUPER_EXIT( pGT );
|
||||
|
||||
/* A HACK - must be constructed differently - Still looking for the ways to control it */
|
||||
hb_gt_wvt_AddCharToInputQueue( pWVT, 27 );
|
||||
|
||||
app->quit();
|
||||
|
||||
if( pWVT )
|
||||
hb_gt_wvt_Free( pWVT );
|
||||
|
||||
if( app )
|
||||
app->quit();
|
||||
}
|
||||
|
||||
static void hbqt_Init( void * cargo )
|
||||
@@ -1727,6 +1717,58 @@ static void hb_gt_wvt_Exit( PHB_GT pGT )
|
||||
|
||||
/* ********************************************************************** */
|
||||
|
||||
static void hb_gt_wvt_Redraw( PHB_GT pGT, int iRow, int iCol, int iSize )
|
||||
{
|
||||
PHB_GTWVT pWVT;
|
||||
|
||||
HB_TRACE( HB_TR_DEBUG, ( "hb_gt_wvt_Redraw(%p,%d,%d,%d)", pGT, iRow, iCol, iSize ) );
|
||||
|
||||
pWVT = HB_GTWVT_GET( pGT );
|
||||
if( pWVT )
|
||||
{
|
||||
if( pWVT->qWnd )
|
||||
{
|
||||
RECT rect;
|
||||
|
||||
rect.top = rect.bottom = ( SHORT ) iRow;
|
||||
rect.left = ( SHORT ) iCol;
|
||||
rect.right = ( SHORT ) ( iCol + iSize - 1 );
|
||||
|
||||
rect = hb_gt_wvt_GetXYFromColRowRect( pWVT, rect );
|
||||
|
||||
/* Schedule a Repaint Event */
|
||||
pWVT->qWnd->update( QRect( iCol, iRow, iCol + iSize - 1, iRow ) );
|
||||
}
|
||||
else
|
||||
pWVT->fInit = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
/* ********************************************************************** */
|
||||
|
||||
static void hb_gt_wvt_Refresh( PHB_GT pGT )
|
||||
{
|
||||
PHB_GTWVT pWVT;
|
||||
|
||||
HB_TRACE( HB_TR_DEBUG, ("hb_gt_wvt_Refresh(%p)", pGT) );
|
||||
|
||||
HB_GTSUPER_REFRESH( pGT );
|
||||
|
||||
pWVT = HB_GTWVT_GET( pGT );
|
||||
if( pWVT )
|
||||
{
|
||||
if( !pWVT->qWnd && pWVT->fInit )
|
||||
hb_gt_wvt_CreateConsoleWindow( pWVT );
|
||||
|
||||
if( pWVT->qWnd )
|
||||
{
|
||||
app->processEvents();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ********************************************************************** */
|
||||
|
||||
static BOOL hb_gt_wvt_SetMode( PHB_GT pGT, int iRow, int iCol )
|
||||
{
|
||||
PHB_GTWVT pWVT;
|
||||
@@ -1795,7 +1837,7 @@ static int hb_gt_wvt_ReadKey( PHB_GT pGT, int iEventMask )
|
||||
|
||||
pWVT = HB_GTWVT_GET( pGT );
|
||||
|
||||
if( pWVT->hWnd ) /* Is the window already open */
|
||||
if( pWVT->qWnd ) /* Is the window already open */
|
||||
hb_gt_wvt_ProcessMessages();
|
||||
|
||||
fKey = hb_gt_wvt_GetCharFromInputQueue( pWVT, &c );
|
||||
@@ -1816,58 +1858,6 @@ static void hb_gt_wvt_Tone( PHB_GT pGT, double dFrequency, double dDuration )
|
||||
|
||||
/* ********************************************************************** */
|
||||
|
||||
static void hb_gt_wvt_Redraw( PHB_GT pGT, int iRow, int iCol, int iSize )
|
||||
{
|
||||
PHB_GTWVT pWVT;
|
||||
|
||||
HB_TRACE( HB_TR_DEBUG, ( "hb_gt_wvt_Redraw(%p,%d,%d,%d)", pGT, iRow, iCol, iSize ) );
|
||||
|
||||
pWVT = HB_GTWVT_GET( pGT );
|
||||
if( pWVT )
|
||||
{
|
||||
if( pWVT->hWnd )
|
||||
{
|
||||
RECT rect;
|
||||
|
||||
rect.top = rect.bottom = ( SHORT ) iRow;
|
||||
rect.left = ( SHORT ) iCol;
|
||||
rect.right = ( SHORT ) ( iCol + iSize - 1 );
|
||||
|
||||
rect = hb_gt_wvt_GetXYFromColRowRect( pWVT, rect );
|
||||
|
||||
/* Schedule a Repaint Event */
|
||||
pWVT->qWnd->update( QRect( iCol, iRow, iCol + iSize - 1, iRow ) );
|
||||
}
|
||||
else
|
||||
pWVT->fInit = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
/* ********************************************************************** */
|
||||
|
||||
static void hb_gt_wvt_Refresh( PHB_GT pGT )
|
||||
{
|
||||
PHB_GTWVT pWVT;
|
||||
|
||||
HB_TRACE( HB_TR_DEBUG, ("hb_gt_wvt_Refresh(%p)", pGT) );
|
||||
|
||||
HB_GTSUPER_REFRESH( pGT );
|
||||
|
||||
pWVT = HB_GTWVT_GET( pGT );
|
||||
if( pWVT )
|
||||
{
|
||||
if( !pWVT->qWnd && pWVT->fInit )
|
||||
hb_gt_wvt_CreateConsoleWindow( pWVT );
|
||||
|
||||
if( pWVT->qWnd )
|
||||
{
|
||||
app->exec();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* ********************************************************************** */
|
||||
|
||||
static BOOL hb_gt_wvt_SetDispCP( PHB_GT pGT, const char * pszTermCDP, const char * pszHostCDP, BOOL fBox )
|
||||
{
|
||||
HB_GTSUPER_SETDISPCP( pGT, pszTermCDP, pszHostCDP, fBox );
|
||||
|
||||
@@ -167,7 +167,10 @@ void ConsoleArea::paintEvent(QPaintEvent * /* event */)
|
||||
QPainter painter(this);
|
||||
painter.drawImage(QPoint(0, 0), image);
|
||||
{
|
||||
QFont font( tr( "Courier New" ), 12, -1, FALSE );
|
||||
int hgt = height();
|
||||
int fntHeight = (hgt/25);
|
||||
fntHeight = 14;
|
||||
QFont font( tr( "Courier New" ), fntHeight, 10, FALSE );
|
||||
font = QFont(font, painter.device());
|
||||
QFontMetrics fontMetrics( font );
|
||||
int height = fontMetrics.height();
|
||||
@@ -202,6 +205,7 @@ void ConsoleArea::paintEvent(QPaintEvent * /* event */)
|
||||
painter.setBackground( brush );
|
||||
QPen pen( COLORS[ bOldColor ] );
|
||||
painter.setPen( pen );
|
||||
OutputDebugString( "KKKK len=%i bOldColor=%i bColor=%i" );
|
||||
|
||||
painter.drawText( QPointF( startCol,iTop ), QString( text ) );
|
||||
|
||||
@@ -281,3 +285,4 @@ void ConsoleArea::print()
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
@@ -38,6 +38,8 @@ FUNCTION Main()
|
||||
Local nHeight := 20
|
||||
Local nWidth := Int( nHeight/2 )
|
||||
Local cFont
|
||||
Local nn := 1
|
||||
Local cc := 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmn'
|
||||
|
||||
Hb_GtInfo( HB_GTI_FONTNAME , cFont )
|
||||
Hb_GtInfo( HB_GTI_FONTWIDTH, nWidth )
|
||||
@@ -46,16 +48,20 @@ FUNCTION Main()
|
||||
SetCursor( 0 )
|
||||
SetColor( "n/w" )
|
||||
|
||||
//HB_GtInfo( HB_GTI_NOTIFIERBLOCK, {|nEvent, ...| MyNotifier( nEvent, ... ) } )
|
||||
|
||||
DispScreen()
|
||||
|
||||
DO WHILE .T.
|
||||
nKey := Inkey(0.1)
|
||||
|
||||
|
||||
if nKey == K_ESC
|
||||
exit
|
||||
endif
|
||||
|
||||
@ maxrow()-1, ( nn % 80 ) SAY substr( cc, nn, 1 )
|
||||
nn++
|
||||
if nn > 79
|
||||
nn := 1
|
||||
endif
|
||||
|
||||
DO CASE
|
||||
CASE nKey == K_ENTER
|
||||
@@ -90,7 +96,7 @@ FUNCTION Main()
|
||||
|
||||
ENDCASE
|
||||
ENDDO
|
||||
|
||||
|
||||
RETURN NIL
|
||||
//----------------------------------------------------------------------//
|
||||
STATIC FUNCTION MyNotifier( nEvent, ... )
|
||||
@@ -148,7 +154,7 @@ STATIC FUNCTION DispScreen()
|
||||
DispOutAt( 0, MaxCol() - 1 , "TR", "N/GR*" )
|
||||
DispOutAt( MaxRow(), 0 , "BL", "N/G*" )
|
||||
DispOutAt( MaxRow(), MaxCol() - 1, "BR", "N/G*" )
|
||||
|
||||
hb_ToOutDebug( "113" )
|
||||
DispEnd()
|
||||
RETURN NIL
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
Reference in New Issue
Block a user