2012-10-12 15:34 UTC+0200 Viktor Szakats (harbour syenar.net)

* contrib/gtwvg/class.prg
  * contrib/gtwvg/tests/demowvg.prg
  * contrib/gtwvg/tests/demowvg1.prg
  * contrib/gtwvg/tests/modal.prg
  * contrib/gtwvg/tests/tbrowser.prg
  * contrib/gtwvg/tests/utils.prg
  * contrib/hbmisc/hbedit.prg
  * contrib/hbnetio/utils/hbnetio/netiocon.prg
  * contrib/hbnf/popadder.prg
  * contrib/xhb/ttable.prg
  * contrib/xhb/xhbtedit.prg
  * extras/gtwvw/tests/maincoor.prg
  * extras/gtwvw/tests/prog0.prg
  * extras/gtwvw/tests/prog1.prg
  * extras/gtwvw/tests/prog2.prg
  * src/debug/dbghelp.prg
  * src/debug/dbgtwin.prg
  * src/debug/debugger.prg
  * tests/db_brows.prg
  * tests/testprof.prg
    * DispOut*() -> hb_DispOut*()
    * DispBox*() -> hb_DispBox*()
    * Scroll()/CLEAR TO -> hb_Scroll()
    ; For being MT-friendly and more efficient/flicker-free
      in general
    ; Please review if I had missed some places where
      the legacy API usage was actually intentional to
      position the cursor. (f.e. some places in gtwvg)

  * tests/gtstdtst.prg
    * minor
This commit is contained in:
Viktor Szakats
2012-10-12 13:40:09 +00:00
parent 59c120f623
commit bad8d209f0
22 changed files with 81 additions and 48 deletions

View File

@@ -16,6 +16,39 @@
The license applies to all entries newer than 2009-04-28.
*/
2012-10-12 15:34 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/gtwvg/class.prg
* contrib/gtwvg/tests/demowvg.prg
* contrib/gtwvg/tests/demowvg1.prg
* contrib/gtwvg/tests/modal.prg
* contrib/gtwvg/tests/tbrowser.prg
* contrib/gtwvg/tests/utils.prg
* contrib/hbmisc/hbedit.prg
* contrib/hbnetio/utils/hbnetio/netiocon.prg
* contrib/hbnf/popadder.prg
* contrib/xhb/ttable.prg
* contrib/xhb/xhbtedit.prg
* extras/gtwvw/tests/maincoor.prg
* extras/gtwvw/tests/prog0.prg
* extras/gtwvw/tests/prog1.prg
* extras/gtwvw/tests/prog2.prg
* src/debug/dbghelp.prg
* src/debug/dbgtwin.prg
* src/debug/debugger.prg
* tests/db_brows.prg
* tests/testprof.prg
* DispOut*() -> hb_DispOut*()
* DispBox*() -> hb_DispBox*()
* Scroll()/CLEAR TO -> hb_Scroll()
; For being MT-friendly and more efficient/flicker-free
in general
; Please review if I had missed some places where
the legacy API usage was actually intentional to
position the cursor. (f.e. some places in gtwvg)
* tests/gtstdtst.prg
* minor
2012-10-12 15:06 UTC+0200 Viktor Szakats (harbour syenar.net)
* src/rdd/usrrdd/rdds/arrayrdd.prg
! fixed negative index on array

View File

