void JObjectTree::OnMouse( JMouseEvent& e ) { JObject* pNode = PickNode( e.MouseX(), e.MouseY() ); if (e.Action() == aKeyDown && e.MouseKey() == meLeft) { SelectObject( pNode ); } if (pNode) e.Consume(); } // JObjectTree::OnMouse
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