Clickable Image Map Project Specification

1.1 Introduction

The purpose of this project is to design and implement a clickable image map data file creator. More specifically, this project involves prompting the user for a .gif file, loading that .gif file, providing a menu for the user to select various options from, providing options that enable the user to draw a circle, polygon, or rectangle, enabling the user to save the coordinates and pertinent data to a specified data file, view that specified data file, and giving the user the ability to update/delete any coordinates that they have specified.

The data file that is output from the Clickable Image Map Project is intended to be used along with Netscape to produce a clickable image file.

Expected date of Completion is October 5, 1995

1.2 Specifics

1.2.1 The project will consist of various screens that the user will encounter.

1.2.1.1 The first screen will prompt the user for:

a) the location of the .gif file to be used

b) the name of the file to be used for output of data. The user has the option of just pressing enter, at which time the program will make a new data file called 'click.map'.

1.2.1.2 The next screen will display the given .gif file. Note: if the .gif is to big for the screen then it will only display the portion of the .gif that fits into 640 by 200 screen. At the bottom of the screen there will reside a menu bar with the commands circle, rectangle, polygon, display, and exit. Each of these commands may be executed by the user. To execute a command, the user must click inside the box that encompasses the given command. The following are the command definitions:

a) circle - gives the user the capability to move the cursor to anywhere on the screen and click the mouse button once. This spot represents the center of the circle. Then, moving the cursor to anywhere else on the screen and clicking again the user can specify the radius of the circle in relation to the center. While the user is moving the cursor around on the screen before entering the radius point, the circle will grow and contract with the cursor.

b) rectangle - gives the user the capability to move the cursor to anywhere on the screen and click the mouse button once. This spot represents one corner of a rectangle. Then, moving the cursor to anywhere else on the screen and clicking again, the user can specify the opposite corner of the rectangle. While the user is moving the cursor around on the screen before entering the last point of the rectangle, it will grow and contract with the cursor.

c) polygon - gives the user the capability to move the cursor to anywhere on the screen and click the mouse button once. This spot represents a vertex of a polygon. The user may then proceed to anywhere else on the screen, continuing to click the mouse button where they wish. After every click of the mouse button, the user will be asked whether the point just clicked on is the last point in the polygon.

d) display - displays the data file in it's current state to the screen.

e) exit - saves the existing data file and exits the program.

1.2.1.3 Yet another screen exists that pops up after the user has just finished entering a shape or has just clicked inside of one of the already existing shapes. This screen contains two options:

a) edit - this allows the user to change the data file entry pertaining to the selected shape. The user will be prompted for a URL entry.

b) delete - this deletes the selected shape on the screen and the data file entry.

1.2.2 All input from the user is either done through the mouse or the keyboard. The only time that the keyboard is used is to enter the .gif file to be used, to enter the name of the data file, and to enter a URL. All other input is done through the mouse.

1.3 Job Assignments

1.3.1 The following is what each person in the group is responsible for completing by the termination date of this project:

1.3.1.1 Bret McCullough is responsible for reading in the .gif file to the screen and handling the data file manipulations. He will take care of all the menu option functions. This will include saving the screen when going to another. Bret's work will pull together the whole project. Most all of his work will be done using the C programming language.

1.3.1.2 Jen Rapp is responsible for adding 256 color capabilities to the already existing plot_pixel and line_draw modules. In addition to that, she will be working on the menu display for the different screens. The majority of her work will be done using the Assembly programming language.

1.2.1.3 Zach Zeek is responsible for writing new modules that will draw a circle, a polygon, and a rectangle. In addition to that, he will be responsible for reading in the mouse coordinates on the screen and executing the shrinking and growing of the given shapes as they are made. The majority of his work will be done using the Assembly programming language.