/*****************************************************************************
* Copyright (c) 1990-98 Digi International Inc., All Rights Reserved
* 
* This software contains proprietary and confidential information of Digi
* International Inc.  By accepting transfer of this copy, Recipient agrees
* to retain this software in confidence, to prevent disclosure to others,
* and to make no use of this software other than that for which it was
* delivered.  This is an unpublished copyrighted work of Digi International
* Inc.  Except as permitted by federal law, 17 USC 117, copying is strictly
* prohibited.
* 
* Restricted Rights Legend
*
* Use, duplication, or disclosure by the Government is subject to
* restrictions set forth in sub-paragraph (c)(1)(ii) of The Rights in
* Technical Data and Computer Software clause at DFARS 252.227-7031 or
* subparagraphs (c)(1) and (2) of the Commercial Computer Software -
* Restricted Rights at 48 CFR 52.227-19, as applicable.
*
* Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
*
*****************************************************************************/


#if !defined(AFX_PROPCSU_H__121DEE53_1B22_11D2_BB0B_00805F9E3135__INCLUDED_)
#define AFX_PROPCSU_H__121DEE53_1B22_11D2_BB0B_00805F9E3135__INCLUDED_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
// PropCSU.h : header file
//

#include "LineCSURes.h"

/////////////////////////////////////////////////////////////////////////////
// CPropCSU dialog

class CPropCSU : public CPropertyPage
{
	DECLARE_DYNCREATE(CPropCSU)

// Construction
public:
	CPropCSU();
	~CPropCSU();

   void SetFramingValues(CStringArray const & astrValues, int const iDefaultValue = 0);
   int GetFramingIndex(void) const { return m_iFraming; }

   void SetEncodingValues(CStringArray const & astrValues, int const iDefaultValue = 0);
   int GetEncodingIndex(void) const { return m_iEncoding; }

	// the following determines if span/lbo/egl/shlen are shown
   void ShowSpan(BOOL const fShow) { m_fShowSpan = fShow; }

   void SetSpan(DWORD const dwSpan) { m_dwSpan = dwSpan; }
   DWORD GetSpan(void) const { return m_dwSpan; }

   void SetLBO(DWORD const dwLBO) { m_dwLBO = dwLBO; }
   DWORD GetLBO(void) const { return m_dwLBO; }

   void SetEGL(DWORD const dwEGL) { m_dwEGL = dwEGL; }
   DWORD GetEGL(void) const { return m_dwEGL; }

   void SetSHLen(DWORD const dwSHLen) { m_dwSHLen = dwSHLen; }
   DWORD GetSHLen(void) const { return m_dwSHLen; }

// Dialog Data
	//{{AFX_DATA(CPropCSU)
	enum { IDD = IDD_PropPageCSU };
	CComboBox	m_ctrlSHLen;
	CComboBox	m_ctrlLBO;
	CComboBox	m_ctrlFraming;
	CComboBox	m_ctrlEncoding;
	CComboBox	m_ctrlEGL;
	int		m_nHaul;
	//}}AFX_DATA


// Overrides
	// ClassWizard generate virtual function overrides
	//{{AFX_VIRTUAL(CPropCSU)
	public:
	virtual void OnOK();
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	// Generated message map functions
	//{{AFX_MSG(CPropCSU)
	afx_msg void OnCSULongHaul();
	afx_msg void OnCSUShortHaul();
	virtual BOOL OnInitDialog();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

private:
   CStringArray m_astrFraming;
   int m_iFraming;

   CStringArray m_astrEncoding;
   int m_iEncoding;

   BOOL m_fShowSpan;

   DWORD m_dwSpan;
   DWORD m_dwLBO;
   DWORD m_dwEGL;
   DWORD m_dwSHLen;

   void EnableControls(UINT const * const pnControlIds, int const cControlIds, BOOL const fEnable);
	void ShowControls(UINT const * const pnControlIds, int const cControlIds, BOOL const fShow);

	void ShowSpanControls(BOOL const fShow);
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_PROPCSU_H__121DEE53_1B22_11D2_BB0B_00805F9E3135__INCLUDED_)
