// DlgWFProperties.cpp : implementation file
//

#include "stdafx.h"
#include "6046dryend.h"
#include "DlgWFProperties.h"
#include "DlgWaterfall.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgWFProperties dialog


CDlgWFProperties::CDlgWFProperties(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgWFProperties::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgWFProperties)
	m_strBrightness = _T("");
	m_strContrast = _T("");
	//}}AFX_DATA_INIT
	
	m_dBrightness = 0;
	m_dContrast   = 1;
	
}


void CDlgWFProperties::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgWFProperties)
	DDX_Control(pDX, IDC_SLIDER_CONTRAST, m_ctrlSliderContrast);
	DDX_Control(pDX, IDC_EDIT_CONTRAST, m_ctrlEditContrast);
	DDX_Control(pDX, IDC_BRIGHTNESS, m_ctrlEditBright);
	DDX_Control(pDX, IDCANCEL, m_ctrlCancel);
	DDX_Control(pDX, IDOK, m_ctrlOK);
	DDX_Control(pDX, IDC_SLIDER_BRIGHT, m_ctrlSliderBright);
	DDX_Text(pDX, IDC_BRIGHTNESS, m_strBrightness);
	DDX_Text(pDX, IDC_EDIT_CONTRAST, m_strContrast);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgWFProperties, CDialog)
	//{{AFX_MSG_MAP(CDlgWFProperties)
	ON_WM_DESTROY()
	ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_BRIGHT, OnReleasedcaptureSliderBright)
	ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SLIDER_CONTRAST, OnReleasedcaptureSliderContrast)
	ON_WM_SHOWWINDOW()
	ON_EN_SETFOCUS(IDC_BRIGHTNESS, OnSetfocusBrightness)
	ON_EN_SETFOCUS(IDC_EDIT_CONTRAST, OnSetfocusEditContrast)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgWFProperties message handlers

BOOL CDlgWFProperties::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	m_ctrlOK.SetShade(SHS_METAL,8,20,18,RGB(100,100,100));
	m_ctrlCancel.SetShade(SHS_METAL,8,20,18,RGB(100,100,100));

	
	//Brightness Slider Init
	m_ctrlSliderBright.SetRange(0,100,FALSE);
	m_ctrlSliderBright.SetTicFreq(5);
	m_ctrlSliderBright.SetLineSize(2);
	m_ctrlSliderBright.SetPageSize(2);
	m_ctrlSliderBright.SetPos(m_dBrightness);
	m_strBrightness.Format("%d%%", m_ctrlSliderBright.GetPos());
	//Contrast Slider Init
	m_ctrlSliderContrast.SetRange(0,100,FALSE);
	m_ctrlSliderContrast.SetTicFreq(5);
	m_ctrlSliderContrast.SetLineSize(2);
	m_ctrlSliderContrast.SetPageSize(2);
	m_ctrlSliderContrast.SetPos(m_dContrast);
	m_strContrast.Format("%d%%", m_ctrlSliderContrast.GetPos());

	UpdateData(FALSE);

	SetWindowPos(pParent, initPoint.x, initPoint.y, 0,0, SWP_NOSIZE);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgWFProperties::OnDestroy() 
{
	SaveSettings();

	CDialog::OnDestroy();
	
	// TODO: Add your message handler code here
	
}

void CDlgWFProperties::OnReleasedcaptureSliderBright(NMHDR* pNMHDR, LRESULT* pResult) 
{
	m_dBrightness = m_ctrlSliderBright.GetPos();
	m_strBrightness.Format("%d%%", m_dBrightness);
	UpdateData(FALSE);

	::PostMessage(pParent->GetSafeHwnd(), REPAINT_BRIGHT, m_dBrightness, 0);

	*pResult = 0;
}

void CDlgWFProperties::OnReleasedcaptureSliderContrast(NMHDR* pNMHDR, LRESULT* pResult) 
{
	m_dContrast = m_ctrlSliderContrast.GetPos();
	m_strContrast.Format("%d%%", m_dContrast);
	UpdateData(FALSE);

	::PostMessage(pParent->GetSafeHwnd(), REPAINT_CONTRAST, m_dContrast, 0);

	*pResult = 0;
}

void CDlgWFProperties::LoadSettings()
{

}

void CDlgWFProperties::SaveSettings()
{

}

void CDlgWFProperties::OnOK() 
{
	// TODO: Add extra validation here
	::PostMessage(pParent->GetSafeHwnd(), HIDE_PROP_DLG_OK, 0,0);
	//CDialog::OnOK();
}

void CDlgWFProperties::OnCancel() 
{
	// TODO: Add extra cleanup here
	m_ctrlSliderBright.SetPos(m_dStartBrightness);
	m_strBrightness.Format("%d%%", m_ctrlSliderBright.GetPos());

	m_ctrlSliderContrast.SetPos(m_dStartContrast);
	m_strContrast.Format("%d%%", m_ctrlSliderContrast.GetPos());

	m_dBrightness = m_dStartBrightness;
	m_dContrast   = m_dStartContrast;	

	::PostMessage(pParent->GetSafeHwnd(), HIDE_PROP_DLG_CANCEL, 0,0);
	//CDialog::OnCancel();
}

void CDlgWFProperties::OnShowWindow(BOOL bShow, UINT nStatus) 
{
	CDialog::OnShowWindow(bShow, nStatus);
	
	if(bShow == 0)
		return;

	m_dStartBrightness  = m_dBrightness;
	m_dStartContrast	= m_dContrast;	

	m_ctrlSliderContrast.SetPos(m_dStartContrast);
	m_ctrlSliderBright.SetPos(m_dStartBrightness);
	m_strBrightness.Format("%d%%", m_ctrlSliderBright.GetPos());
	m_strContrast.Format("%d%%", m_ctrlSliderContrast.GetPos());

	UpdateData(FALSE);
}

BOOL CDlgWFProperties::PreTranslateMessage(MSG* pMsg) 
{
	if(pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE)
	{
		return TRUE ;
	}
	
	return CDialog::PreTranslateMessage(pMsg);
}

void CDlgWFProperties::OnSetfocusBrightness() 
{
	this->SetFocus();
}

void CDlgWFProperties::OnSetfocusEditContrast() 
{
	this->SetFocus();	
}