@@ -1223,7 +1223,7 @@ METHOD WvtBrowse:Hilite()
LOCAL b := ::oBrw
DispOutAt( b:nTop - 2, b:nLeft - 2, Pad( " " + ::cDesc, b:nRight - b:nLeft + 5 ), ::cColorHilite )
hb_DispOutAt( b:nTop - 2, b:nLeft - 2, Pad( " " + ::cDesc, b:nRight - b:nLeft + 5 ), ::cColorHilite )
RETURN Self
@@ -1233,7 +1233,7 @@ METHOD WvtBrowse:DeHilite()
LOCAL b := ::oBrw
DispOutAt( b:nTop - 2, b:nLeft - 2, Pad( " " + ::cDesc, b:nRight - b:nLeft + 5 ), ::cColorDeHilite )
hb_DispOutAt( b:nTop - 2, b:nLeft - 2, Pad( " " + ::cDesc, b:nRight - b:nLeft + 5 ), ::cColorDeHilite )
RETURN Self
@@ -1510,7 +1510,7 @@ METHOD WvtPanel:New( oParent, nId, nTop, nLeft )
METHOD WvtPanel:Refresh()
IF ::Text != nil
DispOutAt( ::nTop, ::nLeft + 1, ::Text, ::cColor )
hb_DispOutAt( ::nTop, ::nLeft + 1, ::Text, ::cColor )
ENDIF
RETURN Self
@@ -1754,7 +1754,7 @@ METHOD WvtToolBar:Create()
METHOD WvtToolBar:Refresh()
IF ::lFloating
DispBox( ::nTop, ::nLeft, ::nBottom, ::nRight, " ", "n/w" )
hb_DispBox( ::nTop, ::nLeft, ::nBottom, ::nRight, " ", "n/w" )
ELSE
Wvt_InvalidateRect( ::nTop, ::nLeft, ::nTop, ::nLeft )
ENDIF
@@ -2391,7 +2391,7 @@ METHOD WvtGets:SetData( /*aData*/ )
METHOD WvtGets:Hilite()
DispOutAt( ::nTop, ::nLeft, Pad( " " + ::cDesc, ::nRight - ::nLeft + 1 ), ::cColorHilite )
hb_DispOutAt( ::nTop, ::nLeft, Pad( " " + ::cDesc, ::nRight - ::nLeft + 1 ), ::cColorHilite )
RETURN Self
@@ -2399,7 +2399,7 @@ METHOD WvtGets:Hilite()
METHOD WvtGets:DeHilite()
DispOutAt( ::nTop, ::nLeft, Pad( " " + ::cDesc, ::nRight - ::nLeft + 1 ), ::cColorDeHilite )
hb_DispOutAt( ::nTop, ::nLeft, Pad( " " + ::cDesc, ::nRight - ::nLeft + 1 ), ::cColorDeHilite )
RETURN Self
@@ -3309,7 +3309,7 @@ METHOD WvtProgressBar:Display( nCurrent, nTotal )
METHOD WvtProgressBar:Activate()
::cScreen := SaveScreen( ::nTop, ::nLeft, ::nBottom, ::nRight )
DispBox( ::nTop, ::nLeft, ::nBottom, ::nRight, " ", ::cBackColor )
hb_DispBox( ::nTop, ::nLeft, ::nBottom, ::nRight, " ", ::cBackColor )
::lActive := .T.
RETURN Self
@@ -3566,8 +3566,8 @@ METHOD WvtConsole:Say( nRow, nCol, xExp, cColor )
nCursor := SetCursor( SC_NONE )
nCRow := Row()
nCCol := Col()
DispOutAt( nRow, nCol, xExp, cColor )
setPos( nCRow, nCCol )
hb_DispOutAt( nRow, nCol, xExp, cColor )
SetPos( nCRow, nCCol )
SetCursor( nCursor )
ENDIF
@@ -3583,8 +3583,8 @@ METHOD WvtConsole:Box( nRow, nCol, n2Row, n2Col, cBoxChars, cColor )
nCursor := SetCursor( SC_NONE )
nCRow := Row()
nCCol := Col()
DispBox( nRow, nCol, n2Row, n2Col, cBoxChars, cColor )
setPos( nCRow, nCCol )
hb_DispBox( nRow, nCol, n2Row, n2Col, cBoxChars, cColor )
SetPos( nCRow, nCCol )
SetCursor( nCursor )
ENDIF

View File

@@ -368,7 +368,7 @@ FUNCTION WvtPartialScreen()
aLastPaint := WvtSetBlocks( {} )
DispBox( 7, 20, 15, 60, " ", "W/GR*" )
hb_DispBox( 7, 20, 15, 60, " ", "W/GR*" )
@ 10, 25 SAY "Wvt_SaveScreen()" COLOR "N/GR*"
@ 11, 25 SAY "Wvt_RestScreen()" COLOR "N/GR*"
@ 13, 25 SAY "Press Esc " COLOR "N/GR*"
@@ -379,7 +379,7 @@ FUNCTION WvtPartialScreen()
DO WHILE Inkey( 0 ) != K_ESC
ENDDO
DispBox( 7, 20, 15, 60, " ", "W/B*" )
hb_DispBox( 7, 20, 15, 60, " ", "W/B*" )
@ 10, 25 SAY "Wvt_SaveScreen()" COLOR "N/B*"
@ 11, 25 SAY "Wvt_RestScreen()" COLOR "N/B*"
@ 13, 25 SAY "Press Esc " COLOR "N/B*"

