* bin/commit.hb
* config/detect.mk
* config/detfun.mk
* config/detplat.mk
* config/dir.mk
* config/dirsh.mk
* config/global.mk
* config/globsh.mk
* config/instsh.mk
* config/lang.hb
* config/lang2po.hb
* config/po2lang.hb
* config/postinst.hb
* contrib/hbexpat/tests/tohash.prg
* contrib/hbformat/utils/hbformat.ini
* contrib/hbmisc/hbedit.prg
* contrib/hbmxml/tests/testmxml.prg
* contrib/hbnetio/utils/hbnetio/_console.prg
* contrib/hbnetio/utils/hbnetio/_winsvc.prg
* contrib/hbnetio/utils/hbnetio/hbnetio.prg
* contrib/hbnetio/utils/hbnetio/netiomgm.hb
* contrib/hbwin/tests/ole.prg
* contrib/hbwin/tests/oletst2.js
* contrib/hbwin/tests/oletst2.vbs
* contrib/hbxpp/doc/en/binnumx.txt
* contrib/hbxpp/doc/en/dbcmdx.txt
* contrib/xhb/htmutil.prg
* contrib/xhb/tfile.prg
* contrib/xhb/tframe.prg
* contrib/xhb/thtm.prg
* ChangeLog.txt
* debian/copyright
* doc/class_tp.txt
* doc/hdr_tpl.txt
* doc/xhb-diff.txt
* LICENSE.txt
* package/harbour-wce.spec.in
* package/harbour-win.spec.in
* package/harbour.spec
* package/mpkg_rpm_wce.sh
* package/mpkg_rpm_win.sh
* package/mpkg_rpm.sh
* package/mpkg_src.sh
* package/mpkg_ver.sh
* src/rtl/achoice.prg
* src/rtl/getsys53.prg
* src/rtl/tgetlist.prg
* src/rtl/tlabel.prg
* src/rtl/tmenusys.prg
* tests/hbdoc.prg
* tests/langmsg.prg
* tests/rto_get.prg
* tests/rto_tb.prg
+ doc/en/ati.txt
+ doc/en/dirdrive.txt
+ doc/en/hashfunc.txt
+ doc/en/hbtoken.txt
+ doc/en/left.txt
+ doc/en/proc.txt
+ doc/en/strtran.txt
+ doc/en/transfrm.txt
+ doc/en/typefile.txt
* doc/en/*
* more partial sync with 3.4 fork
396 lines
14 KiB
Plaintext
396 lines
14 KiB
Plaintext
/* $DOC$
|
|
$TEMPLATE$
|
|
Function
|
|
$NAME$
|
|
AChoice()
|
|
$CATEGORY$
|
|
API
|
|
$SUBCATEGORY$
|
|
User interface
|
|
$ONELINER$
|
|
Allows selection of an element from an array
|
|
$SYNTAX$
|
|
AChoice( <nTop>, <nLeft>, <nBottom>, <nRight>, <acMenuItems>, [<alSelableItems> | <lSelableItems>], [<cUserFunction> | <bUserBlock>], [<nInitialItem>], [<nWindowRow>] ) --> nPosition
|
|
$ARGUMENTS$
|
|
<nTop> - topmost row used to display array (default 0)
|
|
|
|
<nLeft> - leftmost row used to display array (default 0)
|
|
|
|
<nBottom> - bottommost row used to display array (default MaxRow())
|
|
|
|
<nRight> - rightmost row used to display array (default MaxCol())
|
|
|
|
<acMenuItems> - the character array of items from which to select
|
|
|
|
<alSelableItems> - an array of items, either logical or character,
|
|
which is used to determine if a particular item
|
|
may be selected. If the type of a given item is
|
|
character, it is macro evaluated, and the result
|
|
is expected to be a logical. A value of .T. means
|
|
that the item may be selected, .F. that it may not.
|
|
(See next argument: `lSelectableItems`)
|
|
|
|
<lSelableItems> - a logical value which is used to apply to all
|
|
items in `acMenuItems`. If .T., all items may be
|
|
selected; if .F., none may be selected.
|
|
(See previous argument: `alSelectableItems`)
|
|
Default .T.
|
|
|
|
<cUserFunction> - the name of a function to be called which may
|
|
affect special processing of keystrokes. It is
|
|
specified without parentheses or parameters.
|
|
When it is called, it will be supplied with the
|
|
parameters: `nMode`, `nCurElement`, and `nRowPos`.
|
|
Default NIL.
|
|
|
|
<bUserBlock> - a codeblock to be called which may
|
|
affect special processing of keystrokes. It
|
|
should be specified in the form
|
|
`{| nMode, nCurElemenet, nRowPos | MyFunc( nMode, nCurElemenet, nRowPos ) }`.
|
|
Default NIL.
|
|
|
|
<nInitialItem> - the number of the element to be highlighted as
|
|
the current item when the array is initially
|
|
displayed. 1 origin. Default 1.
|
|
|
|
<nWindowRow> - the number of the window row on which the initial
|
|
item is to be displayed. 0 origin. Default 0.
|
|
$RETURNS$
|
|
<nPosition> - the number of the item to be selected, or 0 if the
|
|
selection was aborted.
|
|
$DESCRIPTION$
|
|
Allows selection of an element from an array.
|
|
Please see standard CA-Cl*pper documentation for AChoice() for
|
|
additional detail.
|
|
$EXAMPLES$
|
|
LOCAL aItems := { "One", "Two", "Three" }
|
|
LOCAL nChoice := AChoice( 10, 10, 20, 20, aItems )
|
|
IF nChoice == 0
|
|
? "You did not choose an item"
|
|
ELSE
|
|
? ;
|
|
"You chose element", hb_ntos( nChoice ), ;
|
|
"which has a value of", aItems[ nChoice ]
|
|
ENDIF
|
|
$FILES$
|
|
Library is core
|
|
$COMPLIANCE$
|
|
C
|
|
$SEEALSO$
|
|
MENU TO
|
|
$END$
|
|
*/
|
|
|
|
/* $DOC$
|
|
$AUTHOR$
|
|
Copyright 1999 Chen Kedem <niki@actcom.co.il>
|
|
$TEMPLATE$
|
|
Function
|
|
$NAME$
|
|
__AtPrompt()
|
|
$CATEGORY$
|
|
API
|
|
$SUBCATEGORY$
|
|
User interface
|
|
$ONELINER$
|
|
Display a menu item on screen and define a message
|
|
$SYNTAX$
|
|
__AtPrompt( <nRow>, <nCol>, <cPrompt>, [<xMsg>] ) --> .F.
|
|
$ARGUMENTS$
|
|
<nRow> is the row number to display the menu <cPrompt>. Value could
|
|
range from zero to MaxRow().
|
|
|
|
<nCol> is the column number to display the menu <cPrompt>. Value
|
|
could range from zero to MaxCol().
|
|
|
|
<cPrompt> is the menu item character string to display.
|
|
|
|
<xMsg> define a message to display each time this menu item is
|
|
highlighted. <xMsg> could be a character string or code block that
|
|
is evaluated to a character string. If <xMsg> is not specified or
|
|
of the wrong type, an empty string ("") would be used.
|
|
$RETURNS$
|
|
__AtPrompt() always return .F.
|
|
$DESCRIPTION$
|
|
With __AtPrompt() you define and display a menu item, each call to
|
|
__AtPrompt() add another item to the menu, to start the menu itself
|
|
you should call the __MenuTo() function (`MENU TO` command). You can
|
|
define any row and column combination and they will be displayed at
|
|
the order of definition. After each call to __AtPrompt(), the cursor
|
|
is placed one column to the right of the last text displayed, and
|
|
Row() and Col() are updated.
|
|
|
|
`@...PROMPT` command is preprocessed into __AtPrompt() function during
|
|
compile time.
|
|
$EXAMPLES$
|
|
LOCAL nChoice
|
|
// display a two line menu with status line at the bottom
|
|
// let the user select favorite day
|
|
SET MESSAGE TO 24 CENTER
|
|
@ 10, 2 PROMPT "Sunday" MESSAGE "This is the 1st item"
|
|
@ 11, 2 PROMPT "Monday" MESSAGE "Now we're on the 2nd item"
|
|
MENU TO nChoice
|
|
DO CASE
|
|
CASE nChoice == 0 // user press <Esc> key
|
|
QUIT
|
|
CASE nChoice == 1 // user select 1st menu item
|
|
? "Guess you don't like Mondays"
|
|
CASE nChoice == 2 // user select 2nd menu item
|
|
? "Just another day for some"
|
|
ENDCASE
|
|
$STATUS$
|
|
R
|
|
$COMPLIANCE$
|
|
C
|
|
$FILES$
|
|
Library is core
|
|
$SEEALSO$
|
|
AChoice(), MENU TO, SET MESSAGE, SET INTENSITY, SET WRAP, __MenuTo()
|
|
$END$
|
|
*/
|
|
|
|
/* $DOC$
|
|
$AUTHOR$
|
|
Copyright 1999 Chen Kedem <niki@actcom.co.il>
|
|
$TEMPLATE$
|
|
Command
|
|
$NAME$
|
|
@...PROMPT
|
|
$CATEGORY$
|
|
Command
|
|
$SUBCATEGORY$
|
|
User interface
|
|
$ONELINER$
|
|
Display a menu item on screen and define a message
|
|
$SYNTAX$
|
|
@ <nRow>, <nCol> PROMPT <cPrompt> [MESSAGE <xMsg>]
|
|
$ARGUMENTS$
|
|
<nRow> is the row number to display the menu <cPrompt>. Value could
|
|
range from zero to MaxRow().
|
|
|
|
<nCol> is the column number to display the menu <cPrompt>. Value
|
|
could range from zero to MaxCol().
|
|
|
|
<cPrompt> is the menu item character string to display.
|
|
|
|
<xMsg> define a message to display each time this menu item is
|
|
highlighted. <xMsg> could be a character string or code block that
|
|
is evaluated to a character string. If <xMsg> is not specified or
|
|
of the wrong type, an empty string ("") would be used.
|
|
$DESCRIPTION$
|
|
With `@...PROMPT` you define and display a menu item, each call to
|
|
`@...PROMPT` add another item to the menu, to start the menu itself
|
|
you should call the __MenuTo() function (`MENU TO` command). You can
|
|
define any row and column combination and they will be displayed at
|
|
the order of definition. After each call to `@...PROMPT`, the cursor
|
|
is placed one column to the right of the last text displayed, and
|
|
Row() and Col() are updated.
|
|
|
|
`@...PROMPT` command is preprocessed into __AtPrompt() function during
|
|
compile time.
|
|
$EXAMPLES$
|
|
LOCAL nChoice
|
|
// display a two line menu with status line at the bottom
|
|
// let the user select favorite day
|
|
SET MESSAGE TO 24 CENTER
|
|
@ 10, 2 PROMPT "Sunday" MESSAGE "This is the 1st item"
|
|
@ 11, 2 PROMPT "Monday" MESSAGE "Now we're on the 2nd item"
|
|
MENU TO nChoice
|
|
DO CASE
|
|
CASE nChoice == 0 // user press <Esc> key
|
|
QUIT
|
|
CASE nChoice == 1 // user select 1st menu item
|
|
? "Guess you don't like Mondays"
|
|
CASE nChoice == 2 // user select 2nd menu item
|
|
? "Just another day for some"
|
|
ENDCASE
|
|
$STATUS$
|
|
R
|
|
$COMPLIANCE$
|
|
C
|
|
$SEEALSO$
|
|
AChoice(), MENU TO, SET MESSAGE, SET INTENSITY, SET WRAP, __MenuTo()
|
|
$END$
|
|
*/
|
|
|
|
/* $DOC$
|
|
$AUTHOR$
|
|
Copyright 1999 Chen Kedem <niki@actcom.co.il>
|
|
$TEMPLATE$
|
|
Function
|
|
$NAME$
|
|
__MenuTo()
|
|
$CATEGORY$
|
|
API
|
|
$SUBCATEGORY$
|
|
User interface
|
|
$ONELINER$
|
|
Invoked a menu defined by set of `@...PROMPT`
|
|
$SYNTAX$
|
|
__MenuTo( <bBlock>, <cVariable> ) --> nChoice
|
|
$ARGUMENTS$
|
|
<bBlock> is a set/get code block for variable named <cVariable>.
|
|
|
|
<cVariable> is a character string that contain the name of the
|
|
variable to hold the menu choices, if this variable does not exist
|
|
a PRIVATE variable with the name <cVariable> would be created to
|
|
hold the result.
|
|
$RETURNS$
|
|
__MenuTo() return the number of select menu item, or 0 if there was
|
|
no item to select from or if the user pressed the <Esc> key.
|
|
$DESCRIPTION$
|
|
__MenuTo() invoked the menu define by previous __AtPrompt() call
|
|
and display a highlight bar that the user can move to select an
|
|
option from the menu. If <cVariable> does not exist or not visible,
|
|
a PRIVATE variable named <cVariable> is created and hold the current
|
|
menu selection. If there is a variable named <cVariable>, its value
|
|
is used to select the first highlighted item.
|
|
|
|
Menu prompts and messages are displayed in current Standard color,
|
|
highlighted bar is displayed using current Enhanced color.
|
|
|
|
Pressing the arrow keys move the highlighted bar. When a menu item
|
|
is highlighted the message associated with it is displayed on the
|
|
line specified with `SET MESSAGE`. If `SET WRAP` is ON and the user
|
|
press <up> arrow while on the first selection the last menu item is
|
|
highlighted, if the user press <Down> arrow while on the last item,
|
|
the first item is highlighted.
|
|
|
|
Following are active keys that handled by __MenuTo():
|
|
|
|
<table>
|
|
key Meaning
|
|
|
|
Up Move to previous item
|
|
Down Move to next item
|
|
Left Move to previous item
|
|
Right Move to next item
|
|
Home Move to the first item
|
|
End Move to the last item
|
|
PgUp Select menu item, return position
|
|
PgDn Select menu item, return position
|
|
Enter Select menu item, return position
|
|
Esc Abort selection, return 0
|
|
First letter Select next menu with the same first letter,
|
|
return this item position.
|
|
</table>
|
|
upon exit the cursor is placed at MaxRow() - 1, 0
|
|
__MenuTo() can be nested without loosing the previous prompts.
|
|
|
|
`MENU TO` command is preprocessed into __MenuTo() function during
|
|
compile time.
|
|
$EXAMPLES$
|
|
LOCAL nChoice
|
|
// display menu item on each screen corner and let user select one
|
|
CLS
|
|
SET MESSAGE TO MaxRow() / 2 CENTER
|
|
SET WRAP ON
|
|
@ 0 , 0 PROMPT "1. Upper left" MESSAGE " One "
|
|
@ 0 , MaxCol() - 16 PROMPT "2. Upper right" MESSAGE " Two "
|
|
@ MaxRow() - 1, MaxCol() - 16 PROMPT "3. Bottom right" MESSAGE "Three"
|
|
@ MaxRow() - 1, 0 PROMPT "4. Bottom left" MESSAGE "Four "
|
|
MENU TO nChoice
|
|
SetPos( MaxRow() / 2, MaxCol() / 2 - 10 )
|
|
IF nChoice == 0
|
|
?? "<Esc> was pressed"
|
|
ELSE
|
|
?? "Selected option is", nChoice
|
|
ENDIF
|
|
$STATUS$
|
|
R
|
|
$COMPLIANCE$
|
|
C
|
|
$FILES$
|
|
Library is core
|
|
$SEEALSO$
|
|
@...PROMPT, AChoice(), SET MESSAGE, SET INTENSITY, SET WRAP, __AtPrompt()
|
|
$END$
|
|
*/
|
|
|
|
/* $DOC$
|
|
$AUTHOR$
|
|
Copyright 1999 Chen Kedem <niki@actcom.co.il>
|
|
$TEMPLATE$
|
|
Command
|
|
$NAME$
|
|
MENU TO
|
|
$CATEGORY$
|
|
API
|
|
$SUBCATEGORY$
|
|
User interface
|
|
$ONELINER$
|
|
Invoked a menu defined by set of `@...PROMPT`
|
|
$SYNTAX$
|
|
MENU TO <cVariable>
|
|
$ARGUMENTS$
|
|
<cVariable> is a character string that contain the name of the
|
|
variable to hold the menu choices, if this variable does not exist
|
|
a PRIVATE variable with the name <cVariable> would be created to
|
|
hold the result.
|
|
$DESCRIPTION$
|
|
`MENU TO` invoked the menu define by previous __AtPrompt() call
|
|
and display a highlight bar that the user can move to select an
|
|
option from the menu. If <cVariable> does not exist or not visible,
|
|
a PRIVATE variable named <cVariable> is created and hold the current
|
|
menu selection. If there is a variable named <cVariable>, its value
|
|
is used to select the first highlighted item.
|
|
|
|
Menu prompts and messages are displayed in current Standard color,
|
|
highlighted bar is displayed using current Enhanced color.
|
|
|
|
Pressing the arrow keys move the highlighted bar. When a menu item
|
|
is highlighted the message associated with it is displayed on the
|
|
line specified with `SET MESSAGE`. If `SET WRAP` is ON and the user
|
|
press <Up> arrow while on the first selection the last menu item is
|
|
highlighted, if the user press <Down> arrow while on the last item,
|
|
the first item is highlighted.
|
|
|
|
Following are active keys that handled by `MENU TO`:
|
|
|
|
<table>
|
|
key Meaning
|
|
|
|
Up Move to previous item
|
|
Down Move to next item
|
|
Left Move to previous item
|
|
Right Move to next item
|
|
Home Move to the first item
|
|
End Move to the last item
|
|
PgUp Select menu item, return position
|
|
PgDn Select menu item, return position
|
|
Enter Select menu item, return position
|
|
Esc Abort selection, return 0
|
|
First letter Select next menu with the same first letter,
|
|
return this item position.
|
|
</table>
|
|
upon exit the cursor is placed at MaxRow() - 1, 0
|
|
`MENU TO` can be nested without loosing the previous prompts.
|
|
|
|
`MENU TO` command is preprocessed into __MenuTo() function during
|
|
compile time.
|
|
$EXAMPLES$
|
|
LOCAL nChoice
|
|
// display menu item on each screen corner and let user select one
|
|
CLS
|
|
SET MESSAGE TO MaxRow() / 2 CENTER
|
|
SET WRAP ON
|
|
@ 0 , 0 PROMPT "1. Upper left" MESSAGE " One "
|
|
@ 0 , MaxCol() - 16 PROMPT "2. Upper right" MESSAGE " Two "
|
|
@ MaxRow() - 1, MaxCol() - 16 PROMPT "3. Bottom right" MESSAGE "Three"
|
|
@ MaxRow() - 1, 0 PROMPT "4. Bottom left" MESSAGE "Four "
|
|
MENU TO nChoice
|
|
SetPos( MaxRow() / 2, MaxCol() / 2 - 10 )
|
|
IF nChoice == 0
|
|
?? "<Esc> was pressed"
|
|
ELSE
|
|
?? "Selected option is", nChoice
|
|
ENDIF
|
|
$STATUS$
|
|
R
|
|
$COMPLIANCE$
|
|
C
|
|
$SEEALSO$
|
|
@...PROMPT, AChoice(), SET MESSAGE, SET INTENSITY, SET WRAP, __AtPrompt()
|
|
$END$
|
|
*/
|