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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 )
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user