View File

@@ -185,7 +185,7 @@ FUNCTION ClearStatusMsg()
LOCAL nRow := Row()
LOCAL nCol := Col()
DispOutAt( MaxRow(), 42, Space( 37 ), "W/W" )
hb_DispOutAt( MaxRow(), 42, Space( 37 ), "W/W" )
SetPos( nRow, nCol )
RETURN .T.

View File

@@ -343,10 +343,10 @@ FUNCTION DoModalWindow()
oCrt:closable := .F.
oCrt:title := 'Information! [R:4 C:8]'
oCrt:rbUp := {|| DispOutAt( MaxRow(), 0, PadC( 'rbUp', MaxCol() + 1 ), 'W+/R*' ) }
oCrt:lbUp := {|| DispOutAt( MaxRow(), 0, PadC( 'lbUp', MaxCol() + 1 ), 'W+/B*' ) }
oCrt:leave := {|| DispOutAt( MaxRow(), 0, PadC( 'Leaving', MaxCol() + 1 ), 'W+/RB' ) }
oCrt:enter := {|| DispOutAt( MaxRow(), 0, PadC( 'Entering', MaxCol() + 1 ), 'W+/B' ) }
oCrt:rbUp := {|| hb_DispOutAt( MaxRow(), 0, PadC( 'rbUp', MaxCol() + 1 ), 'W+/R*' ) }
oCrt:lbUp := {|| hb_DispOutAt( MaxRow(), 0, PadC( 'lbUp', MaxCol() + 1 ), 'W+/B*' ) }
oCrt:leave := {|| hb_DispOutAt( MaxRow(), 0, PadC( 'Leaving', MaxCol() + 1 ), 'W+/RB' ) }
oCrt:enter := {|| hb_DispOutAt( MaxRow(), 0, PadC( 'Entering', MaxCol() + 1 ), 'W+/B' ) }
oCrt:Create()
oCrt:show()

View File

