1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 13:38:11 +00:00

WindowServer: Rename WSEvent subclasses WSFooEvent for consistency.

Add a WSWindowInvalidationEvent that carries a rect instead of having an
awkward single-purpose rect in WSEvent.
Flesh out WSKeyEvent a bit more.
This commit is contained in:
Andreas Kling 2019-01-21 07:28:04 +01:00
parent aefbbeb3cb
commit 51595603bd
8 changed files with 72 additions and 81 deletions

View file

@ -55,32 +55,36 @@ void WSWindow::event(WSEvent& event)
switch (event.type()) {
case WSEvent::Paint:
gui_event.type = GUI_Event::Type::Paint;
gui_event.paint.rect = static_cast<PaintEvent&>(event).rect();
gui_event.paint.rect = static_cast<WSPaintEvent&>(event).rect();
break;
case WSEvent::MouseMove:
gui_event.type = GUI_Event::Type::MouseMove;
gui_event.mouse.position = static_cast<MouseEvent&>(event).position();
gui_event.mouse.position = static_cast<WSMouseEvent&>(event).position();
gui_event.mouse.button = GUI_MouseButton::NoButton;
gui_event.mouse.buttons = static_cast<MouseEvent&>(event).buttons();
gui_event.mouse.buttons = static_cast<WSMouseEvent&>(event).buttons();
break;
case WSEvent::MouseDown:
gui_event.type = GUI_Event::Type::MouseDown;
gui_event.mouse.position = static_cast<MouseEvent&>(event).position();
gui_event.mouse.button = to_api(static_cast<MouseEvent&>(event).button());
gui_event.mouse.buttons = static_cast<MouseEvent&>(event).buttons();
gui_event.mouse.position = static_cast<WSMouseEvent&>(event).position();
gui_event.mouse.button = to_api(static_cast<WSMouseEvent&>(event).button());
gui_event.mouse.buttons = static_cast<WSMouseEvent&>(event).buttons();
break;
case WSEvent::MouseUp:
gui_event.type = GUI_Event::Type::MouseUp;
gui_event.mouse.position = static_cast<MouseEvent&>(event).position();
gui_event.mouse.button = to_api(static_cast<MouseEvent&>(event).button());
gui_event.mouse.buttons = static_cast<MouseEvent&>(event).buttons();
gui_event.mouse.position = static_cast<WSMouseEvent&>(event).position();
gui_event.mouse.button = to_api(static_cast<WSMouseEvent&>(event).button());
gui_event.mouse.buttons = static_cast<WSMouseEvent&>(event).buttons();
break;
case WSEvent::KeyDown:
gui_event.type = GUI_Event::Type::KeyDown;
gui_event.key.character = static_cast<KeyEvent&>(event).text()[0];
gui_event.key.character = static_cast<WSKeyEvent&>(event).character();
gui_event.key.key = static_cast<WSKeyEvent&>(event).key();
gui_event.key.alt = static_cast<WSKeyEvent&>(event).alt();
gui_event.key.ctrl = static_cast<WSKeyEvent&>(event).ctrl();
gui_event.key.shift = static_cast<WSKeyEvent&>(event).shift();
break;
case WSEvent::WM_Invalidate:
WSWindowManager::the().invalidate(*this, event.rect());
WSWindowManager::the().invalidate(*this, static_cast<WSWindowInvalidationEvent&>(event).rect());
return;
case WSEvent::WindowActivated:
gui_event.type = GUI_Event::Type::WindowActivated;