diff --git a/inc/hgl/io/event/MouseEvent.h b/inc/hgl/io/event/MouseEvent.h index 704f9b0..88f30ab 100644 --- a/inc/hgl/io/event/MouseEvent.h +++ b/inc/hgl/io/event/MouseEvent.h @@ -57,12 +57,12 @@ namespace hgl::io virtual EventProcResult OnEvent (const EventHeader &header,const uint64 data) override; - virtual bool OnMove (int,int){return false;} - virtual bool OnWheel (int,int){return false;} + virtual bool OnMove (const Vector2i &){return false;} + virtual bool OnWheel (const Vector2i &){return false;} - virtual bool OnPressed (int,int,MouseButton){return false;} - virtual bool OnReleased (int,int,MouseButton){return false;} - virtual bool OnDblClicked(int,int,MouseButton){return false;} + virtual bool OnPressed (const Vector2i &,MouseButton){return false;} + virtual bool OnReleased (const Vector2i &,MouseButton){return false;} + virtual bool OnDblClicked(const Vector2i &,MouseButton){return false;} /** * 某按键是否按下 diff --git a/src/IO/Event/MouseEvent.cpp b/src/IO/Event/MouseEvent.cpp index 1217b19..e88d029 100644 --- a/src/IO/Event/MouseEvent.cpp +++ b/src/IO/Event/MouseEvent.cpp @@ -8,23 +8,23 @@ namespace hgl::io { med=(MouseEventData *)&data; + position.x=med->x; + position.y=med->y; + if(MouseEventID(header.id)==MouseEventID::Wheel) { - if(OnWheel (med->x,med->y) )return EventProcResult::Break; + if(OnWheel (position) )return EventProcResult::Break; } else { - position.x=med->x; - position.y=med->y; - switch(MouseEventID(header.id)) { - case MouseEventID::Move: if(OnMove (med->x,med->y) )return EventProcResult::Break;break; + case MouseEventID::Move: if(OnMove (position) )return EventProcResult::Break;break; case MouseEventID::Pressed: pressed_statues[med->button]=true; - if(OnPressed (med->x,med->y,MouseButton(med->button)))return EventProcResult::Break;break; + if(OnPressed (position,MouseButton(med->button)))return EventProcResult::Break;break; case MouseEventID::Released: pressed_statues[med->button]=false; - if(OnReleased (med->x,med->y,MouseButton(med->button)))return EventProcResult::Break;break; - case MouseEventID::DblClicked: if(OnDblClicked (med->x,med->y,MouseButton(med->button)))return EventProcResult::Break;break; + if(OnReleased (position,MouseButton(med->button)))return EventProcResult::Break;break; + case MouseEventID::DblClicked: if(OnDblClicked (position,MouseButton(med->button)))return EventProcResult::Break;break; } } }