ladybird/Userland/Libraries/LibKeyboard/CharacterMap.h
2021-04-29 22:16:18 +02:00

43 lines
1019 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
#ifndef KERNEL
# include <AK/OSError.h>
# include <AK/Result.h>
#endif
#include <AK/String.h>
#include <Kernel/API/KeyCode.h>
#include <LibKeyboard/CharacterMapData.h>
namespace Keyboard {
class CharacterMap {
public:
CharacterMap(const String& map_name, const CharacterMapData& map_data);
static Optional<CharacterMap> load_from_file(const String& filename);
#ifndef KERNEL
int set_system_map();
static Result<CharacterMap, OSError> fetch_system_map();
#endif
u32 get_char(KeyEvent) const;
void set_character_map_data(CharacterMapData character_map_data);
void set_character_map_name(const String& character_map_name);
const CharacterMapData& character_map_data() const { return m_character_map_data; };
const String& character_map_name() const;
private:
CharacterMapData m_character_map_data;
String m_character_map_name;
};
}