void CDxMonthPicker::OnLButtonDown(UINT nFlags, CPoint point)
{
    SetDxCapture();
    SetDxFocus();

    if (m_monthPicker != NULL)
    {
        m_monthPicker->OnLButtonDown(nFlags, point);
    }

    if (m_btnToday->m_rcButton.PtInRect(point))
        m_btnCaptured = m_btnToday;

    ProcessButtons(point);
}
void CDxMonthPicker::OnLButtonUp(UINT nFlags, CPoint point)
{
    // kill timer
    if (m_nTimerID != 0)
    {
        KillDxTimer(m_nTimerID);
        m_nTimerID = 0;
    }

    // logic message processing
    if (m_mouseMode == mouseTrackingHeaderList)
    {
        // reset mouse mode
        m_mouseMode = mouseNothing;

        //if (m_pListControl)
        //{
        //    int nDelta = m_pListControl->GetMonthInterval();
        //    // destroy list control
        //    m_pListControl->DestroyWindow();
        //    delete m_pListControl;
        //    m_pListControl = NULL;
        //    // scroll on selected months count
        //    if (nDelta < 0)
        //        ScrollLeft(-nDelta);
        //    else if (nDelta > 0)
        //        ScrollRight(nDelta);
        //}
    }
    else
    {
        // forward message to appropriate month
        if (m_monthPicker != NULL)
        {
            m_monthPicker->OnLButtonUp(nFlags, point);
        }

        // Update selection
        BOOL bSelecting = m_mouseMode == mouseSelecting;
        BOOL bDeselecting = m_mouseMode == mouseDeselecting;
        if (bSelecting || bDeselecting)
        {
            //int nDay = (m_dtLastClicked - m_dtFirstClicked).GetDays();
            //for (; abs(nDay) >= 0; nDay += nDay > 0 ? -1 : 1)
            //{
            //    COleDateTime dtSelect(m_dtFirstClicked);
            //    dtSelect += nDay;
            //    //if (bDeselecting)
            //    //{
            //    //    m_pSelectedDays->Remove(dtSelect);
            //    //}
            //    //else if (bSelecting && IsSelected(dtSelect))
            //    //{
            //    //    m_pSelectedDays->Add(dtSelect);
            //    //}

            //    if (nDay == 0)
            //        break;
            //}

            // reset mouse mode
            m_mouseMode = mouseNothing;
        }
    }

    //release resources
    ReleaseDxCapture();

    // process buttons
    m_btnCaptured = NULL;
    ProcessButtons(point);

    // reset mouse mode
    m_mouseMode = mouseNothing;
}
void PE1MEW_RotorSteering::buttonTest(void)
{
	// read button status
	uint8_t inputVariable = getButtons();
	
	if (inputVariable != 0x00)
	{
		_PressMemory = true;
	}
	else
	{
		_PressMemory = false;
	}
	

	if (_PressMemory)
	{
		if (_ButtonSpeedHoldCounter < PRESS_COUNTER_MAX)
		{
			_ButtonSpeedHoldCounter++;		
		}
		
		switch (_CurrentButtonSpeedState)
		{
			case STEP1:
				if (PRESS_COUNTER_TRESHOLD1 < _ButtonSpeedHoldCounter)
				{
					if (_SpeedStateCounter < PRESS_COUNTER_STEP1_TRESHOLD)
					{
						_SpeedStateCounter++;
					}
					else
					{
						_SpeedStateCounter = 0;
						_NextButtonSpeedState = STEP2;
						//_ProcessVariableIncrement = 1;
					}
					ProcessButtons(inputVariable);
					_ButtonSpeedHoldCounter = 0;
				}
				break;
			
			case STEP2:
				if (PRESS_COUNTER_TRESHOLD2 < _ButtonSpeedHoldCounter)
				{
					if (_SpeedStateCounter < PRESS_COUNTER_STEP2_TRESHOLD)
					{
						_SpeedStateCounter++;
					}
					else
					{
						_SpeedStateCounter = 0;
						_NextButtonSpeedState = STEP3;
						//_ProcessVariableIncrement = 1;
					}
					ProcessButtons(inputVariable);
					_ButtonSpeedHoldCounter = 0;
				}
				break;
				
			case STEP3:
				if (PRESS_COUNTER_TRESHOLD3 < _ButtonSpeedHoldCounter)
				{
					if (_SpeedStateCounter < PRESS_COUNTER_STEP3_TRESHOLD)
					{
						_SpeedStateCounter++;
					}
					else
					{
						_SpeedStateCounter = 0;
						_NextButtonSpeedState = STEP4;
						//_ProcessVariableIncrement = 1;
					}
					ProcessButtons(inputVariable);
					_ButtonSpeedHoldCounter = 0;
				}
				break;
			
			case STEP4:
				if (PRESS_COUNTER_TRESHOLD4 < _ButtonSpeedHoldCounter)
				{
					if (_SpeedStateCounter < PRESS_COUNTER_STEP4_TRESHOLD)
					{
						_SpeedStateCounter++;
					}
					else
					{
						_SpeedStateCounter = 0;
					}
					ProcessButtons(inputVariable);
					_ButtonSpeedHoldCounter = 0;
				}
				break;
		}
	}
	else
	{
		_ButtonSpeedHoldCounter = 0;
		_NextButtonSpeedState = STEP1;
		_ProcessVariableIncrement = INCREMENT_DEFAULT;
	}
	_CurrentButtonSpeedState = _NextButtonSpeedState;
}