2 Copyright (C) 2012 Paul Davis
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
9 This program 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
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, 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);