From 800262fc14df55b8f0526c7235fe1903de270a68 Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Sun, 7 Dec 2014 22:06:39 +0100 Subject: [PATCH 1/9] cmake: add a new GTK3.0 option Thanks #micove for the patch --- build.sh | 11 ++++++++--- cmake/BuildParameters.cmake | 2 ++ cmake/CheckLib.cmake | 6 +++++- cmake/SearchForStuff.cmake | 20 ++++++++++++++------ 4 files changed, 29 insertions(+), 10 deletions(-) diff --git a/build.sh b/build.sh index f6c4494879..078def965c 100755 --- a/build.sh +++ b/build.sh @@ -41,6 +41,7 @@ for ARG in "$@"; do --asan ) flags+=(-DUSE_ASAN=TRUE) ;; --wx28 ) flags+=(-DWX28_API=TRUE) ;; --wx30 ) flags+=(-DWX28_API=FALSE) ;; + --gtk3 ) flags+=(-DGTK3_API=TRUE) ;; --64-bit-dont-work ) flags+=(-D64BIT_BUILD_DONT_WORK=TRUE) ;; --no-simd ) flags+=(-DDISABLE_ADVANCE_SIMD=TRUE) ;; -D* ) flags+=($ARG) ;; @@ -51,21 +52,25 @@ for ARG in "$@"; do echo "--dev / --devel : Build PCSX2 as a Development build." echo "--debug : Build PCSX2 as a Debug build." echo "--release : Build PCSX2 as a Release build." + echo echo "--clean : Do a clean build." + echo "--extra : Build all plugins" + echo echo "** Developper option **" echo "--clang : Build with Clang/llvm" - echo "--extra : Build all plugins" - echo "--asan : Enable with Address sanitizer" + echo "--asan : Enable Address sanitizer" echo echo "--wx28 : Force wxWidget 2.8" echo "--wx30 : Allow to use wxWidget 3.0" echo "--glsl : Replace CG backend of ZZogl by GLSL" echo "--egl : Replace GLX by EGL (ZZogl plugins only)" echo "--sdl2 : Build with SDL2 (crash if wx is linked to SDL1)" - echo "--gles : Replace openGL backend of GSdx by openGLES3" + echo "--gles : Replace openGL backend of GSdx by openGLES3.1" echo + echo "** Hardcode Developper option **" echo "--64-bit-dont-work : Don't use it!" echo "--no-simd : Only allow sse2" + echo "--gtk3 : replace GTK2 by GTK3" exit 1 esac done diff --git a/cmake/BuildParameters.cmake b/cmake/BuildParameters.cmake index 2d6e5849be..e1570045bc 100644 --- a/cmake/BuildParameters.cmake +++ b/cmake/BuildParameters.cmake @@ -34,6 +34,7 @@ option(XDG_STD "Use XDG standard path instead of the standard PCSX2 path") option(EXTRA_PLUGINS "Build various 'extra' plugins") option(SDL2_API "Use SDL2 on spu2x and onepad") option(WX28_API "Force wxWidget 2.8 lib") +option(GTK3_API "Use GTK3 api") if(PACKAGE_MODE) if(NOT DEFINED PLUGIN_DIR) @@ -239,6 +240,7 @@ else() set(ASAN_FLAG "") endif() +# Note: -DGTK_DISABLE_DEPRECATED can be used to test a build without gtk deprecated feature. It could be useful to port to a newer API set(DEFAULT_GCC_FLAG "${ARCH_FLAG} ${COMMON_FLAG} ${DEFAULT_WARNINGS} ${HARDENING_FLAG} ${DEBUG_FLAG} ${ASAN_FLAG}") # c++ only flags set(DEFAULT_CPP_FLAG "${DEFAULT_GCC_FLAG} -Wno-invalid-offsetof") diff --git a/cmake/CheckLib.cmake b/cmake/CheckLib.cmake index 4fe63f2463..1b7e7f1778 100644 --- a/cmake/CheckLib.cmake +++ b/cmake/CheckLib.cmake @@ -29,7 +29,11 @@ macro(check_lib var lib) include_directories(${${var}_INCLUDE}) _internal_message("-- ${lib} found") set(${var}_FOUND 1 CACHE INTERNAL "") - else() + elseif(${var}_LIBRARIES) + _internal_message("-- ${lib} not found (miss include)") + elseif(${var}_INCLUDE) + _internal_message("-- ${lib} not found (miss lib)") + else() _internal_message("-- ${lib} not found") endif() endif() diff --git a/cmake/SearchForStuff.cmake b/cmake/SearchForStuff.cmake index 9e224db9e5..fb018b1a9d 100644 --- a/cmake/SearchForStuff.cmake +++ b/cmake/SearchForStuff.cmake @@ -1,12 +1,6 @@ #------------------------------------------------------------------------------- # Search all libraries on the system #------------------------------------------------------------------------------- -if(Linux) - # Most plugins (if not all) and PCSX2 core need gtk2, so set the required flags - find_package(GTK2 REQUIRED gtk) - find_package(X11) -endif() - ## Use cmake package to find module find_package(ALSA) find_package(BZip2) @@ -50,12 +44,26 @@ else() find_package(SDL) endif() +if (Linux) + find_package(X11) + # Most plugins (if not all) and PCSX2 core need gtk2, so set the required flags + if (GTK3_API) + check_lib(GTK3 gtk+-3.0 gtk/gtk.h) + else() + find_package(GTK2 REQUIRED gtk) + endif() +endif() + #---------------------------------------- # Use system include #---------------------------------------- if(Linux) if(GTK2_FOUND) include_directories(${GTK2_INCLUDE_DIRS}) + elseif(GTK3_FOUND) + include_directories(${GTK3_INCLUDE_DIRS}) + # A lazy solution + set(GTK2_LIBRARIES ${GTK3_LIBRARIES}) endif() if(X11_FOUND) From cdd09a2616210899fa7b07cc0faf957cc97e2573 Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Sun, 7 Dec 2014 22:07:55 +0100 Subject: [PATCH 2/9] gtk2: use a pointer as argument instead of g variable Easier and compliant with gtk3 --- common/include/PS2Eext.h | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/common/include/PS2Eext.h b/common/include/PS2Eext.h index 2886f84138..e2b51ca761 100644 --- a/common/include/PS2Eext.h +++ b/common/include/PS2Eext.h @@ -184,42 +184,33 @@ static void SysMessage(const char *fmt, ...) gtk_widget_destroy (dialog); } -static bool loggingValue = false; - -static void __forceinline set_logging(GtkToggleButton *check) +static void __forceinline set_logging(GtkToggleButton *check, int& log) { - loggingValue = gtk_toggle_button_get_active(check); -} - -static void __forceinline send_ok(GtkDialog *dialog) -{ - int ret = (loggingValue) ? 1 : 0; - gtk_dialog_response (dialog, ret); + log = gtk_toggle_button_get_active(check); } static void __forceinline PluginNullConfigure(std::string desc, int &log) { - GtkWidget *dialog, *label, *okay_button, *check_box; + GtkWidget *dialog, *label, *check_box; /* Create the widgets */ dialog = gtk_dialog_new(); label = gtk_label_new (desc.c_str()); - okay_button = gtk_button_new_with_label("Ok"); check_box = gtk_check_button_new_with_label("Logging"); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_box), (log != 0)); /* Ensure that the dialog box is destroyed when the user clicks ok, and that we get the check box value. */ - g_signal_connect_swapped(GTK_OBJECT (okay_button), "clicked", G_CALLBACK(send_ok), dialog); - g_signal_connect_swapped(GTK_OBJECT (check_box), "toggled", G_CALLBACK(set_logging), check_box); + g_signal_connect(check_box, "toggled", G_CALLBACK(set_logging), &log); /* Add all our widgets, and show everything we've added to the dialog. */ - gtk_container_add (GTK_CONTAINER (gtk_dialog_get_action_area(GTK_DIALOG(dialog))), okay_button); gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area(GTK_DIALOG(dialog))), label); gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area(GTK_DIALOG(dialog))), check_box); + gtk_dialog_add_button(GTK_DIALOG(dialog), "Ok", 0); + gtk_widget_show_all (dialog); - log = gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); } From ba9e998ff52433d598ad3ccfe1b57c65873fb195 Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Mon, 8 Dec 2014 20:34:59 +0100 Subject: [PATCH 3/9] gtk2: port gtk_combo_box to gtk_combo_box_text The former was deprecated on gtk2.24 (and removed from gtk3) --- plugins/GSdx/GSLinuxDialog.cpp | 38 ++++++++++++------------- plugins/onepad/Linux/dialog.cpp | 18 ++++++------ plugins/spu2-x/src/Linux/Config.cpp | 38 ++++++++++++------------- plugins/zzogl-pg/opengl/Linux/Linux.cpp | 34 +++++++++++----------- 4 files changed, 64 insertions(+), 64 deletions(-) diff --git a/plugins/GSdx/GSLinuxDialog.cpp b/plugins/GSdx/GSLinuxDialog.cpp index 1232b8573e..346cec1308 100644 --- a/plugins/GSdx/GSLinuxDialog.cpp +++ b/plugins/GSdx/GSLinuxDialog.cpp @@ -29,7 +29,7 @@ GtkWidget* CreateRenderComboBox() GtkWidget *render_combo_box; int renderer_box_position = 0; - render_combo_box = gtk_combo_box_new_text (); + render_combo_box = gtk_combo_box_text_new (); for(auto s = theApp.m_gs_renderers.begin(); s != theApp.m_gs_renderers.end(); s++) { @@ -56,7 +56,7 @@ GtkWidget* CreateRenderComboBox() continue; } - gtk_combo_box_append_text(GTK_COMBO_BOX(render_combo_box), label.c_str()); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(render_combo_box), label.c_str()); } switch (theApp.GetConfig("renderer", 0)) { @@ -78,7 +78,7 @@ GtkWidget* CreateRenderComboBox() GtkWidget* CreateInterlaceComboBox() { GtkWidget *combo_box; - combo_box = gtk_combo_box_new_text (); + combo_box = gtk_combo_box_text_new (); for(size_t i = 0; i < theApp.m_gs_interlace.size(); i++) { @@ -88,7 +88,7 @@ GtkWidget* CreateInterlaceComboBox() if(!s.note.empty()) label += format(" (%s)", s.note.c_str()); - gtk_combo_box_append_text(GTK_COMBO_BOX(combo_box), label.c_str()); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box), label.c_str()); } gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box), theApp.GetConfig("interlace", 0)); @@ -98,15 +98,15 @@ GtkWidget* CreateInterlaceComboBox() GtkWidget* CreateMsaaComboBox() { GtkWidget *combo_box; - combo_box = gtk_combo_box_new_text (); + combo_box = gtk_combo_box_text_new (); // For now, let's just put in the same vaues that show up in the windows combo box. - gtk_combo_box_append_text(GTK_COMBO_BOX(combo_box), "Custom"); - gtk_combo_box_append_text(GTK_COMBO_BOX(combo_box), "2x"); - gtk_combo_box_append_text(GTK_COMBO_BOX(combo_box), "3x"); - gtk_combo_box_append_text(GTK_COMBO_BOX(combo_box), "4x"); - gtk_combo_box_append_text(GTK_COMBO_BOX(combo_box), "5x"); - gtk_combo_box_append_text(GTK_COMBO_BOX(combo_box), "6x"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box), "Custom"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box), "2x"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box), "3x"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box), "4x"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box), "5x"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box), "6x"); gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box), theApp.GetConfig("upscale_multiplier", 2)-1); return combo_box; @@ -115,11 +115,11 @@ GtkWidget* CreateMsaaComboBox() GtkWidget* CreateFilterComboBox() { GtkWidget *combo_box; - combo_box = gtk_combo_box_new_text (); + combo_box = gtk_combo_box_text_new (); - gtk_combo_box_append_text(GTK_COMBO_BOX(combo_box), "Off"); - gtk_combo_box_append_text(GTK_COMBO_BOX(combo_box), "Normal"); - gtk_combo_box_append_text(GTK_COMBO_BOX(combo_box), "Forced"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box), "Off"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box), "Normal"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo_box), "Forced"); gtk_combo_box_set_active(GTK_COMBO_BOX(combo_box), theApp.GetConfig("filter", 0)); return combo_box; @@ -143,11 +143,11 @@ int get_hex_entry(GtkWidget *text_box) { GtkWidget* CreateGlComboBox(const char* option) { GtkWidget* combo; - combo = gtk_combo_box_new_text(); + combo = gtk_combo_box_text_new(); - gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Auto"); - gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Force-Disabled"); - gtk_combo_box_append_text(GTK_COMBO_BOX(combo), "Force-Enabled"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo), "Auto"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo), "Force-Disabled"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(combo), "Force-Enabled"); gtk_combo_box_set_active(GTK_COMBO_BOX(combo), theApp.GetConfig(option, -1) + 1); return combo; diff --git a/plugins/onepad/Linux/dialog.cpp b/plugins/onepad/Linux/dialog.cpp index 7b0ccb6760..11ad89416f 100644 --- a/plugins/onepad/Linux/dialog.cpp +++ b/plugins/onepad/Linux/dialog.cpp @@ -29,7 +29,7 @@ void on_conf_key(GtkButton *button, gpointer user_data); void on_toggle_option(GtkToggleButton *togglebutton, gpointer user_data); static int current_pad = 0; -static GtkComboBox *joy_choose_cbox; +static GtkComboBoxText *joy_choose_cbox; const char* s_pGuiKeyMap[] = { @@ -240,12 +240,12 @@ class keys_tree }; keys_tree *key_tree_manager; -void populate_new_joysticks(GtkComboBox *box) +void populate_new_joysticks(GtkComboBoxText *box) { char str[255]; JoystickInfo::EnumerateJoysticks(s_vjoysticks); - gtk_combo_box_append_text(box, "Keyboard/mouse only"); + gtk_combo_box_text_append_text(box, "Keyboard/mouse only"); vector::iterator it = s_vjoysticks.begin(); @@ -254,7 +254,7 @@ void populate_new_joysticks(GtkComboBox *box) { sprintf(str, "Keyboard/mouse and %s - but: %d, axes: %d, hats: %d", (*it)->GetName().c_str(), (*it)->GetNumButtons(), (*it)->GetNumAxes(), (*it)->GetNumHats()); - gtk_combo_box_append_text(box, str); + gtk_combo_box_text_append_text(box, str); it++; } } @@ -264,9 +264,9 @@ void set_current_joy() u32 joyid = conf->get_joyid(current_pad); if (JoystickIdWithinBounds(joyid)) // 0 is special case for no gamepad. So you must increase of 1. - gtk_combo_box_set_active(joy_choose_cbox, joyid+1); + gtk_combo_box_set_active(GTK_COMBO_BOX(joy_choose_cbox), joyid+1); else - gtk_combo_box_set_active(joy_choose_cbox, 0); + gtk_combo_box_set_active(GTK_COMBO_BOX(joy_choose_cbox), 0); } typedef struct @@ -398,9 +398,9 @@ void on_toggle_option(GtkToggleButton *togglebutton, gpointer user_data) conf->options &= ~checkbox->mask; } -void joy_changed(GtkComboBox *box, gpointer user_data) +void joy_changed(GtkComboBoxText *box, gpointer user_data) { - int joyid = gtk_combo_box_get_active(box); + int joyid = gtk_combo_box_get_active(GTK_COMBO_BOX(box)); // Note position 0 of the combo box is no gamepad joyid--; @@ -515,7 +515,7 @@ GtkWidget *create_notebook_page_dialog(int page, dialog_buttons btn[MAX_KEYS], d GtkWidget *keys_static_frame, *keys_static_box; GtkWidget *keys_static_area; - joy_choose_cbox = GTK_COMBO_BOX(gtk_combo_box_new_text()); + joy_choose_cbox = GTK_COMBO_BOX_TEXT(gtk_combo_box_text_new()); populate_new_joysticks(joy_choose_cbox); set_current_joy(); g_signal_connect(GTK_OBJECT (joy_choose_cbox), "changed", G_CALLBACK(joy_changed), NULL); diff --git a/plugins/spu2-x/src/Linux/Config.cpp b/plugins/spu2-x/src/Linux/Config.cpp index 76b95b2093..a5caf2ac37 100644 --- a/plugins/spu2-x/src/Linux/Config.cpp +++ b/plugins/spu2-x/src/Linux/Config.cpp @@ -214,12 +214,12 @@ void DisplayDialog() NULL); int_label = gtk_label_new ("Interpolation:"); - int_box = gtk_combo_box_new_text (); - gtk_combo_box_append_text(GTK_COMBO_BOX(int_box), "0 - Nearest (fastest/bad quality)"); - gtk_combo_box_append_text(GTK_COMBO_BOX(int_box), "1 - Linear (simple/okay sound)"); - gtk_combo_box_append_text(GTK_COMBO_BOX(int_box), "2 - Cubic (artificial highs)"); - gtk_combo_box_append_text(GTK_COMBO_BOX(int_box), "3 - Hermite (better highs)"); - gtk_combo_box_append_text(GTK_COMBO_BOX(int_box), "4 - Catmull-Rom (PS2-like/slow)"); + int_box = gtk_combo_box_text_new (); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(int_box), "0 - Nearest (fastest/bad quality)"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(int_box), "1 - Linear (simple/okay sound)"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(int_box), "2 - Cubic (artificial highs)"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(int_box), "3 - Hermite (better highs)"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(int_box), "4 - Catmull-Rom (PS2-like/slow)"); gtk_combo_box_set_active(GTK_COMBO_BOX(int_box), Interpolation); effects_check = gtk_check_button_new_with_label("Disable Effects Processing"); @@ -229,19 +229,19 @@ void DisplayDialog() debug_button = gtk_button_new_with_label("Debug..."); mod_label = gtk_label_new ("Module:"); - mod_box = gtk_combo_box_new_text (); - gtk_combo_box_append_text(GTK_COMBO_BOX(mod_box), "0 - No Sound (emulate SPU2 only)"); - gtk_combo_box_append_text(GTK_COMBO_BOX(mod_box), "1 - PortAudio (cross-platform)"); - gtk_combo_box_append_text(GTK_COMBO_BOX(mod_box), "2 - SDL Audio (recommended for PulseAudio)"); - //gtk_combo_box_append_text(GTK_COMBO_BOX(mod_box), "3 - Alsa (probably doesn't work)"); + mod_box = gtk_combo_box_text_new (); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(mod_box), "0 - No Sound (emulate SPU2 only)"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(mod_box), "1 - PortAudio (cross-platform)"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(mod_box), "2 - SDL Audio (recommended for PulseAudio)"); + //gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(mod_box), "3 - Alsa (probably doesn't work)"); gtk_combo_box_set_active(GTK_COMBO_BOX(mod_box), OutputModule); api_label = gtk_label_new ("PortAudio API:"); - api_box = gtk_combo_box_new_text (); + api_box = gtk_combo_box_text_new (); // In order to keep it the menu light, I only put linux major api - gtk_combo_box_append_text(GTK_COMBO_BOX(api_box), "0 - ALSA (recommended)"); - gtk_combo_box_append_text(GTK_COMBO_BOX(api_box), "1 - OSS (legacy)"); - gtk_combo_box_append_text(GTK_COMBO_BOX(api_box), "2 - JACK"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(api_box), "0 - ALSA (recommended)"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(api_box), "1 - OSS (legacy)"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(api_box), "2 - JACK"); gtk_combo_box_set_active(GTK_COMBO_BOX(api_box), OutputAPI); latency_label = gtk_label_new ("Latency:"); @@ -249,10 +249,10 @@ void DisplayDialog() gtk_range_set_value(GTK_RANGE(latency_slide), SndOutLatencyMS); sync_label = gtk_label_new ("Synchronization Mode:"); - sync_box = gtk_combo_box_new_text (); - gtk_combo_box_append_text(GTK_COMBO_BOX(sync_box), "TimeStretch (Recommended)"); - gtk_combo_box_append_text(GTK_COMBO_BOX(sync_box), "Async Mix (Breaks some games!)"); - gtk_combo_box_append_text(GTK_COMBO_BOX(sync_box), "None (Audio can skip.)"); + sync_box = gtk_combo_box_text_new (); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(sync_box), "TimeStretch (Recommended)"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(sync_box), "Async Mix (Breaks some games!)"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(sync_box), "None (Audio can skip.)"); gtk_combo_box_set_active(GTK_COMBO_BOX(sync_box), SynchMode); advanced_button = gtk_button_new_with_label("Advanced..."); diff --git a/plugins/zzogl-pg/opengl/Linux/Linux.cpp b/plugins/zzogl-pg/opengl/Linux/Linux.cpp index 02db373943..7ecafe4226 100644 --- a/plugins/zzogl-pg/opengl/Linux/Linux.cpp +++ b/plugins/zzogl-pg/opengl/Linux/Linux.cpp @@ -288,11 +288,11 @@ void DisplayDialog() gtk_widget_set_tooltip_text(log_check, "Used for Debugging."); int_label = gtk_label_new("Interlacing:"); - int_box = gtk_combo_box_new_text(); + int_box = gtk_combo_box_text_new(); - gtk_combo_box_append_text(GTK_COMBO_BOX(int_box), "No Interlacing"); - gtk_combo_box_append_text(GTK_COMBO_BOX(int_box), "Interlace 0"); - gtk_combo_box_append_text(GTK_COMBO_BOX(int_box), "Interlace 1"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(int_box), "No Interlacing"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(int_box), "Interlace 0"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(int_box), "Interlace 1"); gtk_combo_box_set_active(GTK_COMBO_BOX(int_box), conf.interlace); gtk_widget_set_tooltip_text(int_box, "Toggled by pressing F5 when running."); int_holder = gtk_hbox_new(false, 5); @@ -300,11 +300,11 @@ void DisplayDialog() gtk_box_pack_start(GTK_BOX(int_holder), int_box, false, false, 2); bilinear_label = gtk_label_new("Bilinear Filtering:"); - bilinear_box = gtk_combo_box_new_text(); + bilinear_box = gtk_combo_box_text_new(); - gtk_combo_box_append_text(GTK_COMBO_BOX(bilinear_box), "Off"); - gtk_combo_box_append_text(GTK_COMBO_BOX(bilinear_box), "Normal"); - gtk_combo_box_append_text(GTK_COMBO_BOX(bilinear_box), "Forced"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(bilinear_box), "Off"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(bilinear_box), "Normal"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(bilinear_box), "Forced"); gtk_combo_box_set_active(GTK_COMBO_BOX(bilinear_box), conf.bilinear); gtk_widget_set_tooltip_text(bilinear_box, "Best quality is off. Turn on for speed. Toggled by pressing Shift + F5 when running."); bilinear_holder = gtk_hbox_new(false, 5); @@ -312,13 +312,13 @@ void DisplayDialog() gtk_box_pack_start(GTK_BOX(bilinear_holder), bilinear_box, false, false, 2); aa_label = gtk_label_new("Anti-Aliasing:"); - aa_box = gtk_combo_box_new_text(); + aa_box = gtk_combo_box_text_new(); - gtk_combo_box_append_text(GTK_COMBO_BOX(aa_box), "1X (None)"); - gtk_combo_box_append_text(GTK_COMBO_BOX(aa_box), "2X"); - gtk_combo_box_append_text(GTK_COMBO_BOX(aa_box), "4X"); - gtk_combo_box_append_text(GTK_COMBO_BOX(aa_box), "8X"); - gtk_combo_box_append_text(GTK_COMBO_BOX(aa_box), "16X"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(aa_box), "1X (None)"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(aa_box), "2X"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(aa_box), "4X"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(aa_box), "8X"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(aa_box), "16X"); gtk_combo_box_set_active(GTK_COMBO_BOX(aa_box), conf.aa); gtk_widget_set_tooltip_text(aa_box, "Toggled by pressing F6 when running."); aa_holder = gtk_hbox_new(false, 5); @@ -326,9 +326,9 @@ void DisplayDialog() gtk_box_pack_start(GTK_BOX(aa_holder), aa_box, false, false, 2); snap_label = gtk_label_new("Snapshot format:"); - snap_box = gtk_combo_box_new_text(); - gtk_combo_box_append_text(GTK_COMBO_BOX(snap_box), "JPEG"); - gtk_combo_box_append_text(GTK_COMBO_BOX(snap_box), "TIFF"); + snap_box = gtk_combo_box_text_new(); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(snap_box), "JPEG"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(snap_box), "TIFF"); gtk_combo_box_set_active(GTK_COMBO_BOX(snap_box), conf.zz_options.tga_snap); snap_holder = gtk_hbox_new(false, 5); gtk_box_pack_start(GTK_BOX(snap_holder), snap_label, false, false, 2); From d1389db2f4f5eb37c01668a8c2d269670fc77a26 Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Sun, 7 Dec 2014 23:01:51 +0100 Subject: [PATCH 4/9] gtk2: keyboard macro update --- pcsx2/Linux/LnxKeyCodes.cpp | 177 ++++++++++++++++++------------------ plugins/onepad/keyboard.cpp | 2 +- 2 files changed, 87 insertions(+), 92 deletions(-) diff --git a/pcsx2/Linux/LnxKeyCodes.cpp b/pcsx2/Linux/LnxKeyCodes.cpp index 8b73210c89..4c01bc6d36 100644 --- a/pcsx2/Linux/LnxKeyCodes.cpp +++ b/pcsx2/Linux/LnxKeyCodes.cpp @@ -17,11 +17,6 @@ #include "ConsoleLogger.h" #include -#if (GTK_MAJOR_VERSION > 2) -// All those GDK_ defines are now GDK_KEY_, as of around Gtk+ 2.22. This include gets brought in automatically until Gtk 3.0, -// But we want to bring it in after that, too, until we're ready to break compatability prior to Gtk+ 2.22. -#include -#endif void NTFS_CompressFile( const wxString& file, bool compressStatus ) {} @@ -33,229 +28,229 @@ int TranslateGDKtoWXK( u32 keysym ) switch ( keysym ) { // Shift, Control and Alt don't generate the CHAR events at all - case GDK_Shift_L: - case GDK_Shift_R: + case GDK_KEY_Shift_L: + case GDK_KEY_Shift_R: key_code = WXK_SHIFT; break; - case GDK_Control_L: - case GDK_Control_R: + case GDK_KEY_Control_L: + case GDK_KEY_Control_R: key_code = WXK_CONTROL; break; - case GDK_Meta_L: - case GDK_Meta_R: - case GDK_Alt_L: - case GDK_Alt_R: - case GDK_Super_L: - case GDK_Super_R: + case GDK_KEY_Meta_L: + case GDK_KEY_Meta_R: + case GDK_KEY_Alt_L: + case GDK_KEY_Alt_R: + case GDK_KEY_Super_L: + case GDK_KEY_Super_R: key_code = WXK_ALT; break; // neither do the toggle modifies - case GDK_Scroll_Lock: + case GDK_KEY_Scroll_Lock: key_code = WXK_SCROLL; break; - case GDK_Caps_Lock: + case GDK_KEY_Caps_Lock: key_code = WXK_CAPITAL; break; - case GDK_Num_Lock: + case GDK_KEY_Num_Lock: key_code = WXK_NUMLOCK; break; // various other special keys - case GDK_Menu: + case GDK_KEY_Menu: key_code = WXK_MENU; break; - case GDK_Help: + case GDK_KEY_Help: key_code = WXK_HELP; break; - case GDK_BackSpace: + case GDK_KEY_BackSpace: key_code = WXK_BACK; break; - case GDK_ISO_Left_Tab: - case GDK_Tab: + case GDK_KEY_ISO_Left_Tab: + case GDK_KEY_Tab: key_code = WXK_TAB; break; - case GDK_Linefeed: - case GDK_Return: + case GDK_KEY_Linefeed: + case GDK_KEY_Return: key_code = WXK_RETURN; break; - case GDK_Clear: + case GDK_KEY_Clear: key_code = WXK_CLEAR; break; - case GDK_Pause: + case GDK_KEY_Pause: key_code = WXK_PAUSE; break; - case GDK_Select: + case GDK_KEY_Select: key_code = WXK_SELECT; break; - case GDK_Print: + case GDK_KEY_Print: key_code = WXK_PRINT; break; - case GDK_Execute: + case GDK_KEY_Execute: key_code = WXK_EXECUTE; break; - case GDK_Escape: + case GDK_KEY_Escape: key_code = WXK_ESCAPE; break; // cursor and other extended keyboard keys - case GDK_Delete: + case GDK_KEY_Delete: key_code = WXK_DELETE; break; - case GDK_Home: + case GDK_KEY_Home: key_code = WXK_HOME; break; - case GDK_Left: + case GDK_KEY_Left: key_code = WXK_LEFT; break; - case GDK_Up: + case GDK_KEY_Up: key_code = WXK_UP; break; - case GDK_Right: + case GDK_KEY_Right: key_code = WXK_RIGHT; break; - case GDK_Down: + case GDK_KEY_Down: key_code = WXK_DOWN; break; - case GDK_Prior: // == GDK_Page_Up + case GDK_KEY_Prior: // == GDK_KEY_Page_Up key_code = WXK_PAGEUP; break; - case GDK_Next: // == GDK_Page_Down + case GDK_KEY_Next: // == GDK_KEY_Page_Down key_code = WXK_PAGEDOWN; break; - case GDK_End: + case GDK_KEY_End: key_code = WXK_END; break; - case GDK_Begin: + case GDK_KEY_Begin: key_code = WXK_HOME; break; - case GDK_Insert: + case GDK_KEY_Insert: key_code = WXK_INSERT; break; // numpad keys - case GDK_KP_0: - case GDK_KP_1: - case GDK_KP_2: - case GDK_KP_3: - case GDK_KP_4: - case GDK_KP_5: - case GDK_KP_6: - case GDK_KP_7: - case GDK_KP_8: - case GDK_KP_9: - key_code = WXK_NUMPAD0 + keysym - GDK_KP_0; + case GDK_KEY_KP_0: + case GDK_KEY_KP_1: + case GDK_KEY_KP_2: + case GDK_KEY_KP_3: + case GDK_KEY_KP_4: + case GDK_KEY_KP_5: + case GDK_KEY_KP_6: + case GDK_KEY_KP_7: + case GDK_KEY_KP_8: + case GDK_KEY_KP_9: + key_code = WXK_NUMPAD0 + keysym - GDK_KEY_KP_0; break; - case GDK_KP_Space: + case GDK_KEY_KP_Space: key_code = WXK_NUMPAD_SPACE; break; - case GDK_KP_Tab: + case GDK_KEY_KP_Tab: key_code = WXK_NUMPAD_TAB; break; - case GDK_KP_Enter: + case GDK_KEY_KP_Enter: key_code = WXK_NUMPAD_ENTER; break; - case GDK_KP_F1: + case GDK_KEY_KP_F1: key_code = WXK_NUMPAD_F1; break; - case GDK_KP_F2: + case GDK_KEY_KP_F2: key_code = WXK_NUMPAD_F2; break; - case GDK_KP_F3: + case GDK_KEY_KP_F3: key_code = WXK_NUMPAD_F3; break; - case GDK_KP_F4: + case GDK_KEY_KP_F4: key_code = WXK_NUMPAD_F4; break; - case GDK_KP_Home: + case GDK_KEY_KP_Home: key_code = WXK_NUMPAD_HOME; break; - case GDK_KP_Left: + case GDK_KEY_KP_Left: key_code = WXK_NUMPAD_LEFT; break; - case GDK_KP_Up: + case GDK_KEY_KP_Up: key_code = WXK_NUMPAD_UP; break; - case GDK_KP_Right: + case GDK_KEY_KP_Right: key_code = WXK_NUMPAD_RIGHT; break; - case GDK_KP_Down: + case GDK_KEY_KP_Down: key_code = WXK_NUMPAD_DOWN; break; - case GDK_KP_Prior: // == GDK_KP_Page_Up + case GDK_KEY_KP_Prior: // == GDK_KEY_KP_Page_Up key_code = WXK_NUMPAD_PAGEUP; break; - case GDK_KP_Next: // == GDK_KP_Page_Down + case GDK_KEY_KP_Next: // == GDK_KEY_KP_Page_Down key_code = WXK_NUMPAD_PAGEDOWN; break; - case GDK_KP_End: + case GDK_KEY_KP_End: key_code = WXK_NUMPAD_END; break; - case GDK_KP_Begin: + case GDK_KEY_KP_Begin: key_code = WXK_NUMPAD_BEGIN; break; - case GDK_KP_Insert: + case GDK_KEY_KP_Insert: key_code = WXK_NUMPAD_INSERT; break; - case GDK_KP_Delete: + case GDK_KEY_KP_Delete: key_code = WXK_NUMPAD_DELETE; break; - case GDK_KP_Equal: + case GDK_KEY_KP_Equal: key_code = WXK_NUMPAD_EQUAL; break; - case GDK_KP_Multiply: + case GDK_KEY_KP_Multiply: key_code = WXK_NUMPAD_MULTIPLY; break; - case GDK_KP_Add: + case GDK_KEY_KP_Add: key_code = WXK_NUMPAD_ADD; break; - case GDK_KP_Separator: + case GDK_KEY_KP_Separator: // FIXME: what is this? // // Some numeric keyboards have a comma on them. I believe this is the symbol @@ -264,33 +259,33 @@ int TranslateGDKtoWXK( u32 keysym ) key_code = WXK_NUMPAD_SEPARATOR; break; - case GDK_KP_Subtract: + case GDK_KEY_KP_Subtract: key_code = WXK_NUMPAD_SUBTRACT; break; - case GDK_KP_Decimal: + case GDK_KEY_KP_Decimal: key_code = WXK_NUMPAD_DECIMAL; break; - case GDK_KP_Divide: + case GDK_KEY_KP_Divide: key_code = WXK_NUMPAD_DIVIDE; break; // function keys - case GDK_F1: - case GDK_F2: - case GDK_F3: - case GDK_F4: - case GDK_F5: - case GDK_F6: - case GDK_F7: - case GDK_F8: - case GDK_F9: - case GDK_F10: - case GDK_F11: - case GDK_F12: - key_code = WXK_F1 + keysym - GDK_F1; + case GDK_KEY_F1: + case GDK_KEY_F2: + case GDK_KEY_F3: + case GDK_KEY_F4: + case GDK_KEY_F5: + case GDK_KEY_F6: + case GDK_KEY_F7: + case GDK_KEY_F8: + case GDK_KEY_F9: + case GDK_KEY_F10: + case GDK_KEY_F11: + case GDK_KEY_F12: + key_code = WXK_F1 + keysym - GDK_KEY_F1; break; default: diff --git a/plugins/onepad/keyboard.cpp b/plugins/onepad/keyboard.cpp index 72ce19f0ae..1d0423da94 100644 --- a/plugins/onepad/keyboard.cpp +++ b/plugins/onepad/keyboard.cpp @@ -233,7 +233,7 @@ bool PollX11KeyboardMouseEvent(u32 &pkey) if (ev != NULL) { if (ev->type == GDK_KEY_PRESS) { - pkey = ev->key.keyval != GDK_Escape ? ev->key.keyval : 0; + pkey = ev->key.keyval != GDK_KEY_Escape ? ev->key.keyval : 0; return true; } else if(ev->type == GDK_BUTTON_PRESS) { pkey = ev->button.button; From 7fb548d7c5f01d71430cd8597b86a6a837320e1b Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Sun, 7 Dec 2014 23:04:33 +0100 Subject: [PATCH 5/9] gtk2: GTK_OBJECT is useless --- plugins/onepad/Linux/dialog.cpp | 18 +++++++++--------- plugins/spu2-x/src/Linux/Config.cpp | 4 ++-- plugins/spu2-x/src/Linux/ConfigSoundTouch.cpp | 2 +- plugins/zzogl-pg/opengl/Linux/Linux.cpp | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/plugins/onepad/Linux/dialog.cpp b/plugins/onepad/Linux/dialog.cpp index 11ad89416f..0acc45b303 100644 --- a/plugins/onepad/Linux/dialog.cpp +++ b/plugins/onepad/Linux/dialog.cpp @@ -280,7 +280,7 @@ typedef struct gtk_fixed_put(fix, widget, x, y); gtk_widget_set_size_request(widget, 64, 24); - g_signal_connect(GTK_OBJECT (widget), "clicked", G_CALLBACK(on_conf_key), this); + g_signal_connect(widget, "clicked", G_CALLBACK(on_conf_key), this); } } dialog_buttons; @@ -295,7 +295,7 @@ typedef struct gtk_fixed_put(GTK_FIXED(area), widget, x, y); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), mask & conf->options); - g_signal_connect(GTK_OBJECT (widget), "toggled", G_CALLBACK(on_toggle_option), this); + g_signal_connect(widget, "toggled", G_CALLBACK(on_toggle_option), this); } } dialog_checkbox; @@ -518,7 +518,7 @@ GtkWidget *create_notebook_page_dialog(int page, dialog_buttons btn[MAX_KEYS], d joy_choose_cbox = GTK_COMBO_BOX_TEXT(gtk_combo_box_text_new()); populate_new_joysticks(joy_choose_cbox); set_current_joy(); - g_signal_connect(GTK_OBJECT (joy_choose_cbox), "changed", G_CALLBACK(joy_changed), NULL); + g_signal_connect(joy_choose_cbox, "changed", G_CALLBACK(joy_changed), NULL); keys_tree_scroll = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(keys_tree_scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); @@ -526,24 +526,24 @@ GtkWidget *create_notebook_page_dialog(int page, dialog_buttons btn[MAX_KEYS], d gtk_widget_set_size_request(keys_tree_scroll, 300, 500); keys_tree_clear_btn = gtk_button_new_with_label("Clear All"); - g_signal_connect(GTK_OBJECT (keys_tree_clear_btn), "clicked", G_CALLBACK(on_clear_clicked), NULL); + g_signal_connect(keys_tree_clear_btn, "clicked", G_CALLBACK(on_clear_clicked), NULL); gtk_widget_set_size_request(keys_tree_clear_btn, 70, 24); keys_tree_remove_btn = gtk_button_new_with_label("Remove"); - g_signal_connect(GTK_OBJECT (keys_tree_remove_btn), "clicked", G_CALLBACK(on_remove_clicked), NULL); + g_signal_connect(keys_tree_remove_btn, "clicked", G_CALLBACK(on_remove_clicked), NULL); gtk_widget_set_size_request(keys_tree_remove_btn, 70, 24); keys_tree_modify_btn = gtk_button_new_with_label("Modify"); - g_signal_connect(GTK_OBJECT (keys_tree_modify_btn), "clicked", G_CALLBACK(on_modify_clicked), NULL); + g_signal_connect(keys_tree_modify_btn, "clicked", G_CALLBACK(on_modify_clicked), NULL); gtk_widget_set_size_request(keys_tree_modify_btn, 70, 24); keys_tree_show_joy_btn = gtk_check_button_new_with_label("Show joy"); - g_signal_connect(GTK_OBJECT (keys_tree_show_joy_btn), "toggled", G_CALLBACK(on_view_joy_clicked), NULL); + g_signal_connect(keys_tree_show_joy_btn, "toggled", G_CALLBACK(on_view_joy_clicked), NULL); gtk_widget_set_size_request(keys_tree_show_joy_btn, 100, 24); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(keys_tree_show_joy_btn), true); keys_tree_show_key_btn = gtk_check_button_new_with_label("Show key"); - g_signal_connect(GTK_OBJECT (keys_tree_show_key_btn), "toggled", G_CALLBACK(on_view_key_clicked), NULL); + g_signal_connect(keys_tree_show_key_btn, "toggled", G_CALLBACK(on_view_key_clicked), NULL); gtk_widget_set_size_request(keys_tree_show_key_btn, 100, 24); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(keys_tree_show_key_btn), true); @@ -635,7 +635,7 @@ void DisplayDialog() page[i] = create_notebook_page_dialog(i, btn[i], checkbox[i]); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), page[i], page_label[i]); } - g_signal_connect(GTK_OBJECT (notebook), "switch-page", G_CALLBACK(pad_changed), NULL); + g_signal_connect(notebook, "switch-page", G_CALLBACK(pad_changed), NULL); gtk_container_add (GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), notebook); diff --git a/plugins/spu2-x/src/Linux/Config.cpp b/plugins/spu2-x/src/Linux/Config.cpp index a5caf2ac37..33db55521c 100644 --- a/plugins/spu2-x/src/Linux/Config.cpp +++ b/plugins/spu2-x/src/Linux/Config.cpp @@ -297,8 +297,8 @@ void DisplayDialog() gtk_container_add (GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), main_frame); gtk_widget_show_all (dialog); - g_signal_connect_swapped(GTK_OBJECT (advanced_button), "clicked", G_CALLBACK(advanced_dialog), advanced_button); - g_signal_connect_swapped(GTK_OBJECT (debug_button), "clicked", G_CALLBACK(debug_dialog), debug_button); + g_signal_connect_swapped(advanced_button, "clicked", G_CALLBACK(advanced_dialog), advanced_button); + g_signal_connect_swapped(debug_button, "clicked", G_CALLBACK(debug_dialog), debug_button); return_value = gtk_dialog_run (GTK_DIALOG (dialog)); diff --git a/plugins/spu2-x/src/Linux/ConfigSoundTouch.cpp b/plugins/spu2-x/src/Linux/ConfigSoundTouch.cpp index 7364c5904d..ae1f639945 100644 --- a/plugins/spu2-x/src/Linux/ConfigSoundTouch.cpp +++ b/plugins/spu2-x/src/Linux/ConfigSoundTouch.cpp @@ -133,7 +133,7 @@ namespace SoundtouchCfg gtk_container_add (GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), main_frame); gtk_widget_show_all (dialog); - g_signal_connect_swapped(GTK_OBJECT (default_button), "clicked", G_CALLBACK(restore_defaults), default_button); + g_signal_connect_swapped(default_button, "clicked", G_CALLBACK(restore_defaults), default_button); return_value = gtk_dialog_run (GTK_DIALOG (dialog)); diff --git a/plugins/zzogl-pg/opengl/Linux/Linux.cpp b/plugins/zzogl-pg/opengl/Linux/Linux.cpp index 7ecafe4226..c0a73c784c 100644 --- a/plugins/zzogl-pg/opengl/Linux/Linux.cpp +++ b/plugins/zzogl-pg/opengl/Linux/Linux.cpp @@ -392,7 +392,7 @@ void DisplayDialog() gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dis_hacks_check), (conf.disableHacks)); gtk_container_add(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), main_frame); - g_signal_connect_swapped(GTK_OBJECT (advanced_button), "clicked", G_CALLBACK(DisplayAdvancedDialog), advanced_button); + g_signal_connect_swapped(advanced_button, "clicked", G_CALLBACK(DisplayAdvancedDialog), advanced_button); tempHacks = conf.hacks; gtk_widget_show_all(dialog); From e9233f4698593ebdb5499ddb87067de37b5a49af Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Sun, 7 Dec 2014 23:25:09 +0100 Subject: [PATCH 6/9] gtk2: use text rather than image Require by GTK3 --- plugins/GSdx/GSLinuxDialog.cpp | 6 ++---- plugins/onepad/Linux/dialog.cpp | 9 +++------ plugins/spu2-x/src/Linux/Config.cpp | 6 ++---- plugins/spu2-x/src/Linux/ConfigDebug.cpp | 6 ++---- plugins/spu2-x/src/Linux/ConfigSoundTouch.cpp | 6 ++---- 5 files changed, 11 insertions(+), 22 deletions(-) diff --git a/plugins/GSdx/GSLinuxDialog.cpp b/plugins/GSdx/GSLinuxDialog.cpp index 346cec1308..54598f5fb4 100644 --- a/plugins/GSdx/GSLinuxDialog.cpp +++ b/plugins/GSdx/GSLinuxDialog.cpp @@ -185,10 +185,8 @@ bool RunLinuxDialog() "GSdx Config", NULL, /* parent window*/ (GtkDialogFlags)(GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT), - GTK_STOCK_OK, - GTK_RESPONSE_ACCEPT, - GTK_STOCK_CANCEL, - GTK_RESPONSE_REJECT, + "OK", GTK_RESPONSE_ACCEPT, + "Cancel", GTK_RESPONSE_REJECT, NULL); // The main area for the whole dialog box. diff --git a/plugins/onepad/Linux/dialog.cpp b/plugins/onepad/Linux/dialog.cpp index 0acc45b303..c68269d4ba 100644 --- a/plugins/onepad/Linux/dialog.cpp +++ b/plugins/onepad/Linux/dialog.cpp @@ -619,12 +619,9 @@ void DisplayDialog() "OnePAD Config", NULL, /* parent window*/ (GtkDialogFlags)(GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT), - GTK_STOCK_OK, - GTK_RESPONSE_ACCEPT, - GTK_STOCK_APPLY, - GTK_RESPONSE_APPLY, - GTK_STOCK_CANCEL, - GTK_RESPONSE_REJECT, + "_OK", GTK_RESPONSE_ACCEPT, + "_Apply", GTK_RESPONSE_APPLY, + "_Cancel", GTK_RESPONSE_REJECT, NULL); notebook = gtk_notebook_new(); diff --git a/plugins/spu2-x/src/Linux/Config.cpp b/plugins/spu2-x/src/Linux/Config.cpp index 33db55521c..bbec4f0f90 100644 --- a/plugins/spu2-x/src/Linux/Config.cpp +++ b/plugins/spu2-x/src/Linux/Config.cpp @@ -207,10 +207,8 @@ void DisplayDialog() "SPU2-X Config", NULL, /* parent window*/ (GtkDialogFlags)(GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT), - GTK_STOCK_OK, - GTK_RESPONSE_ACCEPT, - GTK_STOCK_CANCEL, - GTK_RESPONSE_REJECT, + "OK", GTK_RESPONSE_ACCEPT, + "Cancel", GTK_RESPONSE_REJECT, NULL); int_label = gtk_label_new ("Interpolation:"); diff --git a/plugins/spu2-x/src/Linux/ConfigDebug.cpp b/plugins/spu2-x/src/Linux/ConfigDebug.cpp index 0353b23c24..bbeea7c1c1 100644 --- a/plugins/spu2-x/src/Linux/ConfigDebug.cpp +++ b/plugins/spu2-x/src/Linux/ConfigDebug.cpp @@ -175,10 +175,8 @@ void DisplayDialog() "Spu2-X Config", NULL, // parent window (GtkDialogFlags)(GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT), - GTK_STOCK_OK, - GTK_RESPONSE_ACCEPT, - GTK_STOCK_CANCEL, - GTK_RESPONSE_REJECT, + "OK", GTK_RESPONSE_ACCEPT, + "Cancel", GTK_RESPONSE_REJECT, NULL); main_box = gtk_hbox_new(false, 5); diff --git a/plugins/spu2-x/src/Linux/ConfigSoundTouch.cpp b/plugins/spu2-x/src/Linux/ConfigSoundTouch.cpp index ae1f639945..5babb58571 100644 --- a/plugins/spu2-x/src/Linux/ConfigSoundTouch.cpp +++ b/plugins/spu2-x/src/Linux/ConfigSoundTouch.cpp @@ -94,10 +94,8 @@ namespace SoundtouchCfg "Advanced Settings", NULL, /* parent window*/ (GtkDialogFlags)(GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT), - GTK_STOCK_OK, - GTK_RESPONSE_ACCEPT, - GTK_STOCK_CANCEL, - GTK_RESPONSE_REJECT, + "OK", GTK_RESPONSE_ACCEPT, + "Cancel", GTK_RESPONSE_REJECT, NULL); main_label = gtk_label_new ("These are advanced configuration options fine tuning time stretching behavior. Larger values are better for slowdown, while smaller values are better for speedup (more then 60 fps.). All options are in microseconds."); From 5d8b2d8044420db0872a49a2fbd2a78e4c594578 Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Mon, 8 Dec 2014 20:38:46 +0100 Subject: [PATCH 7/9] gtk2: GtkNotebookPage is useless And not supported by gtk3 --- plugins/onepad/Linux/dialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/onepad/Linux/dialog.cpp b/plugins/onepad/Linux/dialog.cpp index c68269d4ba..e81caf3244 100644 --- a/plugins/onepad/Linux/dialog.cpp +++ b/plugins/onepad/Linux/dialog.cpp @@ -417,7 +417,7 @@ void joy_changed(GtkComboBoxText *box, gpointer user_data) conf->set_joyid(current_pad, joyid); } -void pad_changed(GtkNotebook *notebook, GtkNotebookPage *notebook_page, int page, void *data) +void pad_changed(GtkNotebook *notebook, void *notebook_page, int page, void *data) { current_pad = page; key_tree_manager->set_show_pad(current_pad&1); From feca2e3faf3a637d5aa2a73c9776c594f6bfbc25 Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Sun, 7 Dec 2014 22:09:15 +0100 Subject: [PATCH 8/9] gtk3: GDK_WINDOW_XID was renamed Well I guess. Not sure until I can test the behavior. --- pcsx2/gui/AppMain.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pcsx2/gui/AppMain.cpp b/pcsx2/gui/AppMain.cpp index b5548af4b0..a7e90d8f7b 100644 --- a/pcsx2/gui/AppMain.cpp +++ b/pcsx2/gui/AppMain.cpp @@ -905,7 +905,11 @@ void Pcsx2App::OpenGsPanel() GdkWindow* draw_window = gtk_widget_get_window(child_window); #endif +#if GTK_MAJOR_VERSION < 3 Window Xwindow = GDK_WINDOW_XWINDOW(draw_window); +#else + Window Xwindow = GDK_WINDOW_XID(draw_window); +#endif Display* XDisplay = GDK_WINDOW_XDISPLAY(draw_window); pDsp[0] = (uptr)XDisplay; From 3d071e50ad2d6f802650ee81b0b6f85f17ab28bf Mon Sep 17 00:00:00 2001 From: Gregory Hainaut Date: Sun, 7 Dec 2014 23:40:37 +0100 Subject: [PATCH 9/9] gtk3: gtk_hscale_new_with_range => gtk_scale_new_with_range --- plugins/GSdx/GSLinuxDialog.cpp | 12 ++++++++++++ plugins/spu2-x/src/Linux/Config.cpp | 4 ++++ plugins/spu2-x/src/Linux/ConfigSoundTouch.cpp | 12 ++++++++++++ 3 files changed, 28 insertions(+) diff --git a/plugins/GSdx/GSLinuxDialog.cpp b/plugins/GSdx/GSLinuxDialog.cpp index 54598f5fb4..50033b8c29 100644 --- a/plugins/GSdx/GSLinuxDialog.cpp +++ b/plugins/GSdx/GSLinuxDialog.cpp @@ -348,17 +348,29 @@ bool RunLinuxDialog() gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(hack_logz_check), theApp.GetConfig("logz", 1)); // Shadeboost scale +#if GTK_MAJOR_VERSION < 3 sb_brightness = gtk_hscale_new_with_range(0, 200, 10); +#else + sb_brightness = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, 0, 200, 10); +#endif GtkWidget* sb_brightness_label = gtk_label_new("Shade Boost Brightness"); gtk_scale_set_value_pos(GTK_SCALE(sb_brightness), GTK_POS_RIGHT); gtk_range_set_value(GTK_RANGE(sb_brightness), theApp.GetConfig("ShadeBoost_Brightness", 50)); +#if GTK_MAJOR_VERSION < 3 sb_contrast = gtk_hscale_new_with_range(0, 200, 10); +#else + sb_contrast = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, 0, 200, 10); +#endif GtkWidget* sb_contrast_label = gtk_label_new("Shade Boost Contrast"); gtk_scale_set_value_pos(GTK_SCALE(sb_contrast), GTK_POS_RIGHT); gtk_range_set_value(GTK_RANGE(sb_contrast), theApp.GetConfig("ShadeBoost_Contrast", 50)); +#if GTK_MAJOR_VERSION < 3 sb_saturation = gtk_hscale_new_with_range(0, 200, 10); +#else + sb_saturation = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, 0, 200, 10); +#endif GtkWidget* sb_saturation_label = gtk_label_new("Shade Boost Saturation"); gtk_scale_set_value_pos(GTK_SCALE(sb_saturation), GTK_POS_RIGHT); gtk_range_set_value(GTK_RANGE(sb_saturation), theApp.GetConfig("ShadeBoost_Saturation", 50)); diff --git a/plugins/spu2-x/src/Linux/Config.cpp b/plugins/spu2-x/src/Linux/Config.cpp index bbec4f0f90..a61df22fb6 100644 --- a/plugins/spu2-x/src/Linux/Config.cpp +++ b/plugins/spu2-x/src/Linux/Config.cpp @@ -243,7 +243,11 @@ void DisplayDialog() gtk_combo_box_set_active(GTK_COMBO_BOX(api_box), OutputAPI); latency_label = gtk_label_new ("Latency:"); +#if GTK_MAJOR_VERSION < 3 latency_slide = gtk_hscale_new_with_range(LATENCY_MIN, LATENCY_MAX, 5); +#else + latency_slide = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, LATENCY_MIN, LATENCY_MAX, 5); +#endif gtk_range_set_value(GTK_RANGE(latency_slide), SndOutLatencyMS); sync_label = gtk_label_new ("Synchronization Mode:"); diff --git a/plugins/spu2-x/src/Linux/ConfigSoundTouch.cpp b/plugins/spu2-x/src/Linux/ConfigSoundTouch.cpp index 5babb58571..cfa69a1242 100644 --- a/plugins/spu2-x/src/Linux/ConfigSoundTouch.cpp +++ b/plugins/spu2-x/src/Linux/ConfigSoundTouch.cpp @@ -104,15 +104,27 @@ namespace SoundtouchCfg default_button = gtk_button_new_with_label("Reset to Defaults"); seq_label = gtk_label_new("Sequence Length"); +#if GTK_MAJOR_VERSION < 3 seq_slide = gtk_hscale_new_with_range(SequenceLen_Min, SequenceLen_Max, 2); +#else + seq_slide = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, SequenceLen_Min, SequenceLen_Max, 2); +#endif gtk_range_set_value(GTK_RANGE(seq_slide), SequenceLenMS); seek_label = gtk_label_new("Seek Window Size"); +#if GTK_MAJOR_VERSION < 3 seek_slide = gtk_hscale_new_with_range(SeekWindow_Min, SeekWindow_Max, 1); +#else + seek_slide = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, SeekWindow_Min, SeekWindow_Max, 1); +#endif gtk_range_set_value(GTK_RANGE(seek_slide), SeekWindowMS); over_label = gtk_label_new("Overlap"); +#if GTK_MAJOR_VERSION < 3 over_slide = gtk_hscale_new_with_range(Overlap_Min, Overlap_Max, 1); +#else + over_slide = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, Overlap_Min, Overlap_Max, 1); +#endif gtk_range_set_value(GTK_RANGE(over_slide), OverlapMS); main_box = gtk_vbox_new(false, 5);