void JButton::OnMouse( JMouseEvent& m ) { // check if button being pressed if ((m.Action() == aKeyDown || m.Action() == aDblClick) && m.MouseKey() == mkLeft) { if (m_bTwoState) { if (m_bPressed) { Unpress(); } else { Press(); } } else { CaptureMouse( true ); Press(); } SetFocus(); m.Consume(); } // check if being unpressed (for one-state buttons) if (m.Action() == aKeyUp && m.MouseKey() == mkLeft && !m_bTwoState) { CaptureMouse( false ); Unpress(); m.Consume(); } // automatically unpress when leaving button area if (m.Action() == aMouseMove && !GetExt().PtIn( m.MouseX(), m.MouseY() ) && m_bPressed) { CaptureMouse( false ); if (!m_bTwoState) { Unpress(); } } if (IsConsumeEvents()) { m.Consume(); } } // JButton::OnMouse
bool Switch::unpressDelayPassed() { if (unpressDelayCounter > unpressDelay){ unpressDelayCounter = 0; Unpress(); return true; } return false; }