Detecting Key Presses
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>
Setup the callback
//Get keypresses
g_signal_connect (G_OBJECT(MainWindow), "key_press_event", G_CALLBACK (on_key_press), NULL);
Create A Function To Be Called
//******************************
//******************************
//********** KEYPRESS **********
//******************************
//******************************
gboolean on_key_press (GtkWidget *widget, GdkEventKey *event, gpointer user_data)
{
if (event->state & GDK_SHIFT_MASK)
{
printf("SHIFT pressed\n");
}
else if (event->state & GDK_CONTROL_MASK)
{
printf("CTRL pressed\n");
}
switch (event->keyval) //See the <gdk/gdkkeysyms.h> header file for a complete list of GDK key codes
{
case 'q':
printf("key pressed: q\n");
break;
case 'Q':
printf("key pressed: Q\n");
break;
case GDK_KEY_Up:
printf("key pressed: Up\n");
break;
case GDK_KEY_Down:
printf("key pressed: Down\n");
break;
case GDK_KEY_Left:
printf("key pressed: Left\n");
break;
case GDK_KEY_Right:
printf("key pressed: Right\n");
break;
}
return FALSE;
}
