Newer
Older
minerva / Userland / Applets / Keymap / KeymapStatusWidget.h
@minerva minerva on 13 Jul 736 bytes Initial commit
/*
 * Copyright (c) 2022, the SerenityOS developers.
 * Copyright (c) 2023, Andreas Kling <kling@serenityos.org>
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */

#pragma once

#include <LibGUI/ActionGroup.h>
#include <LibGUI/Widget.h>

class KeymapStatusWidget final : public GUI::Widget {
    C_OBJECT(KeymapStatusWidget);

public:
    virtual ~KeymapStatusWidget() override;
    void set_current_keymap(ByteString const& keymap);

private:
    KeymapStatusWidget();

    virtual void paint_event(GUI::PaintEvent&) override;
    virtual void mousedown_event(GUI::MouseEvent&) override;

    ErrorOr<void> refresh_menu();

    RefPtr<GUI::Menu> m_context_menu;

    ByteString m_current_keymap;
    GUI::ActionGroup m_keymaps_group;
};