//---------------------------------------------------------
void CVIEW_ScatterPlot::_Draw(wxDC &dc, wxRect r)
{
	r	= _Draw_Get_rDiagram(r);

	if( m_Trend.Get_Data_Count() > 1 )
	{
		//-------------------------------------------------
		if( m_Options("DISPLAY")->asInt() == 1 )
		{
			if( m_Options("DENSITY_LEG")->asBool() )
			{
				r.SetRight(r.GetRight() - 40);

				_Draw_Legend(dc, wxRect(r.GetRight() + 10, r.GetTop(), 40 - 20, r.GetHeight()));
			}

			_Draw_Image (dc, r);
		}
		else
		{
			_Draw_Points(dc, r);
		}

		//-------------------------------------------------
		_Draw_Frame(dc, r);
	}
	else
	{
		Draw_Text(dc, TEXTALIGN_CENTER, r.GetLeft() + r.GetWidth() / 2, r.GetTop() + r.GetHeight() / 2, _TL("Invalid data!"));
	}
}
//---------------------------------------------------------
void CPoints_View_Extent::Update_View(void)
{
	if( _Draw_Image() )
	{
		Refresh(false);
	}
}
//---------------------------------------------------------
CPoints_View_Extent::CPoints_View_Extent(wxWindow *pParent, CSG_PointCloud *pPoints, CSG_Parameters &Settings, wxSize Size)
	: wxPanel(pParent, wxID_ANY, wxDefaultPosition, Size, wxTAB_TRAVERSAL|wxSUNKEN_BORDER|wxNO_FULL_REPAINT_ON_RESIZE)
{
	m_pPoints	= pPoints;

	m_pSettings	= &Settings;

	m_cField	= 2;

	m_Select	= wxRect(0, 0, GetClientSize().x - 1, GetClientSize().y - 1);

	//-----------------------------------------------------
	CSG_Parameter	*pNode	= m_pSettings->Add_Node(NULL, "NODE_EXTENT", _TL("Zoom View"), _TL(""));

	m_pSettings->Add_Range(
		pNode	, "EXT_C_RANGE"		, _TL("Colors Value Range"),
		_TL("")
	);

	//-----------------------------------------------------
	_Draw_Image();
}
//---------------------------------------------------------
void CPoints_View_Extent::On_Size(wxSizeEvent &event)
{
	_Draw_Image();

	event.Skip();
}