EventDispatcher派生类返回使用EventProcResult替换bool
This commit is contained in:
@@ -169,11 +169,13 @@ namespace hgl
|
||||
{
|
||||
if(header.type==InputEventSource::Keyboard)
|
||||
{
|
||||
KeyboardEventData *ked=(KeyboardEventData *)&data;
|
||||
|
||||
switch(KeyboardEventID(header.id))
|
||||
{
|
||||
case KeyboardEventID::Pressed: if(OnPressed (KeyboardButton(((KeyboardEventData *)&data)->key)))return EventProcResult::Break;break;
|
||||
case KeyboardEventID::Released: if(OnReleased (KeyboardButton(((KeyboardEventData *)&data)->key)))return EventProcResult::Break;break;
|
||||
case KeyboardEventID::Char: if(OnChar ( ((KeyboardEventData *)&data)->ch ) )return EventProcResult::Break;break;
|
||||
case KeyboardEventID::Pressed: if(OnPressed (KeyboardButton(ked->key))==EventProcResult::Break)return EventProcResult::Break;break;
|
||||
case KeyboardEventID::Released: if(OnReleased (KeyboardButton(ked->key))==EventProcResult::Break)return EventProcResult::Break;break;
|
||||
case KeyboardEventID::Char: if(OnChar ( ked->ch ) ==EventProcResult::Break)return EventProcResult::Break;break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -183,9 +185,9 @@ namespace hgl
|
||||
return EventProcResult::Continue;
|
||||
}
|
||||
|
||||
virtual bool OnPressed(const KeyboardButton &kb){return(false);}
|
||||
virtual bool OnReleased(const KeyboardButton &kb){return(false);}
|
||||
virtual bool OnChar(const wchar_t &){return(false);}
|
||||
virtual EventProcResult OnPressed (const KeyboardButton &kb){return(EventProcResult::Continue);}
|
||||
virtual EventProcResult OnReleased (const KeyboardButton &kb){return(EventProcResult::Continue);}
|
||||
virtual EventProcResult OnChar (const wchar_t & ){return(EventProcResult::Continue);}
|
||||
};//class KeyboardEvent
|
||||
|
||||
class KeyboardStateEvent:public KeyboardEvent
|
||||
@@ -207,24 +209,24 @@ namespace hgl
|
||||
|
||||
virtual ~KeyboardStateEvent()=default;
|
||||
|
||||
virtual bool OnPressed(const KeyboardButton &kb) override
|
||||
virtual EventProcResult OnPressed(const KeyboardButton &kb) override
|
||||
{
|
||||
if(!RangeCheck(kb))return(false);
|
||||
if(!RangeCheck(kb))return(EventProcResult::Continue);
|
||||
|
||||
press_states[(size_t)kb]=true;
|
||||
pressed_time[(size_t)kb]=cur_time;
|
||||
|
||||
return(true);
|
||||
return(EventProcResult::Break);
|
||||
}
|
||||
|
||||
virtual bool OnReleased(const KeyboardButton &kb) override
|
||||
virtual EventProcResult OnReleased(const KeyboardButton &kb) override
|
||||
{
|
||||
if(!RangeCheck(kb))return(false);
|
||||
if(!RangeCheck(kb))return(EventProcResult::Continue);
|
||||
|
||||
press_states[(size_t)kb]=false;
|
||||
pressed_time[(size_t)kb]=0;
|
||||
|
||||
return(true);
|
||||
return(EventProcResult::Break);
|
||||
}
|
||||
|
||||
public:
|
||||
|
@@ -57,12 +57,12 @@ namespace hgl::io
|
||||
|
||||
virtual EventProcResult OnEvent (const EventHeader &header,const uint64 data) override;
|
||||
|
||||
virtual bool OnMove (const Vector2i &){return false;}
|
||||
virtual bool OnWheel (const Vector2i &){return false;}
|
||||
virtual EventProcResult OnMove (const Vector2i &){return EventProcResult::Continue;}
|
||||
virtual EventProcResult OnWheel (const Vector2i &){return EventProcResult::Continue;}
|
||||
|
||||
virtual bool OnPressed (const Vector2i &,MouseButton){return false;}
|
||||
virtual bool OnReleased (const Vector2i &,MouseButton){return false;}
|
||||
virtual bool OnDblClicked(const Vector2i &,MouseButton){return false;}
|
||||
virtual EventProcResult OnPressed (const Vector2i &,MouseButton){return EventProcResult::Continue;}
|
||||
virtual EventProcResult OnReleased (const Vector2i &,MouseButton){return EventProcResult::Continue;}
|
||||
virtual EventProcResult OnDblClicked(const Vector2i &,MouseButton){return EventProcResult::Continue;}
|
||||
|
||||
/**
|
||||
* 某按键是否按下
|
||||
|
@@ -13,18 +13,19 @@ namespace hgl::io
|
||||
|
||||
if(MouseEventID(header.id)==MouseEventID::Wheel)
|
||||
{
|
||||
if(OnWheel (position) )return EventProcResult::Break;
|
||||
if(OnWheel(position)==EventProcResult::Break)
|
||||
return EventProcResult::Break;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch(MouseEventID(header.id))
|
||||
{
|
||||
case MouseEventID::Move: if(OnMove (position) )return EventProcResult::Break;break;
|
||||
case MouseEventID::Move: if(OnMove (position) ==EventProcResult::Break)return EventProcResult::Break;break;
|
||||
case MouseEventID::Pressed: pressed_statues[med->button]=true;
|
||||
if(OnPressed (position,MouseButton(med->button)))return EventProcResult::Break;break;
|
||||
if(OnPressed (position,MouseButton(med->button))==EventProcResult::Break)return EventProcResult::Break;break;
|
||||
case MouseEventID::Released: pressed_statues[med->button]=false;
|
||||
if(OnReleased (position,MouseButton(med->button)))return EventProcResult::Break;break;
|
||||
case MouseEventID::DblClicked: if(OnDblClicked (position,MouseButton(med->button)))return EventProcResult::Break;break;
|
||||
if(OnReleased (position,MouseButton(med->button))==EventProcResult::Break)return EventProcResult::Break;break;
|
||||
case MouseEventID::DblClicked: if(OnDblClicked (position,MouseButton(med->button))==EventProcResult::Break)return EventProcResult::Break;break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user