@@ -147,8 +147,8 @@ FUNCTION ExecBrowser( oCrt )
aLastPaint := WvtSetBlocks( aBlocks )
DispBox( 0, 0, MaxRow(), MaxCol(), " ", "N/W" )
DispOutAt( oBrowse:nTop - 2, oBrowse:nleft - 2, PadC( cFileDbf, oBrowse:nRight - oBrowse:nLeft + 5 ), "W+/B*" )
hb_DispBox( 0, 0, MaxRow(), MaxCol(), " ", "N/W" )
hb_DispOutAt( oBrowse:nTop - 2, oBrowse:nleft - 2, PadC( cFileDbf, oBrowse:nRight - oBrowse:nLeft + 5 ), "W+/B*" )
oCom := BrwBuildActiveX( oCrt, oBrowse )
oChk := BrwBuildCheckBox( oCrt, oBrowse, @lActiveX )
@@ -245,8 +245,8 @@ STATIC FUNCTION BrwHandleResize( oCrt, oBrw, oVBar, oHBar, oCom, oSLE, oLBx, oTr
oBrw:nRight := MaxCol() - 4
oBrw:configure()
DispBox( 0, 0, MaxRow(), MaxCol(), " ", "N/W" )
DispOutAt( oBrw:nTop - 2, oBrw:nleft - 2, PadC( cFileDbf, oBrw:nRight - oBrw:nLeft + 5 ), "W+/B*" )
hb_DispBox( 0, 0, MaxRow(), MaxCol(), " ", "N/W" )
hb_DispOutAt( oBrw:nTop - 2, oBrw:nleft - 2, PadC( cFileDbf, oBrw:nRight - oBrw:nLeft + 5 ), "W+/B*" )
oVBar:setPosAndSize()
oHBar:setPosAndSize()

View File

@@ -106,7 +106,7 @@ FUNCTION Wvt_SetFocus()
LOCAL nRow := Row()
LOCAL nCol := Col()
DispOutAt( 1, 3, "Focus Gained!", "R/W" )
hb_DispOutAt( 1, 3, "Focus Gained!", "R/W" )
DevPos( nRow, nCol )
@@ -126,7 +126,7 @@ FUNCTION Wvt_KillFocus()
LOCAL nRow := Row()
LOCAL nCol := Col()
DispOutAt( 1, 3, "Focus Lost...", "B/W" )
hb_DispOutAt( 1, 3, "Focus Lost...", "B/W" )
DevPos( nRow, nCol )
@@ -501,7 +501,7 @@ FUNCTION ClearStatusMsg()
LOCAL nRow := Row()
LOCAL nCol := Col()
DispOutAt( MaxRow(), 42, Space( 37 ), "W/W" )
hb_DispOutAt( MaxRow(), 42, Space( 37 ), "W/W" )
SetPos( nRow, nCol )

View File

@@ -405,12 +405,12 @@ FUNCTION EditorEdit( oEdit, lEdit, lFrame )
CASE nKey == K_DOWN
IF ! ED_Down( oEdit[ E_EDIT ] )
Scroll( nTop, nLeft, nBottom, nRight, 1 )
hb_Scroll( nTop, nLeft, nBottom, nRight, 1 )
ENDIF
CASE nKey == K_UP
IF ! ED_Up( oEdit[ E_EDIT ] )
Scroll( nTop, nLeft, nBottom, nRight, - 1 )
hb_Scroll( nTop, nLeft, nBottom, nRight, -1 )
ENDIF
CASE nKey == K_ESC

View File

@@ -222,7 +222,7 @@ STATIC PROCEDURE ShowHelp( hCommands )
QQOut( "Press any key to continue..." )
Inkey( 0 )
Scroll( Row(), 0, Row(), MaxCol(), 0 )
hb_Scroll( Row(), 0, Row(), MaxCol(), 0 )
SetPos( Row(), 0 )
ENDIF
NEXT

View File

@@ -946,7 +946,7 @@ STATIC FUNCTION _ftDisplayTape( aAdder, nKey )
ENDIF
IF lTape // Are we in the display mode
SetColor( "N/W" )
Scroll( 5 + nTopOS, 7 + nTapeSpace, 20 + nTopOS, 32 + nTapeSpace, 1 )
hb_Scroll( 5 + nTopOS, 7 + nTapeSpace, 20 + nTopOS, 32 + nTapeSpace, 1 )
IF nTotTran > 0 // Any transactions been entered yet?
@ 20 + nTopOS, 7 + nTapeSpace SAY aTrans[ nTotTran ]
ENDIF

View File

@@ -100,7 +100,7 @@ FUNCTION NetDbUse( cDataBase, cAlias, nSeconds, cDriver, ;
DO WHILE ( lforever .OR. nSeconds > 0 ) .AND. LastKey() != K_ESC
IF !lfirstPass
DispOutAt( MaxRow(), 0, ;
hb_DispOutAt( MaxRow(), 0, ;
PadC( "Network retry | " + ;
LTrim( Str( nSeconds, 4, 1 ) ) + " | ESCape = Exit ", ;
MaxCol() + 1 ), ;
@@ -207,7 +207,7 @@ FUNCTION NetLock( nType, lReleaseLocks, nSeconds )
cWord := "( " + dbInfo( DBI_ALIAS ) + " - ??? "
ENDIF
DispOutAt( MaxRow(), 0, ;
hb_DispOutAt( MaxRow(), 0, ;
PadC( "Network Retry " + cWord + " | " + Str( nSeconds, 3 ) + " | ESC Exit", MaxCol() + 1 ), ;
s_cNetMsgColor )

View File

@@ -461,7 +461,7 @@ METHOD RefreshWindow() CLASS XHBEditor
// 2006/JUL/23 - E.F. Adjusted to avoid out of bound.
// Don't replace ::GetLine(nRow) by ::aText[nRow]:cText here,
// because getline return line number in tbrwtext.prg (debug).
DispOutAt( Min( ::nTop + i,::nBottom ), ::nLeft, ;
hb_DispOutAt( Min( ::nTop + i,::nBottom ), ::nLeft, ;
PadR( iif( ::nFirstRow + i <= ::LastRow(), SubStr( ::GetLine( ::nFirstRow + i ), ::nFirstCol, ::nNumCols ), Space(::nNumCols ) ), ::nNumCols ), ;
::LineColor( ::nFirstRow + i ) )
@@ -532,7 +532,7 @@ METHOD RefreshLine( lRefreshColSel ) CLASS XHBEditor
// 2006/AUG/02 - E.F.
// Don't replace ::GetLine(nRow) by ::aText[nRow]:cText here
// because getline return line number in tbrwtext.prg (debug).
DispOutAt( ::Row(), ::nLeft, PadR( SubStr( ::GetLine( ::nRow ), ::nFirstCol, ::nNumCols ), ::nNumCols, " " ), ::LineColor( ::nRow ) )
hb_DispOutAt( ::Row(), ::nLeft, PadR( SubStr( ::GetLine( ::nRow ), ::nFirstCol, ::nNumCols ), ::nNumCols, " " ), ::LineColor( ::nRow ) )
IF lRefreshColSel
@@ -543,7 +543,7 @@ METHOD RefreshLine( lRefreshColSel ) CLASS XHBEditor
// nCol := nFirstCol + ::nColSelStart - 1
nCol := Max( ::nLeft, nFirstCol + ::nColSelStart - 1 )
DispOutAt( ::Row(), nCol, SubStr( ::GetLine( ::nRow ), Max(1,::nColSelStart ), (::nColSelEnd - ::nColSelStart + 1 ) ) , ::ColColor() )
hb_DispOutAt( ::Row(), nCol, SubStr( ::GetLine( ::nRow ), Max(1,::nColSelStart ), (::nColSelEnd - ::nColSelStart + 1 ) ) , ::ColColor() )
ENDIF
@@ -576,7 +576,7 @@ METHOD RefreshColumn() CLASS XHBEditor
// Don't replace ::GetLine(nRow) by ::aText[nRow]:cText here
// because getline return line number in tbrwtext.prg (debug).
FOR i := 0 TO Min( ::nNumRows - 1, ::LastRow() - 1 )
DispOutAt( ::nTop + i, nOCol, SubStr( ::GetLine(::nFirstRow + i ), ::nCol, 1 ), ::LineColor( ::nFirstRow + i ) )
hb_DispOutAt( ::nTop + i, nOCol, SubStr( ::GetLine(::nFirstRow + i ), ::nCol, 1 ), ::LineColor( ::nFirstRow + i ) )
NEXT
DispEnd()

View File

@@ -27,7 +27,7 @@ PROCEDURE fillscreen()
LOCAL i, j
Scroll()
hb_Scroll()
WVW_nOpenWindow( "Win2", 10, 10, 19, 69 )
WVW_nOpenWindow( "Win3", 15, 15, 22, 75 )
DevPos( 0, 0 )

View File

@@ -355,7 +355,7 @@ FUNCTION ZNEWWINDOW( wtype, r1, c1, r2, c2, ctitle, ccolor )
SetColor( ccolor )
Scroll( r1, c1, r2, c2 )
hb_Scroll( r1, c1, r2, c2 )
// GTWVW doesn't need box or textual title
hb_DispBox( r1, c1, r2, c2, wtype )

View File

@@ -383,7 +383,7 @@ FUNCTION ZNEWWINDOW( wtype, r1, c1, r2, c2, ctitle, ccolor )
SetColor( ccolor )
Scroll( r1, c1, r2, c2 )
hb_Scroll( r1, c1, r2, c2 )
#ifndef __GTWVW__
// GTWVW doesn't need box or textual title

View File

@@ -424,7 +424,7 @@ FUNCTION ZNEWWINDOW( wtype, r1, c1, r2, c2, ctitle, ccolor )
SetColor( ccolor )
Scroll( r1, c1, r2, c2 )
hb_Scroll( r1, c1, r2, c2 )
#ifndef __GTWVW__
// GTWVW doesn't need box or textual title

View File

@@ -217,7 +217,7 @@ STATIC PROCEDURE ShowTopic( oDlg, aTopics, nTopic, nPageOp )
ENDCASE
ENDIF
Scroll( oDlg:nTop + 1, oDlg:nLeft + 14, oDlg:nBottom - 1, oDlg:nRight - 1 )
hb_Scroll( oDlg:nTop + 1, oDlg:nLeft + 14, oDlg:nBottom - 1, oDlg:nRight - 1 )
nRowsToPaint := Min( nRows, Len( aTopics[ nTopic ][ 2 ] ) - ( ( oDebug:nHelpPage - 1 ) * nRows ) )

View File

@@ -136,7 +136,7 @@ METHOD New( nTop, nLeft, nBottom, nRight, cCaption, cColor ) CLASS HBDbWindow
METHOD Clear() CLASS HBDbWindow
SetColor( ::cColor )
Scroll( ::nTop + 1, ::nLeft + 1, ::nBottom - 1, ::nRight - 1 )
hb_Scroll( ::nTop + 1, ::nLeft + 1, ::nBottom - 1, ::nRight - 1 )
RETURN NIL
@@ -159,7 +159,7 @@ METHOD ScrollUp( nLines ) CLASS HBDbWindow
hb_default( @nLines, 1 )
SetColor( ::cColor )
Scroll( ::nTop + 1, ::nLeft + 1, ::nBottom - 1, ::nRight - 1, nLines )
hb_Scroll( ::nTop + 1, ::nLeft + 1, ::nBottom - 1, ::nRight - 1, nLines )
RETURN NIL
@@ -219,7 +219,7 @@ METHOD Show( lFocused ) CLASS HBDbWindow
::cBackImage := SaveScreen( ::nTop, ::nLeft, ::nBottom + iif( ::lShadow, 1, 0 ),;
::nRight + iif( ::lShadow, 2, 0 ) )
SetColor( ::cColor )
hb_scroll( ::nTop, ::nLeft, ::nBottom, ::nRight )
hb_Scroll( ::nTop, ::nLeft, ::nBottom, ::nRight )
::SetFocus( lFocused )
IF ::lShadow

View File

@@ -492,7 +492,7 @@ METHOD BarDisplay() CLASS HBDebugger
SetColor( cClrItem )
@ ::nMaxRow, 0 CLEAR TO ::nMaxRow, ::nMaxCol
hb_Scroll( ::nMaxRow, 0, ::nMaxRow, ::nMaxCol )
hb_dispOutAt( ::nMaxRow, 0, "F1-Help F2-Zoom F3-Repeat F4-User F5-Go F6-WA F7-Here F8-Step F9-BkPt F10-Trace", cClrItem )
hb_dispOutAt( ::nMaxRow, 0, "F1", cClrHotKey )

View File

@@ -281,7 +281,7 @@ FUNCTION DBFLIST( mslist, x1, y1, x2, y2, title, maskey )
LI_NSTR++
IF LI_NSTR > razmer
LI_NSTR := razmer
Scroll( LI_Y1 + 1, LI_X1 + 1, LI_Y2 - 1, LI_X2 - 1, 1 )
hb_Scroll( LI_Y1 + 1, LI_X1 + 1, LI_Y2 - 1, LI_X2 - 1, 1 )
VIVSTR( mslist, LI_Y2 - 1, 0 )
ENDIF
IF Eval( LI_BEOF, mslist )
@@ -297,7 +297,7 @@ FUNCTION DBFLIST( mslist, x1, y1, x2, y2, title, maskey )
LI_NSTR--
IF LI_NSTR == 0
LI_NSTR := 1
Scroll( LI_Y1 + 1, LI_X1 + 1, LI_Y2 - 1, LI_X2 - 1, -1 )
hb_Scroll( LI_Y1 + 1, LI_X1 + 1, LI_Y2 - 1, LI_X2 - 1, -1 )
VIVSTR( mslist, LI_Y1 + 1, 0 )
ENDIF
ENDIF

View File

@@ -42,7 +42,7 @@ PROCEDURE Main()
PosNow()
?
? "Press key to test FOR n := 100 to 120; Tone( n, 1 ); NEXT"
? "Press key to test FOR n := 100 TO 120; Tone( n, 1 ); NEXT"
Inkey( 0 )
FOR n := 100 TO 120
Tone( n, 1 )

View File

@@ -58,7 +58,7 @@ PROCEDURE Main()
STATIC FUNCTION DrawScreen( cTitle )
Scroll()
hb_Scroll()
@ 0, 0 SAY PadR( cTitle, MaxCol() + 1 ) COLOR "N/W"