File:           SantasGiftBagV3.0.zip
Author:         Brian Tietz (briant@timelinevista.com)
Release:        3.0
Compatibility:  R4.5
Location:       contrib/develop
Description:    ColumnListView, Document application framework, 
                WindowPositionSet, MouseWatcher, BufferedFile, other goodies
Notes:
	These classes, with the exception of ColumnListView, are documented
	through their header files.  The functions and their arguments are 
	clearly named so it should be obvious how to use them.  When it's not, 
	the functions are documented through comments in the header files.
	ColumnListView has html documentation.  Make sure to read the license.

	ArrowButton: Works just like BButton, but it provides arrows with the
		standard Be appearance like what is provided with BScrollBar.
	AutoDeleter.h: If you new temporary objects in a function with several
		points of exit, at each of which the temporary objects need to be
		deleted, it clutters your code.  If you instead create an
		AutoDeleter on the stack, your dynamically allocated temporary
		objects will be deleted with cleaner code.
	BetterScrollView: BScrollView replacement that allows you to
		specify directly the size of your data rect, and the
		BetterScrollView takes care of the scrollbar proportions and
		inactivating the scroll bars when the entire content is showing,
		and provides nice "pulling behavior" to reveal the content
		when the user is resizing the scroll view bigger.
	BufferedFile: Buffers file output for increased efficiency.
	ChecksumDataBuffer: Buffers data in an endian-independent manner for
		network transmission, and can generate a checksum for transmission
		by multiple methods.
	Colors.h: List of const rgb_color definitions for the standard Be UI 
		colors.
	ColumnListView: BListView-derived class with columns that the user 
		can resize, drag, sort, etc., with BOutlineListView-like support 
		for hierarchical lists.
	Cursors.h: A couple of commonly needed custom cursors.
	DeepBevelView: A BView that draws a deep bevel like that of
		BTextControl around its perimeter.
	DocumentApp: A document file management framework.  Provides a
		BApplication-derived class and a BWindow-derived class which
		work together to give nice document behavior, automating the
		process of quitting when the last window closes, prompting to
		save unsaved documents, etc. etc.  It saves a LOT of work
		because getting perfect behavior in a multi-document application
		can take hours of coding, testing, and recoding to get it right.
	EndianIndependentFile: BufferedFile-derived class to buffer file output
		for improved efficiency and allows readable code style to still
		be efficient.  Eliminates endian-ness issue by providing automatic
		byte swapping.  Includes a handy ReadString/WriteString pair.
	FontSensitiveLayoutTools: A set of classes to facilitate easy font-
		sensitive GUI layout.
	GenericTestApp.cpp: Generic test application framework for testing 
		code fragments that need a GUI.  Useful for putting together new 
		classes and also simplest-case code for reporting BeBugs(tm).
	ImageAboutWindow: A nice looking about box window that extracts an
		image file from a specified resource in the application, putting
		it in a bar on the left hand side, displaying version info from the
		application version resource, and displaying the specified text.
	MultiLineTextControl: Works just like a BTextControl, but allows 
		multiple lines of text.
	NewStrings: Wrapper for BFont::GetStringWidths that returns the width
		of the widest string.  strdup, strcat cousins that do their 
		allocation using new.
	PrefilledBitmap: BBitmap wrapper that allows you to specify the image 
		data in the constructor.
	ScrollViewCorner: A BView for filling the corner of a BScrollView
		that's not seated in the lower-right corner of a B_DOCUMENT_WINDOW.
	TabView: Useful if you want to link against PR1 for a wider audience.  
		Also, the BTabView implementation is shit for resizable windows 
		and chokes on hidden child views, TabView handles both cases 
		properly.  Funny aside:  I wrote TabView as a stopgap measure 
		while I was waiting for R3, planning to switch to BTabView in my 
		Scheduler program project once I got R3.  But as soon as I 
		switched to BTabView I found the implementation so bad that I 
		switched back to using my own TabView.
	TextEntryAlert: A class very similar to BAlert, but which has a text
		entry box for the user to enter text into, which is reported back to
		the application when the user dismisses the dialog.  It allows 
		control over the BWindow look and feel flags, so it need not be a
		modal dialog, although that is the normal usage.
	TypedBList.h:  A templated BList that adds type checking, since BList's
		use of void* doesn't allow the compiler to do type checking.
	UserResizeSplitView: Provides a user draggable slider to adjust the size
		of two adjacent views.
	WindowPositionSet: A class to make sure that windows are actually 
		visible onscreen when they're created, and to manage the 
		locations of newly created windows to space new windows so that 
		each new window doesn't sit on top of the last one.  Gives nice 
		behavior and is easy to use.
	WrappingTextView:  A BTextView derived class that automates the
		process of rewrapping the text when the view is resized.  Also 
		provides a mechanism for storing the text view contents when
		appropriate, which is useful if the view is of an object that can
		exist without the view, so that this more persistent object can be 
		kept up-to-date when the text is modified.
