<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
   <TITLE>CursorGen Documentation</TITLE>
   <META NAME="Author" CONTENT="OmicronSoft">
   <META NAME="GENERATOR" CONTENT="User-Agent: Mozilla/3.0Gold (Macintosh; I; 68K)">
   <META NAME="Description" CONTENT="BeOS User Documentation for CursorGen V1.0.0">
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#551A8B" ALINK="#0000FF">

<H1 ALIGN=CENTER><IMG SRC="Images/CursorGenIcon.gif" ALT="Icon" HEIGHT=52 WIDTH=64></H1>

<H1 ALIGN=CENTER><FONT COLOR="#0000FF"><FONT SIZE=+4>CursorGen User Documentation</FONT></FONT></H1>

<CENTER><P><B>Version 1.0.0</B></P></CENTER>

<H4>Table of Contents</H4>

<UL>
<LI><A HREF="#Summary">Summary</A></LI>

<LI><A HREF="#Installation">Installation</A></LI>

<LI><A HREF="#Registration">Registration</A></LI>

<LI><A HREF="#Document Window">Document Window</A></LI>

<LI><A HREF="#Edit Cursor Window">Edit Cursor Window</A></LI>

<LI><A HREF="#Animate Window">Animate Window</A></LI>

<LI><A HREF="#Samples">Samples</A></LI>

<LI><A HREF="#Animating Cursors">Animating Cursors</A></LI>

<LI><A HREF="#Support">Support</A></LI>

<LI><A HREF="#What's Planned">What's Planned</A></LI>
</UL>

<P>
<HR WIDTH="100%"></P>

<H3><A NAME="Summary"></A>Summary</H3>

<P>CursorGen is an application to generate cursors for the BeOS. Cursors
can easily be defined and packaged for BeOS development. Cursors defined
in the same document can generate MetroWerks header files can be used in
the BeOS API. CursorGen also allows the testing of the cursor both statically
and dynamically. Static testing allows the currently edited cursor to be
viewed the same way it would appear in the final BeOS application. Dynamic
testing allows the cursors grouped in a document to be animated in its
own thread.</P>

<P>
<HR WIDTH="100%"></P>

<H3><A NAME="Installation"></A>Installation</H3>

<P>CursorGen may be installed in any location on your drive. CursorGen
supplies three directories of additional files. This includes:</P>

<P><B>Samples </B>: The <A HREF="#Samples">Samples Folder</A> contains
a wide range of pre-defined cursors to view, use, modify, and test to your
liking. If you have designed some cursors that you would like to be included
in the next release of CursorGen, please feel free to e-mail the a tar
file to me.</P>

<P><B>AnimationCode</B>: <A HREF="#Animating Cursors">AnimationCode Folder</A>
contains a C++ class to animate a group of cursor in their own thread.
This same class is used to animate the cursors in the CursorGen document
interactively. If you have enhancement ideas for this class, please e-mail
your modifications. You will be given credit in the files when released
in the next version. See the section on <A HREF="#Animating Cursors">Cursor
Animation</A> regarding the usage of this class.</P>

<P><B>Documentation </B>: The Documentation Folder contains HTML files
describing the usage of CursorGen. If you are reading this, then you have
found this folder.</P>

<P>
<HR WIDTH="100%"></P>

<H3><A NAME="Registration"></A>Registration</H3>

<TABLE CELLSPACING=2 CELLPADDING=2 >
<TR ALIGN=LEFT VALIGN=TOP>
<TD><IMG SRC="Images/reg_win.gif" ALT="Registration Window" HEIGHT=161 WIDTH=161></TD>

<TD>Registration allows a simple means to register your copy of CursorGen
with the author. CursorGen automatically has a 30 day trial period to evaluate
the product. If you are satisfied with its use, you are encouraged to pay
$10.00US for registration. Supporting BeOS Shareware allows further BeOS
development of this application and other innovated BeOS applications.

<P>Fill in the information shown in the registration window, and e-mail
the generated file to <TT>tegen@inetworld.net</TT>. You will receive an
address to mail the registration fee. Once received, you will be e-mailed
a valid registration number that will unlock the application from not running
after 30 days.</P>
</TD>
</TR>
</TABLE>

<P>
<HR WIDTH="100%"></P>

<H3><A NAME="Document Window"></A>Document Window</H3>

<P>The CursorGen document window contains all the functionality to create
and maintain BeOS cursors.</P>

<TABLE CELLSPACING=2 CELLPADDING=2 >
<TR ALIGN=LEFT VALIGN=TOP>
<TD><IMG SRC="Images/SpinWheelWin.gif" ALT="SpinWheel Window" HEIGHT=331 WIDTH=312></TD>

