Curses-UI
view release on metacpan or search on metacpan
2003-04-27 - Fixed critical bug that broke Menubar selection
Version 0.73
============
2003-03-28 - Added Russian, Polish, Italian and German language
pack
- Applied focusdelete and userdata patch by Raul Dias
- Fixed unselect for single selects in Listbox
- Fixed Solaris 8 Compile bug
- Did some documentation work
Version 0.72
============
2003-03-24 - Maintainer changed, new maintainer is now Marcus
Thiesen (MARCUS) <marcus@cpan.thiesenweb.de>
- Small bug fix to the delete call that will now
work right
- Mouse support is now optional
- Some additions to the Listbox widget
Version 0.71
============
2002-02-01 - Darn... the thing did not work correctly on non-
ncurses systems. Having things like
"BUTTON1_CLICKED" in the code does not work if
the Curses module does not have them defined. It
should be "BUTTON1_CLICKED()" to avoid warnings
like "Bareword "BUTTON1_CLICKED" not allowed..."
Solved this in all modules. Thanks to Nick
Slussar for noticing.
- Added mouse-support to the Calendar widget.
- Added language support, so the widget specific
language strings are configurable. The language
strings are in Curses::UI::Language::<language>.pm.
Extra languages can be created by adding a new
<language>.pm file over there. Currently I created
a Dutch and an English language module. I you create
a language module of your own, please send it to
me. I'll then include it in the distribution.
- Changed all year 2001 occurrances in the Changelog
to 2002. Thanks to Mark Overmeer (mr. Mail::Box) for
noticing that I was one year off ;-)
- Made sure that upon deleting a widget from a
container, its subwindows are deleted.
- Created calendar dialog (request made by Ravi Pina).
Also added a little demo to demo-widgets for this
new dialog type. The dialog is accessable via
Curses::UI ($cui->calendardialog).
- Changed the unpacking of mouse events a little
(thanks to William Setzer for the hint on
unpack("sx2i3l", $MEVENT) instead of
unpack("i5", $MEVENT)).
Version 0.70
============
2002-01-31 - After a lot of hacking on the resize code
I decided to leave it out for now. I can't get
things stable :-( I will try to look into this
at some other time.
- Made a start on the support of mouse events.
It's doable! :-) Most widgets now have some sort
of mouse event handler. Or widgets should try
to focus if clicked upon.
- Resolved a whole bunch of small bugs that
turned up while building mouse support.
2002-01-29 - Removed automatic resize control. This did not
work good on ncurses (crashes). Now, resizing
is done after a keypress.
- Fixed a bug in the char_read() method. The
returncode of the select() call is checked for
errors.
- Non interacting dialogs (status + progress) are
now not focusable anymore. This makes sure that
the current window is not blurred.
- Fixed bug: the horizontal positioning of the
first opened menulistbox from a menubar was
wrong.
- Renamed some "constants" to prevent future
namespace clashes:
KEY_ESCAPE => CUI_ESCAPE
KEY_SPACE => CUI_SPACE
KEY_TAB => CUI_TAB
2002-01-28 - Removed all demo-Curses::UI* examples from the
distribution and created a new widget demo:
examples/demo-widgets. In this demo all
widgets and dialogs are showed.
- If you do "make test INTERACTIVE_TEST=1", the
widget demo program will be started if all
tests were successful.
- Fixed examples/pop3_reader for use of the new
event system.
- <SHIFT-TAB> is now supported to focus the
previous object (this will not work on all
terminals, but it's a nice-to-have!).
2002-01-25 - Fixed some problems with modal focused windows.
- The Popupmenu widget now also works. This widget
is partly rewritten to make it more clean and
make it fit in the new event system.
- New method: Curses::UI->fatalerror( [error] ).
This will display a fatal error to the user.
After pressing a key, the program will exit.
This is usefull in places where you would
otherwise use die() (or one of its Carp friends).
- Moved usemodule() from the Container package to
Curses::UI. This method now honours the %INC
hash, which means less on-the-fly loading of
modules will occur.
- Made searching through listboxes and textviewers
possible in the new event system.
- Fixed some -onchange event bugs in popupmenu.
till 2002-01-24 - The complete event structure is set upside-down.
By using this new event structure, timed routines
and mouse events are possibilities. Maybe even
integration with POE! :-) (but I haven't looked
into that enough to be sure). We also have a
Tk-like mainloop() now.
- Updated a lot of widgets to support the new event
structure (central mainloop in Curses::UI which
delegates events). This means that a widget has
a event_keypress() method, which handles
delegated keypresses.
Version 0.64
============
2002-01-19: - Started on building a complete new event handling
system. This should simplify a couple of things and
it should enable new features like some kind of
time loop and mouse events.
Version 0.63
============
2002-01-16: - Added a CLASS HIERARCHY section to the
documentation of each Curses::UI class.
- All focusable objects now have the following
event callbacks:
-onfocus / onFocus()
-onblur / onBlur()
- The Curses::UI::Calendar widget now fully
supports the years 0 - 9999, including the
transition from the Julian to the Gregorian
calendar (september 1752). This beats the
use of timelocal/localtime (which would
currently only support 1900 - 2038 IIRC).
- Added intellidraw() method to Curses::UI::Widget.
If this method is called, the widget is redrawn, but
only if it's visible (not hidden and in topwindow)
and if intellidraw is enabled (-intellidraw data
member has a true value).
This routine can be used to be able to redraw
widgets on a status change, without having to figure
out yourself if this wouldn't clutter up the screen.
The -intellidraw option is meant for widget
builders (see for example the Checkbox code).
- Incorporated intellidraw() method in:
- Curses::UI::Window
- Curses::UI::Label
- Curses::UI::Calendar
- Curses::UI::Buttonbox
- Curses::UI::Listbox (+ descendants)
- Curses::UI::Checkbox
- Curses::UI::Popupbox
- Curses::UI::Progressbar
- Curses::UI::TextEditor (+ descendants)
- Curses::UI::SearchEntry
- Added a little example application to demonstrate
the new intellidraw feature: examples/demo-intellidraw
2002-01-15: - Changed the displaying of the calendar widget
a little. The topbar showing a date is only
highlighted if the cursor is on the selected date.
- Renamed some widgets (now we still can). I think
there are too many capitals in them...
- Curses::UI::ListBox renamed to
Curses::UI::Listbox
- Curses::UI::CheckBox renamed to
Curses::UI::Checkbox
- Curses::UI::MenuBar renamed to
Curses::UI::Menubar
- Curses::UI::MenuListBox renamed to
Curses::UI::MenuListbox
- Curses::UI::PopupBox renamed to
Curses::UI::Popupmenu
- Curses::UI::ProgressBar renamed to
Curses::UI::Progressbar
- Curses::UI::ButtonBox renamed to
Curses::UI::Buttonbox
- Curses::UI::RadioButtonBox renamed to
Curses::UI::Radiobuttonbox
- Curses::UI::Dialog::FileBrowser renamed to
Curses::UI::Dialog::Filebrowser
- Added event callbacks to:
- Curses::UI::Calendar (-onchange / onChange())
- Curses::UI::Listbox (-onchange / onChange())
- Curses::UI::Checkbox (-onchange / onChange())
- Curses::UI::TextEditor (-onchange / onChange())
- Curses::UI::TextEntry (-onchange / onChange())
- Curses::UI::PasswordEntry (-onchange / onChange())
- Curses::UI::Popupmenu (-onchange / onChange())
- The options that can be passed to the new()
methods, are case insensitive now. So it is
perfectly okay to write:
$win->add(
'cb', 'Checkbox',
-Label => 'Demonstration widget',
-onChange => sub { exit() }
);
Version 0.62
============
2002-01-14: - Changed the Label widget. The text to
show on the widget may contain more than
one line of text (so newline characters
may be used). The status-dialog is changed
accordingly. Other widgets that use Labels
are not updated yet.
- Updated Curses::UI::Dialog::Progress for
use with the new Label widget.
- Fixed a layout bug in Curses::UI::Widget
(the available height and width were
( run in 0.523 second using v1.01-cache-2.11-cpan-39bf76dae61 )