Fixed the gtk glade port. As far as I can test it(that is
only the 2D part), it seems to be working...
This commit is contained in:
parent
e4f9a0f5dc
commit
3287452dd7
|
@ -16,16 +16,16 @@ glade_DATA = glade/DeSmuMe_Dtools.glade glade/DeSmuMe.glade glade/DeSmuME.xpm
|
||||||
|
|
||||||
bin_PROGRAMS = desmume-glade
|
bin_PROGRAMS = desmume-glade
|
||||||
desmume_glade_SOURCES = \
|
desmume_glade_SOURCES = \
|
||||||
globals.h glade-xml.c \
|
globals.h glade-xml.cpp \
|
||||||
callbacks.c callbacks.h callbacks_IO.c callbacks_IO.h \
|
callbacks.cpp callbacks.h callbacks_IO.cpp callbacks_IO.h \
|
||||||
desmume.c desmume.h \
|
desmume.cpp desmume.h \
|
||||||
keyval_names.c main.c printscreen.c gdk_gl.c gdk_gl.h \
|
keyval_names.cpp main.cpp printscreen.cpp gdk_gl.cpp gdk_gl.h \
|
||||||
dTools/callbacks_1_ioregs.c dTools/callbacks_2_memview.c \
|
dTools/callbacks_1_ioregs.cpp dTools/callbacks_2_memview.cpp \
|
||||||
dTools/callbacks_3_palview.c dTools/callbacks_4_tileview.c \
|
dTools/callbacks_3_palview.cpp dTools/callbacks_4_tileview.cpp \
|
||||||
dTools/callbacks_dtools.h \
|
dTools/callbacks_dtools.h \
|
||||||
dTools/dTools_display.h \
|
dTools/dTools_display.h \
|
||||||
gdk_3Demu.c gdk_3Demu.h \
|
gdk_3Demu.cpp gdk_3Demu.h \
|
||||||
../sndsdl.h ../sndsdl.c ../ctrlssdl.h ../ctrlssdl.c
|
../sndsdl.h ../sndsdl.cpp ../ctrlssdl.h ../ctrlssdl.cpp
|
||||||
|
|
||||||
desmume_glade_LDADD = ../libdesmume.a ../gdbstub/libgdbstub.a \
|
desmume_glade_LDADD = ../libdesmume.a ../gdbstub/libgdbstub.a \
|
||||||
$(SDL_LIBS) $(GTKGLEXT_LIBS) $(LIBGLADE_LIBS) \
|
$(SDL_LIBS) $(GTKGLEXT_LIBS) $(LIBGLADE_LIBS) \
|
||||||
|
|
|
@ -29,6 +29,71 @@ gboolean ScreenRight=FALSE;
|
||||||
gboolean ScreenGap=FALSE;
|
gboolean ScreenGap=FALSE;
|
||||||
gboolean ScreenInvert=FALSE;
|
gboolean ScreenInvert=FALSE;
|
||||||
|
|
||||||
|
/* ******** Savestate menu items handling ******** */
|
||||||
|
|
||||||
|
void set_menuitem_label(GtkWidget * w, char * text )
|
||||||
|
{
|
||||||
|
GtkLabel * child;
|
||||||
|
|
||||||
|
if ( GTK_BIN(w)->child )
|
||||||
|
{
|
||||||
|
child = (GtkLabel*)GTK_BIN(w)->child;
|
||||||
|
gtk_label_set_text(child, text);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void clear_savestate_menu(char * cb_name, u8 num)
|
||||||
|
{
|
||||||
|
GtkWidget * w;
|
||||||
|
char cb[40];
|
||||||
|
char text[40];
|
||||||
|
|
||||||
|
sprintf( cb, "%s%d", cb_name, num);
|
||||||
|
sprintf( text, _("State %d (empty)"), num);
|
||||||
|
w = glade_xml_get_widget(xml, cb);
|
||||||
|
set_menuitem_label( w, text );
|
||||||
|
}
|
||||||
|
|
||||||
|
void update_savestate_menu(char * cb_name, u8 num)
|
||||||
|
{
|
||||||
|
GtkWidget * w;
|
||||||
|
char cb[40];
|
||||||
|
|
||||||
|
sprintf( cb, "%s%d", cb_name, num);
|
||||||
|
w = glade_xml_get_widget(xml, cb);
|
||||||
|
set_menuitem_label( w, savestates[num-1].date );
|
||||||
|
}
|
||||||
|
|
||||||
|
void update_savestates_menu()
|
||||||
|
{
|
||||||
|
char cb[15];
|
||||||
|
u8 i;
|
||||||
|
GtkWidget * w;
|
||||||
|
|
||||||
|
for( i = 1; i <= NB_STATES; i++ )
|
||||||
|
{
|
||||||
|
if( savestates[i-1].exists == TRUE )
|
||||||
|
{
|
||||||
|
update_savestate_menu("loadstate", i);
|
||||||
|
update_savestate_menu("savestate", i);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
clear_savestate_menu("loadstate", i);
|
||||||
|
clear_savestate_menu("savestate", i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void update_savestate(u8 num)
|
||||||
|
{
|
||||||
|
desmume_pause();
|
||||||
|
savestate_slot(num);
|
||||||
|
update_savestate_menu("savestate", num);
|
||||||
|
update_savestate_menu("loadstate", num);
|
||||||
|
desmume_resume();
|
||||||
|
}
|
||||||
|
|
||||||
/* inline & protos */
|
/* inline & protos */
|
||||||
|
|
||||||
inline void SET_SENSITIVE(gchar *w, gboolean b) {
|
inline void SET_SENSITIVE(gchar *w, gboolean b) {
|
||||||
|
@ -186,7 +251,7 @@ void gtk_table_reattach(GtkTable * table, GtkWidget * w,
|
||||||
for (list = table->children; list; list = list->next)
|
for (list = table->children; list; list = list->next)
|
||||||
{
|
{
|
||||||
GtkTableChild *table_child;
|
GtkTableChild *table_child;
|
||||||
table_child = list->data;
|
table_child = (GtkTableChild *) list->data;
|
||||||
if (table_child->widget == w) {
|
if (table_child->widget == w) {
|
||||||
table_child->left_attach = left_attach;
|
table_child->left_attach = left_attach;
|
||||||
table_child->right_attach = right_attach;
|
table_child->right_attach = right_attach;
|
||||||
|
@ -213,15 +278,15 @@ void rightscreen(BOOL apply) {
|
||||||
if (ScreenRight) {
|
if (ScreenRight) {
|
||||||
/* we want to change the layout, lower screen goes right */
|
/* we want to change the layout, lower screen goes right */
|
||||||
gtk_table_reattach(table, pDrawingArea2,
|
gtk_table_reattach(table, pDrawingArea2,
|
||||||
3,4, 0,1, 0,0, 0,0);
|
3,4, 0,1, (GtkAttachOptions) 0, (GtkAttachOptions) 0, 0,0);
|
||||||
gtk_table_reattach(table, chk,
|
gtk_table_reattach(table, chk,
|
||||||
4,5, 0,1, 0,0, 0,0);
|
4,5, 0,1, (GtkAttachOptions) 0, (GtkAttachOptions) 0, 0,0);
|
||||||
} else {
|
} else {
|
||||||
/* we want to change the layout, lower screen goes down */
|
/* we want to change the layout, lower screen goes down */
|
||||||
gtk_table_reattach(table, pDrawingArea2,
|
gtk_table_reattach(table, pDrawingArea2,
|
||||||
1,2, 2,3, 0,0, 0,0);
|
1,2, 2,3, (GtkAttachOptions) 0, (GtkAttachOptions) 0, 0,0);
|
||||||
gtk_table_reattach(table, chk,
|
gtk_table_reattach(table, chk,
|
||||||
0,1, 2,3, 0,0, 0,0);
|
0,1, 2,3, (GtkAttachOptions) 0, (GtkAttachOptions) 0, 0,0);
|
||||||
ScreenRight = FALSE;
|
ScreenRight = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -268,7 +333,6 @@ void on_sizeXX_activate (GtkMenuItem *menuitem, gpointer user_data) {
|
||||||
|
|
||||||
|
|
||||||
/* MENU CONFIG ***** ***** ***** ***** */
|
/* MENU CONFIG ***** ***** ***** ***** */
|
||||||
u16 Keypad_Temp[NB_KEYS];
|
|
||||||
|
|
||||||
void on_menu_controls_activate (GtkMenuItem *menuitem, gpointer user_data) {
|
void on_menu_controls_activate (GtkMenuItem *menuitem, gpointer user_data) {
|
||||||
edit_controls();
|
edit_controls();
|
||||||
|
@ -295,7 +359,7 @@ user_data)
|
||||||
dlg = (GtkDialog*)glade_xml_get_widget(xml, "wMainW");
|
dlg = (GtkDialog*)glade_xml_get_widget(xml, "wMainW");
|
||||||
msgbox = (GtkDialog*)
|
msgbox = (GtkDialog*)
|
||||||
gtk_message_dialog_new((GtkWindow*)dlg,
|
gtk_message_dialog_new((GtkWindow*)dlg,
|
||||||
GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
|
(GtkDialogFlags) (GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT),
|
||||||
GTK_MESSAGE_INFO,
|
GTK_MESSAGE_INFO,
|
||||||
GTK_BUTTONS_CLOSE,
|
GTK_BUTTONS_CLOSE,
|
||||||
text
|
text
|
||||||
|
@ -358,7 +422,7 @@ void on_menu_tileview_activate (GtkMenuItem *menuitem, gpointer user_data)
|
||||||
gtk_widget_show(dlg);
|
gtk_widget_show(dlg);
|
||||||
}
|
}
|
||||||
void on_menu_wtoolsXX_activate (GtkMenuItem *menuitem, gpointer user_data) {
|
void on_menu_wtoolsXX_activate (GtkMenuItem *menuitem, gpointer user_data) {
|
||||||
GtkWidget * w = user_data;
|
GtkWidget * w = (GtkWidget *) user_data;
|
||||||
gtk_widget_show(w);
|
gtk_widget_show(w);
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
|
|
||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
/* MENU FILE */
|
/* MENU FILE */
|
||||||
G_MODULE_EXPORT void on_menu_ouvrir_activate (GtkMenuItem *menuitem, gpointer user_data);
|
G_MODULE_EXPORT void on_menu_ouvrir_activate (GtkMenuItem *menuitem, gpointer user_data);
|
||||||
G_MODULE_EXPORT void on_menu_pscreen_activate (GtkMenuItem *menuitem, gpointer user_data);
|
G_MODULE_EXPORT void on_menu_pscreen_activate (GtkMenuItem *menuitem, gpointer user_data);
|
||||||
|
@ -68,3 +70,5 @@ G_MODULE_EXPORT void on_wgt_Quit_clicked (GtkToolButton *toolbutton, gpointer
|
||||||
/* LAYERS TOGGLE */
|
/* LAYERS TOGGLE */
|
||||||
G_MODULE_EXPORT void on_wc_1_BGXX_toggled (GtkToggleButton *togglebutton, gpointer user_data);
|
G_MODULE_EXPORT void on_wc_1_BGXX_toggled (GtkToggleButton *togglebutton, gpointer user_data);
|
||||||
G_MODULE_EXPORT void on_wc_2_BGXX_toggled (GtkToggleButton *togglebutton, gpointer user_data);
|
G_MODULE_EXPORT void on_wc_2_BGXX_toggled (GtkToggleButton *togglebutton, gpointer user_data);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -22,6 +22,8 @@
|
||||||
|
|
||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
/* INPUT BUTTONS / KEYBOARD */
|
/* INPUT BUTTONS / KEYBOARD */
|
||||||
G_MODULE_EXPORT gboolean on_wMainW_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data);
|
G_MODULE_EXPORT gboolean on_wMainW_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data);
|
||||||
G_MODULE_EXPORT gboolean on_wMainW_key_release_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data);
|
G_MODULE_EXPORT gboolean on_wMainW_key_release_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data);
|
||||||
|
@ -45,3 +47,5 @@ G_MODULE_EXPORT void on_button_kb_key_clicked (GtkButton *button, gpointer u
|
||||||
/* Joystick configuration / Key definition */
|
/* Joystick configuration / Key definition */
|
||||||
G_MODULE_EXPORT void on_button_joy_axis_clicked (GtkButton *button, gpointer user_data);
|
G_MODULE_EXPORT void on_button_joy_axis_clicked (GtkButton *button, gpointer user_data);
|
||||||
G_MODULE_EXPORT void on_button_joy_key_clicked (GtkButton *button, gpointer user_data);
|
G_MODULE_EXPORT void on_button_joy_key_clicked (GtkButton *button, gpointer user_data);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -66,7 +66,8 @@ static void wtools_1_update () {
|
||||||
static u32 mem[NBR_IO_REGS];
|
static u32 mem[NBR_IO_REGS];
|
||||||
|
|
||||||
static void update_regs_fast(){
|
static void update_regs_fast(){
|
||||||
char text[10], *mask;
|
char text[10];
|
||||||
|
const char * mask;
|
||||||
int i; u32 w, m;
|
int i; u32 w, m;
|
||||||
for( i = 0; i < NBR_IO_REGS; i++ )
|
for( i = 0; i < NBR_IO_REGS; i++ )
|
||||||
{
|
{
|
||||||
|
@ -91,7 +92,8 @@ static void update_regs_fast(){
|
||||||
|
|
||||||
static void update_regs()
|
static void update_regs()
|
||||||
{
|
{
|
||||||
char text[80], *mask;
|
char text[80];
|
||||||
|
const char * mask;
|
||||||
int len, i;
|
int len, i;
|
||||||
|
|
||||||
if (init==FALSE) {
|
if (init==FALSE) {
|
|
@ -19,8 +19,13 @@
|
||||||
* Boston, MA 02111-1307, USA.
|
* Boston, MA 02111-1307, USA.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef __CALLBACKS_DTOOLS_H__
|
||||||
|
#define __CALLBACKS_DTOOLS_H__
|
||||||
|
|
||||||
#include "../globals.h"
|
#include "../globals.h"
|
||||||
|
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
/* ***** ***** IO REGISTERS ***** ***** */
|
/* ***** ***** IO REGISTERS ***** ***** */
|
||||||
G_MODULE_EXPORT void on_wtools_1_combo_cpu_changed (GtkComboBox *, gpointer );
|
G_MODULE_EXPORT void on_wtools_1_combo_cpu_changed (GtkComboBox *, gpointer );
|
||||||
G_MODULE_EXPORT void on_wtools_1_IOregs_show (GtkWidget *, gpointer );
|
G_MODULE_EXPORT void on_wtools_1_IOregs_show (GtkWidget *, gpointer );
|
||||||
|
@ -69,3 +74,6 @@ G_MODULE_EXPORT void on_wtools_4_palnum_value_changed (GtkSpinButton *, gpoi
|
||||||
G_MODULE_EXPORT void on_wtools_4_rXX_toggled (GtkToggleButton *togglebutton, gpointer user_data);
|
G_MODULE_EXPORT void on_wtools_4_rXX_toggled (GtkToggleButton *togglebutton, gpointer user_data);
|
||||||
G_MODULE_EXPORT gboolean on_wDraw_Tile_expose_event (GtkWidget *, GdkEventExpose *, gpointer );
|
G_MODULE_EXPORT gboolean on_wDraw_Tile_expose_event (GtkWidget *, GdkEventExpose *, gpointer );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -92,7 +92,7 @@ static void inline dTools_display_clear_char(dTools_dsp * dsp, int x, int y, int
|
||||||
|
|
||||||
static void inline dTools_display_select_attr(dTools_dsp * dsp, int index) {
|
static void inline dTools_display_select_attr(dTools_dsp * dsp, int index) {
|
||||||
PangoAttrList *attr = NULL;
|
PangoAttrList *attr = NULL;
|
||||||
attr = g_list_nth_data(dsp->attr_list, index);
|
attr = (PangoAttrList*) g_list_nth_data(dsp->attr_list, index);
|
||||||
if (attr != NULL) {
|
if (attr != NULL) {
|
||||||
dsp->curr_attr = attr;
|
dsp->curr_attr = attr;
|
||||||
}
|
}
|
||||||
|
|
|
@ -159,10 +159,10 @@ init_opengl_gdk_3Demu( void) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
glconfig = gdk_gl_config_new_by_mode (GDK_GL_MODE_RGBA |
|
glconfig = gdk_gl_config_new_by_mode ((GdkGLConfigMode) (GDK_GL_MODE_RGBA |
|
||||||
GDK_GL_MODE_DEPTH |
|
GDK_GL_MODE_DEPTH |
|
||||||
GDK_GL_MODE_STENCIL |
|
GDK_GL_MODE_STENCIL |
|
||||||
GDK_GL_MODE_SINGLE);
|
GDK_GL_MODE_SINGLE));
|
||||||
if (glconfig == NULL)
|
if (glconfig == NULL)
|
||||||
{
|
{
|
||||||
g_print (_("*** No appropriate OpenGL-capable visual found.\n"));
|
g_print (_("*** No appropriate OpenGL-capable visual found.\n"));
|
|
@ -175,9 +175,9 @@ void init_GL_capabilities( int use_software_convert) {
|
||||||
|
|
||||||
uint16_t blank_texture[256 * 512];
|
uint16_t blank_texture[256 * 512];
|
||||||
my_glConfig = gdk_gl_config_new_by_mode (
|
my_glConfig = gdk_gl_config_new_by_mode (
|
||||||
GDK_GL_MODE_RGBA
|
(GdkGLConfigMode) (GDK_GL_MODE_RGBA
|
||||||
| GDK_GL_MODE_DEPTH
|
| GDK_GL_MODE_DEPTH
|
||||||
| GDK_GL_MODE_DOUBLE
|
| GDK_GL_MODE_DOUBLE)
|
||||||
);
|
);
|
||||||
|
|
||||||
gtk_glade_use_software_colour_convert = use_software_convert;
|
gtk_glade_use_software_colour_convert = use_software_convert;
|
|
@ -108,7 +108,7 @@ autoconnect_foreach_StringObject(const char *signal_handler, GList *signals,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (!g_module_symbol(allsymbols, signal_handler, (gpointer)&func))
|
if (!g_module_symbol(allsymbols, signal_handler, (void **)&func))
|
||||||
|
|
||||||
g_warning(_("could not find signal handler '%s'."), signal_handler);
|
g_warning(_("could not find signal handler '%s'."), signal_handler);
|
||||||
|
|
||||||
|
@ -116,7 +116,7 @@ autoconnect_foreach_StringObject(const char *signal_handler, GList *signals,
|
||||||
|
|
||||||
for (; signals != NULL; signals = signals->next) {
|
for (; signals != NULL; signals = signals->next) {
|
||||||
|
|
||||||
GladeSignalData *data = signals->data;
|
GladeSignalData *data = (GladeSignalData *) signals->data;
|
||||||
|
|
||||||
if (data->connect_object) {
|
if (data->connect_object) {
|
||||||
|
|
||||||
|
@ -156,15 +156,15 @@ autoconnect_foreach_StringObject(const char *signal_handler, GList *signals,
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
GObject *other = g_hash_table_lookup(self->priv->name_hash,
|
GObject *other = (GObject *) g_hash_table_lookup(self->priv->name_hash,
|
||||||
|
|
||||||
data->connect_object);
|
data->connect_object);
|
||||||
|
|
||||||
g_signal_connect_object(data->signal_object, data->signal_name,
|
g_signal_connect_object(data->signal_object, data->signal_name,
|
||||||
|
|
||||||
func, other, (data->signal_after ? G_CONNECT_AFTER : 0)
|
func, other, (GConnectFlags) ((data->signal_after ? G_CONNECT_AFTER : 0)
|
||||||
|
|
||||||
| G_CONNECT_SWAPPED);
|
| G_CONNECT_SWAPPED));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -242,7 +242,7 @@ glade_xml_signal_autoconnect_StringObject (GladeXML *self)
|
||||||
|
|
||||||
/* get a handle on the main executable -- use this to find symbols */
|
/* get a handle on the main executable -- use this to find symbols */
|
||||||
|
|
||||||
allsymbols = g_module_open(NULL, 0);
|
allsymbols = g_module_open(NULL, (GModuleFlags) 0);
|
||||||
|
|
||||||
priv = (nopriv_GladeXMLPrivate *)self->priv;
|
priv = (nopriv_GladeXMLPrivate *)self->priv;
|
||||||
|
|
|
@ -106,13 +106,12 @@ glade_xml_signal_autoconnect_StringObject (GladeXML *self);
|
||||||
|
|
||||||
//---
|
//---
|
||||||
|
|
||||||
int Frameskip;
|
extern int Frameskip;
|
||||||
u16 Keypad_Temp[NB_KEYS];
|
|
||||||
|
|
||||||
/* main.c */
|
/* main.c */
|
||||||
GtkWidget * pWindow;
|
extern GtkWidget * pWindow;
|
||||||
GtkWidget * pDrawingArea, * pDrawingArea2;
|
extern GtkWidget * pDrawingArea, * pDrawingArea2;
|
||||||
GladeXML * xml, * xml_tools;
|
extern GladeXML * xml, * xml_tools;
|
||||||
|
|
||||||
typedef void (*VoidFunPtr)();
|
typedef void (*VoidFunPtr)();
|
||||||
void notify_Tools();
|
void notify_Tools();
|
||||||
|
@ -124,13 +123,11 @@ gchar * get_ui_file (const char *filename);
|
||||||
void enable_rom_features();
|
void enable_rom_features();
|
||||||
void resize (float Size1, float Size2);
|
void resize (float Size1, float Size2);
|
||||||
void rotate(float angle);
|
void rotate(float angle);
|
||||||
gboolean ScreenInvert;
|
extern gboolean ScreenInvert;
|
||||||
gboolean ScreenGap;
|
|
||||||
gboolean ScreenRight;
|
|
||||||
|
|
||||||
/* callbacks_IO.c */
|
/* callbacks_IO.c */
|
||||||
float ScreenCoeff_Size[2];
|
extern float ScreenCoeff_Size[2];
|
||||||
float ScreenRotate;
|
extern float ScreenRotate;
|
||||||
|
|
||||||
void black_screen ();
|
void black_screen ();
|
||||||
void edit_controls();
|
void edit_controls();
|
||||||
|
@ -140,8 +137,7 @@ void init_joy_labels();
|
||||||
int WriteBMP(const char *filename,u16 *bmp);
|
int WriteBMP(const char *filename,u16 *bmp);
|
||||||
|
|
||||||
/* keyvalnames.c -see <gdk/gdkkeysyms.h>- */
|
/* keyvalnames.c -see <gdk/gdkkeysyms.h>- */
|
||||||
char * KEYVAL_NAMES[0x10000];
|
const char * KEYNAME(int k);
|
||||||
char * KEYNAME(int k);
|
|
||||||
void init_keyvals();
|
void init_keyvals();
|
||||||
|
|
||||||
#endif /* __GLOBALS_H__ */
|
#endif /* __GLOBALS_H__ */
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,37 @@
|
||||||
|
/* keyval_names.c - this file is part of DeSmuME
|
||||||
|
*
|
||||||
|
* Copyright (C) 2007 Damien Nozay (damdoum)
|
||||||
|
* Author: damdoum at users.sourceforge.net
|
||||||
|
*
|
||||||
|
* This file is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
* any later version.
|
||||||
|
*
|
||||||
|
* This file is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; see the file COPYING. If not, write to
|
||||||
|
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||||
|
* Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "keyval_names.h"
|
||||||
|
/* see <gdk/gdkkeysyms.h> */
|
||||||
|
|
||||||
|
char * unknown="(unknown)";
|
||||||
|
const char * KEYVAL_NAMES[0x10000];
|
||||||
|
|
||||||
|
const char * KEYNAME(int k) {
|
||||||
|
const char * s = unknown;
|
||||||
|
s = KEYVAL_NAMES[k & 0xFFFF];
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
void KEYVAL(int k, const char * name) {
|
||||||
|
if (KEYVAL_NAMES[k] == unknown)
|
||||||
|
KEYVAL_NAMES[k] = name;
|
||||||
|
}
|
|
@ -25,6 +25,7 @@
|
||||||
#include "dTools/callbacks_dtools.h"
|
#include "dTools/callbacks_dtools.h"
|
||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
#include "../gdbstub.h"
|
#include "../gdbstub.h"
|
||||||
|
#include "keyval_names.h"
|
||||||
|
|
||||||
#ifdef GTKGLEXT_AVAILABLE
|
#ifdef GTKGLEXT_AVAILABLE
|
||||||
#include <gtk/gtkgl.h>
|
#include <gtk/gtkgl.h>
|
||||||
|
@ -38,7 +39,6 @@
|
||||||
SDL_sem *glade_fps_limiter_semaphore;
|
SDL_sem *glade_fps_limiter_semaphore;
|
||||||
int glade_fps_limiter_disabled = 0;
|
int glade_fps_limiter_disabled = 0;
|
||||||
|
|
||||||
|
|
||||||
GtkWidget * pWindow;
|
GtkWidget * pWindow;
|
||||||
GtkWidget * pDrawingArea, * pDrawingArea2;
|
GtkWidget * pDrawingArea, * pDrawingArea2;
|
||||||
GladeXML * xml, * xml_tools;
|
GladeXML * xml, * xml_tools;
|
||||||
|
@ -210,11 +210,11 @@ GList * tools_to_update = NULL;
|
||||||
|
|
||||||
// register tool
|
// register tool
|
||||||
void register_Tool(VoidFunPtr fun) {
|
void register_Tool(VoidFunPtr fun) {
|
||||||
tools_to_update = g_list_append(tools_to_update, fun);
|
tools_to_update = g_list_append(tools_to_update, (void *) fun);
|
||||||
}
|
}
|
||||||
void unregister_Tool(VoidFunPtr fun) {
|
void unregister_Tool(VoidFunPtr fun) {
|
||||||
if (tools_to_update == NULL) return;
|
if (tools_to_update == NULL) return;
|
||||||
tools_to_update = g_list_remove(tools_to_update, fun);
|
tools_to_update = g_list_remove(tools_to_update, (void *) fun);
|
||||||
}
|
}
|
||||||
|
|
||||||
void notify_Tool (VoidFunPtr fun, gpointer func_data) {
|
void notify_Tool (VoidFunPtr fun, gpointer func_data) {
|
||||||
|
@ -309,71 +309,6 @@ int Write_ConfigFile()
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ******** Savestate menu items handling ******** */
|
|
||||||
|
|
||||||
void set_menuitem_label(GtkWidget * w, char * text )
|
|
||||||
{
|
|
||||||
GtkLabel * child;
|
|
||||||
|
|
||||||
if ( GTK_BIN(w)->child )
|
|
||||||
{
|
|
||||||
child = (GtkLabel*)GTK_BIN(w)->child;
|
|
||||||
gtk_label_set_text(child, text);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void clear_savestate_menu(char * cb_name, u8 num)
|
|
||||||
{
|
|
||||||
GtkWidget * w;
|
|
||||||
char cb[40];
|
|
||||||
char text[40];
|
|
||||||
|
|
||||||
sprintf( cb, "%s%d", cb_name, num);
|
|
||||||
sprintf( text, _("State %d (empty)"), num);
|
|
||||||
w = glade_xml_get_widget(xml, cb);
|
|
||||||
set_menuitem_label( w, text );
|
|
||||||
}
|
|
||||||
|
|
||||||
void update_savestate_menu(char * cb_name, u8 num)
|
|
||||||
{
|
|
||||||
GtkWidget * w;
|
|
||||||
char cb[40];
|
|
||||||
|
|
||||||
sprintf( cb, "%s%d", cb_name, num);
|
|
||||||
w = glade_xml_get_widget(xml, cb);
|
|
||||||
set_menuitem_label( w, savestates[num-1].date );
|
|
||||||
}
|
|
||||||
|
|
||||||
void update_savestates_menu()
|
|
||||||
{
|
|
||||||
char cb[15];
|
|
||||||
u8 i;
|
|
||||||
GtkWidget * w;
|
|
||||||
|
|
||||||
for( i = 1; i <= NB_STATES; i++ )
|
|
||||||
{
|
|
||||||
if( savestates[i-1].exists == TRUE )
|
|
||||||
{
|
|
||||||
update_savestate_menu("loadstate", i);
|
|
||||||
update_savestate_menu("savestate", i);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
clear_savestate_menu("loadstate", i);
|
|
||||||
clear_savestate_menu("savestate", i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void update_savestate(u8 num)
|
|
||||||
{
|
|
||||||
desmume_pause();
|
|
||||||
savestate_slot(num);
|
|
||||||
update_savestate_menu("savestate", num);
|
|
||||||
update_savestate_menu("loadstate", num);
|
|
||||||
desmume_resume();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The thread handling functions needed by the GDB stub code.
|
* The thread handling functions needed by the GDB stub code.
|
||||||
|
@ -391,7 +326,7 @@ createThread_gdb( void (*thread_function)( void *data),
|
||||||
|
|
||||||
void
|
void
|
||||||
joinThread_gdb( void *thread_handle) {
|
joinThread_gdb( void *thread_handle) {
|
||||||
g_thread_join( thread_handle);
|
g_thread_join((GThread *) thread_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue