CURSOR does not take mpWindow* in constructor

This commit is contained in:
Maciej Suminski 2016-08-11 14:41:24 +02:00
parent 0b0885f6cd
commit cd25e62052
2 changed files with 12 additions and 3 deletions

View File

@ -31,6 +31,9 @@
void CURSOR::Plot( wxDC& aDC, mpWindow& aWindow )
{
if( !m_window )
m_window = &aWindow;
if( !m_visible )
return;
@ -80,7 +83,7 @@ void CURSOR::Plot( wxDC& aDC, mpWindow& aWindow )
const int horLen = aWindow.GetScrX();
const int verLen = aWindow.GetScrY();
const wxPoint cursorPos( m_window->x2p( m_coords.x ), m_window->y2p( m_coords.y ) );
const wxPoint cursorPos( aWindow.x2p( m_coords.x ), aWindow.y2p( m_coords.y ) );
aDC.SetPen( wxPen( *wxBLACK, 1, m_continuous ? wxSOLID : wxLONG_DASH ) );

View File

@ -61,9 +61,9 @@ private:
class CURSOR : public mpInfoLayer
{
public:
CURSOR( const TRACE* aTrace, mpWindow* aWindow )
CURSOR( const TRACE* aTrace )
: mpInfoLayer( wxRect( 0, 0, DRAG_MARGIN, DRAG_MARGIN ), wxTRANSPARENT_BRUSH ),
m_trace( aTrace ), m_moved( false ), m_coords( 0.0, 0.0 ), m_window( aWindow )
m_trace( aTrace ), m_moved( false ), m_coords( 0.0, 0.0 ), m_window( nullptr )
{
}
@ -71,6 +71,9 @@ public:
bool Inside( wxPoint& aPoint )
{
if( !m_window )
return false;
return ( std::abs( aPoint.x - m_window->x2p( m_coords.x ) ) <= DRAG_MARGIN )
&& ( std::abs( aPoint.y - m_window->y2p( m_coords.y ) ) <= DRAG_MARGIN );
}
@ -83,6 +86,9 @@ public:
void UpdateReference()
{
if( !m_window )
return;
m_reference.x = m_window->x2p( m_coords.x );
m_reference.y = m_window->y2p( m_coords.y );
}