Angry Red PlanetCommon Libraries |
|
This package is a set of class libraries that we have created in the course of developing various Angry Red Planet programs. (The only one that is currently publically released is ArpTelnet. Most of the source for that isn't included here, but will be added to the distribution when ArpTelnet 2.0 is available.)
This code is being released open source under a slight various of the Artistic License. The intention is to make it as easy as possible for people to make use of the contained classes, but to encourage any changes they make to them to be rolled back into the Open Source distribution. The license also has provisions for renaming modified packages that are not rolled back into the main distribution, so that we can avoid problems like conflicting shared library names.
The current distribution of this code can always be found at the Angry Red Planet web site, http://www.angryredplanet.com/. Questions or comments should be directed either to Dianne Hackborn at <hackbod@angryredplanet.com>, or Eric Hackborn at <hackborn@angryredplanet.com>.
The main purpose of this current distribution is to make available our layout class library for people to play with and comment on. (Yep, just what we need: Yet Another Layout Library!) In addition, we are including our two "core" class libraries, parts of which the layout library uses.
Please be aware that this is something like an 0.3 release of this code. All of the documentation here has been fairly quickly put together -- you will need to look through the headers and maybe sometimes even the source code to really use it. We hope to get it cleaned up a bit, with a lot more documentation, but it is going to take time. Inspite of that, hopefully it will be useful "as-is" to some people out there; and if you have any questions or comments, do please contact us!
The following main pieces are included in this package:
This is a small set of various collection classes we have developed.
Probably the most useful to the rest of the world are the template classes
ArpVectorI
, ArpSTLVector
, and ArpPtrVector
:
these are intended to supply an "abstract vector" interface that can be
exposed in methods in public interfaces (particularily those in shared
libraries), as well as a couple common implementations of it.
This is our "core" set of classes -- it is basically a miscellaneous grab-bag of things that are useful in many other places. Included here are wrappers around messages and rgb_color structures, a class for iterating over multiple directories, a helper for managing add-ons, a generic implemention of "configuration panels" in an add-on, a smattering of debug macros, reference counting, and even Our Very Own String Class.
This is the FFont class I previously released, which provides a BFlattenable method for BFont objects.
This is the main part of the current distribution, the BView layout classes. These provide a common framework for creating control layouts that are automatically font sensitive and resizeable.
In addition to the above class libraries, there are a couple other pieces
to help in building and managing the distribution. The makefiles
directory contains some common makefile pieces that the other parts of the
package make use of to build themselves. The tools
directory
contains some scripts that we use internally to manage the distribution.
(Being only two people, we don't have a need yet for a full blown change
management system -- so we wrote these scripts just to help in passing
changes back and forth to each other.)
Note: if you just want a quick peek at what the ArpLayout library can do, you might to download one of the binary distributions, which includes just a pre-compiled binary of the ArpLayout test program.
The libraries are only distributed in source code form, so before using them you will have to build them. This should be easy to accomplish, with the following steps:
After much grinding, you should end up with the ArpCollections, ArpKernel, and ArpLayout libraries in the ArpLib directory, and the ArpLayout test program in ArpTest/ArpLayout. Right now, there are very few test programs or examples, so the only thing for you to immediately play with is the ArpLayout test program.
To do development, you should build a version of the library with debugging symbols. To accomplish this, run a "make clean" and then a plain "make" in the root ARP directory.
All files and code contained in this package are Copyright ©1998 Angry Red Planet, except where otherwise noted.
The files contained here-in are distrubuted under a modifed
form of the Artistic License.
See the file @License.html
or @License.txt
for a copy of this license.