# rbcurse-experimental
This is related to the rbcurse ncurses toolkit, for building ncurses applications.
This provides stuff I've experimented with, and tested to some extent. It can be useful stuff to build upon
or to even use if it suits your purposes. Most of this stuff has been tested with positive cases and not
with negative data. It is minimally tested.
Use for home or unimportant programs, preferable don't release these widgets for public use.
Please submit patches if you find bugs or improve upon it.
> We better hurry up and start coding, there are going to be a lot of bugs to fix.
Contents as of time of creation of repo:
* directorylist.rb - shows directory in a list, allowing various kinds of selection and filtering and ENTER
* directorytree.rb - shows directory in a tree, allowing expansion
* masterdetail.rb - master detail pattern, two widgets
* multiform.rb - do not touch this at all. Should be nuked. It works but in order to keep
rbcurse simple and maintainable, I advise against using forms within forms. I've spent
weeks and months tracking cursor placement for forms within forms as in the old
tabbedpane and some old deprecated widgets.
* resultsetbrowser.rb - I am working on database aware widgets, check dbdemo.rb in examples
* resultsettextview.rb - same as above
* rscrollform.rb - a form that can display more objects than the window, scrolls horiz and vertically.
Used and tested only with single line widgets like Field, not with textviews and lists.
* stackflow.rb - widget that allows complex weightages to be assigned to stacks and flows
and resizing if window dimension changes. Tested only with weightages and not
absolute sizes. Expects weightages to be correct. More work can go into this
to make it robust.
* undomanager.rb - used in lists and textareas to support undo and redo. I've used it but
its a very simple piece of code and I am not too confident how well it will stand
in heavy use. Certainly use it for lists and textareas in personal applications.
## Short story
Minimally tested but interesting stuff
## Long story
Use stuff here at your own risk. Most of this works, and will work in most situations but may not take care validations, extreme cases, wrong data passed.
Its tested for basic use cases. Samples should help you. Don't use in production, or release for others to use. Use for personal use if you have too.
Feel free to fork and further develop stuff in here, or submit patches to me.
Some of this stuff may move to extras or core if its really useful and stable.
## See also
* rbcurse -
* rbcurse-core -
* rbcurse-extras -
## Install
gem install rbcurse-experimental
## License
Same as ruby license.