ftp.nice.ch/peanuts/GeneralData/Usenet/news/1993/csna/csna.1993.42.tar.gz#/csna.1993.42/csna.42.09

This is csna.42.09 in view mode; [Up]

Path: digifix!not-for-mail
From: Mike Ferris <mike@lorax.com>
Newsgroups: comp.sys.next.announce
Subject: SUBMISSION: MOKit Version 0.9 Release 1 available
Date: 12 Oct 1993 23:48:24 -0400
Organization: Next Announcements
Lines: 130
Sender: sanguish@digifix.com
Approved: sanguish@digifix.com
Message-ID: <29ftq8$99m@digifix.digifix.com>
Reply-To: mike@lorax.com

I have just uploaded the first release of a kit of objects called MOKit (for Mike's Object Kit) to cs.orst.edu and sonata.cc.purdue.edu.  It should be in pub/next/submissions at both sites until the moderators migrate them elsewhere.

MOKit was developed on NextStep 3.1.  It should work on 3.0 too.
MOKit is a source only distribution.

Here is some info from the ReadMe file:

------------Begin README---------------

MOKit Version 0.9, release 1
----------------------------

Welcome to the first release of MOKit!


What is MOKit?
--------------

MOKit is a set of objects which I have written.  I am making it available for use by whoever wants to use it.  Full source is provided for all the classes, palettes, and examples.

The following notice appears in each header file in the kit.

// ABOUT MOKit
//
// MOKit is a collection of useful and general objects.  Permission is
// granted by the author to use MOKit in your own programs in any way
// you see fit.  All other rights to the kit are reserved by the author
// including the right to sell these objects as part of a LIBRARY or as
// SOURCE CODE.  In plain English, I wish to retain rights to these
// objects as objects, but allow the use of the objects as pieces in a
// fully functional program.  NO WARRANTY is expressed or implied.  The author
// will under no circumstances be held responsible for ANY consequences to
// you from the use of these objects.  Since you don't have to pay for
// them, and full source is provided, I think this is perfectly fair.

As outlined above, anyone is free to use these objects in their own applications.  There is NO WARRANTY express or implied.

Now on to more interesting details.


What classes are in MOKit?
--------------------------

MOKit currently contains 7 classes, one palette, and one example app.  There is full Next-style class documentation for each class.

Here's a brief description of each class included in this release:

	MOString - yet another string class.  This class basically provides a wrapper for a c-style null-terminated string.  The class knows about Next-style unique strings as well.  Many methods for accessing and modifying the string are provided including a fairly complete set of covers for the regular ANSI string library functions.
	
	MOSybaseString - a subclass of MOString which adds a few methods for dealing with string's that will be used to build qualifiers for Sybase.  Primarily the class provides a way to make a given string case-insensitive SQL-style (eg. changing "a" to "[aA]").  It also provides a method for converting unix style wildcard characters into their SQL equivalents.
	
	MORegexFormCell - a subclass of FormCell which adds input validation via regular expression pattern matching.  Each cell can have a list of regular expressions associated with it.  When the user tabs out of the field, the entry is checked against the regular expressions.  The entry must match at least one of the cell's expressions or it is not accepted and the field does not allow editing to end.  It is possible to check a wide variety of input formats via regular expressions.
	
	MORegexTextCell - a subclass of TextFieldCell which is to TextFieldCell what MORegexFormCell is to FormCell.
	
	MODateFormCell - a subclass of MORegexFormCell specifically set up to check dates.  Dates cannot be checked completely by regular expression matching, so this class lets regular expressions do what they can and then finishes validating the date.  The class also allows customizable reformatting of entered dates via a printf style format string.
	
	MODateTextCell - a subclass of MORegexTextCell similar to MODateFormCell except that it is a TextFieldCell by ancestry.
	
	MOMatrix - a subclass of Matrix that allows variably sized rows and columns.
	

What else is in MOKit?
----------------------

As well as the class sources, headers, and documentation, MOKit contains several other peices.

There is one palette which has several Forms with preconfigured MORegexFormCells in them, several Matrix's with preconfigured MORegexTextCells in them, one Form with a MODateFormCell in it, and one Matrix with a MORegexDateCell in it.  The palette provides attribute inspectors for each of the four cell classes.

There is an example program which demonstrates the use of MOMatrix.

There are separate bundles for each class in the library.  The bundles are not for use in normal apps.  They are useful for apps that will do a lot of dynamic loading and for IB palettes.  See the REDAME file in the Bundle directory for more info.


How do I install it?
--------------------

There is a master Makefile in the top-level MOKit directory (the directory where this README file was).  The default install location is various directories under /LocalDeveloper.  If you want to change this, edit the first few lines of the master Makefile.

Once the installation locations are set up like you want, cd into the MOKit directory and type make install.  This will build all the necessary binaries and install everything (library, headers, documentation, and palettes).


How do I uninstall it?
----------------------

cd into the top-level MOKit directory and do a make uninstall.


How do I clean out the object code and binaries and such?
---------------------------------------------------------

cd into the top-level MOKit directory and do a make distclean.


What else can the top-level Makefile do?
----------------------------------------

These are the supported targets...

	lib:		builds the optimized library
	bundles:	builds the individual class bundles
	examples:	builds the example apps (depends on lib)
	palettes:	builds the IB palettes (depends on bundles)
	all:		build the lib, bundles, examples, and palettes targets
	install:	installs the library, docs, headers, and palettes
					(depends on lib and palettes)
	uninstall:	removes all traces of MOKit from the installation area
	distclean:	removes all derived and backup files from the MOKit
					distribution directory
	
More specialized control over building can be accomplished by using the Makefiles in the individual directories.  Specifically, debug and profile versions of the library can be made.  The top-level install target will install any versions of the library that exist when it is called.  It will only create the optimized version, though.  So if you want to install all three, first make the debug and profile versions using the Source directory Makefile, then use the install target at the top level.


Future Directions
-----------------

I plan to keep adding objects to this kit.  I have several in the works now that didn't quite make it into this release.  This release is number 0.9 because it will be the first release to be used by people besides me.  When I have had some comments and bug reports, I will create a 1.0 version.  For now, consider this a beta release.  I have also considered merging this project with the MiscKit effort currently being organised by Dan Yacktman.  I want to wait until their policy and such settles down, though, and I didn't want to delay letting people at these objects, so here they are.  Let me know what you think!


Well, that's all for now.  Please let me know if you use the kit.  Bugs, comments, and suggestions can be sent to:

Mike Ferris
mike@lorax.com

Happy hacking
	-Mike
------------End README---------------



These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Marcel Waldvogel and Netfuture.ch.