ladybird/Userland/Applications/KeyboardMapper/KeyboardMapperWidget.h
Ben Wiederhake 465af4c4d4 Applications: Fix visibility of Object-derivative constructors
Derivatives of Core::Object should be constructed through
ClassName::construct(), to avoid handling ref-counted objects with
refcount zero. Fixing the visibility means that misuses like this are
more difficult.
2021-11-02 22:56:53 +01:00

43 lines
965 B
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Copyright (c) 2020, Hüseyin Aslıtürk <asliturk@hotmail.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include "KeyButton.h"
#include <LibGUI/Button.h>
#include <LibKeyboard/CharacterMapData.h>
class KeyboardMapperWidget final : public GUI::Widget {
C_OBJECT(KeyboardMapperWidget)
public:
virtual ~KeyboardMapperWidget() override;
void create_frame();
void load_from_file(const String);
void load_from_system();
void save();
void save_to_file(const StringView&);
protected:
virtual void keydown_event(GUI::KeyEvent&) override;
virtual void keyup_event(GUI::KeyEvent&) override;
void set_current_map(const String);
void update_window_title();
private:
KeyboardMapperWidget();
Vector<KeyButton*> m_keys;
RefPtr<GUI::Widget> m_map_group;
String m_filename;
Keyboard::CharacterMapData m_character_map;
String m_current_map_name;
bool m_modified { false };
};