#include "ui/gfx/x/keyboard_state.h"
#include "base/i18n/case_conversion.h"
#include "base/memory/raw_ptr.h"
#include "ui/gfx/x/connection.h"
#include "ui/gfx/x/future.h"
#include "ui/gfx/x/keysyms/keysyms.h"
#include "ui/gfx/x/xkb.h"
#include "ui/gfx/x/xproto.h"
namespace x11 {
namespace {
constexpr KeySym kNoSymbol = …;
void ConvertCaseImpl(uint32_t sym, uint32_t* lower, uint32_t* upper);
void ConvertCase(KeySym sym, KeySym* lower, KeySym* upper) { … }
bool IsPublicOrPrivateKeypadKey(KeySym keysym) { … }
int GetXkbGroupFromState(int state) { … }
#include "third_party/libx11/src/KeyBind.c"
#include "third_party/libx11/src/xkb/XKBBind.c"
#include "third_party/libxcb-keysyms/keysyms/keysyms.c"
}
KeyboardState::KeyboardState() = default;
KeyboardState::~KeyboardState() = default;
class CoreKeyboardState : public KeyboardState { … };
class XkbKeyboardState : public KeyboardState { … };
std::unique_ptr<KeyboardState> CreateKeyboardState(Connection* connection) { … }
}