2 * Copyright (C) 2008-2009 David Robillard <d@drobilla.net>
3 * Copyright (C) 2013-2015 Paul Davis <paul@linuxaudiosystems.com>
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
26 print_event (GdkEvent* event)
29 cerr << "Event: type = " << event->type << ' ';
31 switch (event->type) {
32 case GDK_BUTTON_PRESS:
33 cerr << "Button press, button = "
34 << event->button.button
36 << event->button.state
40 case GDK_BUTTON_RELEASE:
41 cerr << "Button release, button = "
42 << event->button.button
44 << event->button.state
49 cerr << "Scroll: direction = "
50 << event->scroll.direction
52 << event->scroll.state
57 cerr << "Key press, keycode = "
60 << gdk_keyval_name (event->key.keyval)
64 << event->key.hardware_keycode
66 << (event->key.string ? event->key.string : "not defined")
71 cerr << "Key release, keycode = "
74 << gdk_keyval_name (event->key.keyval)
78 << event->key.hardware_keycode
80 << (event->key.string ? event->key.string : "not defined")
94 main (int argc, char* argv[])
96 Gtk::Main app (&argc, &argv);
98 Gtk::EventBox eventbox;
100 window.add (eventbox);
101 window.set_size_request (250, 250);
103 eventbox.signal_event().connect (sigc::ptr_fun (print_event));
104 eventbox.add_events (Gdk::SCROLL_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK);
105 eventbox.set_flags (Gtk::CAN_FOCUS);