summaryrefslogtreecommitdiff
path: root/Services/WindowServer/Event.h
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2021-01-12 12:23:01 +0100
committerAndreas Kling <kling@serenityos.org>2021-01-12 12:23:01 +0100
commitc7ac7e6eaff862c1ea4f99e0c6ce75e095106d9c (patch)
treece2a3fef96f0b8eebe907743f1e03739457c11a6 /Services/WindowServer/Event.h
parent4055b0329117c1a280080bbd638eb48bafe29638 (diff)
downloadserenity-c7ac7e6eaff862c1ea4f99e0c6ce75e095106d9c.zip
Services: Move to Userland/Services/
Diffstat (limited to 'Services/WindowServer/Event.h')
-rw-r--r--Services/WindowServer/Event.h166
1 files changed, 0 insertions, 166 deletions
diff --git a/Services/WindowServer/Event.h b/Services/WindowServer/Event.h
deleted file mode 100644
index e82df2d4c9..0000000000
--- a/Services/WindowServer/Event.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#pragma once
-
-#include <AK/String.h>
-#include <Kernel/API/KeyCode.h>
-#include <LibCore/Event.h>
-#include <LibCore/MimeData.h>
-#include <LibGfx/Rect.h>
-#include <WindowServer/Cursor.h>
-#include <WindowServer/WindowType.h>
-
-namespace WindowServer {
-
-class Event : public Core::Event {
-public:
- enum Type {
- Invalid = 3000,
- MouseMove,
- MouseDown,
- MouseDoubleClick,
- MouseUp,
- MouseWheel,
- WindowEntered,
- WindowLeft,
- KeyDown,
- KeyUp,
- WindowActivated,
- WindowDeactivated,
- WindowInputEntered,
- WindowInputLeft,
- WindowCloseRequest,
- WindowResized,
- };
-
- Event() { }
- explicit Event(Type type)
- : Core::Event(type)
- {
- }
- virtual ~Event() { }
-
- bool is_mouse_event() const { return type() == MouseMove || type() == MouseDown || type() == MouseDoubleClick || type() == MouseUp || type() == MouseWheel; }
- bool is_key_event() const { return type() == KeyUp || type() == KeyDown; }
-};
-
-enum class MouseButton : u8 {
- None = 0,
- Left = 1,
- Right = 2,
- Middle = 4,
- Back = 8,
- Forward = 16,
-};
-
-class KeyEvent final : public Event {
-public:
- KeyEvent(Type type, int key, u32 code_point, u8 modifiers, u32 scancode)
- : Event(type)
- , m_key(key)
- , m_code_point(code_point)
- , m_modifiers(modifiers)
- , m_scancode(scancode)
- {
- }
-
- int key() const { return m_key; }
- bool ctrl() const { return m_modifiers & Mod_Ctrl; }
- bool alt() const { return m_modifiers & Mod_Alt; }
- bool shift() const { return m_modifiers & Mod_Shift; }
- bool logo() const { return m_modifiers & Mod_Logo; }
- u8 modifiers() const { return m_modifiers; }
- u32 code_point() const { return m_code_point; }
- u32 scancode() const { return m_scancode; }
-
-private:
- friend class EventLoop;
- friend class Screen;
- int m_key { 0 };
- u32 m_code_point { 0 };
- u8 m_modifiers { 0 };
- u32 m_scancode { 0 };
-};
-
-class MouseEvent final : public Event {
-public:
- MouseEvent(Type type, const Gfx::IntPoint& position, unsigned buttons, MouseButton button, unsigned modifiers, int wheel_delta = 0)
- : Event(type)
- , m_position(position)
- , m_buttons(buttons)
- , m_button(button)
- , m_modifiers(modifiers)
- , m_wheel_delta(wheel_delta)
- {
- }
-
- const Gfx::IntPoint& position() const { return m_position; }
- int x() const { return m_position.x(); }
- int y() const { return m_position.y(); }
- MouseButton button() const { return m_button; }
- unsigned buttons() const { return m_buttons; }
- unsigned modifiers() const { return m_modifiers; }
- int wheel_delta() const { return m_wheel_delta; }
- bool is_drag() const { return m_drag; }
-
- Vector<String> mime_types() const
- {
- if (!m_mime_data)
- return {};
- return m_mime_data->formats();
- }
-
- void set_drag(bool b) { m_drag = b; }
- void set_mime_data(const Core::MimeData& mime_data) { m_mime_data = mime_data; }
-
- MouseEvent translated(const Gfx::IntPoint& delta) const { return MouseEvent((Type)type(), m_position.translated(delta), m_buttons, m_button, m_modifiers, m_wheel_delta); }
-
-private:
- Gfx::IntPoint m_position;
- unsigned m_buttons { 0 };
- MouseButton m_button { MouseButton::None };
- unsigned m_modifiers { 0 };
- int m_wheel_delta { 0 };
- bool m_drag { false };
- RefPtr<const Core::MimeData> m_mime_data;
-};
-
-class ResizeEvent final : public Event {
-public:
- ResizeEvent(const Gfx::IntRect& rect)
- : Event(Event::WindowResized)
- , m_rect(rect)
- {
- }
-
- const Gfx::IntRect& rect() const { return m_rect; }
-
-private:
- Gfx::IntRect m_rect;
-};
-
-}