Introduced Layer::MouseWheelChanged(). Cleaned up RootLayer::MouseEventHandler::case B_MOUSE_WHEEL_CHANGED.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14490 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Adi Oanca
2005-10-24 16:11:50 +00:00
parent da4a68b7f5
commit 182db85c0c
3 changed files with 19 additions and 13 deletions
+13
View File
@@ -1153,6 +1153,19 @@ Layer::MouseMoved(const PointerEvent& evt, uint32 transit)
}
}
void
Layer::MouseWheelChanged(const PointerEvent& evt)
{
if (Window() && !IsTopLayer()) {
BMessage wheelmsg(B_MOUSE_WHEEL_CHANGED);
wheelmsg.AddInt64("when", evt.when);
wheelmsg.AddFloat("be:wheel_delta_x",evt.wheel_delta_x);
wheelmsg.AddFloat("be:wheel_delta_y",evt.wheel_delta_y);
Window()->SendMessageToClient(&wheelmsg, fViewToken, false);
}
}
void
Layer::WorkspaceActivated(int32 index, bool active)
{
+1
View File
@@ -161,6 +161,7 @@ class Layer {
virtual void MouseDown(const PointerEvent& evt);
virtual void MouseUp(const PointerEvent& evt);
virtual void MouseMoved(const PointerEvent& evt, uint32 transit);
virtual void MouseWheelChanged(const PointerEvent& evt);
virtual void WorkspaceActivated(int32 index, bool active);
virtual void WorkspacesChanged(uint32 oldWorkspaces, uint32 newWorkspaces);
+5 -13
View File
@@ -1138,20 +1138,12 @@ RootLayer::MouseEventHandler(int32 code, BPrivate::PortLink& msg)
msg.Read<float>(&evt.wheel_delta_x);
msg.Read<float>(&evt.wheel_delta_y);
if (fLastLayerUnderMouse && fLastLayerUnderMouse != this) {
if (fLastLayerUnderMouse->fOwner) { // is a Layer object not a WinBorder one
if (fLastLayerUnderMouse->fOwner->fTopLayer != fLastLayerUnderMouse) { // must not be the top_view's counterpart
BMessage wheelmsg(B_MOUSE_WHEEL_CHANGED);
wheelmsg.AddInt64("when", evt.when);
wheelmsg.AddFloat("be:wheel_delta_x",evt.wheel_delta_x);
wheelmsg.AddFloat("be:wheel_delta_y",evt.wheel_delta_y);
fLastLayerUnderMouse->Window()->SendMessageToClient(&wheelmsg, fLastLayerUnderMouse->fViewToken, false);
}
} else {
// TODO: WinBorder::MouseWheel() should dissapear or get other params!
// ((WinBorder*)fLastLayerUnderMouse)->MouseWheel(...)
}
if (fLastLayerUnderMouse == NULL) {
CRITICAL("RootLayer::MouseEventHandler(B_MOUSE_DOWN) fLastLayerUnderMouse is null!\n");
break;
}
fLastLayerUnderMouse->MouseWheelChanged(evt);
break;
}
default: