X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=platform%2Flinux%2Fgp2x.c;h=cb1d8d2274021889caa80e8ab7b46dc99ef3657e;hb=19e1d027450209006a772aba60b665d8dfea307a;hp=bcb3ee3eb5e8166aec8d00e97833e30b41c21e67;hpb=e5ab6fafac1ee3cbe105c8cc49413c99d6874802;p=picodrive.git diff --git a/platform/linux/gp2x.c b/platform/linux/gp2x.c index bcb3ee3..cb1d8d2 100644 --- a/platform/linux/gp2x.c +++ b/platform/linux/gp2x.c @@ -21,9 +21,9 @@ #include "log_io.h" void *gp2x_screen; +unsigned long current_keys = 0; static int current_bpp = 8; static int current_pal[256]; -static unsigned long current_keys = 0; static const char *verstring = "PicoDrive " VERSION; // dummies @@ -52,9 +52,13 @@ static gint key_press_event (GtkWidget *widget, GdkEventKey *event) { switch (event->hardware_keycode) { + case 111: case 0x62: current_keys |= GP2X_UP; break; + case 116: case 0x68: current_keys |= GP2X_DOWN; break; + case 113: case 0x64: current_keys |= GP2X_LEFT; break; + case 114: case 0x66: current_keys |= GP2X_RIGHT; break; case 0x24: current_keys |= GP2X_START; break; // enter case 0x23: current_keys |= GP2X_SELECT;break; // ] @@ -83,9 +87,13 @@ static gint key_release_event (GtkWidget *widget, GdkEventKey *event) { switch (event->hardware_keycode) { + case 111: case 0x62: current_keys &= ~GP2X_UP; break; + case 116: case 0x68: current_keys &= ~GP2X_DOWN; break; + case 113: case 0x64: current_keys &= ~GP2X_LEFT; break; + case 114: case 0x66: current_keys &= ~GP2X_RIGHT; break; case 0x24: current_keys &= ~GP2X_START; break; // enter case 0x23: current_keys &= ~GP2X_SELECT;break; // ] @@ -103,6 +111,19 @@ static gint key_release_event (GtkWidget *widget, GdkEventKey *event) return 0; } +/* +void gdk_drawable_get_size (GdkDrawable *drawable, + gint *width, + gint *height); +**/ + +static void size_allocate_event(GtkWidget *widget, GtkAllocation *allocation, gpointer user_data) +{ + gint w, h; + gdk_drawable_get_size(gtk_items.window, &w, &h); + printf("%dx%d %dx%d\n", allocation->width, allocation->height, w, h); +} + static void *gtk_threadf(void *targ) { int argc = 0; @@ -129,6 +150,9 @@ static void *gtk_threadf(void *targ) g_signal_connect (G_OBJECT (gtk_items.window), "key_release_event", G_CALLBACK (key_release_event), NULL); + g_signal_connect (G_OBJECT (gtk_items.window), "size_allocate", + G_CALLBACK (size_allocate_event), NULL); + gtk_container_set_border_width (GTK_CONTAINER (gtk_items.window), 2); gtk_window_set_title ((GtkWindow *) gtk_items.window, verstring);