//----------------------------------------------------------------------
//  SPECIFICATION FILE (pen.h)
//  This module exports a Color type, a WriteColor function, and
//  a Pen class (derived from the Supply class).  Supply is a
//  public base class of Pen, so all public operations of Supply
//  (except constructors and destructors) are also public
//  operations of Pen.
//----------------------------------------------------------------------
#ifndef PEN_H
#define PEN_H

#include "supply.h"

enum Color {red, green, blue, NA};

void WriteColor( Color c );
    // PRE:  Assigned(c)
    // POST: Value of c displayed as a character string

class Pen : public Supply {
public:
    void Display() const;
        // POST: Item description, stock no., quantity, price, pen color,
        //       and ink color have been written to standard output

    Pen( /* in */ const char* description,
         /* in */ int         stockNumber,
         /* in */ int         initQuantity,
         /* in */ float       initPrice,
         /* in */ Color       penColor,
         /* in */ Color       inkColor     );
            // PRE:  All parameters assigned
            // POST: New object created, with private data initialized
            //       by the input parameters

    Pen( const Pen& otherPen );
        // POST: New object created, with private data initialized
        //       by otherPen's private data

    ~Pen();
        // POST: Object destroyed
private:
    Color pColor;
    Color iColor;
};

#endif


