From 3884a80f48b9617d9fae4f746d04aa4ea3986c28 Mon Sep 17 00:00:00 2001 From: evilynux Date: Thu, 11 Jan 2007 08:47:12 +0000 Subject: [PATCH] First glimpse of joystick configuration. Still hidden as it's not 100% working at the moment. --- desmume/src/gtk-glade/callbacks_IO.c | 41 +++ desmume/src/gtk-glade/callbacks_IO.h | 12 + desmume/src/gtk-glade/glade/DeSmuMe.glade | 368 ++++++++++++++++++++++ 3 files changed, 421 insertions(+) diff --git a/desmume/src/gtk-glade/callbacks_IO.c b/desmume/src/gtk-glade/callbacks_IO.c index 8900c9b40..f10b1decc 100755 --- a/desmume/src/gtk-glade/callbacks_IO.c +++ b/desmume/src/gtk-glade/callbacks_IO.c @@ -335,3 +335,44 @@ void on_button_Start_clicked (GtkButton *b, gpointer user_data) { ask(b,DESMU void on_button_Select_clicked (GtkButton *b, gpointer user_data) { ask(b,DESMUME_KEY_Select); } void on_button_Debug_clicked (GtkButton *b, gpointer user_data) { ask(b,DESMUME_KEY_DEBUG); } void on_button_Boost_clicked (GtkButton *b, gpointer user_data) { ask(b,DESMUME_KEY_BOOST); } + +/* Joystick configuration / Key definition */ +/* FIXME: popup is not shown!? */ +void ask_joy_key(GtkButton*b, int key) +{ + char text[50]; + u16 joykey; + + key--; /* remove 1 to get index */ + GtkDialog * dlg = (GtkDialog*)glade_xml_get_widget(xml, "wJoyDlg"); + GtkDialog * parent = (GtkDialog*)glade_xml_get_widget(xml, "wJoyConfDlg"); + gtk_widget_set_sensitive(parent, FALSE); /* Ugly workaround for bug below */ + gtk_widget_show_now(dlg); + /* FIXME: when the following line is not commented, the widget is not even shown!! */ + joykey = get_set_joy_key(key); + sprintf(text,"%s : %d\0\0",DESMUME_KEY_NAMES[key],joykey); + gtk_button_set_label(b,text); + gtk_widget_hide((GtkWidget*)dlg); + gtk_widget_set_sensitive(parent, TRUE); /* Ugly workaround for bug below */ +} + +void on_joy_button_A_clicked (GtkButton *b, gpointer user_data) +{ ask_joy_key(b,DESMUME_KEY_A); } +void on_joy_button_B_clicked (GtkButton *b, gpointer user_data) +{ ask_joy_key(b,DESMUME_KEY_B); } +void on_joy_button_X_clicked (GtkButton *b, gpointer user_data) +{ ask_joy_key(b,DESMUME_KEY_X); } +void on_joy_button_Y_clicked (GtkButton *b, gpointer user_data) +{ ask_joy_key(b,DESMUME_KEY_Y); } +void on_joy_button_L_clicked (GtkButton *b, gpointer user_data) +{ ask_joy_key(b,DESMUME_KEY_L); } +void on_joy_button_R_clicked (GtkButton *b, gpointer user_data) +{ ask_joy_key(b,DESMUME_KEY_R); } +void on_joy_button_Select_clicked (GtkButton *b, gpointer user_data) +{ ask_joy_key(b,DESMUME_KEY_Select); } +void on_joy_button_Start_clicked (GtkButton *b, gpointer user_data) +{ ask_joy_key(b,DESMUME_KEY_Start); } +void on_joy_button_Boost_clicked (GtkButton *b, gpointer user_data) +{ ask_joy_key(b,DESMUME_KEY_BOOST); } +void on_joy_button_Debug_clicked (GtkButton *b, gpointer user_data) +{ ask_joy_key(b,DESMUME_KEY_DEBUG); } diff --git a/desmume/src/gtk-glade/callbacks_IO.h b/desmume/src/gtk-glade/callbacks_IO.h index d6335b57d..ea14bc339 100755 --- a/desmume/src/gtk-glade/callbacks_IO.h +++ b/desmume/src/gtk-glade/callbacks_IO.h @@ -63,3 +63,15 @@ void on_button_Start_clicked (GtkButton *button, gpointer user_data); void on_button_Select_clicked (GtkButton *button, gpointer user_data); void on_button_Debug_clicked (GtkButton *button, gpointer user_data); void on_button_Boost_clicked (GtkButton *button, gpointer user_data); + +/* Joystick configuration / Key definition */ +void on_joy_button_Y_clicked (GtkButton *button, gpointer user_data); +void on_joy_button_X_clicked (GtkButton *button, gpointer user_data); +void on_joy_button_A_clicked (GtkButton *button, gpointer user_data); +void on_joy_button_B_clicked (GtkButton *button, gpointer user_data); +void on_joy_button_Select_clicked (GtkButton *button, gpointer user_data); +void on_joy_button_L_clicked (GtkButton *button, gpointer user_data); +void on_joy_button_R_clicked (GtkButton *button, gpointer user_data); +void on_joy_button_Debug_clicked (GtkButton *button, gpointer user_data); +void on_joy_button_Start_clicked (GtkButton *button, gpointer user_data); +void on_joy_button_Boost_clicked (GtkButton *button, gpointer user_data); diff --git a/desmume/src/gtk-glade/glade/DeSmuMe.glade b/desmume/src/gtk-glade/glade/DeSmuMe.glade index a8d513963..1082e1abf 100755 --- a/desmume/src/gtk-glade/glade/DeSmuMe.glade +++ b/desmume/src/gtk-glade/glade/DeSmuMe.glade @@ -1379,4 +1379,372 @@ + + Joystick Config + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_CENTER_ON_PARENT + False + True + True + DeSmuME.xpm + True + False + False + GDK_WINDOW_TYPE_HINT_DIALOG + GDK_GRAVITY_NORTH_WEST + True + False + True + + + + + + True + False + 0 + + + + True + GTK_BUTTONBOX_END + + + + True + True + True + gtk-cancel + True + GTK_RELIEF_NORMAL + True + -6 + + + + + + True + True + True + gtk-ok + True + GTK_RELIEF_NORMAL + True + -5 + + + + + 0 + False + True + GTK_PACK_END + + + + + + True + 5 + 7 + True + 0 + 0 + + + + True + True + Y : + True + GTK_RELIEF_NORMAL + True + + + + 4 + 5 + 3 + 4 + fill + + + + + + + True + True + X : + True + GTK_RELIEF_NORMAL + True + + + + 5 + 6 + 2 + 3 + fill + + + + + + + True + True + A : + True + GTK_RELIEF_NORMAL + True + + + + 6 + 7 + 3 + 4 + fill + + + + + + + True + True + B : + True + GTK_RELIEF_NORMAL + True + + + + 5 + 6 + 4 + 5 + fill + + + + + + + True + True + Select : + True + GTK_RELIEF_NORMAL + True + + + + 3 + 4 + 1 + 2 + fill + + + + + + + True + True + L : + True + GTK_RELIEF_NORMAL + True + + + + 0 + 2 + 0 + 1 + fill + + + + + + + True + True + R : + True + GTK_RELIEF_NORMAL + True + + + + 5 + 7 + 0 + 1 + fill + + + + + + + True + True + Debug : + True + GTK_RELIEF_NORMAL + True + + + + 2 + 3 + 0 + 1 + fill + + + + + + + True + True + Start : + True + GTK_RELIEF_NORMAL + True + + + + 3 + 4 + 0 + 1 + fill + + + + + + + True + True + Boost : + True + GTK_RELIEF_NORMAL + True + + + + 4 + 5 + 0 + 1 + fill + + + + + + + True + False + True + Axis : + True + GTK_RELIEF_NORMAL + True + + + 1 + 2 + 3 + 4 + fill + + + + + + 0 + True + True + + + + + + + + GDK_KEY_RELEASE_MASK + Key definition + GTK_WINDOW_POPUP + GTK_WIN_POS_CENTER_ALWAYS + True + False + False + DeSmuME.xpm + False + False + False + GDK_WINDOW_TYPE_HINT_DIALOG + GDK_GRAVITY_NORTH_WEST + True + False + False + + + + True + False + 0 + + + + True + GTK_BUTTONBOX_END + + + 0 + False + True + GTK_PACK_END + + + + + + True + Press a button... + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + PANGO_ELLIPSIZE_NONE + -1 + False + 0 + + + 0 + True + True + + + + + +