2011-08-23 22:40 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)

* contrib/hbcuied/cu_object.prg
  * contrib/hbcuied/cu_utlty.prg
    * Improved: help text and screens rotation.
                many artifacts.
This commit is contained in:
Pritpal Bedi
2011-08-24 05:43:24 +00:00
parent c776918cd5
commit 14e19a775b
3 changed files with 160 additions and 160 deletions

View File

@@ -16,6 +16,12 @@
The license applies to all entries newer than 2009-04-28.
*/
2011-08-23 22:40 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbcuied/cu_object.prg
* contrib/hbcuied/cu_utlty.prg
* Improved: help text and screens rotation.
many artifacts.
2011-08-23 17:28 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbcuied/cu_object.prg
* contrib/hbcuied/cu_utlty.prg

View File

@@ -149,7 +149,6 @@ CLASS hbCUIEditor
METHOD scrMovLft()
METHOD scrMovUp()
METHOD scrMovDn()
METHOD scrMovPgUp()
METHOD scrChkObj()
METHOD scrUpdObjRC()
METHOD scrRepCol()
@@ -798,7 +797,7 @@ METHOD hbCUIEditor:scrAddPrp( sct_ )
//----------------------------------------------------------------------//
METHOD hbCUIEditor:operate()
LOCAL nObj, nToCol, i, nOff
LOCAL nObj, nToCol, i, nOff
LOCAL grf_:= { 43,45,46,48,49,50,51,52,53,54,55,56,57 }
readinsert( .t. )
@@ -878,14 +877,14 @@ METHOD hbCUIEditor:operate()
IF nToCol < ::nColRep
nOff := ::nColRep - nToCol - 1
FOR i := 1 TO nOff
::scrMovLft()
::scrMovLft()
NEXT
ELSEIF nToCol > ::nColRep
FOR i := ::nColRep TO nToCol
::scrMovRgt()
::scrMovRgt()
NEXT
ENDIF
ENDIF
ENDIF
ENDIF
::xRefresh := OBJ_REFRESH_ALL
CASE ::nLastKey == K_PGUP
// scrMovPgUp(scn_)
@@ -926,7 +925,7 @@ METHOD hbCUIEditor:operate()
::scrAddBox()
CASE ::nLastKey == K_F10 // Fields
::scrAddFld()
CASE ::nLastKey == K_DEL
IF ! empty( ::aTextBlock )
::scrTextDel()
@@ -963,7 +962,7 @@ METHOD hbCUIEditor:operate()
CASE ::nLastKey == K_ALT_O
::scrDelLine()
::lEdited := .t.
CASE ::nLastKey == K_ALT_W
//::scrRepCol()
CASE ::nLastKey == K_CTRL_F6 // Selection of Block
@@ -972,7 +971,7 @@ METHOD hbCUIEditor:operate()
::scrTextMove( 1 )
CASE ::nLastKey == K_CTRL_F8 // Move, Cut AND Paste
::scrTextMove( 0 )
CASE ::nLastKey == HB_K_RESIZE
::scrReConfig()
::scrDisplay()
@@ -1082,12 +1081,12 @@ METHOD hbCUIEditor:scrMove()
dispBegin()
dispBox(::nTop ,;
::nLeft ,;
::nBottom ,;
::nRight ,;
::cDrawFill ,;
::cClrPrev )
dispBox( ::nTop ,;
::nLeft ,;
::nBottom ,;
::nRight ,;
::cDrawFill ,;
::cClrPrev )
FOR i := 1 TO len( ::obj_ )
IF ::obj_[ i,OBJ_ROW ] + ::nRowDis <= ::nBottom .AND. ;
@@ -1265,19 +1264,21 @@ METHOD hbCUIEditor:scrDispGhost( gst_ )
//----------------------------------------------------------------------//
METHOD hbCUIEditor:scrStatus()
LOCAL s, typ_, objId
LOCAL s, typ_, objId, cS
cS := iif( len( ::cSource ) <= 20, ::cSource, substr( ::cSource, 1, 3 ) + ".." + right( ::cSource, 15 ) )
dispbegin()
s := pad( ::cSource, 15 ) + ' ³ '
s := pad( cS, 20 ) + ' ³ '
s += pad( ::cScreen, 12 )+;
s += pad( ::cScreen, 13 ) +;
' ³ '+;
' R:'+;
str( ::nRowRep - 1, 3 )+;
str( ::nRowRep - 1, 3 ) +;
' C:'+;
str( ::nColRep - 1, 3 )+;
str( ::nColRep - 1, 3 ) +;
' ³ ' +;
iif( readInsert(), 'Ins ', ' ')+;
iif( readInsert(), 'Ins', ' ' ) +;
' ³ '
objId := ''
@@ -1497,28 +1498,6 @@ METHOD hbCUIEditor:scrMovDn()
//----------------------------------------------------------------------//
METHOD hbCUIEditor:scrMovPgUp()
LOCAL lMoved := .f.
IF ::nRowCur == ::nTop
IF ::nRowRep > 1
::nRowCur := ::nTop
::nRowRep := 1
::nRowDis := ::nTop - 1
lMoved := .t.
::xRefresh := OBJ_REFRESH_ALL
ENDIF
ELSE // IF ::nRowCur == ::ROW_BOTTOM]
::nRowCur := ::nTop
::nRowRep := ::nRowRep - ( ::nRowCur - ::nTop )
::nRowDis := ::nRowDis - ( ::nRowCur - ::nTop )
lMoved := .t.
ENDIF
RETURN lMoved
//----------------------------------------------------------------------//
METHOD hbCUIEditor:objType( nObj )
RETURN ::obj_[ nObj, OBJ_TYPE ]
@@ -1540,27 +1519,40 @@ METHOD hbCUIEditor:objIsFld( nObj )
/*----------------------------------------------------------------------*/
METHOD hbCUIEditor:scrIsTxt()
RETURN ascan( ::obj_, {|e_| e_ [OBJ_TYPE ] == OBJ_O_TEXT;
.AND. ;
VouchInRange( ::nRowRep, e_[ OBJ_ROW ], e_[ OBJ_TO_ROW ] ) ;
.AND. ;
VouchInRange( ::nColRep, e_[ OBJ_COL ], e_[ OBJ_TO_COL ] ) } ) > 0
LOCAL e_
FOR EACH e_ IN ::obj_
IF e_[ OBJ_TYPE ] == OBJ_O_TEXT
IF ::nRowRep == e_[ OBJ_ROW ] .AND. ( ::nColRep >= e_[ OBJ_COL ] .AND. ::nColRep <= e_[ OBJ_TO_COL ] )
RETURN .t.
ENDIF
ENDIF
NEXT
RETURN .f.
//----------------------------------------------------------------------//
METHOD hbCUIEditor:scrChkObj()
LOCAL n
n := ascan( ::obj_, {|e_| iif( e_[ OBJ_TYPE ] == OBJ_O_BOX, .f.,;
VouchInRange( ::nRowRep, e_[ OBJ_ROW ], e_[OBJ_TO_ROW ] ) ;
.AND. ;
VouchInRange( ::nColRep, e_[ OBJ_COL ], e_[ OBJ_TO_COL ] ) ) } )
IF empty( n ) // No OBJECT other than box, check box,BMP
n := ascan( ::obj_,{|e_| ;
VouchInRange( ::nRowRep, e_[ OBJ_ROW ], e_[ OBJ_TO_ROW ] ) ;
.AND. ;
VouchInRange( ::nColRep, e_[ OBJ_COL ], e_[ OBJ_TO_COL ] ) } )
ENDIF
RETURN n
LOCAL e_
FOR EACH e_ IN ::obj_
IF e_[ OBJ_TYPE ] == OBJ_O_BOX
IF ( ::nRowRep == e_[ OBJ_ROW ] .OR. ::nRowRep == e_[ OBJ_TO_ROW ] ) .AND. ;
( ::nColRep >= e_[ OBJ_COL ] .AND. ::nColRep <= e_[ OBJ_TO_COL ] )
RETURN e_:__enumIndex()
ELSEIF ( ::nColRep == e_[ OBJ_COL ] .OR. ::nColRep == e_[ OBJ_TO_COL ] ) .AND. ;
( ::nRowRep >= e_[ OBJ_ROW ] .AND. ::nRowRep <= e_[ OBJ_TO_ROW ] )
RETURN e_:__enumIndex()
ENDIF
ELSE
IF ::nRowRep == e_[ OBJ_ROW ] .AND. ( ::nColRep >= e_[ OBJ_COL ] .AND. ::nColRep <= e_[ OBJ_TO_COL ] )
RETURN e_:__enumIndex()
ENDIF
ENDIF
NEXT
RETURN 0
//----------------------------------------------------------------------//
@@ -1783,23 +1775,19 @@ METHOD hbCUIEditor:scrOnLastCol( nObj )
LOCAL nOff, i
IF ::objIsBox( nObj )
nOff := ::obj_[ nObj, OBJ_TO_COL ] - ::nColCur - 1
nOff := ::obj_[ nObj, OBJ_TO_COL ] - ::nColRep
FOR i := 1 TO nOff
::scrMovRgt()
::scrMove()
::scrStatus()
::nRowPrev := ::nRowCur
::nColPrev := ::nColCur
NEXT
nOff := ::obj_[ nObj, OBJ_TO_ROW ] - ::nRowCur - 1
nOff := ::obj_[ nObj, OBJ_TO_ROW ] - ::nRowRep
FOR i := 1 TO nOff
::scrMovDn()
::scrMove()
::scrStatus()
::nRowPrev := ::nRowCur
::nColPrev := ::nColCur
NEXT
::scrMove()
::scrStatus()
::nRowPrev := ::nRowCur
::nColPrev := ::nColCur
ENDIF
RETURN NIL

