2011-08-16 15:08 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
- contrib/hbcuied/cu_desgn.prg
* contrib/hbcuied/cu_main.prg
- contrib/hbcuied/cu_menu.prg
* contrib/hbcuied/cu_object.prg
- contrib/hbcuied/cu_outpt.prg
- contrib/hbcuied/cu_prpty.prg
* contrib/hbcuied/cu_utlty.prg
* contrib/hbcuied/hbcuied.ch
* contrib/hbcuied/hbcuied.hbp
- Deleted: some sources.
* Code cleanup and more constructs.
* Changed: procedural approach to class code.
This commit is contained in:
@@ -16,6 +16,20 @@
|
||||
The license applies to all entries newer than 2009-04-28.
|
||||
*/
|
||||
|
||||
2011-08-16 15:08 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
|
||||
- contrib/hbcuied/cu_desgn.prg
|
||||
* contrib/hbcuied/cu_main.prg
|
||||
- contrib/hbcuied/cu_menu.prg
|
||||
* contrib/hbcuied/cu_object.prg
|
||||
- contrib/hbcuied/cu_outpt.prg
|
||||
- contrib/hbcuied/cu_prpty.prg
|
||||
* contrib/hbcuied/cu_utlty.prg
|
||||
* contrib/hbcuied/hbcuied.ch
|
||||
* contrib/hbcuied/hbcuied.hbp
|
||||
- Deleted: some sources.
|
||||
* Code cleanup and more constructs.
|
||||
* Changed: procedural approach to class code.
|
||||
|
||||
2011-08-15 10:20 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
|
||||
* contrib/hbcuied/cu_desgn.prg
|
||||
- contrib/hbcuied/cu_field.prg
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -70,6 +70,8 @@
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION Main( cSource, cScreen )
|
||||
LOCAL bErr := errorBlock( {|o| ThisError( o ) } )
|
||||
LOCAL oCUI
|
||||
|
||||
SET SCOREBOARD OFF
|
||||
SET EPOCH TO 1950
|
||||
@@ -79,18 +81,30 @@ FUNCTION Main( cSource, cScreen )
|
||||
|
||||
hb_gtInfo( HB_GTI_WINTITLE , "Harbour CUI Forms Designer v1.0" )
|
||||
hb_gtInfo( HB_GTI_RESIZEMODE, HB_GTI_RESIZEMODE_ROWS )
|
||||
hb_gtInfo( HB_GTI_ICONFILE , "../../packages/harb_win.ico" )
|
||||
hb_gtInfo( HB_GTI_ICONFILE , "..\..\package\favicon.ico" )
|
||||
|
||||
dgn_Screen( cSource, cScreen )
|
||||
oCUI := hbCUIEditor():new( cSource, cScreen ):create()
|
||||
oCUI:destroy()
|
||||
|
||||
ErrorBlock( bErr )
|
||||
|
||||
RETURN cSource
|
||||
RETURN NIL
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION ThisError( oError )
|
||||
|
||||
alert( oError:description + ":" + oError:operation + ";" + ;
|
||||
ProcName( 2 ) + "-" + hb_ntos( procLine( 2 ) ) + ";" + ;
|
||||
ProcName( 3 ) + "-" + hb_ntos( procLine( 3 ) ) )
|
||||
QUIT
|
||||
|
||||
RETURN oError
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION HB_GTSYS()
|
||||
|
||||
REQUEST HB_GT_WVT_DEFAULT
|
||||
|
||||
RETURN NIL
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
@@ -1,190 +0,0 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* CUI Forms Editor
|
||||
*
|
||||
* Copyright 2011 Pritpal Bedi <bedipritpal@hotmail.com>
|
||||
* http://harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*
|
||||
* EkOnkar
|
||||
* ( The LORD is ONE )
|
||||
*
|
||||
* Harbour CUI Editor Source
|
||||
*
|
||||
* Pritpal Bedi
|
||||
* 13Aug2011
|
||||
*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#include "hbcuied.ch"
|
||||
#include "common.ch"
|
||||
#include "hbgtinfo.ch"
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
#define REP_MSG_WAIT_YES .T.
|
||||
#define REP_MSG_WAIT_NO .F.
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION dgn_Screen( cObject, cScreen )
|
||||
LOCAL rpt_:={}
|
||||
LOCAL bErr
|
||||
|
||||
bErr := errorBlock( {|| Break() } )
|
||||
|
||||
IF ! empty( rpt_:= rptDefine( cObject, rpt_, REP_FOR_MDL,/*struct_*/, cScreen, 1, REP_MSG_WAIT_YES ) )
|
||||
rptSave( cObject, /*cRpt*/, rpt_, 1, REP_FOR_MDL, REP_MSG_WAIT_YES )
|
||||
ENDIF
|
||||
|
||||
errorBlock( bErr )
|
||||
|
||||
RETURN NIL
|
||||
|
||||
//---------------------------------------------------------------------//
|
||||
|
||||
STATIC FUNCTION rptDefine( cObject,rpt_,nMode,struct_,cRpt,nWhere,lMsg )
|
||||
LOCAL scn_,a_,obj_
|
||||
|
||||
a_ := rpt2ObjScn( cObject,rpt_,nMode,struct_,cRpt,nWhere,lMsg )
|
||||
obj_:= a_[ 1 ]
|
||||
scn_:= a_[ 2 ]
|
||||
|
||||
a_ := Operate(obj_,scn_)
|
||||
|
||||
obj_:= a_[ 1 ]
|
||||
scn_:= a_[ 2 ]
|
||||
rpt_:= objScn2rpt( obj_,scn_,nMode )
|
||||
|
||||
RETURN rpt_
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION rptSave( /* cObject,cRpt,rRpt_,nWhere,nMode,lMsgWait */ )
|
||||
RETURN .t.
|
||||
|
||||
//---------------------------------------------------------------------//
|
||||
|
||||
STATIC FUNCTION rptInit()
|
||||
RETURN { { '',0,'' } }
|
||||
|
||||
//---------------------------------------------------------------------//
|
||||
|
||||
FUNCTION rpt2ObjScn( cObject,rpt_,nMode,struct_,cRpt,nWhere,lMsg )
|
||||
LOCAL obj_,scn_:={}
|
||||
LOCAL n
|
||||
|
||||
HB_SYMBOL_UNUSED( struct_ )
|
||||
|
||||
rpt_:= iif( rpt_ == NIL .OR. empty( rpt_ ), rptInit(), rpt_ )
|
||||
obj_:= scrScn2obj(rpt_,0)
|
||||
|
||||
DO CASE
|
||||
|
||||
CASE nMode == REP_FOR_MDL
|
||||
scn_:= scrConfig( obj_,DGN_MODULE )
|
||||
IF (n := ascan( rpt_, {|e_| e_[2]==1 } ) ) > 0
|
||||
scn_[ SCN_PROPERTY ] := eval( COMPILE( rpt_[ n,3 ] ) )
|
||||
ENDIF
|
||||
#if 0
|
||||
IF (n := ascan(rpt_,{|e_| e_[2]== 51 })) > 0 // Property
|
||||
scn_[ SCN_PROPERTY ] := prpStr2Mdl( rpt_[ n,3 ] )
|
||||
ENDIF
|
||||
#endif
|
||||
#if 0
|
||||
FOR i := 1 TO len( rpt_ ) // Fields
|
||||
IF VouchInRange( rpt_[i,2], 2001,3000 )
|
||||
aadd( scn_[ SCN_FIELDS ], prpStr2Fld( rpt_[ i,3 ] ) )
|
||||
ENDIF
|
||||
NEXT
|
||||
#endif
|
||||
|
||||
ENDCASE
|
||||
|
||||
scn_[SCN_FILE ] := iif( empty( rpt_[ 1,1 ] ), 'Untitled', substr( rpt_[ 1,1 ], 13 ) )
|
||||
|
||||
scn_[SCN_COBJECT ] := cObject // FOR threaded usage
|
||||
scn_[SCN_CRPT ] := cRpt
|
||||
scn_[SCN_NWHERE ] := nWhere
|
||||
scn_[SCN_NMODE ] := nMode
|
||||
scn_[SCN_LMSG ] := lMsg
|
||||
|
||||
RETURN {obj_,scn_}
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION objScn2Rpt( obj_, scn_, nMode )
|
||||
LOCAL rpt_:={}
|
||||
|
||||
HB_SYMBOL_UNUSED( scn_ )
|
||||
|
||||
DO CASE
|
||||
CASE nMode == REP_FOR_MDL
|
||||
aeval( obj_, {|e_| iif( e_[ OBJ_ROW ] == 0, '', aadd( rpt_, { '', 0, scrObj2str( e_ ) } ) ) } )
|
||||
#if 0
|
||||
IF ! empty( scn_[ SCN_PROPERTY ] )
|
||||
aadd(rpt_, { '', 51, prpMdl2Str( scn_[ SCN_PROPERTY ] ) } )
|
||||
ENDIF
|
||||
#endif
|
||||
#if 0
|
||||
IF !empty(scn_[SCN_FIELDS])
|
||||
FOR i := 1 TO len(scn_[SCN_FIELDS])
|
||||
aadd(rpt_,{'',scn_[SCN_FIELDS,i,1], prpFld2Str(scn_[SCN_FIELDS,i]) })
|
||||
NEXT
|
||||
ENDIF
|
||||
#endif
|
||||
ENDCASE
|
||||
|
||||
RETURN rpt_
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,448 +0,0 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* CUI Forms Editor
|
||||
*
|
||||
* Copyright 2011 Pritpal Bedi <bedipritpal@hotmail.com>
|
||||
* http://harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*
|
||||
* EkOnkar
|
||||
* ( The LORD is ONE )
|
||||
*
|
||||
* Harbour CUI Editor Source
|
||||
*
|
||||
* Pritpal Bedi
|
||||
* 13Aug2011
|
||||
*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#include "hbcuied.ch"
|
||||
#include "inkey.ch"
|
||||
#include "wvtwin.ch"
|
||||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
FUNCTION ScrDisplay( scn_ )
|
||||
|
||||
dispbegin()
|
||||
setcursor(0)
|
||||
setColor( scn_[ SCN_CLR_OVERALL ] )
|
||||
cls
|
||||
|
||||
@ scn_[SCN_ROW_RULER], scn_[SCN_LEFT] ;
|
||||
SAY substr( scn_[SCN_RULER], 1, scn_[SCN_RIGHT] - scn_[SCN_LEFT] + 1 ) ;
|
||||
COLOR scn_[ SCN_CLR_RULER ]
|
||||
|
||||
scrMsg()
|
||||
|
||||
setcolor( scn_[ SCN_CLR_WINDOW ] )
|
||||
setCursor(2)
|
||||
dispend()
|
||||
|
||||
RETURN NIL
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrStatus(obj_,scn_)
|
||||
LOCAL s,objId,nSct,cClr:='GR+/BG'
|
||||
LOCAL typ_
|
||||
|
||||
dispbegin()
|
||||
s := pad(scn_[SCN_DESIGN_ID],8)+' ³ '
|
||||
|
||||
s += pad(scn_[SCN_FILE],12)+;
|
||||
' ³ '+;
|
||||
' R:'+;
|
||||
str( scn_[SCN_ROW_REP]-1, 3 )+;
|
||||
' C:'+;
|
||||
str( scn_[SCN_COL_REP]-1, 3 )+;
|
||||
' ³ ' +;
|
||||
iif(readInsert(),'Ins ',' ')+;
|
||||
' ³ '
|
||||
|
||||
objId := ''
|
||||
IF scn_[SCN_OBJ_HILITE] > 0
|
||||
objId := scn_[SCN_OBJ_ID_,obj_[scn_[SCN_OBJ_HILITE],OBJ_TYPE]]
|
||||
IF obj_[scn_[SCN_OBJ_HILITE],OBJ_TYPE] == OBJ_O_BOX
|
||||
typ_:= {'Bitmap','Frame','Ellipse','Line (H)','Line (V)','Grid','BarCode','Text Box'}
|
||||
objId := typ_[obj_[scn_[SCN_OBJ_HILITE],OBJ_MDL_F_TYPE]-60]
|
||||
ENDIF
|
||||
ELSEIF scn_[SCN_OBJ_SELECTED] > 0
|
||||
objId := scn_[SCN_OBJ_ID_,obj_[scn_[SCN_OBJ_SELECTED],OBJ_TYPE]]
|
||||
IF obj_[scn_[SCN_OBJ_SELECTED],OBJ_TYPE] == OBJ_O_BOX
|
||||
typ_:= {'Bitmap','Frame','Ellipse','Line (H)','Line (V)','Grid','BarCode','Text Box'}
|
||||
objId := typ_[obj_[scn_[SCN_OBJ_SELECTED],OBJ_MDL_F_TYPE]-60]
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
s += pad(trim(objId),10)+' ³ '
|
||||
|
||||
IF ( nSct := scrSecOrd(scn_,scn_[SCN_ROW_REP])) <> NIL
|
||||
s += scn_[ SCN_SECTORS_,nSct,SCT_ID ]
|
||||
ENDIF
|
||||
|
||||
@ scn_[SCN_STATUS_ROW], scn_[SCN_STATUS_COL] ;
|
||||
say pad(s,scn_[SCN_STATUS_COL_TO]-scn_[SCN_STATUS_COL]+1) ;
|
||||
color scn_[SCN_CLR_STATUS]
|
||||
|
||||
/* Ruler */
|
||||
s := substr(scn_[SCN_RULER],;
|
||||
max( 1,scn_[SCN_COL_REP]-scn_[SCN_COL_CUR]+scn_[SCN_LEFT]),;
|
||||
scn_[ SCN_RIGHT ] - scn_[SCN_LEFT ] + 1 )
|
||||
DispBox( scn_[ SCN_TOP ] - 1, 0, scn_[ SCN_TOP ] - 1, maxcol(), ' ', scn_[ SCN_CLR_OVERALL ] )
|
||||
@ scn_[SCN_ROW_RULER],scn_[SCN_LEFT] SAY s COLOR scn_[SCN_CLR_RULER]
|
||||
@ scn_[SCN_ROW_RULER],scn_[SCN_COL_CUR] say ;
|
||||
substr( s, scn_[SCN_COL_CUR]-scn_[SCN_LEFT]+1,1) COLOR cClr
|
||||
|
||||
@ scn_[SCN_ROW_CUR],scn_[SCN_COL_CUR] SAY ''
|
||||
|
||||
// Now update current cursor position
|
||||
scn_[SCN_ROW_PREV] := scn_[SCN_ROW_CUR]
|
||||
scn_[SCN_COL_PREV] := scn_[SCN_COL_CUR]
|
||||
|
||||
dispend()
|
||||
RETURN NIL
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrHiLite(obj_,scn_,mode)
|
||||
LOCAL nObj := scn_[SCN_OBJ_HILITE]
|
||||
LOCAL cColor := iif(mode,scn_[SCN_CLR_HILITE],obj_[nObj,OBJ_COLOR])
|
||||
|
||||
IF obj_[nObj,OBJ_TYPE] == OBJ_O_BOX
|
||||
DispBegin()
|
||||
dispBox( obj_[nObj,OBJ_ROW] + scn_[SCN_ROW_DIS],;
|
||||
obj_[nObj,OBJ_COL] + scn_[SCN_COL_DIS],;
|
||||
obj_[nObj,OBJ_TO_ROW] + scn_[SCN_ROW_DIS],;
|
||||
obj_[nObj,OBJ_TO_COL] + scn_[SCN_COL_DIS],;
|
||||
obj_[nObj,OBJ_BOX_SHAPE],;
|
||||
'gr+/b' /* cColor */)
|
||||
DispEnd()
|
||||
ELSEIF obj_[nObj,OBJ_TYPE] == OBJ_O_FIELD .OR. ;
|
||||
obj_[nObj,OBJ_TYPE] == OBJ_O_EXP
|
||||
DispBegin()
|
||||
@ obj_[nObj,OBJ_ROW]+scn_[SCN_ROW_DIS], ;
|
||||
obj_[nObj,OBJ_COL]+scn_[SCN_COL_DIS] ;
|
||||
say obj_[nObj,OBJ_TEXT] color cColor
|
||||
DispEnd()
|
||||
ENDIF
|
||||
RETURN NIL
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrDispSelctd( obj_,scn_ )
|
||||
LOCAL i,j,nCol,nRow
|
||||
|
||||
IF ! empty( scn_[ SCN_TEXT_BLOCK_ ] )
|
||||
DispBegin()
|
||||
|
||||
FOR i := scn_[ SCN_TEXT_BLOCK_, 1 ] TO scn_[ SCN_TEXT_BLOCK_, 3 ]
|
||||
IF ( nRow := i + scn_[ SCN_ROW_DIS ] ) <= scn_[ SCN_BOTTOM ]
|
||||
FOR j := scn_[ SCN_TEXT_BLOCK_, 2 ] TO scn_[ SCN_TEXT_BLOCK_, 4 ]
|
||||
IF ( nCol := j + scn_[ SCN_COL_DIS ] ) <= scn_[ SCN_RIGHT ]
|
||||
@ nRow, nCol SAY scrGetChar( obj_, i, j ) COLOR 'GR+/R'
|
||||
ENDIF
|
||||
NEXT
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
DispEnd()
|
||||
ENDIF
|
||||
RETURN NIL
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrDispGhost( obj_,scn_,gst_ )
|
||||
LOCAL i,j,nRow,nCol
|
||||
|
||||
HB_SYMBOL_UNUSED( obj_ )
|
||||
|
||||
DispBegin()
|
||||
FOR i := gst_[ 1 ] TO gst_[ 3 ]
|
||||
IF ( nRow := i + scn_[ SCN_ROW_DIS ] ) <= scn_[ SCN_BOTTOM ]
|
||||
FOR j := gst_[ 2 ] TO gst_[ 4 ]
|
||||
IF ( nCol := j + scn_[ SCN_COL_DIS ] ) <= scn_[ SCN_RIGHT ]
|
||||
@ nRow, nCol SAY THE_FILL COLOR 'GR+/R'
|
||||
ENDIF
|
||||
NEXT
|
||||
ENDIF
|
||||
NEXT
|
||||
DispEnd()
|
||||
|
||||
RETURN NIL
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrMove( obj_, scn_ )
|
||||
LOCAL i
|
||||
LOCAL crs := setCursor( 0 )
|
||||
LOCAL nOff, cText, nRow, nCol, cColor
|
||||
|
||||
dispBegin()
|
||||
|
||||
dispBox(scn_[ SCN_TOP ],;
|
||||
scn_[ SCN_LEFT ],;
|
||||
scn_[ SCN_BOTTOM ],;
|
||||
scn_[ SCN_RIGHT ],;
|
||||
scn_[ SCN_DRAW_FILL ],;
|
||||
scn_[ SCN_CLR_PREV ] )
|
||||
|
||||
FOR i := 1 TO len( obj_ )
|
||||
IF obj_[ i,OBJ_ROW ] + scn_[ SCN_ROW_DIS ] <= scn_[ SCN_BOTTOM ] .AND. ;
|
||||
obj_[ i,OBJ_COL ] + scn_[ SCN_COL_DIS ] <= scn_[ SCN_RIGHT ]
|
||||
|
||||
nOff := obj_[ i,OBJ_COL ] + scn_[ SCN_COL_DIS ]
|
||||
nRow := obj_[ i,OBJ_ROW ] + scn_[ SCN_ROW_DIS ]
|
||||
nCol := obj_[ i,OBJ_COL ] + scn_[ SCN_COL_DIS ]
|
||||
|
||||
IF nOff < 0
|
||||
nCol := 0
|
||||
ENDIF
|
||||
|
||||
IF obj_[ i,OBJ_TYPE ] == OBJ_O_BOX
|
||||
cColor := iif( scn_[ SCN_OBJ_SELECTED ] == i, scn_[ SCN_CLR_SELECT ],;
|
||||
iif( scn_[ SCN_OBJ_HILITE ] == i, scn_[ SCN_CLR_HILITE ],;
|
||||
'W/B' /* obj_[i,OBJ_COLOR] */ ) )
|
||||
DO CASE
|
||||
CASE VouchInArray( obj_[ i,OBJ_MDL_F_TYPE ], { 61,62,63,67,68 } )
|
||||
dispBox( obj_[ i,OBJ_ROW ] + scn_[ SCN_ROW_DIS ],;
|
||||
obj_[ i,OBJ_COL ] + scn_[ SCN_COL_DIS ],;
|
||||
obj_[ i,OBJ_TO_ROW ] + scn_[ SCN_ROW_DIS ],;
|
||||
obj_[ i,OBJ_TO_COL ] + scn_[ SCN_COL_DIS ],;
|
||||
substr( obj_[ i,OBJ_BOX_SHAPE ], 1, 8 ),;
|
||||
cColor )
|
||||
|
||||
CASE VouchInArray( obj_[ i, OBJ_MDL_F_TYPE ], { 64,65 } ) // Line
|
||||
@ obj_[ i, OBJ_ROW ] + scn_[ SCN_ROW_DIS ],;
|
||||
obj_[ i, OBJ_COL ] + scn_[ SCN_COL_DIS ] ;
|
||||
TO obj_[ i, OBJ_TO_ROW ] + scn_[ SCN_ROW_DIS ],;
|
||||
obj_[ i, OBJ_TO_COL ] + scn_[ SCN_COL_DIS ] ;
|
||||
COLOR cColor
|
||||
|
||||
ENDCASE
|
||||
ENDIF
|
||||
|
||||
IF obj_[i,OBJ_TYPE] == OBJ_O_FIELD
|
||||
cText := obj_[ i,OBJ_TEXT ]
|
||||
cColor := iif( scn_[ SCN_OBJ_SELECTED ] == i,scn_[ SCN_CLR_SELECT ],;
|
||||
iif( scn_[ SCN_OBJ_HILITE ] == i,scn_[ SCN_CLR_HILITE ],;
|
||||
'W+/W' /* obj_[i,OBJ_COLOR] */ ))
|
||||
IF nOff < 0
|
||||
cText := substr( obj_[ i,OBJ_TEXT ], abs( nOff ) + 1 )
|
||||
ENDIF
|
||||
@ nRow, nCol SAY cText COLOR cColor
|
||||
ENDIF
|
||||
|
||||
IF obj_[i,OBJ_TYPE] == OBJ_O_TEXT
|
||||
cText := obj_[ i,OBJ_EQN ]
|
||||
cColor := iif( scn_[SCN_OBJ_SELECTED]==i,scn_[SCN_CLR_SELECT],;
|
||||
iif( empty(obj_[i,OBJ_COLOR]),scn_[SCN_CLR_TEXT],;
|
||||
'W/B' /* obj_[i,OBJ_COLOR] */))
|
||||
IF nOff < 0
|
||||
cText := substr( obj_[ i,OBJ_EQN ], abs( nOff ) + 1 )
|
||||
ENDIF
|
||||
|
||||
@ nRow, nCol SAY cText COLOR cColor
|
||||
ENDIF
|
||||
ELSEIF ( obj_[ i,OBJ_ROW ] + scn_[ SCN_ROW_DIS ] > scn_[ SCN_BOTTOM ] )
|
||||
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
ScrDispSelctd( obj_, scn_ )
|
||||
dispEnd()
|
||||
setcursor( crs )
|
||||
|
||||
RETURN NIL
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrMoveLine( obj_,scn_ )
|
||||
LOCAL scrL,scrR,i,crs, nRow, nCol, cText, nOff, cColor
|
||||
|
||||
crs := setCursor( 0 )
|
||||
|
||||
IF scn_[ SCN_ROW_PREV ] == scn_[ SCN_ROW_CUR ]
|
||||
dispbegin()
|
||||
dispBox(scn_[SCN_ROW_CUR ],;
|
||||
scn_[SCN_LEFT ],;
|
||||
scn_[SCN_ROW_CUR ],;
|
||||
scn_[SCN_RIGHT ],;
|
||||
scn_[SCN_DRAW_FILL],;
|
||||
scn_[SCN_CLR_PREV ] )
|
||||
|
||||
scrL := VouchWndSave(scn_[SCN_ROW_CUR],0,scn_[SCN_ROW_CUR],scn_[SCN_LEFT]-1)
|
||||
IF scn_[SCN_RIGHT] < maxcol()
|
||||
scrR := VouchWndSave( scn_[SCN_ROW_CUR],scn_[SCN_RIGHT]+1,scn_[SCN_ROW_CUR],maxcol() )
|
||||
ENDIF
|
||||
|
||||
FOR i := 1 TO len(obj_)
|
||||
nOff := obj_[i,OBJ_COL]+scn_[SCN_COL_DIS]
|
||||
nRow := obj_[i,OBJ_ROW]+scn_[SCN_ROW_DIS]
|
||||
nCol := nOff
|
||||
|
||||
IF obj_[i,OBJ_TYPE] == OBJ_O_BOX
|
||||
DO CASE
|
||||
CASE VouchInArray(obj_[i,OBJ_MDL_F_TYPE],{64,65}) // Lines V.H
|
||||
@ obj_[i,OBJ_ROW] + scn_[SCN_ROW_DIS],;
|
||||
obj_[i,OBJ_COL] + scn_[SCN_COL_DIS] ;
|
||||
TO obj_[i,OBJ_TO_ROW] + scn_[SCN_ROW_DIS],;
|
||||
obj_[i,OBJ_TO_COL] + scn_[SCN_COL_DIS] ;
|
||||
COLOR iif(scn_[SCN_OBJ_HILITE]==i,scn_[SCN_CLR_HILITE],;
|
||||
'w/b' /* obj_[i,OBJ_COLOR] */)
|
||||
ENDCASE
|
||||
ENDIF
|
||||
|
||||
IF obj_[ i,OBJ_ROW ] == scn_[ SCN_ROW_REP ]
|
||||
IF obj_[i,OBJ_TYPE] == OBJ_O_FIELD .OR. obj_[i,OBJ_TYPE] == OBJ_O_EXP
|
||||
cText := obj_[i,OBJ_TEXT]
|
||||
cColor := iif(scn_[SCN_OBJ_SELECTED]==i,scn_[SCN_CLR_SELECT],;
|
||||
iif(scn_[SCN_OBJ_HILITE ]==i,scn_[SCN_CLR_HILITE],;
|
||||
'W+/W' /* obj_[i,OBJ_COLOR] */ ))
|
||||
@ nRow, nCol SAY cText COLOR cColor
|
||||
ENDIF
|
||||
|
||||
IF obj_[i,OBJ_TYPE] == OBJ_O_TEXT
|
||||
cText := obj_[i,OBJ_EQN]
|
||||
cColor := iif(scn_[SCN_OBJ_SELECTED]==i,scn_[SCN_CLR_SELECT],;
|
||||
iif(empty(obj_[i,OBJ_COLOR]),scn_[SCN_CLR_TEXT],;
|
||||
'W/B' /* obj_[i,OBJ_COLOR] */))
|
||||
@ nRow, nCol SAY cText COLOR cColor
|
||||
ENDIF
|
||||
ENDIF
|
||||
NEXT
|
||||
|
||||
scrDispSelctd(obj_,scn_) // Display Selected Screen
|
||||
|
||||
VouchWndRest(scrL)
|
||||
IF scn_[SCN_RIGHT] < maxcol()
|
||||
VouchWndRest(scrR)
|
||||
ENDIF
|
||||
|
||||
dispEnd()
|
||||
ELSE
|
||||
scrMove(obj_,scn_)
|
||||
ENDIF
|
||||
setCursor(crs)
|
||||
RETURN NIL
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrMouse( obj_, scn_, nEvent )
|
||||
LOCAL nmRow, nmCol
|
||||
LOCAL aEvents_:= { K_LBUTTONUP, K_LBUTTONDOWN, K_MMLEFTDOWN }
|
||||
|
||||
STATIC nLastCol := 0
|
||||
STATIC nLastRow := 0
|
||||
STATIC lAnchored := .f.
|
||||
STATIC nCursor
|
||||
|
||||
IF !( VouchInArray( nEvent, aEvents_ ) )
|
||||
RETURN .f.
|
||||
ENDIF
|
||||
|
||||
nmRow := mRow()
|
||||
nmCol := mCol()
|
||||
|
||||
IF nmRow < scn_[ SCN_TOP ] .OR. nmRow > scn_[ SCN_BOTTOM ] .OR. ;
|
||||
nmCol < scn_[ SCN_LEFT ] .OR. nmCol > scn_[ SCN_RIGHT ]
|
||||
RETURN .f.
|
||||
ENDIF
|
||||
|
||||
scrToMouse( scn_, nmRow, nmCol )
|
||||
|
||||
IF nEvent == K_LDBLCLK
|
||||
|
||||
ELSEIF nEvent == K_MMLEFTDOWN /*K_LBUTTONDOWN */ .AND. !( lAnchored )
|
||||
IF scrChkObj( obj_,scn_ ) > 0 .AND. scn_[ SCN_MODE ] <> OBJ_MODE_SELECT
|
||||
nCursor := SetCursor( 0 )
|
||||
|
||||
lAnchored := .t.
|
||||
scn_[ SCN_LASTKEY ] := K_F6
|
||||
// Wvt_SetMousePos( scn_[ SCN_ROW_CUR ], scn_[ SCN_COL_CUR ] )
|
||||
ENDIF
|
||||
|
||||
ELSEIF nEvent == K_MMLEFTDOWN .AND. lAnchored
|
||||
|
||||
ELSEIF nEvent == K_LBUTTONUP .AND. lAnchored
|
||||
// Wvt_SetMousePos( scn_[ SCN_ROW_CUR ], scn_[ SCN_COL_CUR ] )
|
||||
SetCursor( nCursor )
|
||||
lAnchored := .f.
|
||||
__keyboard( chr( K_ENTER ) )
|
||||
|
||||
ELSEIF nEvent == K_LBUTTONUP
|
||||
|
||||
ENDIF
|
||||
|
||||
RETURN .t.
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrToMouse( scn_, nmRow, nmCol )
|
||||
LOCAL nRowOff, nColOff
|
||||
|
||||
nRowOff := nmRow - scn_[SCN_ROW_CUR]
|
||||
IF nRowOff <> 0
|
||||
scn_[ SCN_ROW_CUR ] += nRowOff
|
||||
scn_[ SCN_ROW_REP ] += nRowOff
|
||||
ENDIF
|
||||
|
||||
nColOff := nmCol - scn_[ SCN_COL_CUR ]
|
||||
IF nColOff <> 0
|
||||
scn_[ SCN_COL_CUR ] += nColOff
|
||||
scn_[ SCN_COL_REP ] += nColOff
|
||||
ENDIF
|
||||
|
||||
RETURN NIL
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
@@ -1,923 +0,0 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* CUI Forms Editor
|
||||
*
|
||||
* Copyright 2011 Pritpal Bedi <bedipritpal@hotmail.com>
|
||||
* http://harbour-project.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this software; see the file COPYING. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
|
||||
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
|
||||
*
|
||||
* As a special exception, the Harbour Project gives permission for
|
||||
* additional uses of the text contained in its release of Harbour.
|
||||
*
|
||||
* The exception is that, if you link the Harbour libraries with other
|
||||
* files to produce an executable, this does not by itself cause the
|
||||
* resulting executable to be covered by the GNU General Public License.
|
||||
* Your use of that executable is in no way restricted on account of
|
||||
* linking the Harbour library code into it.
|
||||
*
|
||||
* This exception does not however invalidate any other reasons why
|
||||
* the executable file might be covered by the GNU General Public License.
|
||||
*
|
||||
* This exception applies only to the code released by the Harbour
|
||||
* Project under the name Harbour. If you copy code from other
|
||||
* Harbour Project or Free Software Foundation releases into a copy of
|
||||
* Harbour, as the General Public License permits, the exception does
|
||||
* not apply to the code that you add in this way. To avoid misleading
|
||||
* anyone as to the status of such modified files, you must delete
|
||||
* this exception notice from them.
|
||||
*
|
||||
* If you write modifications of your own for Harbour, it is your choice
|
||||
* whether to permit this exception to apply to your modifications.
|
||||
* If you do not wish that, delete this exception notice.
|
||||
*
|
||||
*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*
|
||||
* EkOnkar
|
||||
* ( The LORD is ONE )
|
||||
*
|
||||
* Harbour CUI Editor Source
|
||||
*
|
||||
* Pritpal Bedi
|
||||
* 13Aug2011
|
||||
*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
#include "hbcuied.ch"
|
||||
#include "common.ch"
|
||||
#include "inkey.ch"
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrAddBox( obj_, scn_, nObj, Sel )
|
||||
LOCAL nKey,o_,border,cClr, nnObj, cFile
|
||||
|
||||
nnObj := nObj
|
||||
cFile := ''
|
||||
sel := 2
|
||||
|
||||
IF nnObj == 0
|
||||
o_:= scrObjBlank()
|
||||
|
||||
o_[ OBJ_TYPE ] := OBJ_O_BOX
|
||||
o_[ OBJ_ROW ] := scn_[ SCN_ROW_REP ]
|
||||
o_[ OBJ_COL ] := scn_[ SCN_COL_REP ]
|
||||
o_[ OBJ_TO_ROW ] := scn_[ SCN_ROW_REP ]
|
||||
o_[ OBJ_TO_COL ] := scn_[ SCN_COL_REP ]
|
||||
o_[ OBJ_SECTION ] := scrSecCur( scn_, scn_[ SCN_ROW_REP ] )
|
||||
o_[ OBJ_F_LEN ] := 9
|
||||
o_[ OBJ_MDL_F_TYPE ] := sel + 60
|
||||
|
||||
aadd( obj_, o_ )
|
||||
nObj := len( obj_ )
|
||||
ENDIF
|
||||
|
||||
border := 'ÚÄ¿³ÙÄÀ³' // can be DOUBLE_SINGLE, etc
|
||||
cClr := "w/b"
|
||||
obj_[ nObj, OBJ_BORDER ] := 0.5
|
||||
|
||||
obj_[ nObj, OBJ_BOX_SHAPE ] := border
|
||||
obj_[ nObj, OBJ_COLOR ] := cClr
|
||||
obj_[ nObj, OBJ_ID ] := "Frame"
|
||||
obj_[ nObj, OBJ_EQN ] := cFile
|
||||
obj_[ nObj, OBJ_PATTERN ] := 'CLEAR '
|
||||
|
||||
IF nnObj > 0
|
||||
scrOnLastCol( obj_, scn_, nObj )
|
||||
scrMove( obj_, scn_ )
|
||||
ENDIF
|
||||
|
||||
IF .t.
|
||||
scrMsg( 'Draw Frame WITH <Arrow Keys>. Finish WITH <Enter>' )
|
||||
|
||||
DO WHILE .t.
|
||||
nKey := inkey( 0 )
|
||||
DO CASE
|
||||
CASE nKey == K_RIGHT
|
||||
IF scrMovRgt( scn_ )
|
||||
obj_[ nObj,OBJ_TO_COL ]++
|
||||
ENDIF
|
||||
CASE nKey == K_LEFT
|
||||
IF scrMovLft( scn_ )
|
||||
obj_[ nObj,OBJ_TO_COL ]--
|
||||
ENDIF
|
||||
CASE nKey == K_DOWN
|
||||
IF scrMovDn( scn_ )
|
||||
obj_[ nObj,OBJ_TO_ROW ]++
|
||||
ENDIF
|
||||
CASE nKey == K_UP
|
||||
IF scrMovUp( scn_ )
|
||||
obj_[ nObj,OBJ_TO_ROW ]--
|
||||
ENDIF
|
||||
CASE nKey == K_ENTER
|
||||
EXIT
|
||||
ENDCASE
|
||||
scrMove( obj_,scn_ )
|
||||
scrStatus( obj_,scn_ )
|
||||
ENDDO
|
||||
ENDIF
|
||||
|
||||
scrOrdObj( obj_ )
|
||||
scrMsg()
|
||||
scn_[SCN_REFRESH] := OBJ_REFRESH_ALL
|
||||
|
||||
RETURN NIL
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrAddFld( obj_,scn_,nObj )
|
||||
LOCAL v_, n, sel_
|
||||
|
||||
sel_:= scrVvSelAble( scn_ )
|
||||
v_ := iif( nObj > 0, scrObj2Vv( obj_[ nObj ] ), scrVvBlank() )
|
||||
n := v_[ VV_FIELD ]
|
||||
IF nObj == 0
|
||||
v_[ VV_FIELD ] := 0
|
||||
v_[ VV_ID ] := space( 10 )
|
||||
v_[ VV_F_PIC ] := space( 15 )
|
||||
v_[ VV_COLOR ] := 'N/W '
|
||||
ENDIF
|
||||
|
||||
v_[ VV_EQN ] := 'fieldget('+ ltrim( str( n ) ) + ')'
|
||||
|
||||
sel_[ VV_ALIGN ] := .f.
|
||||
sel_[ VV_PRN_LEN ] := .f.
|
||||
sel_[ VV_PRN_LEN ] := .f.
|
||||
sel_[ VV_ALIGN ] := .f.
|
||||
sel_[ VV_COLOR ] := .f.
|
||||
sel_[ VV_POINT ] := .f.
|
||||
sel_[ VV_COL_JUST ] := .f.
|
||||
sel_[ VV_PATTERN ] := .f.
|
||||
sel_[ VV_F_TYPE ] := .T.
|
||||
|
||||
scrField( nObj, 1, obj_, scn_, v_, sel_, OBJ_CLR_FIELD )
|
||||
|
||||
IF nObj > 0
|
||||
scrOrdObj( obj_ )
|
||||
ENDIF
|
||||
|
||||
RETURN NIL
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrAddTxt( obj_,scn_,nKey,nMode )
|
||||
LOCAL txt_:={},n, lClub,i
|
||||
LOCAL n1,s1,s2,nTxt,nDel
|
||||
LOCAL nRepCol := scn_[SCN_COL_REP], nRepRow := scn_[SCN_ROW_REP]
|
||||
LOCAL lOrder := .f.
|
||||
// nMode 1.Add 2.Del 3.BS
|
||||
|
||||
// Scan obj_ FOR Text Objects Related WITH Current Report Row
|
||||
aeval( obj_,{|e_| iif( e_[ OBJ_TYPE ] == OBJ_O_TEXT .AND. e_[ OBJ_ROW ] == nRepRow, aadd( txt_,e_ ),'' ) } )
|
||||
IF nMode == 1 // New Character
|
||||
IF empty( txt_ ) .OR. ascan( txt_,{|e_| VouchInRange( nRepCol, e_[OBJ_COL],e_[OBJ_TO_COL] ) } ) == 0
|
||||
aadd( txt_, scrObjBlank() ) ; lOrder := .t.
|
||||
nTxt := len( txt_ )
|
||||
txt_[ nTxt, OBJ_TYPE ] := OBJ_O_TEXT
|
||||
txt_[ nTxt, OBJ_F_TYPE ] := 'C'
|
||||
txt_[ nTxt, OBJ_F_LEN ] := 1
|
||||
txt_[ nTxt, OBJ_ALIGN ] := 'L'
|
||||
txt_[ nTxt, OBJ_ROW ] := scn_[SCN_ROW_REP]
|
||||
txt_[ nTxt, OBJ_COL ] := scn_[SCN_COL_REP]
|
||||
txt_[ nTxt, OBJ_EQN ] := ''
|
||||
txt_[ nTxt, OBJ_ID ] := 'Text'
|
||||
txt_[ nTxt, OBJ_COLOR ] := 'N/W'
|
||||
txt_[ nTxt, OBJ_PITCH ] := 10
|
||||
txt_[ nTxt, OBJ_SECTION ] := scrSecCur( scn_,scn_[SCN_ROW_REP] )
|
||||
txt_[ nTxt, OBJ_TO_ROW ] := scn_[SCN_ROW_REP]
|
||||
txt_[ nTxt, OBJ_TO_COL ] := scn_[SCN_COL_REP]
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
nTxt := ascan( txt_,{|e_| VouchInRange( nRepCol, e_[ OBJ_COL ], e_[ OBJ_TO_COL ] ) } )
|
||||
|
||||
IF nMode == 1
|
||||
txt_[nTxt,OBJ_EQN] := substr( txt_[nTxt,OBJ_EQN],1,;
|
||||
scn_[SCN_COL_REP]-txt_[nTxt,OBJ_COL] ) + ;
|
||||
chr( nKey ) + ;
|
||||
substr( txt_[nTxt,OBJ_EQN],scn_[SCN_COL_REP]-txt_[nTxt,OBJ_COL] + ;
|
||||
iif( ReadInsert(),1,2 ) )
|
||||
txt_[nTxt,OBJ_TO_COL] := txt_[nTxt,OBJ_COL]+len( txt_[nTxt,OBJ_EQN] )-1
|
||||
|
||||
ELSEIF nMode == 2 .OR. nMode == 3 // Delete
|
||||
IF readInsert()
|
||||
txt_[nTxt,OBJ_EQN] := substr( txt_[nTxt,OBJ_EQN],1,;
|
||||
scn_[SCN_COL_REP]-txt_[nTxt,OBJ_COL] ) + ;
|
||||
substr( txt_[nTxt,OBJ_EQN],scn_[SCN_COL_REP]-txt_[nTxt,OBJ_COL] + 2 )
|
||||
txt_[nTxt,OBJ_TO_COL] := txt_[nTxt,OBJ_COL]+len( txt_[nTxt,OBJ_EQN] )-1
|
||||
ELSE // Divide it IN two objects
|
||||
s1 := substr( txt_[nTxt,OBJ_EQN],1,scn_[SCN_COL_REP]-txt_[nTxt,OBJ_COL] )
|
||||
s2 := substr( txt_[nTxt,OBJ_EQN],scn_[SCN_COL_REP]-txt_[nTxt,OBJ_COL] + 2 )
|
||||
nDel := 0
|
||||
IF len( s1 ) > 0
|
||||
txt_[nTxt,OBJ_EQN] := s1
|
||||
txt_[nTxt,OBJ_TO_COL] := txt_[nTxt,OBJ_COL]+len( s1 )-1
|
||||
txt_[nTxt,OBJ_PRN_LEN] := len( s1 )
|
||||
ELSE
|
||||
nDel := nTxt
|
||||
ENDIF
|
||||
|
||||
IF len( s2 ) > 0
|
||||
IF nDel == 0
|
||||
aadd( txt_,aclone( txt_[nTxt] ) ) // scrObjBlank() )
|
||||
lOrder := .t.
|
||||
n1 := len( txt_ )
|
||||
ELSE
|
||||
n1 := nDel
|
||||
ENDIF
|
||||
txt_[n1,OBJ_TYPE] := OBJ_O_TEXT
|
||||
txt_[n1,OBJ_F_TYPE] := 'C'
|
||||
txt_[n1,OBJ_F_LEN] := len( s2 )
|
||||
txt_[n1,OBJ_PRN_LEN] := len( s2 )
|
||||
// txt_[n1,OBJ_ALIGN] := 'L'
|
||||
txt_[n1,OBJ_ROW] := scn_[SCN_ROW_REP]
|
||||
txt_[n1,OBJ_COL] := scn_[SCN_COL_REP]+1
|
||||
txt_[n1,OBJ_EQN] := s2
|
||||
txt_[n1,OBJ_ID] := 'Text'
|
||||
txt_[n1,OBJ_SECTION] := scrSecCur( scn_,scn_[SCN_ROW_REP] )
|
||||
txt_[n1,OBJ_TO_ROW] := scn_[SCN_ROW_REP]
|
||||
txt_[n1,OBJ_TO_COL] := txt_[n1,OBJ_COL]+len( s2 )-1
|
||||
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
|
||||
VouchAShrink( txt_,n )
|
||||
ELSE
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDDO
|
||||
IF empty( txt_ )
|
||||
aadd( txt_,scrObjBlank() )
|
||||
ENDIF
|
||||
// CLUB DIFFERENT TEXT OBJECTS IF THESE ARE ADJACENT
|
||||
asort( txt_,,,{|e_,f_| e_[OBJ_COL]<f_[OBJ_COL] } )
|
||||
|
||||
DO WHILE .t.
|
||||
lClub := .f.
|
||||
// n := txt_[1,OBJ_TO_COL]
|
||||
FOR i := 2 TO len( txt_ )
|
||||
IF txt_[i,OBJ_COL] == txt_[i-1,OBJ_TO_COL]+1
|
||||
txt_[i-1,OBJ_EQN] += txt_[i,OBJ_EQN] // Club both
|
||||
txt_[i-1,OBJ_TO_COL] := txt_[i-1,OBJ_COL] + len( txt_[i-1,OBJ_EQN] ) - 1
|
||||
txt_[i-1,OBJ_F_LEN] := len( txt_[i-1,OBJ_EQN] )
|
||||
VouchAShrink( txt_,i )
|
||||
// lUpdate := .t.
|
||||
lClub := .t.
|
||||
ENDIF
|
||||
NEXT
|
||||
IF !lClub
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDDO
|
||||
ENDIF
|
||||
|
||||
DO WHILE .t.
|
||||
IF( n := ascan( obj_,{|e_| e_[OBJ_TYPE] == OBJ_O_TEXT .AND. ;
|
||||
e_[OBJ_ROW ] == scn_[SCN_ROW_REP] } ) ) > 0
|
||||
VouchAShrink( obj_,n )
|
||||
IF empty( obj_ )
|
||||
aadd( obj_, scrObjBlank() )
|
||||
ENDIF
|
||||
ELSE
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDDO
|
||||
|
||||
aeval( txt_,{|e_| iif( e_[OBJ_ROW]>0,aadd( obj_,e_ ),'' ) } ) // Now attach txt_
|
||||
|
||||
DO WHILE .t.
|
||||
IF( n := ascan( obj_,{|e_| e_[OBJ_TO_COL] < e_[OBJ_COL] } ) ) > 0
|
||||
VouchAShrink( obj_,n )
|
||||
IF empty( obj_ )
|
||||
aadd( obj_,scrObjBlank() )
|
||||
ENDIF
|
||||
ELSE
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDDO
|
||||
|
||||
IF lOrder
|
||||
// scrOrdObj( obj_ )
|
||||
ENDIF
|
||||
IF nMode == 1
|
||||
keyboard( chr( K_RIGHT ) )
|
||||
ENDIF
|
||||
|
||||
scn_[SCN_REFRESH] := OBJ_REFRESH_LINE
|
||||
|
||||
RETURN NIL
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrProperty( obj_, scn_ )
|
||||
LOCAL prp_:= {}
|
||||
|
||||
HB_SYMBOL_UNUSED( obj_ )
|
||||
|
||||
DO CASE
|
||||
CASE scn_[ SCN_DESIGN ] == DGN_MODULE
|
||||
scn_[SCN_PROPERTY] := prp_
|
||||
|
||||
ENDCASE
|
||||
|
||||
RETURN NIL
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrVvBlank()
|
||||
LOCAL v_:= array( VV_INIT_VRBLS )
|
||||
|
||||
v_[ VV_ID ] := 'New '
|
||||
v_[ VV_FIELD ] := 0
|
||||
v_[ VV_F_TYPE ] := 'C'
|
||||
v_[ VV_F_LEN ] := 25
|
||||
v_[ VV_F_DEC ] := 0
|
||||
v_[ VV_ATTRB ] := 'NONE '
|
||||
v_[ VV_EQN ] := ' '
|
||||
v_[ VV_PRN_LEN ] := 25
|
||||
v_[ VV_F_PIC ] := ' '
|
||||
v_[ VV_PITCH ] := 10
|
||||
v_[ VV_FONT ] := 'COURIER '
|
||||
v_[ VV_BOLD ] := .f.
|
||||
v_[ VV_ITALIC ] := .f.
|
||||
v_[ VV_UNDERLN ] := .f.
|
||||
v_[ VV_S_SCRPT ] := .f.
|
||||
v_[ VV_U_SCRPT ] := .f.
|
||||
v_[ VV_HALF_H ] := .f.
|
||||
v_[ VV_ALIGN ] := 'C'
|
||||
v_[ VV_COLOR ] := 'W+/B '
|
||||
v_[ VV_ZERO ] := .t.
|
||||
v_[ VV_REPEATED ] := 'NO '
|
||||
v_[ VV_VERTICLE ] := .F.
|
||||
v_[ VV_WRAP_SEMI ] := .F.
|
||||
v_[ VV_FOR ] := space( 80 )
|
||||
v_[ VV_OBJ_UNIQUE ] := 0
|
||||
v_[ VV_MDL_F_TYPE ] := 0
|
||||
v_[ VV_POINT ] := 12
|
||||
v_[ VV_COL_JUST ] := 0
|
||||
v_[ VV_PATTERN ] := 'SOLID '
|
||||
v_[ VV_BORDER ] := 0.50
|
||||
|
||||
RETURN v_
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrVvSelAble( /*scn_*/ )
|
||||
LOCAL sel_:= array( VV_INIT_VRBLS )
|
||||
LOCAL isPrint := .f.
|
||||
|
||||
sel_[ VV_ID ] := .t.
|
||||
sel_[ VV_FIELD ] := .f.
|
||||
sel_[ VV_F_TYPE ] := .t.
|
||||
sel_[ VV_F_LEN ] := .t.
|
||||
sel_[ VV_F_DEC ] := .t.
|
||||
sel_[ VV_ATTRB ] := .f.
|
||||
sel_[ VV_EQN ] := .f.
|
||||
sel_[ VV_PRN_LEN ] := .T.
|
||||
sel_[ VV_F_PIC ] := .t.
|
||||
sel_[ VV_PITCH ] := isPrint
|
||||
sel_[ VV_FONT ] := isPrint
|
||||
sel_[ VV_BOLD ] := isPrint
|
||||
sel_[ VV_ITALIC ] := isPrint
|
||||
sel_[ VV_UNDERLN ] := isPrint
|
||||
sel_[ VV_S_SCRPT ] := .f. // isPrint
|
||||
sel_[ VV_U_SCRPT ] := .f. // isPrint
|
||||
sel_[ VV_HALF_H ] := isPrint
|
||||
sel_[ VV_ALIGN ] := .t. // isPrint
|
||||
sel_[ VV_COLOR ] := .t. // !isPrint
|
||||
sel_[ VV_ZERO ] := isPrint
|
||||
sel_[ VV_REPEATED ] := isPrint
|
||||
sel_[ VV_VERTICLE ] := isPrint
|
||||
sel_[ VV_WRAP_SEMI ] := isPrint
|
||||
sel_[ VV_FOR ] := isPrint
|
||||
sel_[ VV_OBJ_UNIQUE ] := .f.
|
||||
sel_[ VV_MDL_F_TYPE ] := .f.
|
||||
sel_[ VV_POINT ] := .T.
|
||||
sel_[ VV_COL_JUST ] := .t.
|
||||
sel_[ VV_PATTERN ] := .t.
|
||||
sel_[ VV_BORDER ] := .f.
|
||||
|
||||
RETURN sel_
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrVv2Obj( v_,o_ )
|
||||
|
||||
o_[ OBJ_ID ] := v_[ VV_ID ]
|
||||
o_[ OBJ_FIELD ] := v_[ VV_FIELD ]
|
||||
o_[ OBJ_F_TYPE ] := v_[ VV_F_TYPE ]
|
||||
o_[ OBJ_F_LEN ] := v_[ VV_F_LEN ]
|
||||
o_[ OBJ_F_DEC ] := v_[ VV_F_DEC ]
|
||||
o_[ OBJ_ATTRB ] := v_[ VV_ATTRB ]
|
||||
o_[ OBJ_EQN ] := v_[ VV_EQN ]
|
||||
o_[ OBJ_PRN_LEN ] := v_[ VV_PRN_LEN ]
|
||||
o_[ OBJ_F_PIC ] := v_[ VV_F_PIC ]
|
||||
o_[ OBJ_PITCH ] := v_[ VV_PITCH ]
|
||||
o_[ OBJ_FONT ] := v_[ VV_FONT ]
|
||||
o_[ OBJ_BOLD ] := v_[ VV_BOLD ]
|
||||
o_[ OBJ_ITALIC ] := v_[ VV_ITALIC ]
|
||||
o_[ OBJ_UNDERLN ] := v_[ VV_UNDERLN ]
|
||||
o_[ OBJ_S_SCRPT ] := v_[ VV_S_SCRPT ]
|
||||
o_[ OBJ_U_SCRPT ] := v_[ VV_U_SCRPT ]
|
||||
o_[ OBJ_HALF_H ] := v_[ VV_HALF_H ]
|
||||
o_[ OBJ_ALIGN ] := v_[ VV_ALIGN ]
|
||||
o_[ OBJ_COLOR ] := v_[ VV_COLOR ]
|
||||
o_[ OBJ_ZERO ] := v_[ VV_ZERO ]
|
||||
o_[ OBJ_REPEATED ] := v_[ VV_REPEATED ]
|
||||
o_[ OBJ_VERTICLE ] := v_[ VV_VERTICLE ]
|
||||
o_[ OBJ_WRAP_SEMI ] := v_[ VV_WRAP_SEMI ]
|
||||
o_[ OBJ_FOR ] := v_[ VV_FOR ]
|
||||
o_[ OBJ_OBJ_UNIQUE ] := v_[ VV_OBJ_UNIQUE ]
|
||||
o_[ OBJ_MDL_F_TYPE ] := v_[ VV_MDL_F_TYPE ]
|
||||
o_[ OBJ_POINT ] := v_[ VV_POINT ]
|
||||
o_[ OBJ_COL_JUST ] := v_[ VV_COL_JUST ]
|
||||
o_[ OBJ_PATTERN ] := v_[ VV_PATTERN ]
|
||||
o_[ OBJ_BORDER ] := v_[ VV_BORDER ]
|
||||
|
||||
RETURN o_
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrObj2Vv( o_ )
|
||||
LOCAL v_:={}
|
||||
|
||||
aadd( v_, pad( o_[OBJ_ID ],15 ) )
|
||||
aadd( v_, o_[ OBJ_FIELD ] )
|
||||
aadd( v_, o_[ OBJ_F_TYPE ] )
|
||||
aadd( v_, o_[ OBJ_F_LEN ] )
|
||||
aadd( v_, o_[ OBJ_F_DEC ] )
|
||||
aadd( v_, o_[ OBJ_ATTRB ] )
|
||||
aadd( v_, o_[ OBJ_EQN ] )
|
||||
aadd( v_, o_[ OBJ_PRN_LEN ] )
|
||||
aadd( v_, o_[ OBJ_F_PIC ] )
|
||||
aadd( v_, o_[ OBJ_PITCH ] )
|
||||
aadd( v_, o_[ OBJ_FONT ] )
|
||||
aadd( v_, o_[ OBJ_BOLD ] )
|
||||
aadd( v_, o_[ OBJ_ITALIC ] )
|
||||
aadd( v_, o_[ OBJ_UNDERLN ] )
|
||||
aadd( v_, o_[ OBJ_S_SCRPT ] )
|
||||
aadd( v_, o_[ OBJ_U_SCRPT ] )
|
||||
aadd( v_, o_[ OBJ_HALF_H ] )
|
||||
aadd( v_, o_[ OBJ_ALIGN ] )
|
||||
aadd( v_, o_[ OBJ_COLOR ] )
|
||||
aadd( v_, o_[ OBJ_ZERO ] )
|
||||
aadd( v_, o_[ OBJ_REPEATED ] )
|
||||
aadd( v_, o_[ OBJ_VERTICLE ] )
|
||||
aadd( v_, o_[ OBJ_WRAP_SEMI ] )
|
||||
aadd( v_, o_[ OBJ_FOR ] )
|
||||
aadd( v_, o_[ OBJ_OBJ_UNIQUE ] )
|
||||
aadd( v_, o_[ OBJ_MDL_F_TYPE ] )
|
||||
aadd( v_, o_[ OBJ_POINT ] )
|
||||
aadd( v_, o_[ OBJ_COL_JUST ] )
|
||||
aadd( v_, o_[ OBJ_PATTERN ] )
|
||||
aadd( v_, o_[ OBJ_BORDER ] )
|
||||
|
||||
RETURN v_
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrStr2Obj( s )
|
||||
LOCAL obj_:= scrObjBlank()
|
||||
|
||||
obj_[ OBJ_TYPE ] := val( substr( s, OBJ_OS_TYPE, OBJ_LEN_TYPE ) )
|
||||
obj_[ OBJ_ROW ] := val( substr( s, OBJ_OS_ROW, OBJ_LEN_ROW ) )
|
||||
obj_[ OBJ_COL ] := val( substr( s, OBJ_OS_COL, OBJ_LEN_COL ) )
|
||||
obj_[ OBJ_TEXT ] := substr( s, OBJ_OS_TEXT, OBJ_LEN_TEXT )
|
||||
obj_[ OBJ_COLOR ] := substr( s, OBJ_OS_COLOR, OBJ_LEN_COLOR )
|
||||
obj_[ OBJ_TO_ROW ] := val( substr( s, OBJ_OS_TO_ROW, OBJ_LEN_TO_ROW ) )
|
||||
obj_[ OBJ_TO_COL ] := val( substr( s, OBJ_OS_TO_COL, OBJ_LEN_TO_COL ) )
|
||||
obj_[ OBJ_ID ] := substr( s, OBJ_OS_ID, OBJ_LEN_ID )
|
||||
obj_[ OBJ_SECTION ] := val( substr( s, OBJ_OS_SECTION, OBJ_LEN_SECTION ) )
|
||||
obj_[ OBJ_ALIAS ] := substr( s, OBJ_OS_ALIAS, OBJ_LEN_ALIAS )
|
||||
obj_[ OBJ_FIELD ] := val( substr( s, OBJ_OS_FIELD, OBJ_LEN_FIELD ) )
|
||||
obj_[ OBJ_EQN ] := substr( s, OBJ_OS_EQN, OBJ_LEN_EQN )
|
||||
obj_[ OBJ_F_TYPE ] := substr( s, OBJ_OS_F_TYPE, OBJ_LEN_F_TYPE )
|
||||
obj_[ OBJ_F_LEN ] := val( substr( s, OBJ_OS_F_LEN, OBJ_LEN_F_LEN ) )
|
||||
obj_[ OBJ_F_DEC ] := val( substr( s, OBJ_OS_F_DEC, OBJ_LEN_F_DEC ) )
|
||||
obj_[ OBJ_F_PIC ] := substr( s, OBJ_OS_F_PIC, OBJ_LEN_F_PIC )
|
||||
obj_[ OBJ_ALIGN ] := substr( s, OBJ_OS_ALIGN, OBJ_LEN_ALIGN )
|
||||
obj_[ OBJ_PITCH ] := val( substr( s, OBJ_OS_PITCH, OBJ_LEN_PITCH ) )
|
||||
obj_[ OBJ_FONT ] := substr( s, OBJ_OS_FONT, OBJ_LEN_FONT )
|
||||
obj_[ OBJ_BOLD ] := substr( s, OBJ_OS_BOLD, OBJ_LEN_BOLD ) == 'T'
|
||||
obj_[ OBJ_ITALIC ] := substr( s, OBJ_OS_ITALIC, OBJ_LEN_ITALIC ) == 'T'
|
||||
obj_[ OBJ_UNDERLN ] := substr( s, OBJ_OS_UNDERLN, OBJ_LEN_UNDERLN ) == 'T'
|
||||
obj_[ OBJ_S_SCRPT ] := substr( s, OBJ_OS_S_SCRPT, OBJ_LEN_S_SCRPT ) == 'T'
|
||||
obj_[ OBJ_U_SCRPT ] := substr( s, OBJ_OS_U_SCRPT, OBJ_LEN_U_SCRPT ) == 'T'
|
||||
obj_[ OBJ_HALF_H ] := substr( s, OBJ_OS_HALF_H, OBJ_LEN_HALF_H ) == 'T'
|
||||
obj_[ OBJ_PRN_LEN ] := val( substr( s, OBJ_OS_PRN_LEN, OBJ_LEN_PRN_LEN ) )
|
||||
obj_[ OBJ_ZERO ] := substr( s, OBJ_OS_ZERO , OBJ_LEN_ZERO ) == 'T'
|
||||
obj_[ OBJ_REPEATED ] := substr( s, OBJ_OS_REPEATED, OBJ_LEN_REPEATED )
|
||||
obj_[ OBJ_VERTICLE ] := substr( s, OBJ_OS_VERTICLE, OBJ_LEN_VERTICLE ) == 'T'
|
||||
obj_[ OBJ_WRAP_SEMI ] := substr( s, OBJ_OS_WRAP_SEMI, OBJ_LEN_WRAP_SEMI ) == 'T'
|
||||
obj_[ OBJ_FOR ] := substr( s, OBJ_OS_FOR, OBJ_LEN_FOR )
|
||||
obj_[ OBJ_SEC_ROW ] := val( substr( s, OBJ_OS_SEC_ROW, OBJ_LEN_SEC_ROW ) )
|
||||
obj_[ OBJ_ATTRB ] := substr( s, OBJ_OS_ATTRB, OBJ_LEN_ATTRB )
|
||||
obj_[ OBJ_VAL ] := substr( s, OBJ_OS_VAL, OBJ_LEN_VAL )
|
||||
obj_[ OBJ_OBJ_UNIQUE ] := val( substr( s, OBJ_OS_OBJ_UNIQUE, OBJ_LEN_OBJ_UNIQUE ) )
|
||||
obj_[ OBJ_MDL_F_TYPE ] := val( substr( s, OBJ_OS_MDL_F_TYPE, OBJ_LEN_MDL_F_TYPE ) )
|
||||
obj_[ OBJ_POINT ] := val( substr( s, OBJ_OS_POINT, OBJ_LEN_POINT ) )
|
||||
obj_[ OBJ_COL_JUST ] := val( substr( s, OBJ_OS_COL_JUST, OBJ_LEN_COL_JUST ) )
|
||||
obj_[ OBJ_PATTERN ] := substr( s, OBJ_OS_PATTERN, OBJ_LEN_PATTERN )
|
||||
obj_[ OBJ_BORDER ] := val( substr( s, OBJ_OS_BORDER, OBJ_LEN_BORDER ) )
|
||||
|
||||
obj_[OBJ_TEXT ] := padc( alltrim( obj_[OBJ_TEXT] ),obj_[OBJ_F_LEN] )
|
||||
|
||||
obj_[OBJ_EQN ] := iif( obj_[ OBJ_TYPE ] == OBJ_O_TEXT, substr( obj_[ OBJ_EQN ], 1,;
|
||||
obj_[ OBJ_TO_COL ] - obj_[ OBJ_COL ] + 1 ), obj_[ OBJ_EQN ] )
|
||||
RETURN obj_
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrObj2str( obj_ )
|
||||
LOCAL s := ;
|
||||
str( obj_[ OBJ_TYPE ], OBJ_LEN_TYPE ) + ;
|
||||
str( obj_[ OBJ_ROW ], OBJ_LEN_ROW ) + ;
|
||||
str( obj_[ OBJ_COL ], OBJ_LEN_COL ) + ;
|
||||
pad( alltrim( obj_[ OBJ_TEXT ] ), OBJ_LEN_TEXT ) + ;
|
||||
pad( obj_[ OBJ_COLOR ], OBJ_LEN_COLOR ) + ;
|
||||
str( obj_[ OBJ_TO_ROW ], OBJ_LEN_TO_ROW ) + ;
|
||||
str( obj_[ OBJ_TO_COL ], OBJ_LEN_TO_COL ) + ;
|
||||
pad( obj_[ OBJ_ID ], OBJ_LEN_ID ) + ;
|
||||
str( obj_[ OBJ_SECTION ], OBJ_LEN_SECTION ) + ;
|
||||
pad( obj_[ OBJ_ALIAS ], OBJ_LEN_ALIAS ) + ;
|
||||
str( obj_[ OBJ_FIELD ], OBJ_LEN_FIELD ) + ;
|
||||
pad( obj_[ OBJ_EQN ], OBJ_LEN_EQN ) + ;
|
||||
pad( obj_[ OBJ_F_TYPE ], OBJ_LEN_F_TYPE ) + ;
|
||||
str( obj_[ OBJ_F_LEN ], OBJ_LEN_F_LEN ) + ;
|
||||
str( obj_[ OBJ_F_DEC ], OBJ_LEN_F_DEC ) + ;
|
||||
pad( obj_[ OBJ_F_PIC ], OBJ_LEN_F_PIC ) + ;
|
||||
pad( obj_[ OBJ_ALIGN ], OBJ_LEN_ALIGN ) + ;
|
||||
str( obj_[ OBJ_PITCH ], OBJ_LEN_PITCH ) + ;
|
||||
pad( obj_[ OBJ_FONT ], OBJ_LEN_FONT ) + ;
|
||||
iif( obj_[ OBJ_BOLD ], 'T', 'F' ) + ;
|
||||
iif( obj_[ OBJ_ITALIC ], 'T', 'F' ) + ;
|
||||
iif( obj_[ OBJ_UNDERLN ], 'T', 'F' ) + ;
|
||||
iif( obj_[ OBJ_S_SCRPT ], 'T', 'F' ) + ;
|
||||
iif( obj_[ OBJ_U_SCRPT ], 'T', 'F' ) + ;
|
||||
iif( obj_[ OBJ_HALF_H ], 'T', 'F' ) + ;
|
||||
str( obj_[ OBJ_PRN_LEN ], OBJ_LEN_PRN_LEN ) + ;
|
||||
iif( obj_[ OBJ_ZERO ], 'T', 'F' ) + ;
|
||||
pad( obj_[ OBJ_REPEATED ], OBJ_LEN_REPEATED ) + ;
|
||||
iif( obj_[ OBJ_VERTICLE ], 'T', 'F' ) + ;
|
||||
iif( obj_[ OBJ_WRAP_SEMI ], 'T', 'F' ) + ;
|
||||
pad( obj_[ OBJ_FOR ], OBJ_LEN_FOR ) + ;
|
||||
str( obj_[ OBJ_SEC_ROW ], OBJ_LEN_SEC_ROW ) + ;
|
||||
pad( obj_[ OBJ_ATTRB ], OBJ_LEN_ATTRB ) + ;
|
||||
pad( obj_[ OBJ_VAL ], OBJ_LEN_VAL ) + ;
|
||||
str( obj_[ OBJ_OBJ_UNIQUE ], OBJ_LEN_OBJ_UNIQUE ) + ;
|
||||
str( obj_[ OBJ_MDL_F_TYPE ], OBJ_LEN_MDL_F_TYPE ) + ;
|
||||
str( obj_[ OBJ_POINT ], OBJ_LEN_POINT ) + ;
|
||||
str( obj_[ OBJ_COL_JUST ], OBJ_LEN_COL_JUST ) + ;
|
||||
pad( obj_[ OBJ_PATTERN ], OBJ_LEN_PATTERN ) + ;
|
||||
str( obj_[ OBJ_BORDER ], OBJ_LEN_BORDER, 2 )
|
||||
|
||||
RETURN pad( s,490 ) // 10 FOR Random, 500 FOR attr
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrObjBlank()
|
||||
LOCAL o_:= array( OBJ_INIT_VRBLS )
|
||||
|
||||
o_[ OBJ_TYPE ] := 0
|
||||
o_[ OBJ_ROW ] := 0
|
||||
o_[ OBJ_COL ] := 0
|
||||
o_[ OBJ_TEXT ] := ''
|
||||
o_[ OBJ_COLOR ] := 'W/B '
|
||||
o_[ OBJ_TO_ROW ] := 0
|
||||
o_[ OBJ_TO_COL ] := 0
|
||||
o_[ OBJ_ID ] := ''
|
||||
o_[ OBJ_SECTION ] := 1
|
||||
o_[ OBJ_ALIAS ] := ''
|
||||
o_[ OBJ_FIELD ] := 0
|
||||
o_[ OBJ_EQN ] := ''
|
||||
o_[ OBJ_F_TYPE ] := ''
|
||||
o_[ OBJ_F_LEN ] := 0
|
||||
o_[ OBJ_F_DEC ] := 0
|
||||
o_[ OBJ_F_PIC ] := ''
|
||||
o_[ OBJ_ALIGN ] := 'L'
|
||||
o_[ OBJ_PITCH ] := 10
|
||||
o_[ OBJ_FONT ] := 'COURIER '
|
||||
o_[ OBJ_BOLD ] := .F.
|
||||
o_[ OBJ_ITALIC ] := .F.
|
||||
o_[ OBJ_UNDERLN ] := .F.
|
||||
o_[ OBJ_S_SCRPT ] := .F.
|
||||
o_[ OBJ_U_SCRPT ] := .F.
|
||||
o_[ OBJ_PRN_LEN ] := 0
|
||||
o_[ OBJ_HALF_H ] := .F.
|
||||
o_[ OBJ_ZERO ] := .T.
|
||||
o_[ OBJ_REPEATED ] := 'NO '
|
||||
o_[ OBJ_VERTICLE ] := .F.
|
||||
o_[ OBJ_WRAP_SEMI ] := .F.
|
||||
o_[ OBJ_FOR ] := space( 80 )
|
||||
o_[ OBJ_SEC_ROW ] := 0
|
||||
o_[ OBJ_ATTRB ] := 'NONE '
|
||||
o_[ OBJ_VAL ] := ' '
|
||||
o_[ OBJ_OBJ_UNIQUE ] := 0
|
||||
o_[ OBJ_MDL_F_TYPE ] := 0
|
||||
o_[ OBJ_POINT ] := 0
|
||||
o_[ OBJ_COL_JUST ] := 0
|
||||
o_[ OBJ_PATTERN ] := 'SOLID '
|
||||
o_[ OBJ_BORDER ] := 0.50
|
||||
|
||||
RETURN o_
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrScn2obj( scn_,nType )
|
||||
LOCAL obj_:={}
|
||||
|
||||
DEFAULT nType TO 0
|
||||
aeval( scn_,{|e_| iif( e_[2] == nType, aadd( obj_,scrStr2Obj( e_[3] ) ), '' ) } )
|
||||
|
||||
RETURN obj_
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
#IF 0
|
||||
FUNCTION scrClrFrBk( cClr )
|
||||
LOCAL nClrF, nClrB,cFr,cBk,n
|
||||
LOCAL pal_:={'W','N','N+','N++','BG','G','R','RB','GR',;
|
||||
'B','GR+','W+','B+','R+','BG+','G+','RB+','X'}
|
||||
LOCAL mnu_:= ;
|
||||
{'White', 'Black', 'Grey','Pale Grey','Baige', 'Green', 'Red',;
|
||||
'Magenta', 'Brown', 'Blue', 'Yellow','Bright White',;
|
||||
'Bright Blue', 'Bright Red', 'Bright Baige',;
|
||||
'Bright Green', 'Bright Magenta','None'}
|
||||
|
||||
cClr := iif( empty( cClr ),'W/B',alltrim( upper( cClr ) ) )
|
||||
IF( n := at( '/',cClr ) )==0
|
||||
RETURN pad( cClr,7 )
|
||||
ENDIF
|
||||
cFr := substr( cClr,1,n-1 )
|
||||
cBk := substr( cClr,n+1 )
|
||||
|
||||
nClrF := ascan( pal_,{|e| e == cFr} )
|
||||
nClrB := ascan( pal_,{|e| e == cBk} )
|
||||
|
||||
B_MSG 'ForeGround Color' ;
|
||||
CHOOSE mnu_ RESTORE SHADOW CENTER INTO nClrF INITIAL nClrF
|
||||
IF nClrF == 0
|
||||
RETURN space( 7 )
|
||||
ENDIF
|
||||
|
||||
B_MSG 'BackGround Color' ;
|
||||
CHOOSE mnu_ RESTORE SHADOW CENTER INTO nClrB INITIAL nClrB
|
||||
IF nClrB == 0
|
||||
RETURN space( 7 )
|
||||
ENDIF
|
||||
RETURN pad( pal_[nClrF]+'/'+pal_[nClrB],7 )
|
||||
#ENDIF
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrSecCur( scn_, nRepRow ) // Numeric id of sector
|
||||
LOCAL n,i
|
||||
n := 0
|
||||
FOR i := 1 TO len( scn_[ SCN_SECTORS_ ] )
|
||||
n += scn_[ SCN_SECTORS_, i, SCT_ROWS ]
|
||||
IF nRepRow <= n
|
||||
// n1 := i
|
||||
EXIT
|
||||
ENDIF
|
||||
NEXT
|
||||
RETURN scn_[ SCN_SECTORS_, i, SCT_ORDER ]
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrSecOrd( scn_, nRepRow ) // Index of sector
|
||||
LOCAL n,n1,i
|
||||
n := 0
|
||||
FOR i := 1 TO len( scn_[ SCN_SECTORS_ ] )
|
||||
n += scn_[ SCN_SECTORS_, i, SCT_ROWS ]
|
||||
IF nRepRow <= n
|
||||
n1 := i
|
||||
EXIT
|
||||
ENDIF
|
||||
NEXT
|
||||
RETURN n1
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
/* Sector wise row position */
|
||||
FUNCTION scrSecRow( scn_,nRepRow )
|
||||
LOCAL n,n1,i
|
||||
n := 0 ; n1 := 0
|
||||
FOR i := 1 TO len( scn_[ SCN_SECTORS_ ] )
|
||||
n += scn_[ SCN_SECTORS_, i, SCT_ROWS ]
|
||||
IF nRepRow <= n
|
||||
n1 := nRepRow -( n - scn_[ SCN_SECTORS_, i, SCT_ROWS ] )
|
||||
EXIT
|
||||
ENDIF
|
||||
NEXT
|
||||
RETURN n1
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrMsg( msg )
|
||||
LOCAL row := row(), col := col()
|
||||
|
||||
@ maxrow(),0 SAY padc( " ", maxcol()+1 ) COLOR "W+/W"
|
||||
IF empty( msg )
|
||||
msg := "F1 Help F5 Edit F6 Select F7 Copy F8 Paste F9 Box F10 Field"
|
||||
ENDIF
|
||||
msg := " " + msg + " "
|
||||
@ maxrow(),( maxcol()+1-len( msg ) )/2 SAY msg COLOR "W+/B"
|
||||
|
||||
setPos( row,col )
|
||||
RETURN NIL
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrInkey( key_ )
|
||||
LOCAL nKey
|
||||
|
||||
DO WHILE .t.
|
||||
nKey := inkey( 0 )
|
||||
IF ascan( key_, nKey ) > 0
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDDO
|
||||
|
||||
RETURN nKey
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrConfig( obj_, nDgn, sct_ )
|
||||
LOCAL s, n, nRows, nCols
|
||||
LOCAL cor_:={ { 1, 0, maxrow()-2, maxcol(), 200, 400 } }
|
||||
LOCAL scn_:= array( SCN_NUM_VAR )
|
||||
|
||||
scn_[ SCN_SECTORS_ ] := {}
|
||||
scn_[ SCN_DESIGN ] := nDgn
|
||||
scn_[ SCN_FOR_ROWS ] := { { 0,'' } }
|
||||
|
||||
nRows := scrSectors( obj_, scn_, nDgn, sct_ )
|
||||
|
||||
nCols := 0
|
||||
aeval( obj_, {|e_| nCols := max( nCols, e_[ OBJ_TO_COL ] ) } )
|
||||
nCols := iif( nCols == 0, cor_[ nDgn,4 ], nCols )
|
||||
|
||||
scn_[ SCN_TOP ] := cor_[ nDgn,1 ]
|
||||
scn_[ SCN_LEFT ] := cor_[ nDgn,2 ]
|
||||
scn_[ SCN_BOTTOM ] := cor_[ nDgn,3 ]
|
||||
scn_[ SCN_RIGHT ] := cor_[ nDgn,4 ]
|
||||
scn_[ SCN_MODE ] := 0
|
||||
scn_[ SCN_ROW_CUR ] := scn_[ SCN_TOP ] // 9
|
||||
scn_[ SCN_COL_CUR ] := scn_[ SCN_LEFT ]
|
||||
scn_[ SCN_ROW_REP ] := 1
|
||||
scn_[ SCN_COL_REP ] := 1
|
||||
scn_[ SCN_ROW_DIS ] := scn_[ SCN_TOP ]-1
|
||||
scn_[ SCN_COL_DIS ] := scn_[ SCN_LEFT ]-1
|
||||
|
||||
scn_[ SCN_ROW_MENU ] := 0
|
||||
scn_[ SCN_ROW_RULER ] := 0
|
||||
scn_[ SCN_STATUS_ROW ] := maxrow()-1
|
||||
scn_[ SCN_STATUS_COL ] := 0
|
||||
scn_[ SCN_STATUS_COL_TO] := maxcol()
|
||||
|
||||
scn_[ SCN_COL_MAX ] := iif( nDgn==DGN_SCREEN .OR. nDgn==DGN_MODULE, cor_[nDgn,6], nCols )
|
||||
scn_[ SCN_ROW_PREV ] := scn_[ SCN_TOP ]
|
||||
scn_[ SCN_COL_PREV ] := scn_[ SCN_LEFT ]
|
||||
scn_[ SCN_REP_LINES ] := iif( nDgn==DGN_SCREEN .OR. nDgn==DGN_MODULE, cor_[ nDgn,5 ], nRows )
|
||||
|
||||
scn_[ SCN_CLR_STATUS ] := "W+/BG"
|
||||
scn_[ SCN_CLR_TEXT ] := 'W+/B'
|
||||
scn_[ SCN_CLR_BOX ] := 'W/B'
|
||||
scn_[ SCN_CLR_FIELD ] := CLR_GET
|
||||
scn_[ SCN_CLR_HILITE ] := iif( wvt(),'N/GR*','GR+/BG' )
|
||||
scn_[ SCN_CLR_WINDOW ] := 'W+/BG'
|
||||
scn_[ SCN_CLR_RULER ] := "N/W"
|
||||
scn_[ SCN_CLR_MENU ] := "W+/B"
|
||||
scn_[ SCN_CLR_OVERALL ] := "N/W"
|
||||
scn_[ SCN_CLR_PREV ] := iif( wvt(), 'B/W' , 'B/W' )
|
||||
scn_[ SCN_CLR_SELECT ] := iif( wvt(), 'N/W*', 'GR+/N' )
|
||||
|
||||
scn_[ SCN_OBJ_HILITE ] := 0 // 32
|
||||
scn_[ SCN_OBJ_SELECTED ] := 0 // 33
|
||||
|
||||
s := '.'
|
||||
FOR n := 1 TO 40
|
||||
s += '.......' + strtran( str( n,3 ), ' ', '.' )
|
||||
NEXT
|
||||
scn_[ SCN_RULER ] := s
|
||||
|
||||
scn_[ SCN_DRAW_FILL ] := '±±±±±±±±±'
|
||||
scn_[ SCN_OBJ_ID_ ] := { 'Bitmap','Line','Text','Field','Expression','BitMap' }
|
||||
scn_[ SCN_REFRESH ] := OBJ_REFRESH_ALL
|
||||
scn_[ SCN_OBJ_COPIED ] := 0
|
||||
scn_[ SCN_BOX_SHAPE ] := 'ÚÄ¿³ÙÄÀ³'
|
||||
scn_[ SCN_CHR_PREV ] := ''
|
||||
scn_[ SCN_DESIGN_ID ] := "Module"
|
||||
scn_[ SCN_FILE ] := "Untitled"
|
||||
scn_[ SCN_PROPERTY ] := {}
|
||||
scn_[ SCN_GRAPHICS ] := .f.
|
||||
scn_[ SCN_TEXT_BLOCK_ ] := {}
|
||||
scn_[ SCN_FIELDS ] := {}
|
||||
scn_[ SCN_LASTKEY ] := 0
|
||||
|
||||
RETURN scn_
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrWvtConfig( obj_, scn_ )
|
||||
LOCAL nRows,nCols
|
||||
LOCAL cor_:={ { 1, 0, maxrow()-2, maxcol(), 200, 400 } }
|
||||
LOCAL nDgn := scn_[ SCN_DESIGN ]
|
||||
|
||||
nRows := 0
|
||||
aeval( scn_[ SCN_SECTORS_ ], {|e_| nRows += e_[ SCT_ROWS ] } )
|
||||
|
||||
nCols := 0
|
||||
aeval( obj_, {|e_| nCols := max( nCols,e_[ OBJ_TO_COL ] ) } )
|
||||
nCols := iif( nCols == 0, cor_[ nDgn,4 ], nCols )
|
||||
|
||||
scn_[ SCN_TOP ] := cor_[ nDgn,1 ]
|
||||
scn_[ SCN_LEFT ] := cor_[ nDgn,2 ]
|
||||
scn_[ SCN_BOTTOM ] := cor_[ nDgn,3 ]
|
||||
scn_[ SCN_RIGHT ] := cor_[ nDgn,4 ]
|
||||
scn_[ SCN_STATUS_ROW ] := maxrow()-1
|
||||
scn_[ SCN_STATUS_COL ] := 0
|
||||
scn_[ SCN_STATUS_COL_TO ] := maxcol()
|
||||
scn_[ SCN_MODE ] := 0
|
||||
scn_[ SCN_ROW_CUR ] := scn_[ SCN_TOP ]
|
||||
scn_[ SCN_COL_CUR ] := scn_[ SCN_LEFT ]
|
||||
scn_[ SCN_ROW_REP ] := 1
|
||||
scn_[ SCN_COL_REP ] := 1
|
||||
scn_[ SCN_ROW_DIS ] := scn_[ SCN_TOP ]-1
|
||||
scn_[ SCN_COL_DIS ] := scn_[ SCN_LEFT ]-1
|
||||
scn_[ SCN_ROW_RULER ] := 0
|
||||
scn_[ SCN_ROW_MENU ] := 0
|
||||
scn_[ SCN_COL_MAX ] := cor_[ nDgn, 6 ]
|
||||
scn_[ SCN_ROW_PREV ] := scn_[ SCN_TOP ]
|
||||
scn_[ SCN_COL_PREV ] := scn_[ SCN_LEFT ]
|
||||
scn_[ SCN_REP_LINES ] := cor_[ nDgn, 5 ]
|
||||
|
||||
RETURN NIL
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
STATIC FUNCTION scrSectors( obj_, scn_, nDgn /*,sct_*/ )
|
||||
|
||||
HB_SYMBOL_UNUSED( obj_ )
|
||||
|
||||
IF nDgn == DGN_MODULE .OR. nDgn == DGN_SCREEN
|
||||
aadd( scn_[ SCN_SECTORS_ ], { 1,'Screen', 'R ', 100, 'w+/bg', '', .f., .f. } )
|
||||
ENDIF
|
||||
|
||||
RETURN 100
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
STATIC FUNCTION scrAddPrp( scn_, sct_ )
|
||||
|
||||
aadd( scn_[SCN_SECTORS_], ;
|
||||
{ sct_[1], sct_[2], sct_[3], sct_[4], sct_[5], sct_[6], sct_[7], sct_[8] } )
|
||||
|
||||
RETURN NIL
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrPicture( cType,nWidth,nDec,cPic,nScrWid )
|
||||
|
||||
DO CASE
|
||||
CASE cType == 'N'
|
||||
cPic := '@Z ' + replicate( '9', nScrWid - iif( nDec > 0, nDec + 1, 0 ) ) + ;
|
||||
iif( nDec > 0, '.' + replicate( "9", nDec ), "" )
|
||||
CASE cType == 'C'
|
||||
IF nScrWid <> nWidth
|
||||
cPic := '@' + iif( '!' $ cPic,'!','' ) + 'S' + NTRIM( nScrWid )
|
||||
ENDIF
|
||||
ENDCASE
|
||||
|
||||
RETURN cPic
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
@@ -94,129 +94,6 @@ THREAD STATIC s_vid_stk := ""
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION scrField( nObj, nFldExp, obj_, scn_, v_, sel_, cColor )
|
||||
LOCAL h_:={},w_:={},o_
|
||||
|
||||
DEFAULT cColor TO scn_[ SCN_CLR_FIELD ]
|
||||
DEFAULT sel_ TO scrVvSelAble()
|
||||
|
||||
IF nObj == 0
|
||||
o_:= scrObjBlank()
|
||||
DEFAULT v_ TO scrVvBlank()
|
||||
ELSE
|
||||
o_:= obj_[ nObj ]
|
||||
IF v_ == NIL .OR. empty( v_ )
|
||||
v_:= scrObj2Vv( o_ )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
aadd( h_, ' Title ' )
|
||||
aadd( h_, ' Field ' )
|
||||
aadd( h_, ' Type ' )
|
||||
aadd( h_, ' Width ' )
|
||||
aadd( h_, ' Decimals ' )
|
||||
aadd( h_, ' Calculate ' )
|
||||
aadd( h_, ' Expression ' )
|
||||
aadd( h_, ' Printed Width ' )
|
||||
aadd( h_, ' Picture ' )
|
||||
aadd( h_, ' Pitch ' )
|
||||
aadd( h_, ' Font ' )
|
||||
aadd( h_, ' Bold ' )
|
||||
aadd( h_, ' Italics ' )
|
||||
aadd( h_, ' UnderLine ' )
|
||||
aadd( h_, ' SuperScript ' )
|
||||
aadd( h_, ' SubScript ' )
|
||||
aadd( h_, ' Half Height ' )
|
||||
aadd( h_, ' Alignment ' )
|
||||
aadd( h_, ' Color ' )
|
||||
aadd( h_, ' Zero as Blank ' )
|
||||
aadd( h_, ' Supress Repeated Values ' )
|
||||
aadd( h_, ' Verticle Stretch ' )
|
||||
aadd( h_, ' Wrap Semi Colons ' )
|
||||
aadd( h_, ' The FOR Condition ' )
|
||||
aadd( h_, ' Unique Id ' )
|
||||
aadd( h_, ' Field Type . Module ' )
|
||||
aadd( h_, ' Point Size ' )
|
||||
aadd( h_, ' Column FOR Justification ' )
|
||||
aadd( h_, ' Pattern TO fill a frame ' )
|
||||
aadd( h_, ' Border Thickness ' )
|
||||
|
||||
aadd( w_, {| |.t. } )
|
||||
aadd( w_, {| |.t. } )
|
||||
aadd( w_, {| | VouchMenuM( 'MN_TYFLD' ) } )
|
||||
aadd( w_, {|v| v := oAchGet( 3 ),iif( v=='D',!oCPut( 8 ),iif( v=='L',!oCPut( 1 ),.t. ) ) } )
|
||||
aadd( w_, {|v| v := oAchGet( 3 ),iif( v<>'N',!oCPut( 0 ),.t. ) } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .t. } )
|
||||
aadd( w_, {| | .t. } )
|
||||
aadd( w_, {| | .t. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .t. } )
|
||||
aadd( w_, {| | .t. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
aadd( w_, {| | .f. } )
|
||||
|
||||
B_GETS HEADERS h_ VALUES v_ ;
|
||||
TITLE 'Configure '+ iif( nFldExp==1,'Field',iif( nFldExp==2,'Expression',iif( nFldexp==3,'Text','OBJECT' ) ) ) ;
|
||||
INTO v_ WHEN w_ SELECTABLES sel_
|
||||
|
||||
v_:= v_[ 1 ]
|
||||
v_[ 1 ] := alltrim( trim( v_[ 1 ] ) )
|
||||
IF empty( v_[ 1 ] )
|
||||
RETURN NIL
|
||||
ENDIF
|
||||
|
||||
IF lastkey() <> K_ESC
|
||||
o_:= scrVv2Obj( v_,o_ )
|
||||
|
||||
o_[OBJ_TYPE] := iif( nFldExp == 1, OBJ_O_FIELD,;
|
||||
iif( nFldExp == 2, OBJ_O_EXP,;
|
||||
iif( nFldExp == 3, OBJ_O_TEXT,;
|
||||
iif( nFldExp == 4, OBJ_O_BOX, ;
|
||||
OBJ_O_FIELD ) ) ) )
|
||||
IF o_[ OBJ_TYPE ] == OBJ_O_FIELD
|
||||
o_[ OBJ_ROW ] := iif( nObj == 0, scn_[ SCN_ROW_REP ], o_[ OBJ_ROW ] )
|
||||
o_[ OBJ_COL ] := iif( nObj == 0, scn_[ SCN_COL_REP ], o_[ OBJ_COL ] )
|
||||
o_[ OBJ_TEXT ] := padc( alltrim( v_[ VV_ID ] ), v_[ VV_F_LEN ] )
|
||||
o_[ OBJ_COLOR ] := iif( empty( o_[ OBJ_COLOR ] ), cColor, o_[ OBJ_COLOR ] )
|
||||
o_[ OBJ_TO_ROW ] := iif( nObj == 0, scn_[ SCN_ROW_REP ], o_[ OBJ_TO_ROW ] )
|
||||
o_[ OBJ_TO_COL ] := iif( nObj == 0, scn_[ SCN_COL_REP ], o_[ OBJ_COL ] ) + v_[ VV_F_LEN ] - 1
|
||||
ENDIF
|
||||
|
||||
o_[OBJ_SECTION] := scrSecCur( scn_,scn_[SCN_ROW_REP] )
|
||||
|
||||
IF nObj == 0
|
||||
aadd( obj_,o_ )
|
||||
nObj := len( obj_ )
|
||||
ELSE
|
||||
obj_[nObj] := o_
|
||||
ENDIF
|
||||
|
||||
scn_[SCN_OBJ_SELECTED] := 0
|
||||
scn_[SCN_REFRESH] := OBJ_REFRESH_LINE
|
||||
scn_[SCN_MODE] := 0
|
||||
ENDIF
|
||||
|
||||
RETURN nObj
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
FUNCTION VouchInRange( v, r1, r2 )
|
||||
RETURN ( v >= r1 .AND. v <= r2 )
|
||||
|
||||
@@ -583,7 +460,7 @@ STATIC FUNCTION vld()
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
STATIC FUNCTION oAchGet( n )
|
||||
FUNCTION oAchGet( n )
|
||||
RETURN setGetAch()[n]
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
@@ -594,7 +471,7 @@ STATIC FUNCTION oAchPut( n,v )
|
||||
|
||||
//----------------------------------------------------------------------//
|
||||
|
||||
STATIC FUNCTION oCPut( v )
|
||||
FUNCTION oCPut( v )
|
||||
getactive():varPut( v )
|
||||
RETURN .t.
|
||||
|
||||
|
||||
@@ -69,10 +69,6 @@
|
||||
#define __HBEDCUI_CH
|
||||
|
||||
#define THE_FILL 'ø'
|
||||
#define CLR_GET 'W+/W'
|
||||
#define CLR_BOX 'W+/B'
|
||||
#define OBJ_CLR_FIELD 'W+/W'
|
||||
|
||||
|
||||
#define OBJ_TYPE 1 // N 1
|
||||
#define OBJ_ROW 2 // N 3
|
||||
@@ -118,21 +114,6 @@
|
||||
|
||||
#define OBJ_INIT_VRBLS 40
|
||||
|
||||
// Run time addresses
|
||||
#define OBJ_PRINT 4
|
||||
#define OBJ_SECTOR 9
|
||||
#define OBJ_UNIQUE 32
|
||||
#define CAL_UNIQUE 1
|
||||
#define CAL_SECTOR 2
|
||||
#define CAL_OBJ 3
|
||||
#define CAL_ATTRB 4
|
||||
#define CAL_NONE 5
|
||||
#define CAL_COUNT 6
|
||||
#define CAL_SUM 7
|
||||
#define CAL_AVERAGE 8
|
||||
#define CAL_HIGHEST 9
|
||||
#define CAL_LOWEST 10
|
||||
|
||||
#define OBJ_LEN_TYPE 1
|
||||
#define OBJ_LEN_ROW 3
|
||||
#define OBJ_LEN_COL 3
|
||||
@@ -331,142 +312,6 @@
|
||||
#define SCN_NUM_VAR 55
|
||||
|
||||
|
||||
#define REP_DESC 1 // C 70
|
||||
#define REP_TYPE 2 // N 3
|
||||
#define REP_IDX_NO 3 // N 3
|
||||
#define REP_IDX_EXP 4 // C 240
|
||||
#define REP_PG_SIZE 5 // C 12
|
||||
#define REP_PG_LEN 6 // N 5
|
||||
#define REP_PG_WID 7 // N 5
|
||||
#define REP_LINES 8 // N 2
|
||||
#define REP_MG_TOP 9 // N 3
|
||||
#define REP_MG_LEFT 10 // N 3
|
||||
#define REP_MG_BOTTOM 11 // N 3
|
||||
#define REP_EJ_BEFORE 12 // L 1
|
||||
#define REP_EJ_AFTER 13 // L 1
|
||||
#define REP_PLAIN 14 // N 2
|
||||
#define REP_FTR_PAG 15 // L 1
|
||||
#define REP_SMR_NEXT 16 // L 1
|
||||
#define REP_HDR_PAGES 17 // C 10
|
||||
#define REP_BNK_LINES 18 // N 3
|
||||
#define REP_BNK_AFTER 19 // N 3
|
||||
#define REP_DATA_BOX 20 // L 1
|
||||
#define REP_FILE 21 // C 80
|
||||
#define REP_COPIES 22 // N 3
|
||||
#define REP_TTL_PAGES 23 // C 10
|
||||
#define REP_INIT_CPI 24 // N 2
|
||||
#define REP_PRN_QLY 25 // C 1
|
||||
#define REP_RECONFIRM 26 // L 1
|
||||
#define REP_FTR_BOTTOM 27 // L 1
|
||||
#define REP_HTML 28 // L 1
|
||||
#define REP_PRINTER 29 // C 7
|
||||
#define REP_ORIENT 30 // C 1
|
||||
#define REP_PREVIEW 31 // L 1
|
||||
#define REP_GRAY 32 // L 1
|
||||
#define REP_WINDLG 33 // L 1
|
||||
#define REP_DUPLEX 34 // N 1
|
||||
#define REP_COLS 35 // N 3
|
||||
#define REP_ROWS 36 // N 3
|
||||
|
||||
#define REP_FOR 37 // C 240
|
||||
#define REP_WHILE 38 // C 125
|
||||
#define REP_FIRST 39 // C 125
|
||||
#define REP_EXE_PRE 40 // C 245
|
||||
#define REP_EXE_POST 41 // C 245
|
||||
|
||||
#define REP_INIT_VRBLS 41
|
||||
|
||||
#define REP_LEN_DESC 70
|
||||
#define REP_LEN_TYPE 3
|
||||
#define REP_LEN_IDX_NO 3
|
||||
#define REP_LEN_IDX_EXP 240
|
||||
#define REP_LEN_PG_SIZE 12
|
||||
#define REP_LEN_PG_LEN 5
|
||||
#define REP_LEN_PG_WID 5
|
||||
#define REP_LEN_LINES 2
|
||||
#define REP_LEN_MG_TOP 3
|
||||
#define REP_LEN_MG_LEFT 3
|
||||
#define REP_LEN_MG_BOTTOM 3
|
||||
#define REP_LEN_EJ_BEFORE 1
|
||||
#define REP_LEN_EJ_AFTER 1
|
||||
#define REP_LEN_PLAIN 2
|
||||
#define REP_LEN_FTR_PAG 1
|
||||
#define REP_LEN_SMR_NEXT 1
|
||||
#define REP_LEN_HDR_PAGES 10
|
||||
#define REP_LEN_BNK_LINES 3
|
||||
#define REP_LEN_BNK_AFTER 3
|
||||
#define REP_LEN_DATA_BOX 1
|
||||
#define REP_LEN_FILE 80
|
||||
#define REP_LEN_COPIES 3
|
||||
#define REP_LEN_TTL_PAGES 10
|
||||
#define REP_LEN_INIT_CPI 2
|
||||
#define REP_LEN_PRN_QLY 1
|
||||
#define REP_LEN_RECONFIRM 1
|
||||
#define REP_LEN_FTR_BOTTOM 1
|
||||
#define REP_LEN_HTML 1
|
||||
#define REP_LEN_PRINTER 7
|
||||
#define REP_LEN_ORIENT 1
|
||||
#define REP_LEN_PREVIEW 1
|
||||
#define REP_LEN_GRAY 1
|
||||
#define REP_LEN_WINDLG 1
|
||||
#define REP_LEN_DUPLEX 1
|
||||
#define REP_LEN_COLS 3
|
||||
#define REP_LEN_ROWS 3
|
||||
|
||||
#define REP_LEN_FOR 240
|
||||
#define REP_LEN_WHILE 125
|
||||
#define REP_LEN_FIRST 125
|
||||
#define REP_LEN_EXE_PRE 245
|
||||
#define REP_LEN_EXE_POST 245
|
||||
|
||||
#define REP_OS_DESC 1 // C 70
|
||||
#define REP_OS_TYPE 71 // N 3
|
||||
#define REP_OS_IDX_NO 74 // N 3
|
||||
#define REP_OS_IDX_EXP 77 // C 240
|
||||
#define REP_OS_PG_SIZE 317 // C 12
|
||||
#define REP_OS_PG_LEN 329 // N 5
|
||||
#define REP_OS_PG_WID 334 // N 5
|
||||
#define REP_OS_LINES 339 // N 2
|
||||
#define REP_OS_MG_TOP 341 // N 3
|
||||
#define REP_OS_MG_LEFT 344 // N 3
|
||||
#define REP_OS_MG_BOTTOM 347 // N 3
|
||||
#define REP_OS_EJ_BEFORE 350 // L 1
|
||||
#define REP_OS_EJ_AFTER 351 // L 1
|
||||
#define REP_OS_PLAIN 352 // N 2
|
||||
#define REP_OS_FTR_PAG 354 // L 1
|
||||
#define REP_OS_SMR_NEXT 355 // L 1
|
||||
#define REP_OS_HDR_PAGES 356 // C 10
|
||||
#define REP_OS_BNK_LINES 366 // N 3
|
||||
#define REP_OS_BNK_AFTER 369 // N 3
|
||||
#define REP_OS_DATA_BOX 372 // L 1
|
||||
#define REP_OS_FILE 373 // C 80
|
||||
#define REP_OS_COPIES 453 // N 3
|
||||
#define REP_OS_TTL_PAGES 456 // C 10
|
||||
#define REP_OS_INIT_CPI 466 // N 2
|
||||
#define REP_OS_PRN_QLY 468 // C 1
|
||||
#define REP_OS_RECONFIRM 469 // L 1
|
||||
#define REP_OS_FTR_BOTTOM 470 // L 1
|
||||
#define REP_OS_HTML 471 // L 1
|
||||
#define REP_OS_PRINTER 472 // C 7
|
||||
#define REP_OS_ORIENT 479 // C 1
|
||||
#define REP_OS_PREVIEW 480 // L 1
|
||||
#define REP_OS_GRAY 481 // L 1
|
||||
#define REP_OS_WINDLG 482 // L 1
|
||||
#define REP_OS_DUPLEX 483 // N 1
|
||||
#define REP_OS_COLS 484 // N 3
|
||||
#define REP_OS_ROWS 487 // N 3
|
||||
|
||||
|
||||
// TOTAL 490
|
||||
|
||||
#define REP_OS_FOR 1 // C 240
|
||||
#define REP_OS_WHILE 241 // C 125
|
||||
#define REP_OS_FIRST 366 // C 125
|
||||
|
||||
#define REP_OS_EXE_PRE 1 // C 245
|
||||
#define REP_OS_EXE_POST 246 // C 245
|
||||
|
||||
|
||||
#define SCT_ORDER 1
|
||||
#define SCT_ID 2
|
||||
#define SCT_SAY 3
|
||||
@@ -475,49 +320,7 @@
|
||||
#define SCT_EQN 6
|
||||
#define SCT_EJECT 7
|
||||
#define SCT_RESET 8
|
||||
|
||||
#define SCT_INIT_VRBLS 8
|
||||
|
||||
#define SCT_LEN_ORDER 3
|
||||
#define SCT_LEN_ID 8
|
||||
#define SCT_LEN_SAY 5
|
||||
#define SCT_LEN_ROWS 3
|
||||
#define SCT_LEN_COLOR 7
|
||||
#define SCT_LEN_EQN 240
|
||||
#define SCT_LEN_EJECT 1
|
||||
#define SCT_LEN_RESET 1
|
||||
|
||||
#define SCT_OS_ORDER 1 // N 3
|
||||
#define SCT_OS_ID 4 // C 8
|
||||
#define SCT_OS_SAY 12 // C 5
|
||||
#define SCT_OS_ROWS 17 // N 3
|
||||
#define SCT_OS_COLOR 20 // C 7
|
||||
#define SCT_OS_EQN 27 // C 240
|
||||
#define SCT_OS_EJECT 267 // L 1
|
||||
#define SCT_OS_RESET 268 // L 1
|
||||
|
||||
#define SCT_ID_GRP01_H 200
|
||||
#define SCT_ID_GRP01_S 800
|
||||
|
||||
#define SCT_CLR_ {'W+/RB','W+/G','W+/R','W+/N','W+/GR'}
|
||||
|
||||
#define SCT_INIT_GROUPS 20
|
||||
|
||||
#define REP_FOR_MOD 1
|
||||
#define REP_FOR_RPT 2
|
||||
#define REP_FOR_BRW 3
|
||||
#define REP_FOR_MDL 4
|
||||
#define REP_FOR_DOC 5
|
||||
#define REP_FOR_LAB 6
|
||||
#define REP_FOR_SCR 7
|
||||
|
||||
#define REP_SRC_MOD 100
|
||||
#define REP_SRC_RPT 200
|
||||
#define REP_SRC_BRW 300
|
||||
#define REP_SRC_MDL 400
|
||||
#define REP_SRC_DOC 500
|
||||
#define REP_SRC_LAB 600
|
||||
#define REP_SRC_SCR 700
|
||||
|
||||
|
||||
#translate B_MSG ;
|
||||
|
||||
@@ -9,23 +9,19 @@
|
||||
-w3
|
||||
-es2
|
||||
-inc
|
||||
-mt
|
||||
-gui
|
||||
|
||||
-gtwvt
|
||||
|
||||
#..\gtwvg\gtwvg.hbc
|
||||
|
||||
cu_main.prg
|
||||
cu_desgn.prg
|
||||
cu_menu.prg
|
||||
cu_outpt.prg
|
||||
cu_prpty.prg
|
||||
cu_utlty.prg
|
||||
cu_achoi.prg
|
||||
cu_object.prg
|
||||
|
||||
-ohbcuied
|
||||
|
||||
-icon={allwin}../../package/harb_win.ico
|
||||
|
||||
-3rd=hbide_file=hbcuied.ch
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user