| // Copyright 2013 The Flutter Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "flutter/shell/platform/linux/testing/mock_keymap.h" | |
| using namespace flutter::testing; | |
| G_DECLARE_FINAL_TYPE(FlMockKeymap, fl_mock_keymap, FL, MOCK_KEYMAP, GObject) | |
| struct _FlMockKeymap { | |
| GObject parent_instance; | |
| MockKeymap* mock; | |
| }; | |
| G_DEFINE_TYPE(FlMockKeymap, fl_mock_keymap, G_TYPE_OBJECT) | |
| static void fl_mock_keymap_class_init(FlMockKeymapClass* klass) { | |
| g_signal_new("keys-changed", fl_mock_keymap_get_type(), G_SIGNAL_RUN_LAST, 0, | |
| nullptr, nullptr, nullptr, G_TYPE_NONE, 0); | |
| } | |
| static void fl_mock_keymap_init(FlMockKeymap* self) {} | |
| static MockKeymap* mock = nullptr; | |
| MockKeymap::MockKeymap() { | |
| mock = this; | |
| } | |
| GdkKeymap* gdk_keymap_get_for_display(GdkDisplay* display) { | |
| FlMockKeymap* keymap = | |
| FL_MOCK_KEYMAP(g_object_new(fl_mock_keymap_get_type(), nullptr)); | |
| (void)FL_IS_MOCK_KEYMAP(keymap); | |
| return reinterpret_cast<GdkKeymap*>(keymap); | |
| } | |
| guint gdk_keymap_lookup_key(GdkKeymap* keymap, const GdkKeymapKey* key) { | |
| return mock->gdk_keymap_lookup_key(keymap, key); | |
| } |