1 /* GDK - The GIMP Drawing Kit
2 * Copyright (C) 2009 Carlos Garnacho <carlosg@gnome.org>
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, write to the
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
22 #include "gdkeventtranslator.h"
25 typedef GdkEventTranslatorIface GdkEventTranslatorInterface;
26 G_DEFINE_INTERFACE (GdkEventTranslator, gdk_event_translator, G_TYPE_OBJECT);
30 gdk_event_translator_default_init (GdkEventTranslatorInterface *iface)
36 gdk_event_translator_translate (GdkEventTranslator *translator,
40 GdkEventTranslatorIface *iface;
43 g_return_val_if_fail (GDK_IS_EVENT_TRANSLATOR (translator), NULL);
44 g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
46 iface = GDK_EVENT_TRANSLATOR_GET_IFACE (translator);
48 if (!iface->translate_event)
51 event = gdk_event_new (GDK_NOTHING);
53 if ((iface->translate_event) (translator, display, event, xevent))
56 gdk_event_free (event);
62 gdk_event_translator_get_handled_events (GdkEventTranslator *translator)
64 GdkEventTranslatorIface *iface;
66 g_return_val_if_fail (GDK_IS_EVENT_TRANSLATOR (translator), 0);
68 iface = GDK_EVENT_TRANSLATOR_GET_IFACE (translator);
70 if (iface->get_handled_events)
71 return iface->get_handled_events (translator);
77 gdk_event_translator_select_window_events (GdkEventTranslator *translator,
79 GdkEventMask event_mask)
81 GdkEventTranslatorIface *iface;
83 g_return_if_fail (GDK_IS_EVENT_TRANSLATOR (translator));
85 iface = GDK_EVENT_TRANSLATOR_GET_IFACE (translator);
87 if (iface->select_window_events)
88 iface->select_window_events (translator, window, event_mask);