mirror of https://github.com/snes9xgit/snes9x.git
Some changes to improve Gtk+ 3.0 compatibility. Still not working.
This commit is contained in:
parent
5e53e209b9
commit
61b7f108b9
|
@ -140,8 +140,6 @@ else
|
||||||
CFLAGS="$CFLAGS -fomit-frame-pointer"
|
CFLAGS="$CFLAGS -fomit-frame-pointer"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CFLAGS="$CFLAGS -DGSEAL_ENABLE -DG_DISABLE_SINGLE_INCLUDES -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGDK_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES"
|
|
||||||
|
|
||||||
ZSNESFX='#ZSNESFX=yes'
|
ZSNESFX='#ZSNESFX=yes'
|
||||||
ZSNESC4='#ZSNESC4=yes'
|
ZSNESC4='#ZSNESC4=yes'
|
||||||
ASMCPU=''
|
ASMCPU=''
|
||||||
|
@ -165,9 +163,12 @@ GTK=yes
|
||||||
snes9x_info_display="GTK"
|
snes9x_info_display="GTK"
|
||||||
|
|
||||||
PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.16])
|
PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.16])
|
||||||
|
|
||||||
|
# CFLAGS="$CFLAGS -DUSE_GTK3"
|
||||||
|
|
||||||
PKG_CHECK_MODULES([GLIB], [gthread-2.0 >= 2.6 gobject-2.0 >= 2.6])
|
PKG_CHECK_MODULES([GLIB], [gthread-2.0 >= 2.6 gobject-2.0 >= 2.6])
|
||||||
PKG_CHECK_MODULES([LIBXML], [libxml-2.0 >= 2.0])
|
PKG_CHECK_MODULES([LIBXML], [libxml-2.0 >= 2.0])
|
||||||
|
|
||||||
if test yes = "$with_opengl" ; then
|
if test yes = "$with_opengl" ; then
|
||||||
|
|
||||||
AC_CHECK_LIB(GL,glGetString,[
|
AC_CHECK_LIB(GL,glGetString,[
|
||||||
|
@ -461,7 +462,6 @@ if test yes = "$OPENGL" ; then
|
||||||
else
|
else
|
||||||
if test yes = "$with_opengl" ; then
|
if test yes = "$with_opengl" ; then
|
||||||
echo "!!! NOT able to use OpenGL support"
|
echo "!!! NOT able to use OpenGL support"
|
||||||
echo "--- Needs gtkglext and OpenGL libraries and headers"
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,9 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <gdk/gdk.h>
|
#include <gdk/gdk.h>
|
||||||
#include <gdk/gdkkeysyms.h>
|
#include <gdk/gdkkeysyms.h>
|
||||||
|
#ifdef USE_GTK3
|
||||||
|
#include <gdk/gdkkeysyms-compat.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "gtk_s9x.h"
|
#include "gtk_s9x.h"
|
||||||
#include "gtk_binding.h"
|
#include "gtk_binding.h"
|
||||||
|
|
|
@ -234,6 +234,26 @@ GtkBuilderWindow::set_spin (const char *name, unsigned int value)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
GtkBuilderWindow::combo_box_append (const char *name, const char *value)
|
||||||
|
{
|
||||||
|
combo_box_append (GTK_COMBO_BOX (get_widget (name)), value);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
GtkBuilderWindow::combo_box_append (GtkComboBox *combo, const char *value)
|
||||||
|
{
|
||||||
|
GtkListStore *store;
|
||||||
|
GtkTreeIter iter;
|
||||||
|
|
||||||
|
store = GTK_LIST_STORE (gtk_combo_box_get_model (combo));
|
||||||
|
|
||||||
|
gtk_list_store_append (store, &iter);
|
||||||
|
gtk_list_store_set (store, &iter, 0, value, -1);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
GtkWindow *
|
GtkWindow *
|
||||||
GtkBuilderWindow::get_window (void)
|
GtkBuilderWindow::get_window (void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -28,6 +28,8 @@ class GtkBuilderWindow
|
||||||
unsigned int get_entry_value (const char *name);
|
unsigned int get_entry_value (const char *name);
|
||||||
const char *get_entry_text (const char *name);
|
const char *get_entry_text (const char *name);
|
||||||
unsigned char get_combo (const char *name);
|
unsigned char get_combo (const char *name);
|
||||||
|
void combo_box_append (const char *name, const char *value);
|
||||||
|
void combo_box_append (GtkComboBox *combo, const char *value);
|
||||||
unsigned int get_spin (const char *name);
|
unsigned int get_spin (const char *name);
|
||||||
float get_slider (const char *name);
|
float get_slider (const char *name);
|
||||||
void set_check (const char *name, unsigned char value);
|
void set_check (const char *name, unsigned char value);
|
||||||
|
|
|
@ -750,7 +750,7 @@ S9xOpenGLDisplayDriver::create_window (int width, int height)
|
||||||
window_attr.background_pixmap = None;
|
window_attr.background_pixmap = None;
|
||||||
|
|
||||||
xwindow = XCreateWindow (display,
|
xwindow = XCreateWindow (display,
|
||||||
GDK_WINDOW_XWINDOW (gtk_widget_get_window (drawing_area)),
|
GDK_COMPAT_WINDOW_XID (gtk_widget_get_window (drawing_area)),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
width,
|
width,
|
||||||
|
@ -769,7 +769,11 @@ S9xOpenGLDisplayDriver::create_window (int width, int height)
|
||||||
XMapWindow (display, xwindow);
|
XMapWindow (display, xwindow);
|
||||||
XSync (display, False);
|
XSync (display, False);
|
||||||
|
|
||||||
|
#if USE_GTK3
|
||||||
|
gdk_window = gdk_x11_window_foreign_new_for_display (gdk_window_get_display (gtk_widget_get_window (drawing_area)), xwindow);
|
||||||
|
#else
|
||||||
gdk_window = gdk_window_foreign_new (xwindow);
|
gdk_window = gdk_window_foreign_new (xwindow);
|
||||||
|
#endif
|
||||||
XSync (display, False);
|
XSync (display, False);
|
||||||
|
|
||||||
gdk_window_set_user_data (gdk_window, drawing_area);
|
gdk_window_set_user_data (gdk_window, drawing_area);
|
||||||
|
@ -791,7 +795,7 @@ S9xOpenGLDisplayDriver::init_glx (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
xcolormap = XCreateColormap (display,
|
xcolormap = XCreateColormap (display,
|
||||||
GDK_WINDOW_XWINDOW (gtk_widget_get_window (drawing_area)),
|
GDK_COMPAT_WINDOW_XID (gtk_widget_get_window (drawing_area)),
|
||||||
vi->visual,
|
vi->visual,
|
||||||
AllocNone);
|
AllocNone);
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ S9xXVDisplayDriver::S9xXVDisplayDriver (Snes9xWindow *window,
|
||||||
this->config = config;
|
this->config = config;
|
||||||
this->drawing_area = GTK_WIDGET (window->drawing_area);
|
this->drawing_area = GTK_WIDGET (window->drawing_area);
|
||||||
display =
|
display =
|
||||||
gdk_x11_drawable_get_xdisplay (GDK_DRAWABLE (gtk_widget_get_window (drawing_area)));
|
gdk_x11_display_get_xdisplay (gdk_window_get_display (gtk_widget_get_window (drawing_area)));
|
||||||
last_known_width = last_known_height = -1;
|
last_known_width = last_known_height = -1;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -62,7 +62,7 @@ S9xXVDisplayDriver::create_window (int width, int height)
|
||||||
window_attr.background_pixmap = None;
|
window_attr.background_pixmap = None;
|
||||||
|
|
||||||
xwindow = XCreateWindow (display,
|
xwindow = XCreateWindow (display,
|
||||||
GDK_WINDOW_XWINDOW (gtk_widget_get_window (drawing_area)),
|
GDK_COMPAT_WINDOW_XID (gtk_widget_get_window (drawing_area)),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
width,
|
width,
|
||||||
|
@ -81,7 +81,11 @@ S9xXVDisplayDriver::create_window (int width, int height)
|
||||||
XMapWindow (display, xwindow);
|
XMapWindow (display, xwindow);
|
||||||
XSync (display, False);
|
XSync (display, False);
|
||||||
|
|
||||||
|
#if USE_GTK3
|
||||||
|
gdk_window = gdk_x11_window_foreign_new_for_display (gdk_window_get_display (gtk_widget_get_window (drawing_area)), xwindow);
|
||||||
|
#else
|
||||||
gdk_window = gdk_window_foreign_new (xwindow);
|
gdk_window = gdk_window_foreign_new (xwindow);
|
||||||
|
#endif
|
||||||
XSync (display, False);
|
XSync (display, False);
|
||||||
|
|
||||||
gdk_window_set_user_data (gdk_window, drawing_area);
|
gdk_window_set_user_data (gdk_window, drawing_area);
|
||||||
|
@ -269,13 +273,13 @@ S9xXVDisplayDriver::init (void)
|
||||||
/* Setup XV */
|
/* Setup XV */
|
||||||
gtk_widget_realize (drawing_area);
|
gtk_widget_realize (drawing_area);
|
||||||
|
|
||||||
display = gdk_x11_drawable_get_xdisplay (GDK_DRAWABLE (gtk_widget_get_window (drawing_area)));
|
display = gdk_x11_display_get_xdisplay (gdk_window_get_display (gtk_widget_get_window (drawing_area)));
|
||||||
screen = gtk_widget_get_screen (drawing_area);
|
screen = gtk_widget_get_screen (drawing_area);
|
||||||
root = gdk_screen_get_root_window (screen);
|
root = gdk_screen_get_root_window (screen);
|
||||||
|
|
||||||
xv_portid = -1;
|
xv_portid = -1;
|
||||||
XvQueryAdaptors (display,
|
XvQueryAdaptors (display,
|
||||||
GDK_WINDOW_XWINDOW (root),
|
GDK_COMPAT_WINDOW_XID (root),
|
||||||
&num_adaptors,
|
&num_adaptors,
|
||||||
&adaptors);
|
&adaptors);
|
||||||
|
|
||||||
|
@ -441,7 +445,7 @@ S9xXVDisplayDriver::init (void)
|
||||||
|
|
||||||
XSetWindowAttributes window_attr;
|
XSetWindowAttributes window_attr;
|
||||||
xcolormap = XCreateColormap (display,
|
xcolormap = XCreateColormap (display,
|
||||||
GDK_WINDOW_XWINDOW (gtk_widget_get_window (drawing_area)),
|
GDK_COMPAT_WINDOW_XID (gtk_widget_get_window (drawing_area)),
|
||||||
vi->visual,
|
vi->visual,
|
||||||
AllocNone);
|
AllocNone);
|
||||||
|
|
||||||
|
|
|
@ -461,7 +461,7 @@ S9xOpenROMDialog (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
result = gtk_dialog_run (GTK_DIALOG (dialog));
|
result = gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
gtk_widget_hide_all (dialog);
|
gtk_widget_hide (dialog);
|
||||||
|
|
||||||
if (result == GTK_RESPONSE_ACCEPT)
|
if (result == GTK_RESPONSE_ACCEPT)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <gdk/gdkkeysyms.h>
|
#include <gdk/gdkkeysyms.h>
|
||||||
|
#ifdef USE_GTK3
|
||||||
|
#include <gdk/gdkkeysyms-compat.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "gtk_preferences.h"
|
#include "gtk_preferences.h"
|
||||||
#include "gtk_config.h"
|
#include "gtk_config.h"
|
||||||
|
@ -63,14 +66,6 @@ event_calibrate (GtkButton *widget, gpointer data)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void
|
|
||||||
event_style_set (GtkWidget *widget, GtkStyle *previous_style, gpointer data)
|
|
||||||
{
|
|
||||||
((Snes9xPreferences *) data)->fix_style ();
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
event_control_toggle (GtkToggleButton *widget, gpointer data)
|
event_control_toggle (GtkToggleButton *widget, gpointer data)
|
||||||
{
|
{
|
||||||
|
@ -249,7 +244,7 @@ event_shader_select (GtkButton *widget, gpointer data)
|
||||||
|
|
||||||
|
|
||||||
result = gtk_dialog_run (GTK_DIALOG (dialog));
|
result = gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
gtk_widget_hide_all (dialog);
|
gtk_widget_hide (dialog);
|
||||||
|
|
||||||
if (result == GTK_RESPONSE_ACCEPT)
|
if (result == GTK_RESPONSE_ACCEPT)
|
||||||
{
|
{
|
||||||
|
@ -311,7 +306,7 @@ event_game_data_browse (GtkButton *widget, gpointer data)
|
||||||
gtk_entry_get_text (entry));
|
gtk_entry_get_text (entry));
|
||||||
|
|
||||||
result = gtk_dialog_run (GTK_DIALOG (dialog));
|
result = gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
gtk_widget_hide_all (dialog);
|
gtk_widget_hide (dialog);
|
||||||
|
|
||||||
if (result == GTK_RESPONSE_ACCEPT)
|
if (result == GTK_RESPONSE_ACCEPT)
|
||||||
{
|
{
|
||||||
|
@ -500,8 +495,13 @@ event_about_clicked (GtkButton *widget, gpointer data)
|
||||||
top_level->splash);
|
top_level->splash);
|
||||||
|
|
||||||
monospace = pango_font_description_from_string ("Monospace 7");
|
monospace = pango_font_description_from_string ("Monospace 7");
|
||||||
|
#ifdef USE_GTK3
|
||||||
|
gtk_widget_override_font (about_dialog->get_widget ("about_text_view"),
|
||||||
|
monospace);
|
||||||
|
#else
|
||||||
gtk_widget_modify_font (about_dialog->get_widget ("about_text_view"),
|
gtk_widget_modify_font (about_dialog->get_widget ("about_text_view"),
|
||||||
monospace);
|
monospace);
|
||||||
|
#endif
|
||||||
pango_font_description_free (monospace);
|
pango_font_description_free (monospace);
|
||||||
|
|
||||||
gtk_window_set_transient_for (about_dialog->get_window (),
|
gtk_window_set_transient_for (about_dialog->get_window (),
|
||||||
|
@ -527,7 +527,6 @@ Snes9xPreferences::Snes9xPreferences (Snes9xConfig *config) :
|
||||||
{ "hw_accel_changed", G_CALLBACK (event_hw_accel_changed) },
|
{ "hw_accel_changed", G_CALLBACK (event_hw_accel_changed) },
|
||||||
{ "reset_current_joypad", G_CALLBACK (event_reset_current_joypad) },
|
{ "reset_current_joypad", G_CALLBACK (event_reset_current_joypad) },
|
||||||
{ "swap_with", G_CALLBACK (event_swap_with) },
|
{ "swap_with", G_CALLBACK (event_swap_with) },
|
||||||
{ "style_set", G_CALLBACK (event_style_set) },
|
|
||||||
{ "ntsc_composite_preset", G_CALLBACK (event_ntsc_composite_preset) },
|
{ "ntsc_composite_preset", G_CALLBACK (event_ntsc_composite_preset) },
|
||||||
{ "ntsc_svideo_preset", G_CALLBACK (event_ntsc_svideo_preset) },
|
{ "ntsc_svideo_preset", G_CALLBACK (event_ntsc_svideo_preset) },
|
||||||
{ "ntsc_rgb_preset", G_CALLBACK (event_ntsc_rgb_preset) },
|
{ "ntsc_rgb_preset", G_CALLBACK (event_ntsc_rgb_preset) },
|
||||||
|
@ -545,8 +544,6 @@ Snes9xPreferences::Snes9xPreferences (Snes9xConfig *config) :
|
||||||
last_toggled = NULL;
|
last_toggled = NULL;
|
||||||
this->config = config;
|
this->config = config;
|
||||||
|
|
||||||
fix_style ();
|
|
||||||
|
|
||||||
gtk_widget_realize (window);
|
gtk_widget_realize (window);
|
||||||
|
|
||||||
signal_connect (callbacks);
|
signal_connect (callbacks);
|
||||||
|
@ -595,22 +592,6 @@ Snes9xPreferences::store_ntsc_settings (void)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
Snes9xPreferences::fix_style (void)
|
|
||||||
{
|
|
||||||
GtkStyle *style = gtk_rc_get_style (get_widget ("preferences_notebook"));
|
|
||||||
|
|
||||||
gtk_widget_set_style (get_widget ("display_viewport"), style);
|
|
||||||
gtk_widget_set_style (get_widget ("sound_viewport"), style);
|
|
||||||
gtk_widget_set_style (get_widget ("emulation_viewport"), style);
|
|
||||||
gtk_widget_set_style (get_widget ("shortcut_viewport1"), style);
|
|
||||||
gtk_widget_set_style (get_widget ("shortcut_viewport2"), style);
|
|
||||||
gtk_widget_set_style (get_widget ("shortcut_viewport3"), style);
|
|
||||||
gtk_widget_set_style (get_widget ("shortcut_viewport4"), style);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
Snes9xPreferences::move_settings_to_dialog (void)
|
Snes9xPreferences::move_settings_to_dialog (void)
|
||||||
{
|
{
|
||||||
|
@ -979,7 +960,7 @@ Snes9xPreferences::browse_folder_dialog (void)
|
||||||
S9xGetDirectory (HOME_DIR));
|
S9xGetDirectory (HOME_DIR));
|
||||||
|
|
||||||
result = gtk_dialog_run (GTK_DIALOG (dialog));
|
result = gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
gtk_widget_hide_all (dialog);
|
gtk_widget_hide (dialog);
|
||||||
|
|
||||||
if (result == GTK_RESPONSE_ACCEPT)
|
if (result == GTK_RESPONSE_ACCEPT)
|
||||||
{
|
{
|
||||||
|
@ -1031,7 +1012,7 @@ Snes9xPreferences::show (void)
|
||||||
config->xrr_sizes[i].width,
|
config->xrr_sizes[i].width,
|
||||||
config->xrr_sizes[i].height);
|
config->xrr_sizes[i].height);
|
||||||
|
|
||||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo), size_string);
|
combo_box_append (GTK_COMBO_BOX (combo), size_string);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -1042,47 +1023,44 @@ Snes9xPreferences::show (void)
|
||||||
|
|
||||||
#ifdef USE_HQ2X
|
#ifdef USE_HQ2X
|
||||||
combo = get_widget ("scale_method_combo");
|
combo = get_widget ("scale_method_combo");
|
||||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo),
|
combo_box_append (GTK_COMBO_BOX (combo), _("HQ2x"));
|
||||||
_("HQ2x"));
|
combo_box_append (GTK_COMBO_BOX (combo), _("HQ3x"));
|
||||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo),
|
combo_box_append (GTK_COMBO_BOX (combo), _("HQ4x"));
|
||||||
_("HQ3x"));
|
|
||||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo),
|
|
||||||
_("HQ4x"));
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
combo = get_widget ("hw_accel");
|
combo = get_widget ("hw_accel");
|
||||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo),
|
combo_box_append (GTK_COMBO_BOX (combo),
|
||||||
_("None - Use software scaler"));
|
_("None - Use software scaler"));
|
||||||
|
|
||||||
if (config->allow_opengl)
|
if (config->allow_opengl)
|
||||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo),
|
combo_box_append (GTK_COMBO_BOX (combo),
|
||||||
_("OpenGL - Use 3D graphics hardware"));
|
_("OpenGL - Use 3D graphics hardware"));
|
||||||
|
|
||||||
if (config->allow_xv)
|
if (config->allow_xv)
|
||||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo),
|
combo_box_append (GTK_COMBO_BOX (combo),
|
||||||
_("XVideo - Use hardware video blitter"));
|
_("XVideo - Use hardware video blitter"));
|
||||||
|
|
||||||
combo = get_widget ("sound_driver");
|
combo = get_widget ("sound_driver");
|
||||||
|
|
||||||
#ifdef USE_PORTAUDIO
|
#ifdef USE_PORTAUDIO
|
||||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo),
|
combo_box_append (GTK_COMBO_BOX (combo),
|
||||||
_("PortAudio"));
|
_("PortAudio"));
|
||||||
#endif
|
#endif
|
||||||
#ifdef USE_OSS
|
#ifdef USE_OSS
|
||||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo),
|
combo_box_append (GTK_COMBO_BOX (combo),
|
||||||
_("Open Sound System"));
|
_("Open Sound System"));
|
||||||
#endif
|
#endif
|
||||||
#ifdef USE_JOYSTICK
|
#ifdef USE_JOYSTICK
|
||||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo),
|
combo_box_append (GTK_COMBO_BOX (combo),
|
||||||
_("SDL"));
|
_("SDL"));
|
||||||
#endif
|
#endif
|
||||||
#ifdef USE_ALSA
|
#ifdef USE_ALSA
|
||||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo),
|
combo_box_append (GTK_COMBO_BOX (combo),
|
||||||
_("ALSA"));
|
_("ALSA"));
|
||||||
#endif
|
#endif
|
||||||
#ifdef USE_PULSEAUDIO
|
#ifdef USE_PULSEAUDIO
|
||||||
gtk_combo_box_append_text (GTK_COMBO_BOX (combo),
|
combo_box_append (GTK_COMBO_BOX (combo),
|
||||||
_("PulseAudio"));
|
_("PulseAudio"));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
move_settings_to_dialog ();
|
move_settings_to_dialog ();
|
||||||
|
|
|
@ -22,7 +22,6 @@ class Snes9xPreferences : public GtkBuilderWindow
|
||||||
int combo_value (int hw_accel);
|
int combo_value (int hw_accel);
|
||||||
void focus_next (void);
|
void focus_next (void);
|
||||||
void swap_with (void);
|
void swap_with (void);
|
||||||
void fix_style (void);
|
|
||||||
void reset_current_joypad (void);
|
void reset_current_joypad (void);
|
||||||
void load_ntsc_settings (void);
|
void load_ntsc_settings (void);
|
||||||
void store_ntsc_settings (void);
|
void store_ntsc_settings (void);
|
||||||
|
|
|
@ -125,8 +125,6 @@ main (int argc, char *argv[])
|
||||||
|
|
||||||
gtk_window_present (top_level->get_window ());
|
gtk_window_present (top_level->get_window ());
|
||||||
|
|
||||||
gdk_threads_lock ();
|
|
||||||
|
|
||||||
gtk_main ();
|
gtk_main ();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -36,6 +36,12 @@
|
||||||
extern Snes9xWindow *top_level;
|
extern Snes9xWindow *top_level;
|
||||||
extern Snes9xConfig *gui_config;
|
extern Snes9xConfig *gui_config;
|
||||||
|
|
||||||
|
#ifdef USE_GTK3
|
||||||
|
#define GDK_COMPAT_WINDOW_XID(window) (gdk_x11_window_get_xid (window))
|
||||||
|
#else
|
||||||
|
#define GDK_COMPAT_WINDOW_XID(window) (GDK_WINDOW_XWINDOW (window))
|
||||||
|
#endif
|
||||||
|
|
||||||
int S9xOpenROM (const char *filename);
|
int S9xOpenROM (const char *filename);
|
||||||
void S9xNoROMLoaded (void);
|
void S9xNoROMLoaded (void);
|
||||||
void S9xROMLoaded (void);
|
void S9xROMLoaded (void);
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
#include <gdk/gdk.h>
|
#include <gdk/gdk.h>
|
||||||
#include <gdk/gdkx.h>
|
#include <gdk/gdkx.h>
|
||||||
#include <gdk/gdkkeysyms.h>
|
#include <gdk/gdkkeysyms.h>
|
||||||
|
#ifdef USE_GTK3
|
||||||
|
#include <gdk/gdkkeysyms-compat.h>
|
||||||
|
#endif
|
||||||
#include <cairo.h>
|
#include <cairo.h>
|
||||||
|
|
||||||
#ifdef USE_XV
|
#ifdef USE_XV
|
||||||
|
@ -653,8 +656,10 @@ Snes9xWindow::Snes9xWindow (Snes9xConfig *config) :
|
||||||
|
|
||||||
gtk_widget_realize (window);
|
gtk_widget_realize (window);
|
||||||
gtk_widget_realize (GTK_WIDGET (drawing_area));
|
gtk_widget_realize (GTK_WIDGET (drawing_area));
|
||||||
|
#ifndef USE_GTK3
|
||||||
gdk_window_set_back_pixmap (gtk_widget_get_window (window), NULL, FALSE);
|
gdk_window_set_back_pixmap (gtk_widget_get_window (window), NULL, FALSE);
|
||||||
gdk_window_set_back_pixmap (gtk_widget_get_window (GTK_WIDGET (drawing_area)), NULL, FALSE);
|
gdk_window_set_back_pixmap (gtk_widget_get_window (GTK_WIDGET (drawing_area)), NULL, FALSE);
|
||||||
|
#endif
|
||||||
|
|
||||||
gtk_check_menu_item_set_active (
|
gtk_check_menu_item_set_active (
|
||||||
GTK_CHECK_MENU_ITEM (get_widget ("show_statusbar_item")),
|
GTK_CHECK_MENU_ITEM (get_widget ("show_statusbar_item")),
|
||||||
|
@ -873,7 +878,7 @@ Snes9xWindow::open_movie_dialog (bool readonly)
|
||||||
S9xGetDirectory (SRAM_DIR));
|
S9xGetDirectory (SRAM_DIR));
|
||||||
|
|
||||||
result = gtk_dialog_run (GTK_DIALOG (dialog));
|
result = gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
gtk_widget_hide_all (dialog);
|
gtk_widget_hide (dialog);
|
||||||
|
|
||||||
if (result == GTK_RESPONSE_ACCEPT)
|
if (result == GTK_RESPONSE_ACCEPT)
|
||||||
{
|
{
|
||||||
|
@ -1018,7 +1023,7 @@ Snes9xWindow::load_state_dialog ()
|
||||||
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
|
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
|
||||||
|
|
||||||
result = gtk_dialog_run (GTK_DIALOG (dialog));
|
result = gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
gtk_widget_hide_all (dialog);
|
gtk_widget_hide (dialog);
|
||||||
|
|
||||||
if (result == GTK_RESPONSE_ACCEPT)
|
if (result == GTK_RESPONSE_ACCEPT)
|
||||||
{
|
{
|
||||||
|
@ -1142,7 +1147,7 @@ Snes9xWindow::save_state_dialog ()
|
||||||
|
|
||||||
result = gtk_dialog_run (GTK_DIALOG (dialog));
|
result = gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
|
|
||||||
gtk_widget_hide_all (dialog);
|
gtk_widget_hide (dialog);
|
||||||
|
|
||||||
if (result == GTK_RESPONSE_ACCEPT)
|
if (result == GTK_RESPONSE_ACCEPT)
|
||||||
{
|
{
|
||||||
|
@ -1209,7 +1214,7 @@ Snes9xWindow::save_spc_dialog ()
|
||||||
|
|
||||||
result = gtk_dialog_run (GTK_DIALOG (dialog));
|
result = gtk_dialog_run (GTK_DIALOG (dialog));
|
||||||
|
|
||||||
gtk_widget_hide_all (dialog);
|
gtk_widget_hide (dialog);
|
||||||
|
|
||||||
if (result == GTK_RESPONSE_ACCEPT)
|
if (result == GTK_RESPONSE_ACCEPT)
|
||||||
{
|
{
|
||||||
|
@ -1554,14 +1559,15 @@ Snes9xWindow::enter_fullscreen_mode (void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Display *display = gdk_x11_drawable_get_xdisplay (GDK_DRAWABLE (gtk_widget_get_window (window)));
|
GdkDisplay *gdk_display = gdk_window_get_display (gtk_widget_get_window (window));
|
||||||
|
Display *display = gdk_x11_display_get_xdisplay (gdk_display);
|
||||||
GdkScreen *screen = gtk_widget_get_screen (window);
|
GdkScreen *screen = gtk_widget_get_screen (window);
|
||||||
GdkWindow *root = gdk_screen_get_root_window (screen);
|
GdkWindow *root = gdk_screen_get_root_window (screen);
|
||||||
|
|
||||||
gdk_display_sync (gdk_display_get_default ());
|
gdk_display_sync (gdk_display_get_default ());
|
||||||
XRRSetScreenConfig (display,
|
XRRSetScreenConfig (display,
|
||||||
config->xrr_config,
|
config->xrr_config,
|
||||||
GDK_WINDOW_XWINDOW (root),
|
GDK_COMPAT_WINDOW_XID (root),
|
||||||
(SizeID) mode,
|
(SizeID) mode,
|
||||||
config->xrr_rotation,
|
config->xrr_rotation,
|
||||||
CurrentTime);
|
CurrentTime);
|
||||||
|
@ -1599,13 +1605,14 @@ Snes9xWindow::leave_fullscreen_mode (void)
|
||||||
{
|
{
|
||||||
gtk_widget_hide (window);
|
gtk_widget_hide (window);
|
||||||
|
|
||||||
Display *display = gdk_x11_drawable_get_xdisplay (GDK_DRAWABLE (gtk_widget_get_window (window)));
|
GdkDisplay *gdk_display = gdk_window_get_display (gtk_widget_get_window (window));
|
||||||
|
Display *display = gdk_x11_display_get_xdisplay (gdk_display);
|
||||||
GdkScreen *screen = gtk_widget_get_screen (window);
|
GdkScreen *screen = gtk_widget_get_screen (window);
|
||||||
GdkWindow *root = gdk_screen_get_root_window (screen);
|
GdkWindow *root = gdk_screen_get_root_window (screen);
|
||||||
|
|
||||||
XRRSetScreenConfig (display,
|
XRRSetScreenConfig (display,
|
||||||
config->xrr_config,
|
config->xrr_config,
|
||||||
GDK_WINDOW_XWINDOW (root),
|
GDK_COMPAT_WINDOW_XID (root),
|
||||||
(SizeID) config->xrr_original_size,
|
(SizeID) config->xrr_original_size,
|
||||||
config->xrr_rotation,
|
config->xrr_rotation,
|
||||||
CurrentTime);
|
CurrentTime);
|
||||||
|
@ -1648,7 +1655,16 @@ Snes9xWindow::draw_background (int rect_x, int rect_y, int rect_w, int rect_h)
|
||||||
w = allocation.width;
|
w = allocation.width;
|
||||||
h = allocation.height;
|
h = allocation.height;
|
||||||
|
|
||||||
|
#ifdef USE_GTK3
|
||||||
|
GdkRGBA rgba;
|
||||||
|
gtk_style_context_get_background_color (gtk_widget_get_style_context (widget), GTK_STATE_FLAG_SELECTED, &rgba);
|
||||||
|
sel.red = rgba.red * 65535;
|
||||||
|
sel.green = rgba.green * 65535;
|
||||||
|
sel.blue = rgba.blue * 65535;
|
||||||
|
#else
|
||||||
sel = gtk_widget_get_style (widget)->bg[GTK_STATE_SELECTED];
|
sel = gtk_widget_get_style (widget)->bg[GTK_STATE_SELECTED];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
if (rect_x < 0)
|
if (rect_x < 0)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue