2011-08-25 16:02 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbcuied/cu_object.prg
* contrib/hbcuied/cu_utlty.prg
+ Implemented: K_ALT_P preview.
Preview takes following considerations:
0. Background color is always set to "W/B".
You can change this behavior with a BOX covering
entire screen.
1. Rows and columns of the screen are calculated based
on maximum ending row and column of objects defined.
if those values are greater than 25/80 then one more
row and column is added to them, otherwise,
rows/columns are 25/80 as in standard screen.
2. If COLOR is defined as a literal value enclosed in
quotes, then this value is used otherwise "W/B" is used.
3. If PICTURE is defined as literal string enclosed
in quotes, then it is used, otherwise left. For numeric
fields, picture is always generated as "9999??[.9?]" based
on field length and decimals.
This commit is contained in:
@@ -16,6 +16,30 @@
|
||||
The license applies to all entries newer than 2009-04-28.
|
||||
*/
|
||||
|
||||
2011-08-25 16:02 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
|
||||
* contrib/hbcuied/cu_object.prg
|
||||
* contrib/hbcuied/cu_utlty.prg
|
||||
+ Implemented: K_ALT_P preview.
|
||||
Preview takes following considerations:
|
||||
|
||||
0. Background color is always set to "W/B".
|
||||
You can change this behavior with a BOX covering
|
||||
entire screen.
|
||||
|
||||
1. Rows and columns of the screen are calculated based
|
||||
on maximum ending row and column of objects defined.
|
||||
if those values are greater than 25/80 then one more
|
||||
row and column is added to them, otherwise,
|
||||
rows/columns are 25/80 as in standard screen.
|
||||
|
||||
2. If COLOR is defined as a literal value enclosed in
|
||||
quotes, then this value is used otherwise "W/B" is used.
|
||||
|
||||
3. If PICTURE is defined as literal string enclosed
|
||||
in quotes, then it is used, otherwise left. For numeric
|
||||
fields, picture is always generated as "9999??[.9?]" based
|
||||
on field length and decimals.
|
||||
|
||||
2011-08-24 17:21 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
|
||||
* contrib/hbcuied/cu_object.prg
|
||||
* contrib/hbcuied/cu_utlty.prg
|
||||
|
||||
@@ -199,6 +199,7 @@ CLASS hbCUIEditor
|
||||
METHOD scrOrdGets()
|
||||
METHOD scrUpdateUndo()
|
||||
METHOD scrUndo()
|
||||
METHOD scrPreview()
|
||||
|
||||
ENDCLASS
|
||||
|
||||
@@ -858,6 +859,8 @@ METHOD hbCUIEditor:operate()
|
||||
::scrSave()
|
||||
ENDIF
|
||||
EXIT
|
||||
CASE ::nLastKey == K_ALT_P
|
||||
::scrPreview()
|
||||
CASE ::nLastKey == K_ALT_L
|
||||
::scrLoad( .t. )
|
||||
CASE ::nLastKey == K_ALT_S
|
||||
@@ -2384,24 +2387,23 @@ METHOD hbCUIEditor:scrAddTxt( nMode )
|
||||
ENDIF
|
||||
IF len( s1 ) == 0 .AND. len( s2 ) == 0
|
||||
VouchAShrink( txt_, nTxt )
|
||||
IF empty( txt_ )
|
||||
aadd( txt_, ::scrObjBlank() )
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF !empty( txt_ )
|
||||
DO WHILE .t.
|
||||
IF( n := ascan( txt_, {|e_| e_[ OBJ_TO_COL ] < e_[ OBJ_COL ] } ) ) > 0
|
||||
IF ( n := ascan( txt_, {|e_| e_[ OBJ_TO_COL ] < e_[ OBJ_COL ] } ) ) > 0
|
||||
VouchAShrink( txt_, n )
|
||||
ELSE
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDDO
|
||||
#if 0
|
||||
IF empty( txt_ )
|
||||
aadd( txt_, ::scrObjBlank() )
|
||||
ENDIF
|
||||
#endif
|
||||
// CLUB DIFFERENT TEXT OBJECTS IF THESE ARE ADJACENT
|
||||
asort( txt_ , , , {|e_,f_| e_[ OBJ_COL ] < f_[ OBJ_COL ] } )
|
||||
|
||||
@@ -2803,3 +2805,127 @@ METHOD hbCUIEditor:scrGetProperty( nObj )
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
METHOD hbCUIEditor:scrPreview()
|
||||
LOCAL nRows, nCols, a_, cColor, aScr, cPic
|
||||
LOCAL nMaxRows := 0
|
||||
LOCAL nMaxCols := 0
|
||||
LOCAL getlist := {}
|
||||
LOCAL g_ := {}
|
||||
|
||||
aeval( ::obj_, {|e_| nMaxRows := max( e_[ OBJ_TO_ROW ], nMaxRows ), nMaxCols := max( e_[ OBJ_TO_COL ], nMaxCols ) } )
|
||||
|
||||
IF nMaxRows > 25
|
||||
nMaxRows++
|
||||
ELSE
|
||||
nMaxRows := 25
|
||||
ENDIF
|
||||
IF nMaxCols > 80
|
||||
nMaxCols++
|
||||
ELSE
|
||||
nMaxCols := 80
|
||||
ENDIF
|
||||
|
||||
nRows := maxrow()
|
||||
nCols := maxcol()
|
||||
aScr := VouchWndSave( 0,0,maxrow(),maxcol() )
|
||||
vstk_push()
|
||||
|
||||
::scrOrdObj()
|
||||
aeval( ::obj_, {|e_| iif( e_[ OBJ_TYPE ] == OBJ_O_FIELD, aadd( g_, VouchVrbBlank( e_ ) ), aadd( g_, NIL ) ) } )
|
||||
|
||||
SetColor( "W/B" )
|
||||
SetCursor( 0 )
|
||||
SetMode( nMaxRows, nMaxCols )
|
||||
CLS
|
||||
|
||||
FOR EACH a_ IN ::obj_
|
||||
cColor := VouchGetColor( a_[ OBJ_TYPE ], a_[ OBJ_COLOR ] )
|
||||
|
||||
SWITCH a_[ OBJ_TYPE ]
|
||||
CASE OBJ_O_BOX
|
||||
DispBox( a_[ OBJ_ROW ]-1, a_[ OBJ_COL ]-1, a_[ OBJ_TO_ROW ]-1, a_[ OBJ_TO_COL ]-1, a_[ OBJ_BOX_SHAPE ] + iif( a_[ OBJ_PATTERN ] == "CLEAR", "", " " ), cColor )
|
||||
EXIT
|
||||
CASE OBJ_O_TEXT
|
||||
@ a_[ OBJ_ROW ]-1, a_[ OBJ_COL ]-1 SAY a_[ OBJ_TEXT ] COLOR cColor
|
||||
EXIT
|
||||
CASE OBJ_O_FIELD
|
||||
cPic := VouchGetPic( a_[ OBJ_F_TYPE ], a_[ OBJ_F_PIC ], a_[ OBJ_F_LEN ], a_[ OBJ_F_DEC ] )
|
||||
IF ! empty( cPic )
|
||||
@ a_[ OBJ_ROW ]-1, a_[ OBJ_COL ]-1 GET g_[ a_:__enumIndex() ] COLOR cColor PICTURE cPic
|
||||
ELSE
|
||||
@ a_[ OBJ_ROW ]-1, a_[ OBJ_COL ]-1 GET g_[ a_:__enumIndex() ] COLOR cColor
|
||||
ENDIF
|
||||
EXIT
|
||||
ENDSWITCH
|
||||
NEXT
|
||||
|
||||
IF len( getlist ) > 0
|
||||
READ
|
||||
ELSE
|
||||
DO WHILE inkey() != K_ESC; ENDDO
|
||||
ENDIF
|
||||
|
||||
SetMode( nRows + 1, nCols + 1 )
|
||||
VouchWndRest( aScr )
|
||||
vstk_pop()
|
||||
|
||||
RETURN Self
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
STATIC FUNCTION VouchGetPic( cType, cPic, nLen, nDec )
|
||||
LOCAL cP := ""
|
||||
|
||||
IF cType == "N"
|
||||
cP := iif( nDec > 0, replicate( "9", nLen - nDec - 1 ) + "." + replicate( "9", nDec ), replicate( "9", nLen ) )
|
||||
ELSE
|
||||
IF left( cPic,1 ) == '"' .and. right( cPic,1 ) == '"'
|
||||
cP := substr( cPic, 2, len( cPic ) - 2 )
|
||||
ELSEIF left( cPic,1 ) == "'" .and. right( cPic,1 ) == "'"
|
||||
cP := substr( cPic, 2, len( cPic ) - 2 )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
RETURN cP
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
STATIC FUNCTION VouchVrbBlank( o_ )
|
||||
|
||||
SWITCH o_[ OBJ_F_TYPE ]
|
||||
CASE "C"
|
||||
RETURN space( o_[ OBJ_F_LEN ] )
|
||||
CASE "M"
|
||||
RETURN space( 10 )
|
||||
CASE "N"
|
||||
RETURN 0
|
||||
CASE "D"
|
||||
RETURN ctod( "" )
|
||||
CASE "L"
|
||||
RETURN .f.
|
||||
ENDSWITCH
|
||||
|
||||
RETURN ""
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
STATIC FUNCTION VouchGetColor( cType, cColor )
|
||||
|
||||
IF left( cColor,1 ) == '"' .and. right( cColor,1 ) == '"'
|
||||
RETURN cColor
|
||||
ELSEIF left( cColor,1 ) == "'" .and. right( cColor,1 ) == "'"
|
||||
RETURN cColor
|
||||
ELSE
|
||||
IF cType == OBJ_O_BOX
|
||||
RETURN "W/B"
|
||||
ELSEIF cType == OBJ_O_TEXT
|
||||
RETURN "W/B"
|
||||
ELSEIF cType == OBJ_O_FIELD
|
||||
RETURN "N/W,GR+/BG"
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
RETURN "W/B"
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
@@ -586,7 +586,7 @@ FUNCTION VouchMenuM( id,nInit,msg )
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
STATIC FUNCTION vstk_push()
|
||||
FUNCTION vstk_push()
|
||||
s_vid_stk := chr( set( _SET_CURSOR ) ) + ;
|
||||
chr( row() ) + chr( col() ) + ;
|
||||
pad( setcolor(), LEN_COL_STR ) + ;
|
||||
@@ -595,7 +595,7 @@ STATIC FUNCTION vstk_push()
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
STATIC FUNCTION vstk_pop()
|
||||
FUNCTION vstk_pop()
|
||||
IF len( s_vid_stk ) > 0
|
||||
setcursor( asc( substr( s_vid_stk, 1, 1 ) ) )
|
||||
@ asc( substr( s_vid_stk, 2, 1 ) ), asc( substr( s_vid_stk, 3, 1 ) ) SAY ""
|
||||
@@ -1182,22 +1182,22 @@ STATIC FUNCTION DispHelp( cToken )
|
||||
@ 4, 2 SAY "F4 " COLOR "GR+/B"
|
||||
/// 5 3 C 59 0
|
||||
@ 4, 10 SAY "Properties of current object in a selectable/editable list."
|
||||
/// 6 3 C 7 0
|
||||
@ 5, 2 SAY "F5 " COLOR "GR+/B"
|
||||
/// 7 3 C 64 0
|
||||
/// 6 3 C 64 0
|
||||
@ 5, 10 SAY "Edit current object: Text-no action, Box-resize action, Field-F4"
|
||||
/// 7 3 C 7 0
|
||||
@ 5, 2 SAY "F5 " COLOR "GR+/B"
|
||||
/// 8 3 C 7 0
|
||||
@ 6, 2 SAY "F6 " COLOR "GR+/B"
|
||||
/// 9 3 C 40 0
|
||||
@ 6, 10 SAY "Selects current object (Box/Field/Text)."
|
||||
/// 10 3 C 39 0
|
||||
@ 7, 10 SAY "Copies current object (Box/Field/Text)."
|
||||
/// 11 3 C 7 0
|
||||
/// 10 3 C 7 0
|
||||
@ 7, 2 SAY "F7 " COLOR "GR+/B"
|
||||
/// 12 3 C 7 0
|
||||
@ 8, 2 SAY "F8 " COLOR "GR+/B"
|
||||
/// 13 3 C 48 0
|
||||
/// 11 3 C 39 0
|
||||
@ 7, 10 SAY "Copies current object (Box/Field/Text)."
|
||||
/// 12 3 C 48 0
|
||||
@ 8, 10 SAY "Pastes copied object at current cursor position."
|
||||
/// 13 3 C 7 0
|
||||
@ 8, 2 SAY "F8 " COLOR "GR+/B"
|
||||
/// 14 3 C 7 0
|
||||
@ 9, 2 SAY "F9 " COLOR "GR+/B"
|
||||
/// 15 3 C 32 0
|
||||
@@ -1218,43 +1218,47 @@ STATIC FUNCTION DispHelp( cToken )
|
||||
@ 14, 10 SAY "Cursor is positioned at the next to last column of last object."
|
||||
/// 23 3 C 7 0
|
||||
@ 14, 2 SAY "End " COLOR "GR+/B"
|
||||
/// 24 3 C 7 0
|
||||
@ 15, 2 SAY "Alt_Z " COLOR "GR+/B"
|
||||
/// 25 3 C 5 0
|
||||
@ 15, 10 SAY "Undo."
|
||||
/// 26 3 C 54 0
|
||||
/// 24 3 C 54 0
|
||||
@ 16, 10 SAY "Inserts blank row, all objects are moved down one row."
|
||||
/// 27 3 C 7 0
|
||||
/// 25 3 C 7 0
|
||||
@ 16, 2 SAY "Alt_N " COLOR "GR+/B"
|
||||
/// 28 3 C 66 0
|
||||
/// 26 3 C 66 0
|
||||
@ 17, 10 SAY "Deletes objects on current row, next objects are moved up one row."
|
||||
/// 29 3 C 7 0
|
||||
/// 27 3 C 7 0
|
||||
@ 17, 2 SAY "Alt_O " COLOR "GR+/B"
|
||||
/// 30 3 C 53 0
|
||||
@ 18, 10 SAY "Re-order GETS. This is different than creation order."
|
||||
/// 31 3 C 7 0
|
||||
/// 28 3 C 7 0
|
||||
@ 18, 2 SAY "Alt_G " COLOR "GR+/B"
|
||||
/// 32 3 C 23 0
|
||||
@ 20, 10 SAY "Begins block selection."
|
||||
/// 33 3 C 7 0
|
||||
/// 29 3 C 53 0
|
||||
@ 18, 10 SAY "Re-order GETS. This is different than creation order."
|
||||
/// 30 3 C 7 0
|
||||
@ 20, 2 SAY "Ctrl_F6" COLOR "GR+/B"
|
||||
/// 34 3 C 36 0
|
||||
/// 31 3 C 23 0
|
||||
@ 20, 10 SAY "Begins block selection."
|
||||
/// 32 3 C 36 0
|
||||
@ 21, 10 SAY "Copy selected block at new location."
|
||||
/// 35 3 C 7 0
|
||||
/// 33 3 C 7 0
|
||||
@ 21, 2 SAY "Ctrl_F7" COLOR "GR+/B"
|
||||
/// 36 3 C 45 0
|
||||
/// 34 3 C 7 0
|
||||
@ 22, 63 SAY "Alt_Z " COLOR "GR+/B"
|
||||
/// 35 3 C 45 0
|
||||
@ 22, 10 SAY "Cut and paste selected block at new location."
|
||||
/// 36 3 C 4 0
|
||||
@ 22, 71 SAY "Undo"
|
||||
/// 37 3 C 7 0
|
||||
@ 22, 2 SAY "Ctrl_F8" COLOR "GR+/B"
|
||||
/// 38 3 C 20 0
|
||||
@ 24, 58 SAY "Load another screen."
|
||||
/// 38 3 C 7 0
|
||||
@ 24, 63 SAY "Alt_P " COLOR "GR+/B"
|
||||
/// 39 3 C 7 0
|
||||
@ 24, 50 SAY "Alt_L " COLOR "GR+/B"
|
||||
/// 40 3 C 21 0
|
||||
@ 24, 10 SAY "Save designed screen."
|
||||
/// 41 3 C 7 0
|
||||
@ 24, 71 SAY "Preview"
|
||||
/// 40 3 C 7 0
|
||||
@ 24, 33 SAY "Alt_L " COLOR "GR+/B"
|
||||
/// 41 3 C 20 0
|
||||
@ 24, 41 SAY "Load another screen."
|
||||
/// 42 3 C 7 0
|
||||
@ 24, 2 SAY "Alt_S " COLOR "GR+/B"
|
||||
/// 42 3 C 76 0
|
||||
/// 43 3 C 21 0
|
||||
@ 24, 10 SAY "Save designed screen."
|
||||
/// 44 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> */
|
||||
@@ -1363,4 +1367,27 @@ STATIC FUNCTION DispHelp( cToken )
|
||||
RETURN NIL
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
|
||||
FUNCTION hbcui_test()
|
||||
LOCAL getlist := {}
|
||||
|
||||
/* HB_SCREEN_BEGINS <test> */
|
||||
|
||||
/// 1 1 . 9 0
|
||||
@ 1, 2 , 12, 36 BOX "ÚÄ¿³ÙÄÀ³"
|
||||
/// 2 3 C 5 0
|
||||
@ 3, 4 SAY "Name "
|
||||
/// 3 3 C 15 0
|
||||
@ 5, 4 SAY "Salary "
|
||||
/// 4 3 C 14 0
|
||||
@ 7, 4 SAY "Date of Birth "
|
||||
/// 5 4 C 25 0
|
||||
@ 3, 10 GET cName PICTURE "@K! "
|
||||
/// 6 4 N 12 2
|
||||
@ 5, 23 GET nSalary
|
||||
/// 7 4 D 8 0
|
||||
@ 7, 27 GET dBirth
|
||||
|
||||
/* HB_SCREEN_ENDS <test> */
|
||||
|
||||
RETURN NIL
|
||||
|
||||
Reference in New Issue
Block a user