// 7KSonarTabCtrl.cpp : implementation file
//

#include "stdafx.h"
#include "6046dryend.h"
#include "Dlg7KSonarParamsMore.h"
#include "Dlg7kSonarParams.h"
#include "7KSonarTabCtrl.h"




#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// C7KSonarTabCtrl

C7KSonarTabCtrl::C7KSonarTabCtrl()
{	
	m_tabPages[0]	 = new CDlg7kSonarParams;
	m_tabPages[1]	 = new CDlg7kSonarParamsMore;
}

C7KSonarTabCtrl::~C7KSonarTabCtrl()
{
	Cleanup();
}


BEGIN_MESSAGE_MAP(C7KSonarTabCtrl, CTabCtrl)
	//{{AFX_MSG_MAP(C7KSonarTabCtrl)
	ON_WM_LBUTTONDOWN()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// C7KSonarTabCtrl message handlers

void C7KSonarTabCtrl::Init()
{
	m_tabCurrent=0;

	m_tabPages[0]->Create(IDD_DLG_7KSONAR,   this);
	m_tabPages[1]->Create(IDD_DLG_7KSONARMORE,  this);
		
	m_tabPages[0]->ShowWindow(SW_HIDE);
	m_tabPages[1]->ShowWindow(SW_HIDE);

	SetRect();
	
}

void C7KSonarTabCtrl::Cleanup()
{
	for(int nCount=0; nCount < NUM_TABSS; nCount++)
	{
		if(m_tabPages[nCount])
		{
			m_tabPages[nCount]->DestroyWindow();
			delete m_tabPages[nCount];
			m_tabPages[nCount] = NULL;
		}
	}
	
}

void C7KSonarTabCtrl::SetRect()
{
	
	CRect tabRect, itemRect;
	int nX, nY, nXc, nYc;
	GetClientRect(&tabRect);
	GetItemRect(0, &itemRect);

	nX=itemRect.left;
	nY=itemRect.bottom+1;
	nXc=tabRect.right-itemRect.left-1;
	nYc=tabRect.bottom-nY-1;

	m_tabPages[0]->SetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_SHOWWINDOW);
	for(int nCount=1; nCount < NUM_TABSS; nCount++){
		m_tabPages[nCount]->SetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_HIDEWINDOW);
	}
	
	
}

void C7KSonarTabCtrl::OnLButtonDown(UINT nFlags, CPoint point) 
{
	
	CTabCtrl::OnLButtonDown(nFlags, point);
	// TODO: Add your message handler code here and/or call default
	if(m_tabCurrent != GetCurFocus()){
		m_tabPages[m_tabCurrent]->ShowWindow(SW_HIDE);
		m_tabCurrent=GetCurFocus();
		m_tabPages[m_tabCurrent]->ShowWindow(SW_SHOW);
		m_tabPages[m_tabCurrent]->SetFocus();
	}	
	
}

void C7KSonarTabCtrl::UpdateRange( double range )
{
	((CDlg7kSonarParams*)m_tabPages[0])->UpdateRange(range);
}

void C7KSonarTabCtrl::UpdatePower( double power )
{
	((CDlg7kSonarParams*)m_tabPages[0])->UpdatePower(power);
}

void C7KSonarTabCtrl::UpdatePulse( double pulseWidth )
{
	((CDlg7kSonarParams*)m_tabPages[0])->UpdatePulseLength(pulseWidth);
}

void C7KSonarTabCtrl::UpdateMaxRate( double maxRate )
{
	((CDlg7kSonarParams*)m_tabPages[0])->UpdateMaxPingRate(maxRate);
}

void C7KSonarTabCtrl::UpdateGain( double gain )
{
	((CDlg7kSonarParams*)m_tabPages[0])->UpdateGain(gain);
}

void C7KSonarTabCtrl::UpdatePingState(BOOL pingState )
{
	((CDlg7kSonarParams*)m_tabPages[0])->UpdatePingState(pingState);
}
void C7KSonarTabCtrl::UpdateFilters(float minRange,float maxRange,float minDepth,float maxDepth, BOOL state)
{
	((CDlg7kSonarParamsMore*)m_tabPages[1])->UpdateFilters(minRange,maxRange,minDepth,maxDepth,state);
}

void C7KSonarTabCtrl::InitControlTab()
{
	((CDlg7kSonarParams*)m_tabPages[0])->InitControls();
	((CDlg7kSonarParamsMore*)m_tabPages[1])->InitControls();
}

void C7KSonarTabCtrl::Set7KIndex(int	index )
{
	((CDlg7kSonarParams*)m_tabPages[0])->SetSensorIndex(index);
	((CDlg7kSonarParamsMore*)m_tabPages[1])->SetSensorIndex(index);
}
