RCS file: RCS/Widgets.pm,v
Working file: Widgets.pm
head: 0.6
branch:
locks: strict
	corliss: 0.6
access list:
symbolic names:
keyword substitution: kv
total revisions: 6;	selected revisions: 6
description:
Provides higher level access to self-contained widgets, all
rendered with Curses.  Requires the Curses module.

Currently provides:
	--list_box:  provides a scrolling list box
	--txt_field:  provides a text field
	--calendar:  provides a navigable calendar
	--buttons:  provides a vertical or horizontal button set
	--init_colours:  initialises the colour portion of Curses,
	  and set ups the primary colour pairs
	--select_colour:  sets the colour mode for the appropriate
	  window, by name
	--line_count:  counts the number of lines, accounting for both
	  line length and new lines.  Can also return a hash denoting #
	  of characters by line, and an array of each line's content.
----------------------------
revision 0.6	locked by: corliss;
date: 1999/02/02 17:18:45;  author: corliss;  state: Exp;  lines: +166 -53
--Fixed the small problem of the text fields not liking 0s. (Whoops!)
  Never put the the getch sequence as the test for the while loop. :-P
--Fixed the cursor location bug, as well as the paging bug.
--Expanded support for all printable characters on the PC keyboard in
  text fields.
--Fixed the cursor/line bug when the cursor position is on the last line,
  and on a new line character in the text field widget.
--Added Up/Down arrows to indicate existing content out of view in the
  window in the text field widget.
--Added Up/Down arrow, Page Up, Page Down support to the text field widget.
--Moved the $colour scalar into the BEGIN tag clause, so the has_colors()
  function need only be called once.
--Moved conditional declaration of the select_colours function into the
  function itself, dependent upon the persistent $colour.
--select_colours now returns a 1 if it could successfully set the colour,
  as per $colour, and a 0 if not.
--init_colours() *must* be called now, since this is the routine that sets
  the value of $colour, and the colour pairs.
--Each widget now draws its border with A_BOLD if the $colour is not
  available and 'draw_only' was not set.
--Added Up/Down arrows to indicate list entries that exist out of view of
  the window in the list box.
----------------------------
revision 0.5
date: 1999/01/11 02:09:55;  author: corliss;  state: Exp;  lines: +61 -46
--Fixed some of the bugs in the text field widget, but I still have
  some work to do on the paging portion.
--Text field now directly supports teh backspace, home/end, and right/
  left keys, as well as normal text.
----------------------------
revision 0.4
date: 1999/01/10 20:19:47;  author: corliss;  state: Exp;  lines: +387 -195
--All widgets now handle their own special keys
--Text widget now handles modification to content as well, returning the
  the updated content to the calling routine.
--cal output now stored in a persistent array, so it only needs to be
  called when moving to a new month, now.
--None of the widgets need to have window declared for them, now.  All
  of them will create their own derived windows, and destroy them upon
  exiting the routine.
--Replaced all chr calls in box commands with the ACS_* constants, for
  more reliable rendering on various term types.
--New select_colour function for selecting character colour by name.  Only
  supports red, blue, green, and yellow, currently.
--More comments, and a few misc. tweaks.
.
----------------------------
revision 0.3
date: 1999/01/03 23:21:59;  author: corliss;  state: Exp;  lines: +56 -11
Debuged the Calendar widget for highlighting the current date, optimised
the code a bit more, and fleshed out more of the comments.
----------------------------
revision 0.2
date: 1998/12/30 18:11:39;  author: corliss;  state: Exp;  lines: +41 -31
Optimised the code a bit with better if/elsif structures, as well
as making the colour coding consistent among the widgets and
optimising the variable declarations.
----------------------------
revision 0.1
date: 1998/12/29 17:18:16;  author: corliss;  state: Exp;
Text field, list box, buttons, calendar, and init_colours function
completed, but with little or no error handling.
=============================================================================