Files
harbour-core/harbour/doc/en/tbrowse.txt
Viktor Szakats 4814b3b5df 2012-07-03 22:25 UTC+0200 Viktor Szakats (harbour syenar.net)
* doc/en/memvar2.txt
  * doc/en/menu.txt
  * doc/en/misc.txt
  * doc/en/nation.txt
  * doc/en/objfunc.txt
  * doc/en/rdddb.txt
  * doc/en/rddmisc.txt
  * doc/en/rddord.txt
  * doc/en/sayget.txt
  * doc/en/set.txt
  * doc/en/string.txt
  * doc/en/tbrowse.txt
  * doc/en/tclass.txt
  * doc/en/terminal.txt
  * doc/en/tgetlist.txt
  * doc/en/tlabel.txt
  * doc/en/treport.txt
  * doc/en/var.txt
    ! further fixes in $EXAMPLES$ sections
2012-07-03 20:26:37 +00:00

311 lines
9.4 KiB
Plaintext

/*
* $Id$
*/
/* $DOC$
* $TEMPLATE$
* Class
* $NAME$
* TBROWSENew()
* $CATEGORY$
* TBrowse class
* $ONELINER$
* Create a Browse Object
* $CONSTRUCTOR$
* TBROWSENew(<nTop>,<nLeft>,<nBottom>,<nRight>) --> <oBrowse>
* $ARGUMENTS$
* <nTop> Top Row
* <nLeft> Top Left Column
* <nBottom> Bottom Row
* <nRight> Bottom Right Column
* $RETURNS$
* <oBrowse> An new Browse Object
* $DESCRIPTION$
* This function set up a browsing window at top-left coordinates of
* <nTop>,<nLeft> to bottom-right coordinates of <nBottom>,<nRight>.
* To browse Database files use TBROWSEDB() function insted.
* $DATANOLINK$
* :aColumns Array to hold all browse columns
* :autoLite Logical value to control highlighting
* :cargo User-definable variable
* :colorSpec Color table for the TBrowse display
* :colPos Current cursor column position
* :colSep Column separator character
* :footSep Footing separator character
* :freeze Number of columns to freeze
* :goBottomBlock Code block executed by TBrowse:goBottom()
* :goTopBlock Code block executed by TBrowse:goTop()
* :headSep Heading separator character
* :hitBottom Indicates the end of available data
* :hitTop Indicates the beginning of available data
* :leftVisible Indicates position of leftmost unfrozen column
* in display
* :nBottom Bottom row number for the TBrowse display
* :nLeft Leftmost column for the TBrowse display
* :nRight Rightmost column for the TBrowse display
* :nTop Top row number for the TBrowse display
* :rightVisible Indicates position of rightmost unfrozen column
* in display
* :rowCount Number of visible data rows in the TBrowse
* display
* :rowPos Current cursor row position
* :skipBlock Code block used to reposition data source
* :stable Indicates if the TBrowse object is stable
*
* :aRedraw Array of logical items indicating, is appropriate
* row need to be redraw
* :RelativePos Indicates record position relatively position of
* first record on the screen
* :lHeaders Internal variable which indicates whether there
* are column footers to paint
* :lFooters Internal variable which indicates whether there
* are column footers to paint
* :aRect The rectangle specified with ColorRect()
* :aRectColor The color positions to use in the rectangle
* specified with ColorRect()
* :aKeys Holds the Default movement keys
* $METHODSLINK$
* AddColumn() Adds an new TBColumn object to the current Browse
*
* Applykey() Perform the Browse Key movement
*
* SetKey() Add an New key to the Keyboard dictionary
* $METHODSNOLINK$
* New(nTop, nLeft, nBottom, nRight) Create an new Browse class and set the
* default values
*
* Down() Moves the cursor down one row
*
* End() Moves the cursor to the rightmost visible data column
*
* GoBottom() Repositions the data source to the bottom of file
*
* GoTop() Repositions the data source to the top of file
*
* Home() Moves the cursor to the leftmost visible data column
*
* Left() Moves the cursor left one column
*
* PageDown() Repositions the data source downward
*
* PageUp() Repositions the data source upward
*
* PanEnd() Moves the cursor to the rightmost data column
*
* PanHome() Moves the cursor to the leftmost visible data column
*
* PanLeft() Pans left without changing the cursor position
*
* PanRight() Pans right without changing the cursor position
*
* Right() Moves the cursor right one column
*
* Up() Moves the cursor up one row
*
* ColCount() Return the Current number of Columns
*
* ColorRect() Alters the color of a rectangular group of cells
*
* ColWidth( nColumn ) Returns the display width of a particular column
*
* Configure( nMode ) Reconfigures the internal settings of the TBrowse
* object nMode is an undocumented parameter in CA-Cl*pper
*
* LeftDetermine() Determine leftmost unfrozen column in display
*
* DeHilite() Dehighlights the current cell
*
* DelColumn( nPos ) Delete a column object from a browse
*
* ForceStable() Performs a full stabilization
*
* GetColumn( nColumn ) Gets a specific TBColumn object
*
* Hilite() Highlights the current cell
*
* InsColumn( nPos, oCol ) Insert a column object in a browse
*
* Invalidate() Forces entire redraw during next stabilization
*
* RefreshAll() Causes all data to be recalculated during the next
* stabilize
*
* RefreshCurrent() Causes the current row to be refilled and repainted
* on next stabilize
*
* SetColumn( nColumn, oCol ) Replaces one TBColumn object with another
*
* Stabilize() Performs incremental stabilization
*
* DispCell( nColumn, cColor ) Displays a single cell
* $EXAMPLES$
* See tests/testbrw.prg
* $TESTS$
* See tests/testbrw.prg
* $STATUS$
* S
* $COMPLIANCE$
* This functions is Compatible with CA-Cl*pper 5.2. The applykey() and
* Setkey() methods are only visible if HB_COMPAT_C53 is defined.
* $PLATFORMS$
* All
* $FILES$
* Library is rtl
* $SEEALSO$
* TBROWSENEW(),TBCOLUMNNEW()
* $END$
*/
/* $DOC$
* $TEMPLATE$
* Class
* $METHOD$
* SetKey()
* $CATEGORY$
* TBrowse Method
* $ONELINER$
* Get an optionaly Set an new Code block associated to a inkey value
* $SYNTAX$
* SetKey(<nKey>[,<bBlock>]) --> bOldBlock
* $ARGUMENTS$
* <nKey> An valid inkey Code
*
* <bBlock> An optional action to associate to the inkey value.
* $RETURNS$
* <bOldBlock> If an Keypress has it code block changes, it will return
* the previus one; otherwise, it will return the current one
* $DESCRIPTION$
* This method Get an optionaly set an code block that is associated to
* an inkey value.
* The table below show the default keypress/Code Block definitions
*
* <table>
* Inkey Value Code Block
*
* K_DOWN {|Ob,nKey| Ob:Down(),0}
* K_END {|Ob,nKey| Ob:End(),0}
* K_CTRL_PGDN {|Ob,nKey| Ob:GoBottom(),0}
* K_CTRL_PGUP {|Ob,nKey| Ob:GoTop(),0}
* K_HOME {|Ob,nKey| Ob:Home(),0}
* K_LEFT {|Ob,nKey| Ob:Left(),0}
* K_PGDN {|Ob,nKey| Ob:PageDown(),0}
* K_PGUP {|Ob,nKey| Ob:PageUp(),0}
* K_CTRL_END {|Ob,nKey| Ob:PanEnd(),0}
* K_CTRL_HOME {|Ob,nKey| Ob:PanHome(),0}
* K_CTRL_LEFT {|Ob,nKey| Ob:PanLeft(),0}
* K_CTRL_RIGHT {|Ob,nKey| Ob:PanRight(),0}
* K_RIGHT {|Ob,nKey| Ob:Right(),0}
* K_UP {|Ob,nKey| Ob:Up(),0}
* K_ESC {|Ob,nKey| -1 }
* </table>
*
* The keys handlers can be queried,added and replace an removed from
* the internal keyboard dictionary. See the example.
*
* oTb:SETKEY( K_TAB,{|oTb,nKey| -1})
*
* An default key handler can be declared by specifyin a value of 0
* for <nKey>. It associate code block will be evaluated each time
* TBrowse:Applykey() is called with an key value that is not contained
* in the dictionary. For example
*
* oTb:SetKey(0,{|oTb,nKey| DefKeyHandler(otb,nkey})
* This call the a function named DefKeyHandler() when nKey is not
* contained in the dictionary.
*
* To remove an keypress/code block definition, specify NIL for <bBlock>
* oTb:SetKey(K_ESC,nil)
* $EXAMPLES$
* oTb:SeyKey( K_F10, {| otb, nkey | ShowListByname( otb ) }
* $END$
*/
/* $DOC$
* $TEMPLATE$
* Class
* $METHOD$
* Applykey()
* $CATEGORY$
* TBrowse Method
* $ONELINER$
* Evaluates an code block associated with an specific key
* $SYNTAX$
* ApplyKey(<nKey>) --> nResult
* $ARGUMENTS$
* <nKey> An valid Inkey code
* $RETURNS$
* <nResult> Value returned from the evaluated Code Block
* See Table Below
*
* <table>
* Value Meaning
* -1 User request for the browse lost input focus
* 0 Code block associated with <nkey> was evaluated
* 1 Unable to locate <nKey> in the dictionary,Key was not processed
* </table>
* $DESCRIPTION$
* This method evaluate an code block associated with <nkey> that is
* contained in the TBrowse:setkey() dictionary.
* $EXAMPLES$
* DO WHILE .T.
* oTb:forceStable()
* IF oTb:applykey( Inkey( 0 ) ) == -1
* EXIT
* ENDIF
* ENDDO
* $END$
*/
/* $DOC$
* $TEMPLATE$
* Class
* $METHOD$
* AddColumn()
* $CATEGORY$
* TBrowse Method
* $ONELINER$
* Add an New Column to an TBrowse Object
* $SYNTAX$
* AddColumn(oCol) --> Self
* $ARGUMENTS$
* <oCol> Is an TbColumn object
* $RETURNS$
* <Self> The Current object
* $DESCRIPTION$
* This method add an new column object specified as <oCol> to the
* assigned browsing object.
* $END$
*/