/******************************************************************************
** Copyright (C) 2001, University of Alabama in Huntsville. All rights 
** reserved.
**
** File   : DrawableLine.h
**
** Author : Satish Hota
**
** Description:
**    This file provides interface for CDrawableLine class.
**
** History:
** 21-Nov-01 Satish Hota
**     File Created
** 26-Nov-01 Satish Hota
**     Added new methods GetToObject and GetFromObject.  These are pure virtual
**     methods that need to be implemented in the subclasses.
** 28-Nov-01 Satish Hota
**     Made the CDrawable class CDrawableElement and created a CDrawable
**     super-class.  Hence, replaced usage of CDrawable with CDrawableElement.
** 28-Nov-01 Satish Hota
**     Added LineType, LineEndType, member variables and access methods.
** 30-Nov-01 Satish Hota
**     Removed GetFromObject and GetToObject as they have been pushed to the
**     CDrawableArc class.
******************************************************************************/

#if !defined(AFX_DRAWABLELINE_H__41477D1A_0C93_40D5_B27E_B7603D909D57__INCLUDED_)
#define AFX_DRAWABLELINE_H__41477D1A_0C93_40D5_B27E_B7603D909D57__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "DrawableElement.h"

class CDrawableLine : public CDrawableElement  
{
public:
    enum LineType
    {
        LineType_Solid,
        LineType_Dashed
    };

    enum LineEndType
    {
        LineEndType_Default    = 0x00,
        LineEndType_StartArrow = 0x01,
        LineEndType_EndArrow   = 0x02,
        LineEndType_ArrowsAtBothEnds = 0x03
    };

public:
	LineEndType GetLineEndType();
	void SetLineEndType(LineEndType eLineEndType);
	LineType GetLineType();
	void SetLineType(LineType eLineType);
	long Draw();
	CDrawableLine();
	virtual ~CDrawableLine();

private:
	LineEndType m_eLineEndType;
	LineType m_eLineType;
};

#endif // !defined(AFX_DRAWABLELINE_H__41477D1A_0C93_40D5_B27E_B7603D909D57__INCLUDED_)