<TD>The CursorGen icon in the upper left corner of the menu bar accesses
to the About window; information about your Be operating system, hardware,
and screen; and <A HREF="#Registration">Registration </A>window. 
<P>The menu bar contains a <B>File </B>menu for controlling the CursorGen
files, an <B>Edit </B>menu for controlling each cursor list item in and
between documents, and a <B>Cursor </B>menu for controlling the cursor
image.</P>
</TD>
</TR>
</TABLE>

<TABLE CELLSPACING=2 CELLPADDING=2 >
<TR ALIGN=LEFT VALIGN=TOP>
<TD><IMG SRC="Images/about.gif" ALT="About Menu" HEIGHT=101 WIDTH=153></TD>

<TD><B>About CursorGen...</B> : Display the About window for this application.

<P><B>System...</B>: Displays information about your current system and
monitor.</P>

<P><B>Register...</B>: Displays the <A HREF="#Registration">registration
window</A>.</P>
</TD>
</TR>

<TR ALIGN=LEFT VALIGN=TOP>
<TD><IMG SRC="Images/file_menu.gif" ALT="File menu" HEIGHT=186 WIDTH=137></TD>

<TD><B>New</B>: Creates a new, and empty <A HREF="#Document Window">document
window</A>. 
<P><B>Open...</B>: Opens the file panel to select an CursorGen document
to open. Only CursorGen files can be opened.</P>

<P><B>Close</B>: Closes the current window. If the window is the last window
to be closed for the application, the application will quit.</P>

<P><B>Save</B>: Saves the current document.</P>

<P><B>Save As...</B>: Option to save the current document to another name
and/or location.</P>

<P><A NAME="Generate"></A><B>Generate</B>: Option to generate MetroWerks
header files with the description of all the cursors in the document.</P>

<P><B>Quit</B>: Quits the application. Any unsaved documents will prompt
the user to save.</P>
</TD>
</TR>

<TR ALIGN=LEFT VALIGN=TOP>
<TD><IMG SRC="Images/edit_menu.gif" ALT="Edit menu" HEIGHT=99 WIDTH=134></TD>

<TD><B>Cut</B>: Option to cut the currently selected cursor item from the
list. The cursor is placed in a temporary buffer to be pasted into this
or another document. 
<P><B>Copy</B>: Option to copy the currently selected cursor item from
the list. The cursor is placed in a temporary buffer to be pasted into
this or another document.</P>

<P><B>Paste</B>: Available when a cursor is in the temporary buffer. Paste
will add the contents of the buffer to the bottom of the list.</P>

<P><B>Duplicate</B>: Option to quickly duplicate the currently selected
cursor item in the list. The copy is added to the end of the list.</P>
</TD>
</TR>

<TR ALIGN=LEFT VALIGN=TOP>
<TD><IMG SRC="Images/cursor_menu.gif" ALT="Cursor menu" HEIGHT=110 WIDTH=137></TD>

<TD><B>Create...</B> : Displays an empty <A HREF="#Edit Cursor Window">Edit
Cursor window</A>. 
<P><B>Edit...</B>: Edits the currently selected cursor item into the <A HREF="#Edit Cursor Window">Edit
Cursor Window</A>.</P>

<P><B>Delete</B>: Option to delete the currently selected cursor item.</P>

<P><B>Animate...</B>: Displays the <A HREF="#Animate Window">Cursor Animation
window</A>. This menu item is only available when two or more cursors have
been created in the list.</P>
</TD>
</TR>
</TABLE>

<P>
<HR WIDTH="100%"></P>

<H3><A NAME="Edit Cursor Window"></A>Edit Cursor Window</H3>

<P>The Edit Cursor Window allows the user to create, edit, name, and test
a BeOS cursor.</P>

<TABLE CELLSPACING=2 CELLPADDING=2 >
<TR ALIGN=LEFT VALIGN=TOP>
<TD><B>Name</B>: The name of the cursor. All spaces and illegal characters
will be removed. This is the name that will be used to identify the cursor
in your source code after the document is <A HREF="#Generate">generated</A>
to a MetroWerks header file. 
<P><B>Image</B>: This area allows the user to draw the image of the cursor.</P>

<P><B>Mask</B>: This area allows the user to draw the mask of the user.
White pixels in the Image that are also white pixels in the Mask will be
transparent in the cursor. White pixels in the image that are black in
the Mask are white in the cursor. Finally, black pixels in the Image are
always black in the cursor.</P>

<P><B>&gt;</B>: Copies the Image to the Mask area. Normally this is done
as a starting point for the mask.</P>

<P><B>Clear</B>: Option to clear either the Image or Mask areas.</P>

<P><B>Test</B>: Option to test the current Image and Mask. The current
BeOS cursor is set to the composite of the image and mask.</P>

<P><B>Toggle Selection</B>: Option to toggle currently black pixels back
to white, and white cursors to black. When checked off, the pen is in always
draw black mode.</P>
</TD>

<TD><IMG SRC="Images/edit_cursor.gif" ALT="Edit Cursor Window" HEIGHT=342 WIDTH=313></TD>
</TR>
</TABLE>

