improve linux makefile
[picodrive.git] / platform / linux / gp2x.c
index bcb3ee3..cb1d8d2 100644 (file)
@@ -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);