
README

Disclaimer
----------
Copyright (C) 1995 Sergio Sigala <ssigala@globalnet.it>

Permission to use, copy, modify, distribute, and sell this software and
its documentation for any purpose is hereby granted without fee, provided
that the above copyright notice appear in all copies and that both that
copyright notice and this permission notice appear in supporting
documentation.

SERGIO SIGALA DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
EVENT SHALL SERGIO SIGALA BE LIABLE FOR ANY SPECIAL, INDIRECT OR
CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.

What is Venus
-------------
Venus is a C++ library that provides a semi-graphical interface like the
Borland's TurboVision framework.  The library is written to run under Linux
on 386+.  I wrote Venus to allow users to build programs with a good
interface in litte time.  Venus is fast because the algorithms who access to
the video memory are written in assembly.  Venus is not a commercial product
and is distribuited under the above license or, at your option, the GNU
General Public License.  For ensure some compatibility Venus is little
cracked from Borland's TV Pascal and assembly source code.

Required system resources
-------------------------
Like a decent graphical interface Venus needs a mouse to run properly.
Gpm is required.  I used Gpm 1.06 and it worked very well.  Direct mouse
support is no more available.

How to install the library
--------------------------
Unpack the archive.  You need root privileges to install the library in
/usr/lib and usr/include/venus directories.  Type `make install' to build the
library and install it.  Type `make all' to build the example program.

Work to do
----------
Add a context-sensible help system.

How to contact the author (me)
------------------------------
email:	ssigala@globalnet.it
smail:	Sergio Sigala
	Via Zendrini, 1
	25047 Darfo (BS)
	ITALY

Contributors
------------
Aivo Kalu <aivo@vjk.vil.ee>
Sergey Ya. Korshunoff <root@seyko.msk.su>
Mihkel Raba <mihkel@ice.edu.ee>

Important note about console (taken from ncurses)
-------------------------------------------------
You must either (a) tell Linux that the console terminal type is `linux',
or (b) make a link to or copy of the linux entry in the appropriate place
under your terminfo directory, named `console'.

The way to change the wired-in console type is by editing /etc/inittab.
Warning: this is not for the fainthearted, if you mess up your console
getty entries you can make your system unusable!  However, if you are
a Linux distribution maker, this is the right thing to do.

The easier way is to link or copy l/linux to c/console under your terminfo
directory.

Main changes from release 0.1 to 0.2
------------------------------------
addon.cc
addon.h		Colors added in the Program palette.

binedit.cc
binedit.h	BinEditWindow is a new little binary editor.

common.cc	General functions moved here.

config.cc
config.h	Many changes (but the interface is the same).

dialogs.h
dialogs.cc	Support for CM_LISTVIEWERDOUBLE command added.

editor.cc
editor.h	Key-to-command table made more customizable.

fedit.cc	Bug that generate seg-fault with many open files fixed.

listview.cc	CM_LISTVIEWERDOUBLE command added.

menubar.cc
menubar.h	A new MenuBar class is provided.

program.cc
venus.h		Program::run() method added.

scrbar.cc
scrbar.h	The ScrollBar now scrolls decently (via EV_MOUSEAUTO).

venus.h
view.cc		Some function names in View class changed.

system.cc	Big changes to operate with Gpm.  Events EV_MOUSEAUTO and
		EV_MOUSEDOUBLE added.

venus.h		CommonObj class suppressed.

screen.S	mousehide (or mouseshow) function name changed to mousedraw.

string.S	String scan functions rewritten in C and moved to the correct
		place (editor.cc).

lib/Makefile	Dynamic library building procedure fixed.

test/ste.cc	Maximum editor file size added (256kB) to prevent loading of
		large files.

Main changes from release 0.2 to 0.4
------------------------------------
*.h		All function are virtual (except those in Rect class).

button.cc	Sergey Ya. Korshunoff <root@seyko.msk.su> adds:
			If a button is focused:
			1) we can press both Enter and Space bar to select it.
			2) arrows key can be used to move to the next or
			   previous object (useful with many buttons).
			3) pressing LETTER is equal to pressing ALT+LETTER.

config.cc
config.h	Class removed from Program, so programmers can write and use
		their own functions (if they want).

editor.cc	Sergey Ya. Korshunoff <root@seyko.msk.su> adds:
			Added correction for drawptr, drawline in
			Editor::deleteText().

group.cc
venus.h		Mihkel Raba <mihkel@ice.edu.ee> adds:
			Method Group::execView() added.

listview.cc
listview.h	Big changes.
		Sergey Ya. Korshunoff <root@seyko.msk.su> adds:
			Both Enter and Space bar select the current item.

menubar.h
menubar.cc	Some improvements.

program.cc	New palette added for terminal mode.
		Mihkel Raba <mihkel@ice.edu.ee> adds:
			Programs don't crash when Program constructor is
			called with a NULL pdesktop, pmenubar, or pstatusline
			parameter.

rect.h		File killed.  Class Rect interface moved to venus.h.

screen.S	File removed.

string.S	File suppressed, functions converted in C and moved to
		view.cc.

system.cc	Venus now accesses to the memory via vcs* devices and can be
		runned from telnet.  It can run without mouse.
		Sergey Ya. Korshunoff <root@seyko.msk.su> adds:
			Don't enter string definitions from terminfo database
			like \Ec or \E7.  Actually we need enter only strings
			for keys, than we use (now we can use in menus and
			buttons 'C' letter as an hot key).  Now characters
			128..255 are handled correctly.

venus.h		Some changes.  `Video' is now a more user-friendly union.

window.cc	Window move and resize with keyboard works better.
		Sergey Ya. Korshunoff <root@seyko.msk.su> adds:
			Now we can move and resize it as we can do it with
			mouse (old behavior: can't move left as far as with
			mouse).

/lib/ste.cc	Sergey Ya. Korshunoff <root@seyko.msk.su> adds:
			After starting `ste' clipboard is not visible, full
			screen size window.  About box is displayed.

Main changes from release 0.4 to 0.5
------------------------------------
listview.cc	Bug fixed: ListViewer and ListBox don't select the first item.
		It can be selected only by moving the cursor down and up.