View File

@@ -198,12 +198,12 @@ FUNCTION VouchGetArray( h_,vv_, sel_, nTop, nLft, nBtm, nRgt, title, bWhen_, bVa
IF h_== NIL .OR. valtype(h_)<>'A' .OR. vv_== NIL .OR. valtype(vv_)<>'A'
RETURN {vv_, 0}
ENDIF
nLenVrb := 0
aeval( vv_, {|e| cTyp := valtype( e ), nLenVrb := max( ;
iif( cTyp == 'C', len( e ), ;
iif( cTyp == 'N', 15, iif( cTyp == 'D', 8, 3 ) ) ), nLenVrb ) } )
IF bWhen_ == NIL
bWhen_:= afill( array( len( vv_) ), {|| .t. } )
FOR i := 1 TO len( vv_ )
@@ -278,7 +278,7 @@ FUNCTION VouchGetArray( h_,vv_, sel_, nTop, nLft, nBtm, nRgt, title, bWhen_, bVa
cgo_:= { 1, 0, .f., .f., pmt_, sel_,/*exe_*/, aScrol_, nLenMnu }
SetGetAch( vv_ )
SetGetAch( vv_ )
IF pic_ == NIL
pic_:= array( len( vv_ ) )
@@ -1107,48 +1107,48 @@ FUNCTION help( cToken )
SWITCH Upper( cToken )
CASE "KEYS"
/* HB_SCREEN_BEGINS <Keys> */
/// 2 3 C 76 0
/// 1 3 C 76 0
@ 1, 2 SAY " Keys " COLOR "N/W*"
/// 18 3 C 76 0
@ 26, 2 SAY " ESC-Designer 1-General 2-SelectiveInput 3-Block Selections 4-About " COLOR "N/W*"
/// 3 3 C 61 0
@ 16, 2 SAY "Alt_N Insert blank row. All objects are moved down one row."
/// 4 3 C 61 0
@ 17, 2 SAY "Alt_O Delete current row. All objects are moved up one row."
/// 5 3 C 71 0
@ 14, 2 SAY "End Cursor is positioned at the next to last column of last object."
/// 6 3 C 44 0
@ 13, 2 SAY "Home Cursor is positioned at column zero."
/// 7 3 C 32 0
@ 12, 2 SAY "Del Delete hilighted object."
/// 8 3 C 32 0
@ 10, 2 SAY "F10 Define a new GET object."
/// 9 3 C 39 0
@ 9, 2 SAY "F9 Start to define new box object."
/// 10 3 C 28 0
@ 8, 2 SAY "F8 Paste copied object."
/// 11 3 C 29 0
@ 7, 2 SAY "F7 Copy hilighted objec.t"
/// 12 3 C 32 0
@ 6, 2 SAY "F6 Select hilighted object."
/// 13 3 C 30 0
@ 5, 2 SAY "F5 Edit hilighted object."
/// 14 3 C 39 0
@ 4, 2 SAY "F4 Properties of hilighted object."
/// 15 3 C 20 0
@ 3, 2 SAY "F1 This screen."
/// 16 3 C 31 0
@ 19, 2 SAY "Ctrl_F6 Begins block selection."
/// 17 3 C 44 0
@ 20, 2 SAY "Ctrl_F7 Copy selected block at new location."
/// 18 3 C 53 0
@ 21, 2 SAY "Ctrl_F8 Cut and paste selected block at new location."
/// 19 3 C 29 0
@ 23, 2 SAY "Alt+S Save designed screen."
/// 20 3 C 28 0
@ 24, 2 SAY "Alt+L Load another screen."
/// 2 3 C 61 0
@ 16, 2 SAY "Alt_N Insert blank row. All objects are moved down one row."
/// 3 3 C 61 0
@ 17, 2 SAY "Alt_O Delete current row. All objects are moved up one row."
/// 4 3 C 71 0
@ 14, 2 SAY "End Cursor is positioned at the next to last column of last object."
/// 5 3 C 44 0
@ 13, 2 SAY "Home Cursor is positioned at column zero."
/// 6 3 C 32 0
@ 12, 2 SAY "Del Delete hilighted object."
/// 7 3 C 32 0
@ 10, 2 SAY "F10 Define a new GET object."
/// 8 3 C 39 0
@ 9, 2 SAY "F9 Start to define new box object."
/// 9 3 C 28 0
@ 8, 2 SAY "F8 Paste copied object."
/// 10 3 C 30 0
@ 7, 2 SAY "F7 Copy hilighted objec.t"
/// 11 3 C 32 0
@ 6, 2 SAY "F6 Select hilighted object."
/// 12 3 C 30 0
@ 5, 2 SAY "F5 Edit hilighted object."
/// 13 3 C 39 0
@ 4, 2 SAY "F4 Properties of hilighted object."
/// 14 3 C 20 0
@ 3, 2 SAY "F1 This screen."
/// 15 3 C 31 0
@ 19, 2 SAY "Ctrl_F6 Begins block selection."
/// 16 3 C 44 0
@ 20, 2 SAY "Ctrl_F7 Copy selected block at new location."
/// 17 3 C 53 0
@ 21, 2 SAY "Ctrl_F8 Cut and paste selected block at new location."
/// 18 3 C 29 0
@ 23, 2 SAY "Alt+S Save designed screen."
/// 19 3 C 28 0
@ 24, 2 SAY "Alt+L Load another screen."
/// 20 3 C 76 0
@ 26, 2 SAY " ESC-Designer 1-Keys 2-General 3-ListedInputs 4-BlockSelection 5-About " COLOR "N/W*"
/* HB_SCREEN_ENDS <Keys> */
EXIT
CASE "GENERAL-1"
@@ -1156,40 +1156,42 @@ FUNCTION help( cToken )
/// 1 3 C 76 0
@ 1, 2 SAY " General " COLOR "N/W*"
/// 18 3 C 76 0
@ 26, 2 SAY " ESC-Designer 1-General 2-SelectiveInput 3-Block Selections 4-About " COLOR "N/W*"
/// 2 3 C 76 0
@ 3, 2 SAY "hbCuiEd is a fixed-coordinated, character based screen designer which allows"
@ 26, 2 SAY " ESC-Designer 1-Keys 2-General 3-ListedInputs 4-BlockSelection 5-About " COLOR "N/W*"
/// 3 3 C 76 0
@ 4, 2 SAY "to arrange Harbour's GT oriented objects in visual interaction and saves the"
@ 3, 2 SAY "hbCuiEd is a fixed-coordinated, character based screen designer which allows"
/// 4 3 C 76 0
@ 4, 2 SAY "to arrange Harbour's GT oriented objects in visual interaction and saves the"
/// 5 3 C 76 0
@ 5, 2 SAY "results as Harbour source code (with some meta info) directly into the .PRG "
/// 5 3 C 73 0
/// 6 3 C 73 0
@ 6, 2 SAY "file ready to be compiled and linked. Thus generated forms can be edited "
/// 6 3 C 76 0
/// 7 3 C 76 0
@ 7, 2 SAY "either directly in the source file or through this tool which allows two-way"
/// 7 3 C 56 0
/// 8 3 C 56 0
@ 8, 2 SAY "communication leading to highest degree of productivity."
/// 8 3 C 76 0
/// 9 3 C 76 0
@ 10, 2 SAY "One source file can contain n number of screens, anywhere in the source, at "
/// 9 3 C 74 0
/// 10 3 C 74 0
@ 11, 2 SAY "any indentation. The only requirement is to place following lines where a "
/// 10 3 C 17 0
/// 11 3 C 17 0
@ 12, 2 SAY "screen is needed:"
/// 11 3 C 35 0
@ 13, 22 SAY "/* HB_SCREEN_BEGINS <ScreenName> */" COLOR "GR+/B"
/// 12 3 C 35 0
@ 14, 22 SAY "/* HB_SCREEN_ENDS <ScreenName> */" COLOR "GR+/B"
@ 13, 22 SAY "/* HB_SCREEN_BEGINS <ScreenName> */" COLOR "GR+/B"
/// 13 3 C 74 0
@ 16, 2 SAY "This is to be done manually. Once you place above lines into source file, "
/// 14 3 C 74 0
@ 17, 2 SAY "just supply that source when loading a screen. All screens defined in that"
/// 15 3 C 44 0
@ 18, 2 SAY "source will be presented to select and edit."
/// 16 3 C 76 0
/// 14 3 C 76 0
@ 20, 2 SAY "The designer implements SAYs with/without expression, GETs with all clauses,"
/// 17 3 C 55 0
@ 21, 2 SAY "BOXs with all flavours, special characters (TOBE Done)."
/// 15 3 C 35 0
@ 14, 22 SAY "/* HB_SCREEN_ENDS <ScreenName> */" COLOR "GR+/B"
/// 16 3 C 75 0
@ 17, 2 SAY "just supply that source to load a screen. All screens defined therein will "
/// 17 3 C 44 0
@ 18, 2 SAY "be presented to be selected and edited."
/// 18 3 C 76 0
@ 15, 2 SAY "<ScreenName> should be unique 13 characters long string across given source."
/// 19 3 C 55 0
@ 21, 2 SAY "BOXes with all flavours, special characters (TOBE Done)."
/* HB_SCREEN_ENDS <General-1> */
EXIT
@@ -1198,8 +1200,8 @@ FUNCTION help( cToken )
/// 2 3 C 76 0
@ 1, 2 SAY " Selective Input " COLOR "N/W*"
/// 18 3 C 76 0
@ 26, 2 SAY " ESC-Designer 1-General 2-SelectiveInput 3-Block Selections 4-About " COLOR "N/W*"
/// 20 3 C 76 0
@ 26, 2 SAY " ESC-Designer 1-Keys 2-General 3-ListedInputs 4-BlockSelection 5-About " COLOR "N/W*"
/* HB_SCREEN_ENDS <General-2> */
EXIT
@@ -1208,35 +1210,35 @@ FUNCTION help( cToken )
/// 2 3 C 76 0
@ 1, 2 SAY " Block Selection " COLOR "N/W*"
/// 18 3 C 76 0
@ 26, 2 SAY " ESC-Designer 1-General 2-SelectiveInput 3-Block Selections 4-About " COLOR "N/W*"
/// 20 3 C 76 0
@ 26, 2 SAY " ESC-Designer 1-Keys 2-General 3-ListedInputs 4-BlockSelection 5-About " COLOR "N/W*"
/* HB_SCREEN_ENDS <General-3> */
EXIT
CASE "ABOUT"
/* HB_SCREEN_BEGINS <About> */
/// 1 3 C 76 0
/// 1 3 C 76 0
@ 1, 2 SAY " About " COLOR "N/W*"
/// 2 3 C 76 0
@ 26, 2 SAY " ESC-Designer 1-General 2-SelectiveInput 3-Block Selections 4-About " COLOR "N/W*"
/// 3 3 C 35 0
/// 20 3 C 76 0
@ 26, 2 SAY " ESC-Designer 1-Keys 2-General 3-ListedInputs 4-BlockSelection 5-About " COLOR "N/W*"
/// 3 3 C 35 0
@ 7, 22 SAY "Harbour Screen Designer ( hbCuiEd )" COLOR "GR+/B"
/// 4 3 C 40 0
@ 10, 20 SAY "Pritpal Bedi ( bedipritpal@hotmail.com )"
/// 5 3 C 13 0
@ 9, 33 SAY "Developed by:"
/// 6 3 C 12 0
@ 15, 34 SAY "Pritpal Bedi"
/// 7 3 C 14 0
@ 14, 33 SAY "Copyright 2011"
/// 8 3 C 23 0
@ 16, 29 SAY "www.harbour-project.org"
/// 9 3 C 29 0
@ 20, 26 SAY "Visit the project website at:"
/// 10 3 C 31 0
/// 4 3 C 40 0
@ 10, 20 SAY "Pritpal Bedi ( bedipritpal@hotmail.com )"
/// 5 3 C 13 0
@ 9, 33 SAY "Developed by:"
/// 6 3 C 12 0
@ 15, 34 SAY "Pritpal Bedi"
/// 7 3 C 14 0
@ 14, 33 SAY "Copyright 2011"
/// 8 3 C 23 0
@ 16, 29 SAY "www.harbour-project.org"
/// 9 3 C 29 0
@ 20, 26 SAY "Visit the project website at:"
/// 10 3 C 31 0
@ 21, 25 SAY "http://www.harbour-project.org/" COLOR "GR+/B"
/* HB_SCREEN_ENDS <About> */
EXIT
ENDSWITCH
@@ -1249,18 +1251,22 @@ FUNCTION help( cToken )
SetHelpStr( "" )
EXIT
ELSEIF nKey == 49
SetHelpStr( "General-1" )
SetHelpStr( "Keys" )
__keyboard( chr( K_F1 ) )
EXIT
ELSEIF nKey == 50
SetHelpStr( "General-2" )
SetHelpStr( "General-1" )
__keyboard( chr( K_F1 ) )
EXIT
ELSEIF nKey == 51
SetHelpStr( "General-3" )
SetHelpStr( "General-2" )
__keyboard( chr( K_F1 ) )
EXIT
ELSEIF nKey == 52
SetHelpStr( "General-3" )
__keyboard( chr( K_F1 ) )
EXIT
ELSEIF nKey == 53
SetHelpStr( "About" )
__keyboard( chr( K_F1 ) )
EXIT