2012-09-26 17:11 UTC+0200 Viktor Szakats (harbour syenar.net)

* contrib/hbnf/aredit.prg
  * contrib/hbnf/calendar.prg
  * contrib/hbnf/menu1.prg
  * contrib/hbnf/popadder.prg
    + use std headers and constants instead of locally rolled 
      solutions
    + KEYBOARD -> hb_keyPut()
    * formatting
This commit is contained in:
Viktor Szakats
2012-09-26 15:13:11 +00:00
parent a036501600
commit 31819df700
5 changed files with 54 additions and 66 deletions

View File

@@ -16,6 +16,16 @@
The license applies to all entries newer than 2009-04-28.
*/
2012-09-26 17:11 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/hbnf/aredit.prg
* contrib/hbnf/calendar.prg
* contrib/hbnf/menu1.prg
* contrib/hbnf/popadder.prg
+ use std headers and constants instead of locally rolled
solutions
+ KEYBOARD -> hb_keyPut()
* formatting
2012-09-26 16:41 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/hbnf/dosver.prg
* contrib/hbnf/eltime.prg

View File

@@ -217,12 +217,11 @@ FUNCTION FT_ArEdit( nTop, nLeft, nBot, nRight, ;
CASE HB_ISBLOCK( bGetFunc )
IF nKey != K_ENTER
// want last key to be part of GET edit so KEYBOARD it
KEYBOARD Chr( LastKey() )
hb_keyPut( LastKey() )
ENDIF
Eval( bGetFunc, b, ar, b:colPos, nElem )
// after get move to next field
KEYBOARD iif( b:colPos < b:colCount, ;
Chr( K_RIGHT ), Chr( K_HOME ) + Chr( K_DOWN ) )
hb_keyPut( iif( b:colPos < b:colCount, K_RIGHT, { K_HOME, K_DOWN } ) )
// Placing K_ENTER here below Edit Block (i.e. bGetFunc)
// defaults K_ENTER to Edit when bGetFunc Is Present

View File

@@ -21,6 +21,7 @@
*
*/
#include "inkey.ch"
#include "setcurs.ch"
#ifdef FT_TEST
@@ -30,11 +31,11 @@ PROCEDURE Main()
LOCAL aRet[ 8 ], i
SetColor( "w+/b" )
cls
CLS
IF ft_numlock()
ft_numlock( .F. )
ENDIF
KEYBOARD Chr( 28 )
hb_keyPut( K_F1 )
aRet := ft_calendar( 10, 40, "w+/rb", .T. , .T. ) //display calendar, return all.
@ 1, 0 SAY "Date :" + DToC( aRet[ 1 ] )
@ 2, 0 SAY "Month Number:" + Str( aRet[ 2 ], 2, 0 )
@@ -49,12 +50,10 @@ PROCEDURE Main()
#endif
#include "inkey.ch"
FUNCTION FT_CALENDAR( nRow, nCol, cColor, lShadow, lShowHelp )
LOCAL nJump := 0, nKey := 0, cSavColor, cSaveScreen, cSaveCursor
LOCAL aRetVal[8]
LOCAL aRetVal[ 8 ]
LOCAL nHelpRow, cSaveHelp, lHelpIsDisplayed := .F.
nRow := iif( nRow != NIL, nRow, 1 ) //check display row

View File

@@ -36,29 +36,12 @@
PASS "VGA" OR "VGA" AS A COMMAND LINE PARAMETER FOR 50-LINE MODE.
*/
#define LEFTARROW 19
#define RIGHTARROW 4
#define ENTER 13
#define CTRLEND 23
#define CTRLHOME 29
#define HOME 1
#define END 6
#define TAB 9
#define SHIFTTAB 271
#define PGUP 18
#define PGDN 3
#define ESCAPE 27
#define HITTOP 1
#define HITBOTTOM 2
#define KEYEXCEPT 3
#define NEXTITEM 3
#define RESUME 2
#define MAKESELECT 1
#define ABORT 0
#include "achoice.ch"
#include "inkey.ch"
#include "setcurs.ch"
#define DISABLE 0
#define ENABLE 1
#define SCNONE 0
#define SCNORMAL 1
THREAD STATIC aChoices := {}
THREAD STATIC aValidKeys := {}
@@ -178,7 +161,7 @@ PROCEDURE CALLMENU( cCmdLine )
FT_MENU1( aBar, aOptions, aColors )
SetColor( "W/N" )
SetCursor( SCNORMAL )
SetCursor( SC_NORMAL )
SetBlink( .T. )
IF "VGA" $ Upper( cCmdLine )
SetMode( 25, 80 )
@@ -296,17 +279,17 @@ FUNCTION FT_MENU1( aBar, aOptions, aColors, nTopRow, lShadow )
SetColor( cBox + "," + cCurrent + ",,," + cUnselec )
nVpos := AChoice( nTopRow + 2, aBoxLoc[ nHpos ] + 2, Len( aChoices[ nHpos, 1 ] ) + nTopRow + 2, aBarWidth[ nHpos ] + 1 + aBoxLoc[ nHpos ], aChoices[ nHpos, 1 ], aChoices[ nHpos, 3 ], "__ftAcUdf", aLastSel[ nHpos ] )
DO CASE
CASE LastKey() == RIGHTARROW .OR. LastKey() == TAB
CASE LastKey() == K_RIGHT .OR. LastKey() == K_TAB
nHpos := iif( nHpos == Len( aChoices ), 1, nHpos + 1 )
CASE LastKey() == LEFTARROW .OR. LastKey() == SHIFTTAB
CASE LastKey() == K_LEFT .OR. LastKey() == K_SH_TAB
nHpos := iif( nHpos == 1, Len( aChoices ), nHpos - 1 )
CASE LastKey() == ESCAPE
CASE LastKey() == K_ESC
lLooping := _ftBailOut( cBorder, cBox )
CASE LastKey() == HOME
CASE LastKey() == K_HOME
nHpos := 1
CASE LastKey() == END
CASE LastKey() == K_END
nHpos := Len( aChoices )
CASE LastKey() == ENTER
CASE LastKey() == K_ENTER
aLastSel[ nHpos ] := nVpos
IF aChoices[ nHpos, 2, nVpos ] != NIL
SetCancel( lCancMode )
@@ -328,20 +311,20 @@ FUNCTION FT_MENU1( aBar, aOptions, aColors, nTopRow, lShadow )
// ACHOICE() user function
FUNCTION __ftAcUdf( nMode )
LOCAL nRtnVal := RESUME
LOCAL nRtnVal := AC_CONT
DO CASE
CASE nMode == HITTOP
KEYBOARD Chr( CTRLEND )
CASE nMode == HITBOTTOM
KEYBOARD Chr( CTRLHOME )
CASE nMode == KEYEXCEPT
CASE nMode == AC_HITTOP
hb_keyPut( K_CTRL_END )
CASE nMode == AC_HITBOTTOM
hb_keyPut( K_CTRL_HOME )
CASE nMode == AC_EXCEPT
IF Upper( Chr( LastKey() ) ) $ aValidKeys[ nHpos ]
IF aChoices[ nHpos, 3, At( Upper( Chr( LastKey() ) ), aValidKeys[ nHpos ] ) ]
KEYBOARD Chr( ENTER )
nRtnVal := NEXTITEM
hb_keyPut( K_ENTER )
nRtnVal := AC_GOTO
ENDIF
ELSE
nRtnVal := MAKESELECT
nRtnVal := AC_SELECT
ENDIF
ENDCASE
@@ -365,7 +348,7 @@ STATIC FUNCTION _ftBailOut( cBorder, cBox )
LOCAL cOldColor, sOldScreen, nKeyPress, nOldCursor
nOldCursor := SetCursor( SCNONE )
nOldCursor := SetCursor( SC_NONE )
sOldScreen := SaveScreen( nMaxRow / 2 - 1, 24, nMaxRow / 2 + 2, 55 )
cOldColor := SetColor( cBorder )
FT_SHADOW( nMaxRow / 2 - 1, 24, nMaxRow / 2 + 2, 55 )
@@ -378,7 +361,7 @@ STATIC FUNCTION _ftBailOut( cBorder, cBox )
RestScreen( nMaxRow / 2 - 1, 24, nMaxRow / 2 + 2, 55, sOldScreen )
SetCursor( nOldCursor )
RETURN !( nKeyPress == ESCAPE )
RETURN !( nKeyPress == K_ESC )
STATIC FUNCTION _ftValKeys( nNum, aChoices, aValidkeys )

View File

@@ -67,23 +67,23 @@
#define nTotTran Len( aTrans )
#command DISPMESSAGE <mess>,<t>,<l>,<b>,<r> => ;
_ftPushKeys(); KEYBOARD Chr( K_CTRL_PGDN ) + Chr( K_CTRL_W ) ;;
#command DISPMESSAGE <mess>,<t>,<l>,<b>,<r> => ;
_ftPushKeys(); hb_keyPut( { K_CTRL_PGDN, K_CTRL_W } ) ;;
MemoEdit( < mess > , < t > , < l > , < b > , < r > , .F. , NIL, ( < r > ) - ( < l > ) + 1 ) ;;
_ftPopKeys()
#define ASHRINK( ar ) ASize( ar, Len( ar ) - 1 )
/* This INKEY UDC was posted by Don Caton on NanForum... Thanks Don <g> */
#command FT_INKEY [ <secs> ] TO <var> ;
=> ;
WHILE .T. ;;
< var > := Inkey( [ <secs> ] ) ;;
IF SetKey( < var > ) != NIL ;;
Eval( SetKey( < var > ), ProcName(), ProcLine(), #< var > ) ;;
ELSE ;;
EXIT ;;
END ;;
#command FT_INKEY [ <secs> ] TO <var> ;
=> ;
WHILE .T. ;;
< var > := Inkey( [ <secs> ] ) ;;
IF SetKey( < var > ) != NIL ;;
Eval( SetKey( < var > ), ProcName(), ProcLine(), #< var > ) ;;
ELSE ;;
EXIT ;;
END ;;
END
// Instead of using STATIC variables for these I'm using a LOCAL array
@@ -341,7 +341,7 @@ FUNCTION FT_Adder()
" a TOTAL before you can return it to the program." )
ENDIF
ENDCASE
ENDDO ( WHILE .T. DATA entry FROM keyboard )
ENDDO
// Reset the STATICS to NIL
aKeys := aWindow := aWinColor := aStdColor := NIL
@@ -1044,7 +1044,7 @@ STATIC FUNCTION _ftDisplayTape( aAdder, nKey )
STATIC FUNCTION _ftSetLastKey( nLastKey )
_ftPushKeys()
KEYBOARD Chr( nLastKey )
hb_keyPut( nLastKey )
Inkey()
_ftPopKeys()
@@ -1088,12 +1088,9 @@ STATIC FUNCTION _ftPushKeys
STATIC FUNCTION _ftPopKeys
LOCAL cKeys := ""
IF Len( aKeys ) != 0
AEval( aKeys, {| elem | cKeys += Chr( elem ) } )
IF ! Empty( aKeys )
hb_keyPut( aKeys )
ENDIF
KEYBOARD cKeys
aKeys := {}
RETURN NIL
@@ -1318,7 +1315,7 @@ FUNCTION _ftAdderTapeUDF( mode, cur_elem, rel_pos )
CASE nKey == 30
nRtnVal := AC_CONT
CASE nKey == K_ESC
KEYBOARD Chr( K_CTRL_PGDN ) + Chr( K_RETURN ) // Go to last item
hb_keyPut( { K_CTRL_PGDN, K_RETURN } ) // Go to last item
ac_exit_ok := .T.
nRtnVal := AC_CONT
CASE ac_exit_ok