1 /* GDK - The GIMP Drawing Kit
2 * Copyright (C) 2000 Red Hat, Inc.
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
19 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
20 * file for a list of people on the GTK+ Team. See the ChangeLog
21 * files for a list of changes. These files are distributed with
22 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
27 #include "gdkprivate-broadway.h"
28 #include "gdkinternals.h"
29 #include "gdkdisplay-broadway.h"
30 #include "gdkkeysprivate.h"
31 #include "gdkkeysyms.h"
40 typedef struct _GdkBroadwayKeymap GdkBroadwayKeymap;
41 typedef struct _GdkKeymapClass GdkBroadwayKeymapClass;
43 #define GDK_TYPE_BROADWAY_KEYMAP (gdk_broadway_keymap_get_type ())
44 #define GDK_BROADWAY_KEYMAP(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_BROADWAY_KEYMAP, GdkBroadwayKeymap))
45 #define GDK_IS_BROADWAY_KEYMAP(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_BROADWAY_KEYMAP))
47 typedef struct _DirectionCacheEntry DirectionCacheEntry;
49 struct _GdkBroadwayKeymap
51 GdkKeymap parent_instance;
54 struct _GdkBroadwayKeymapClass
56 GdkKeymapClass keymap_class;
59 G_DEFINE_TYPE (GdkBroadwayKeymap, gdk_broadway_keymap, GDK_TYPE_KEYMAP)
61 static void gdk_broadway_keymap_finalize (GObject *object);
64 gdk_broadway_keymap_init (GdkBroadwayKeymap *keymap)
69 gdk_broadway_keymap_finalize (GObject *object)
71 G_OBJECT_CLASS (gdk_broadway_keymap_parent_class)->finalize (object);
75 _gdk_broadway_display_get_keymap (GdkDisplay *display)
77 GdkBroadwayDisplay *broadway_display;
79 g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
80 broadway_display = GDK_BROADWAY_DISPLAY (display);
82 if (!broadway_display->keymap)
83 broadway_display->keymap = g_object_new (gdk_broadway_keymap_get_type (), NULL);
85 broadway_display->keymap->display = display;
87 return broadway_display->keymap;
91 gdk_broadway_keymap_get_direction (GdkKeymap *keymap)
93 return PANGO_DIRECTION_NEUTRAL;
97 gdk_broadway_keymap_have_bidi_layouts (GdkKeymap *keymap)
103 gdk_broadway_keymap_get_caps_lock_state (GdkKeymap *keymap)
109 gdk_broadway_keymap_get_num_lock_state (GdkKeymap *keymap)
115 gdk_broadway_keymap_get_entries_for_keyval (GdkKeymap *keymap,
124 *keys = g_new0 (GdkKeymapKey, 1);
125 (*keys)->keycode = keyval;
132 gdk_broadway_keymap_get_entries_for_keycode (GdkKeymap *keymap,
133 guint hardware_keycode,
142 *keys = g_new0 (GdkKeymapKey, 1);
143 (*keys)->keycode = hardware_keycode;
147 *keyvals = g_new0 (guint, 1);
148 (*keyvals)[0] = hardware_keycode;
154 gdk_broadway_keymap_lookup_key (GdkKeymap *keymap,
155 const GdkKeymapKey *key)
162 gdk_broadway_keymap_translate_keyboard_state (GdkKeymap *keymap,
163 guint hardware_keycode,
164 GdkModifierType state,
167 gint *effective_group,
169 GdkModifierType *consumed_modifiers)
172 *keyval = hardware_keycode;
174 *effective_group = 0;
181 gdk_broadway_keymap_add_virtual_modifiers (GdkKeymap *keymap,
182 GdkModifierType *state)
187 gdk_broadway_keymap_map_virtual_modifiers (GdkKeymap *keymap,
188 GdkModifierType *state)
194 gdk_broadway_keymap_class_init (GdkBroadwayKeymapClass *klass)
196 GObjectClass *object_class = G_OBJECT_CLASS (klass);
197 GdkKeymapClass *keymap_class = GDK_KEYMAP_CLASS (klass);
199 object_class->finalize = gdk_broadway_keymap_finalize;
201 keymap_class->get_direction = gdk_broadway_keymap_get_direction;
202 keymap_class->have_bidi_layouts = gdk_broadway_keymap_have_bidi_layouts;
203 keymap_class->get_caps_lock_state = gdk_broadway_keymap_get_caps_lock_state;
204 keymap_class->get_num_lock_state = gdk_broadway_keymap_get_num_lock_state;
205 keymap_class->get_entries_for_keyval = gdk_broadway_keymap_get_entries_for_keyval;
206 keymap_class->get_entries_for_keycode = gdk_broadway_keymap_get_entries_for_keycode;
207 keymap_class->lookup_key = gdk_broadway_keymap_lookup_key;
208 keymap_class->translate_keyboard_state = gdk_broadway_keymap_translate_keyboard_state;
209 keymap_class->add_virtual_modifiers = gdk_broadway_keymap_add_virtual_modifiers;
210 keymap_class->map_virtual_modifiers = gdk_broadway_keymap_map_virtual_modifiers;