GRUMPFISH LIBRARY 4.0 Revision History

(Initial Release: 10/19/93)

10/20/93

GRUMPBROW() - added mouse support when viewing full-screen record.


10/21/93

GFPQADDJOB() - added fourth parameter, <lDelete>, which allows you to
direct the GFPQ() function to delete the file when it has been printed.
Ideal for automatically cleaning up temporary files.


10/22/93

ABROWSE() - if you had frozen columns, clicking on left arrow would
sometimes result in no movement.  Fixed.

APICK() - improved mouse cursor control.

GETDATE() - improved mouse cursor control.

GFREADER() - mouse cursor was not shown during GETs.  Fixed.

GRUMPBROW() - if you had frozen columns, clicking on left arrow would
sometimes result in no movement.  Fixed.

GRUMPBROW() - improved mouse cursor control, especially when using
autorefresh parameter which caused "caffeine cursor".

GRUMPCALC() - clicking on the "F1 help" message will bring up the
help screen.

GRUMPCALC() - added mouse movement arrows.

HELP() - right click would not exit when viewing a help screen. Fixed.

HELPBROW() - added mouse movement arrows.

HELPDEV() - right click would not exit when viewing a help screen.
Fixed.

HELPDEV() - while entering help text, left doubleclick will save text
and right click will exit.

POPCALC() - improved mouse cursor control.

POPSTOP() - improved mouse cursor control.

PRINTOK() - right click will now exit.

RAINBOW() - improved mouse cursor control.

SETFILT() - improved mouse cursor control.

SHADOWBOX() - now hiding mouse cursor if it is within the screen area
where the box will be drawn.

TTY(), TTY2() - no longer turning mouse cursor on and off.

WAITON(), WAITOFF() - improved mouse cursor control.

YES_NO(), YES_NO2() - improved mouse cursor control.


10/25/93

ERR_MSG() - improved mouse cursor control.

HELPDEV() - a call to ShowMouseCursor() (at app. line 816) was not
surrounded by preprocessor directives to ensure conditional compilation.
Fixed.

INDEXBAR2() - if compiled with /dCLIPPER52, would not create indexes for
empty files.  Fixed.

POPDATE() - no mouse cursor in recurring appointments option window.
Fixed.

GFSAVEENV() / GFRESTENV() - no longer turning mouse cursor on and off.


10/27/93

READMODAL() - mouse implementation was precluding nested reads.  Fixed.
Files changed: GKBASIC.PRG, GETSYS.PRG, GETSYS52.PRG

@..GGET - all Grumpfish GET extensions now fully mouseable.  Files
changed: GKBASIC.PRG, GETSYS.PRG, GETSYS52.PRG


10/28/93

HELPBROW() - if it needs to open the lookup database, it will explicitly
do so as shared, regardless of the global EXCLUSIVE setting.


10/29/93

DROPBOX(), EXPBOX(), POPBOX() - no longer turning off mouse cursor.

POPDATE() - added mouse movement arrows.

POPDATE() - if there are appointments for the currently highlighted
date, you can click anywhere on the view box to begin editing
immediately.

POPDATE() - right click would not abort note editing.  Fixed.

POPNOTE() - no longer turning off mouse cursor upon entry.

POPPHONE() - added mouse movement arrows.


11/04/93

@..GET / @..GGET - using mouse to jump to a GET with an invalid WHEN
clause would cause lock-up.  Fixed.  Files changed: GETSYS.PRG,
GETSYS52.PRG

ERR_MSG() - the "Error" message is now multi-lingual (e.g., English,
French, or German).  Note that because English and French date formats
are identical, if you prefer French you must recompile ERRMSG.PRG with
"/dFRENCH".

GFALERT() - will emulate ALERT() behavior by treating semi-colons in
message as line breaks.

GFPICKFILE() - crashed when attempting to view the structure of a
database that was already open.  Fixed.

POPDATE() - when using search option, mouse can now be used to make
selection of which date to jump to.

YES_NO() - the title message is now multi-lingual (e.g., English,
French, or German).  If you want it to be something other than
"Question", you may also now pass it as the 5th parameter to this
function.


11/08/93

@..GGET - mouse clicks caused crashes in 5.2 version.  Fixed.

Version 4.01 released.


11/16/93

ABROWSE() - passing any of the four window coordinates as parameters
resulted in "argument error".  Fixed.

