/* * Copyright (c) 2021, Ben Wiederhake * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include namespace GUI { class MouseTracker { public: MouseTracker(); virtual ~MouseTracker(); static void track_mouse_move(Badge, Gfx::IntPoint); protected: virtual void track_mouse_move(Gfx::IntPoint) = 0; private: IntrusiveListNode m_list_node; using List = IntrusiveList<&MouseTracker::m_list_node>; static List s_trackers; }; }