/* * Copyright (c) 2020, Alex McGrath * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include namespace GUI { class LinkLabel : public Label { C_OBJECT(LinkLabel); public: Function on_click; private: explicit LinkLabel(String text = {}); virtual void mousedown_event(MouseEvent&) override; virtual void paint_event(PaintEvent&) override; virtual void resize_event(ResizeEvent&) override; virtual void enter_event(Core::Event&) override; virtual void leave_event(Core::Event&) override; virtual void keydown_event(KeyEvent&) override; virtual void context_menu_event(ContextMenuEvent&) override; virtual void did_change_text() override; void update_tooltip_if_needed(); void setup_actions(); RefPtr m_context_menu; RefPtr m_open_action; RefPtr m_copy_action; bool m_hovered { false }; }; }