bool GUIButtonBase::_mouseEvent(const GUIMouseEvent& ev) { if(ev.getType() == GUIMouseEventType::MouseOver) { if (!_isDisabled()) { _setState(_isOn() ? GUIElementState::HoverOn : GUIElementState::Hover); onHover(); } return mBlockPointerEvents; } else if(ev.getType() == GUIMouseEventType::MouseOut) { if (!_isDisabled()) { _setState(_isOn() ? GUIElementState::NormalOn : GUIElementState::Normal); onOut(); } return mBlockPointerEvents; } else if(ev.getType() == GUIMouseEventType::MouseDown) { if (!_isDisabled()) _setState(_isOn() ? GUIElementState::ActiveOn : GUIElementState::Active); return mBlockPointerEvents; } else if(ev.getType() == GUIMouseEventType::MouseUp) { if (!_isDisabled()) { _setState(_isOn() ? GUIElementState::HoverOn : GUIElementState::Hover); onClick(); } return mBlockPointerEvents; } else if (ev.getType() == GUIMouseEventType::MouseDoubleClick) { if (!_isDisabled()) onDoubleClick(); return mBlockPointerEvents; } return false; }
bool GUIHoverHitBox::_mouseEvent(const GUIMouseEvent& ev) { bool processed = GUIElementContainer::_mouseEvent(ev); if (ev.getType() == GUIMouseEventType::MouseOver) { onHover(); return false; } else if (ev.getType() == GUIMouseEventType::MouseOut) { onOut(); return false; } return processed; }
void on(void *ptr,int events) { CTcp * pTcp=(CTcp*)ptr; printf("on %d %d %d\n",pTcp->m_iSock,listener.m_iSock,events); if(pTcp->m_iSock==listener.m_iSock){ CTcp *pClt=new CTcp(); printf("accept\n"); if(listener.Accept(*pClt)) { printf("accept %d\n",pClt->m_iSock); m_clsEpoll.Add(pClt->m_iSock,EPOLLIN|EPOLLET,(void*)pClt); } }else if(events&EPOLLIN){ onIn(pTcp); }else if(events&EPOLLOUT){ onOut(pTcp); } }