Simplify Gtk+ code across version 2 and 3

This commit is contained in:
Pierre Pronchery 2016-06-12 00:58:53 +02:00
parent 21d363759b
commit 3f6b47bad2

View File

@ -50,11 +50,7 @@ struct _Flashlight
/* prototypes */ /* prototypes */
/* callbacks */ /* callbacks */
#if GTK_CHECK_VERSION(3, 0, 0)
static void _flashlight_on_activate(gpointer data);
#else
static void _flashlight_on_toggled(gpointer data); static void _flashlight_on_toggled(gpointer data);
#endif
/* public */ /* public */
@ -85,7 +81,7 @@ Flashlight * flashlight_new(GtkOrientation orientation)
#if GTK_CHECK_VERSION(3, 0, 0) #if GTK_CHECK_VERSION(3, 0, 0)
flashlight->co_main = gtk_switch_new(); flashlight->co_main = gtk_switch_new();
g_signal_connect_swapped(flashlight->co_main, "notify::active", g_signal_connect_swapped(flashlight->co_main, "notify::active",
G_CALLBACK(_flashlight_on_activate), flashlight); G_CALLBACK(_flashlight_on_toggled), flashlight);
#else #else
flashlight->co_main = gtk_toggle_button_new_with_mnemonic("_Switch"); flashlight->co_main = gtk_toggle_button_new_with_mnemonic("_Switch");
g_signal_connect_swapped(flashlight->co_main, "toggled", G_CALLBACK( g_signal_connect_swapped(flashlight->co_main, "toggled", G_CALLBACK(
@ -177,23 +173,16 @@ void flashlight_toggle(Flashlight * flashlight)
/* prototypes */ /* prototypes */
/* callbacks */ /* callbacks */
#if GTK_CHECK_VERSION(3, 0, 0)
/* flashlight_on_activate */
static void _flashlight_on_activate(gpointer data)
{
Flashlight * flashlight = data;
flashlight_set_active(flashlight, gtk_switch_get_active(
GTK_SWITCH(flashlight->co_main)));
}
#endif
/* flashlight_on_toggled */ /* flashlight_on_toggled */
static void _flashlight_on_toggled(gpointer data) static void _flashlight_on_toggled(gpointer data)
{ {
Flashlight * flashlight = data; Flashlight * flashlight = data;
#if GTK_CHECK_VERSION(3, 0, 0)
flashlight_set_active(flashlight, gtk_switch_get_active(
GTK_SWITCH(flashlight->co_main)));
#else
flashlight_set_active(flashlight, gtk_toggle_button_get_active( flashlight_set_active(flashlight, gtk_toggle_button_get_active(
GTK_TOGGLE_BUTTON(flashlight->co_main))); GTK_TOGGLE_BUTTON(flashlight->co_main)));
#endif
} }