@..GET / @..GGET - when jumping from one GET to another, the edited
value of the old get will be assigned.  Files changed: GETSYS52.PRG,
GETSYS.PRG


11/17/93

GRUMPBROW() - vertical and horizontal movement blocks were ignored
when moving around with the mouse.  Fixed.

INDEXBAR() - if you called it twice in succession using the 5.2 EVERY
clause, the second call would result in no status bar.  Fixed.

INDEXBAR2() - if you called it twice in succession using the 5.2 EVERY
clause, the second call would result in no status bar.  Fixed.


11/19/93

GRUMPBROW() - fixed alignment problem when printing dates and numerics
(specific to CA-Clipper 5.2 version).

LITE_MENU2() - when using the optional DISPLAY clause with the
Grumpfish @..PROMPT replacement, any tildes would inadvertently be
displayed.  Fixed.  (File changed: GRUMPM.CH)


11/21/93

GRUMPBROW() - if using auto-refresh, mouse cursor would disappear.
Fixed.


11/29/93

GRUMP.CH - added #ifndef statements to preclude redefinition warnings
for YES and NO manifest constants (when also including 5.2's COMMON.CH).


12/01/93

ABROWSE() - will now dynamically resize properly even if you have
multiple line column headings.


12/04/93

HELPBROW() - now works properly with date fields.


12/10/93

GFPICKFILE() - transparent optimization ("*.").

POPDATE() - when doing text search for appointments, you were limited
to 12 finds.  This limit has been removed.


12/14/93

INDEXBAR2() - added Comix support, by kind courtesy of David Yager.
Files changed: INDEXBA2.PRG, GRUMPIND.CH.


12/20/93

GFVALID() (READ VALIDATION) - added logic to check for right click
to exit from READ.  File changed: GFVALID.PRG


12/22/93

Version 4.02 released.


12/23/93

POPPHONE() - if you had a PHONE.DBF from prior to GrumpLib version 4.0
(i.e., without FAX and MOBILE fields), calling POPPHONE() twice in
succession would result in a run-time error.  Fixed.


12/27/93

ISCONFIG() - now opening CONFIG.SYS file in readonly mode rather than
read/write mode.


12/28/93

INDEXBAR2() - sometimes tried to open index files with the same names
as tags (which often failed spectacularly).  Fixed (thanks: Jon Derman)

@..SSAY - now works with PICTURE clauses.

SETFILT() - if you kept discarding a query criteria, unwanted tildes
would creep into the boolean options.  Fixed.


12/29/93

SETFILT() - if you had a query in progress and pressed ESC at the fields
window, the trailing boolean (AND, OR) would not be truncated and thus
caused a run-time error when executing the query.  Fixed.


12/31/93

GFMONTH() - added accents to three French months (Fvrier, Aot,
Dcembre).

SPREAD() - transparent optimization.


01/04/94

GETDATE(), POPDATE() - added logic for Ctrl-PgDn and Ctrl-PgUp,
which allow you to move forward and backward, respectively, by
one year.

INDEXBAR2() - Comix extensions will now work with Clipper 5.01 as
well as 5.2.


01/05/94

BLANK4() - blocks slid too quickly.  Fixed.


02/02/94

General -- the (harmless) ExoSpace warning about segment names will no
longer occur.

IsMouse() -- new function added.  See Norton Guide for details.

LastRow() and LastCol() functions renamed to GFLastRow() and
GFLastCol(), respectively, to preclude naming conflicts with other 3rd
party products.

General -- all .PRG files that called the LastRow() and LastCol()
functions have been updated to call GFLastRow() and GFLastCol().


02/11/94

ABROWSE() - would crash if you deleted the last element of either the
primary or any nested arrays.  Now, you will be asked to confirm when
you delete the last array element, and if you go ahead with it, you
will be forced back one nesting level (or out of the function completely
if you emptied the primary array).

POPNOTE() - will now enforce 64K limit in the event that user types in
the name of an existing file to edit.


03/07/94

YES_NO2() - added optional parameters to allow TAB and SPACEBAR to
emulate the left/right arrows.

GRUMPBROW() - if you used HELPBROW() or similar validation functions,
you would sometimes end up with workarea-related errors.  Fixed.  File
changed: BROW.PRG


03/15/94

GRUMPBROW() - if you specify a fieldname that does not exist, you will
now get an error message to that effect before GrumpBrow() terminates.


03/31/94

GETDATE() - added fifth <lHolidays> parameter to match the Norton Guide
documentation.

GFPQKILLJOB() - would delete current file rather than file passed as
parameter.  Fixed.  File changed: GFPRINTQ.PRG


04/06/94

APICK() - would center any unselectable text if the first and last
characters matched.  This created undesirable effects for text fitting
this criteria (e.g., "text").  An ISALPHA() test has been added to
prevent this from happening.

APICK() - PgDn and PgUp would erroneously allow you to land on
unselectable items. Fixed.


04/18/94

GRUMPBROW() - now making sure that TBrowse is stable prior to allowing
a full-screen edit.


04/26/94

GRUMPBROW() - added logic to handle multiple exit keys.

GRUMPBROW() - mouse clicks sometimes moved you to the wrong cell.
Fixed.

HBLINDCLOSE() / HBLINDOPEN() - changed delay logic to preclude
undesirable compiler optimization (which resulted in no apparent
delay).  File changed: HBLINDS.PRG

HBLINDCLOSE() / HBLINDOPEN() - when in 50-line mode, these functions
ignored the bottom rows of the screen.  Fixed. File changed: HBLINDS.PRG

HELPBROW() - if you allow the user to add records to the lookup table,
you may now specify a codeblock which will call your own add function
rather than using the default logic.  This should be passed as the
17th (!) parameter.  This codeblock should return a logical value:
True (.T.) means that it is okay to exit HELPBROW(), False (.F.) will
keep the user within the HELPBROW() window.

HELPDEV() - when editing an existing help screen, you will not always
have to go through everything when you only want to change the text.
Thanks: Jeff Sampson.

NET_USE() - cosmetic: if waiting for a file, if you specified the
optional clauses "VIA", "READONLY", and "ALIAS" they would be shown as
part of the waiting message.  Fixed.


04/27/94

GFPQADDJOB() - numerous parameters added.  See Norton Guide.

GFPQCURRJOB(), GFPQKILLJOB() - removed in light of new function
GFPQSTATUS().  See Norton Guide for more details.

GRUMPBROW() - if you use alternate keys and wish not to have any prompts
displayed at the bottom of the screen, pass null strings as your key
prompts.


04/28/94

Version 4.03 released.


05/03/94

GRUMPBROW() - if you used multiple row headings, mouse clicks would
leave you in the wrong row. Fixed.


05/12/94

REC_LOCK() - added optional <nRec> parameter which can be used to
lock multiple records (5.2 only).


05/19/94 - added new function SetMouseLimits().  See Norton Guides
for more info.


05/23/94

GETSYS.PRG, GETSYS52.PRG -- transparent optimization

COLORMOD() - when changing a color setting, the color palette will
pop up away from the cursor so as not to cover up the color being
changed. File changed: COLORSET.PRG


05/25/94

COLORMOD() - when seleting a color with the mouse, the arrows will
be drawn immediately to denote which color is being changed.


06/01/94

WAITOFF() - changed from an #xcommand directive to an #xtranslate
for greater flexibility (file changed: GRUMP.CH).


06/02/94

NETUSE() - would not open the 8th index if the <cIndex8> parameter was
passed. Fixed.


06/04/94

GFMCURSOR() - added this new function, which allows you to select from
five different mouse cursor shapes.  See Norton Guide for more
information.


06/10/94

ADD_REC() - modified to support optional CA-Clipper 5.2
<lReleaseRecLocks> parameter. See Norton Guides for more details.


06/13/94

General -- when scrolling MEMOEDIT line-by-line, mouse cursor was
inadvertently redrawn thus leaving multiple cursors.  Fixed.

GRUMPBROW() - added logic to ensure mouse clicks went to proper cell
with one or more frozen columns.


06/14/94

LITE_MENU2() - added optional hotzones parameter, which enables you to
establish active mouse hotzones during the menu wait state.  See Norton
Guide for more details.


06/16/94

GRUMP.CH - added logic to preclude compiler warnings due to conflicts
with the CLIP4DOS.CH header file.


06/29/94

GRUMPBROW() - while in view mode, the [N]ext and [P]revious keys were
ignored if they were lower-case.  This has been rectified.

GRUMPBROW() - when editing a column that was part of an active filter
or index, the screen would not be completely redisplayed unless the
column heading contained the name of the field.  Fixed.


07/01/94

MENUH() - added seventh parameter, <nChoice>, which enables you to
specify the initially highlighted menu option.  This is useful when
using MENUH() in conjunction with LITE_MENU2() for a pulldown menu
system.


07/06/94

@..GGET - added new optional HELPCODE clause. See Norton Guide for
more details.


07/07/94

Version 4.04 released.


07/24/94

@..GGET - use of optional CALCULATOR clause caused run-time error.
Fixed.  File changed: GFREADER.PRG


07/26/94

PRINTOK() - pre-initialized KEY variable to zero to alleviate
problems when printer goes off-line then immediately back on-line.
(This would apply if you called PRINTOK() as part of an error-handler
codeblock.)


07/29/94

APICK() - you can now use trigger letter logic (i.e., selecting an
array element by typing its first letter) similar to @..PROMPT.
Use optional TRIGGERS clause with APICK user-defined command.
Files changed: APICK.CH, APICK.PRG

GFALERT() - if using multi-line message and last line was the longest,
it would spill outside the box boundaries.  Fixed.


08/02/94

INDEXBAR() - creating a conditional index with the WHILE clause would
not work properly.  Fixed.  File changed: INDEXBAR.PRG


08/08/94

ABROWSE() - will now verify that mouse clicks are within the horizontal
boundaries of the browse window before changing the highlighted row.


08/10/94

Version 4.05 released.


08/12/94

GFONTICK() - fixed bug that caused it to stop working at midnight.
Also made this completely real/protected mode compatible.  Thus
GFONTICKX() is no longer required.  If you have any calls to GFONTICKX(),
you should change them to GFONTICK().


08/15/94

APICK() - now disabling any remapping of the up and down arrow (for use
in conjunction with GrumpBrow() validations).  File changed: APICK.PRG


08/16/94

GRUMPBROW() - added WAITON() message during PACK operation.


08/17/94

READ TIMEOUT - added optional logic to GFREADER.PRG to properly span day
boundaries.  If you are using this command in an application that will
be used around midnight, then you should recompile the file GFREADER.PRG
with the /dAFTER_MIDNIGHT switch.


08/23/94

ABROWSE() - added PICTURES parameter.  See Norton Guide for more info.


08/30/94

GRUMPBROW() - moved cell editing logic so that the Enter keypress can
now easily be remapped to do other things (e.g., trigger incremental
search mode).


08/31/94

@..GGET..STEP - if you entered a decimal point, the cursor would not
move to the right of it (as is customary xBASE behavior).  Fixed.
File changed: GKSTEP.PRG


09/10/94

GFPICKFILE() - will no longer draw elevator bar on right side of
picklist if all elements fit in window. File changed: GFPICKFI.PRG


09/20/94

SETFILT() - length of QUERY_FILE field has been increased from 8
characters to 10 to accommodate aliases longer than 8 characters.
(Symptom: no queries appeared in the front SETFILT screen.)


09/28/94

SETFILT() - if you used the "OR (" boolean operator, you would get
a mismatched number of final closing parentheses.  Fixed.


10/03/94

GFINDGET() - if using a character string to search, the function would
find the first occurrence of the string in the name of any GET (which
could often be the wrong GET).  Fixed.  File changed: GFINDGET.PRG


10/04/94

@..GGET - added new CHECKBOX option.  See Norton Guide for more
details.  Files changed: GFREADER.PRG and GRUMPR.CH


10/05/94

Added new functions GFStatInit() and GFStatBar(), which provide
progress status bars for the COPY TO and APPEND FROM commands.
See Norton Guide for more details.  (Filename: STATBAR.PRG)


10/06/94

GRUMPBROW() - when multiple columns were locked, mouse clicks would
sometimes move you to the wrong cell.  Fixed. File changed: BROW.PRG


10/14/94

GRUMPBROW() - when searching, the incremental search string will be
shown in the GET color to better differentiate from the rest of the
window.

SETMOUSELIMITS() - this function caused memory lockups.  It has
been fixed.  File changed: GFMOUSE.OBJ


10/17/94

MENUV() - if you were using mouse support, trigger letter keypresses
were ignored.  Fixed.  File changed: MENUV.PRG


10/18/94

NET_USE() - reworked the logic for handling sharing violations due to
bug in CA-Clipper run-time error-handling system.  File changed:
NETUSE.PRG

Version 4.06 released.

* eof HISTORY.TXT
