You may implement one, some, or all of these. Each is worth ten points, and you can receive extra credit for each one, for a total of fifty possible points. Remember that the usual restrictions apply: you must complete all portions of the "regular" assignment before you can gain credit for these extra add-ons.
In your submitted project documentation, please indicate clearly which extra-credit options (if any) you chose to implement, and of course document their use as you do the rest of your project.
References:
References:
You will also need to allow the user to export the drawing to any popular graphic file format of your choosing, i.e., PNG, JPEG, TIFF, etc. You do not need to be able to convert a file from another format in order to load it (since these formats do not retain all the necessary information!). Many libraries exist for different file formats; C libraries for PNG, JPEG, and TIFF are available on GL.
An acceptable alternative method is to export a more "local" format, such as an X pixmap, and use a Unix conversion program to produce the final exported file. You should allow the user to configure the locations of the necessary programs, and should give the user some different format options to maintain portability.
You will design a 20 to 30-minute set of tasks. These tasks should be aimed at finding out how usable your interface is, given about 5-10 minutes of training on users. Your "subject" users should be somewhat experienced with computers, but not students of this class. Each subject should be asked to perform the tasks, within an evaluation technique discussed in class. At least five sample users must be included in your test.
Along with your documentation, you should include the data from your testing. You should discuss weaknesses and strengths exposed in your interface, and what changes this caused you (or would have caused you) to implement in the "final release."
References:
The help system will actually be a network of help screens. Any help screen may have links to other help screens on related topics, and a link to a top-level index. Another command in the help menu should bring up the top index.
To save some effort (and allow easy distribution of help on the WWW),
we will use Netscape and it's -remote
option to view the help
screens. You should construct your on-line documentation as a set of
web pages, placing them in a publicly-accesible area (as you would
your personal home page). Be sure to include a top-level index into
your "help network". You will then associate parts of your interface
with URLs, so that different help requests link into different parts
of the tree.
You can instruct an already-running Netscape process to load a new page from the command line, by doing something like:
netscape -remote 'openURL(http://frobozz.org/my/home/page/)'This will fail with a non-zero result code if no Netscape process is running, otherwise, Netscape will load the page. If Netscape is not running, your application should start it up for the user. You can read more about the
-remote
facility
here.
Read the manual page on the system()
function call to see
how to execute the Netscape -remote command line.
Section 6.7 of the Young book describes how to implement
context-sensitive help in Motif, by adding helpCallback
's
to widgets. You can implement similar behavior in Java, by setting a
state flag when you're in "get help mode", and checking that flag in
the event handlers. You might consider having objects implement a
ContextHelp interface if they have a link to help; you can then check
if an object implements ContextHelp in the event handler.
Apart from these technical considerations, you should take care in the writing of your help system. Keep in mind novice users who need help and guidance! You might consider including a tutorial, also accesible from the Help menu; a new user could read the web page and use your program side-by-side. Also keep in mind that on-line help is different from a user manual; a user asking for in-context help wants immediate information with quick solutions, if applicable.
References: