/* * 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 const&); protected: virtual void track_mouse_move(Gfx::IntPoint const&) = 0; private: IntrusiveListNode m_list_node; using List = IntrusiveList<&MouseTracker::m_list_node>; static List s_trackers; }; }