<P><B>Edit Hot Spot</B>: Option to edit the current hot spot of the Image.
The Mask area is hidden during this mode. The hot spot is the exact location
in which mouse events are captured regardless of the image and mask. The
current hot spot is a red outline in the Image region.</P>

<TABLE CELLSPACING=2 CELLPADDING=2 >
<TR ALIGN=LEFT VALIGN=TOP>
<TD><IMG SRC="Images/edit_cursor_sm_test.gif" ALT="Edit Cursor" HEIGHT=103 WIDTH=218></TD>

<TD>When the <B>Test </B>check box is selected, a white and blue region
is drawn and the current Image and Mask is combined to produce a cursor.
The white and blue region can be used to view how the mask interacts with
contrasting backgrounds.</TD>
</TR>
</TABLE>

<P>
<HR WIDTH="100%"></P>

<H3><A NAME="Animate Window"></A>Animate Window</H3>

<P>The Animate Window is available when at least two cursors have been
defined in the current document window. This window allows the user to
step through the cursors by a given time interval.</P>

<TABLE CELLSPACING=2 CELLPADDING=2 >
<TR ALIGN=LEFT VALIGN=TOP>
<TD><IMG SRC="Images/animate1.gif" ALT="Animation Window" HEIGHT=111 WIDTH=162></TD>

<TD><B>Cycle</B>: Enter the interval between the steps of each cursor.
The best interval rate varies between 0.1 and 0.2 seconds. 
<P><B>Animate</B>: Start the animation of the current list of cursors.
When this window loses focus, the animation was stop until it regains focus.
The button label changes to Halt.</P>

<P><B>Halt</B>: Stop the animation of the cursor. The button label will
change back to Animate.</P>
</TD>

<TD><IMG SRC="Images/animate2.gif" ALT="Animation Window" HEIGHT=111 WIDTH=162></TD>
</TR>
</TABLE>

<P>
<HR WIDTH="100%"></P>

<H3><A NAME="Samples"></A>Samples</H3>

<TABLE CELLSPACING=2 CELLPADDING=2 >
<TR ALIGN=LEFT VALIGN=TOP>
<TD>A folder of CursorGen samples are provided for your review of the application,
and to use in your BeOS applications. You are free to edit and add to this
repository of cursors. If you have made a cool change to any of the provided
cursors, or have additional cursors you would like distributed in future
releases, please e-mail a tar file of the document.</TD>

<TD><IMG SRC="Images/SampleFolder.gif" ALT="Sample Folder" HEIGHT=186 WIDTH=74></TD>
</TR>
</TABLE>

<P>
<HR WIDTH="100%"></P>

<H3><A NAME="Animating Cursors"></A>Animating Cursors</H3>

<P>CursorGen allows the user to see how a group of cursors can be animated
from within the application. The code that provides that ability is provided
for your re-use in the <B>AnimationCode </B>folder. If you enhance the
code and/or find a bug, please forward those changes to <TT>tegen@inetworld.net</TT>
so it may be incorporated back into the application and re-distributed
to registered users.</P>

<P>When animating a cursor, it is running in its own thread. Even when
your application loses focus, the thread is still running. The developer
needs to trap when the window loses focus and call the <TT>Suspend()</TT>
method to prevent the cursor animation from continuing. Likewise, when
the window regains focus, the <TT>Resume()</TT> method needs to be called
to re-start the cursor animation. Call <TT>Quit()</TT> and/or delete the
object to stop the animation.</P>

<P>
<HR WIDTH="100%"></P>

<H3><A NAME="Support"></A>Support</H3>

<P>If you are having troubles using CursorGen, please visit the FAQ page
for a possible solution. The page is located at</P>

<P><TT><FONT COLOR="#FF0000">http://www.inetworld.net/~tegen/OmicronSoft</FONT></TT></P>

<P>If that does not help you, please e-mail your problem(s) or question(s)
to <TT><FONT COLOR="#FF0000">tegen@inetworld.net</FONT></TT>. You will
be contacted within 24 hours.</P>

<P>
<HR WIDTH="100%"></P>

<H3><A NAME="What's Planned"></A>What's Planned</H3>

<P>Future version(s) of CursorGen will include:</P>

<UL>
<LI>CursorGen document with unique icons in Tracker</LI>

<LI>Drag items in document list to re-order</LI>
</UL>

<P>If you have other ideas to improve CursorGen, please contact me with
your suggestions.</P>

<P>
<HR WIDTH="100%"></P>

<P><FONT SIZE=-2>CursorGen is a trademark of OmicronSoft, (c) All Rights
Reserved, 1997</FONT></P>

<P><FONT SIZE=-2>BeOS is a registered trademark of Be, Inc.</FONT></P>

<P><FONT SIZE=-2>Last Modified: 20 July 1997</FONT></P>

</BODY>
</HTML>
