diff --git a/src/applets/memory.c b/src/applets/memory.c index 77a344b..0383f62 100644 --- a/src/applets/memory.c +++ b/src/applets/memory.c @@ -51,6 +51,9 @@ typedef struct _PanelApplet static Memory * _memory_init(PanelAppletHelper * helper, GtkWidget ** widget); static void _memory_destroy(Memory * memory); +/* accessors */ +static void _memory_set(Memory * memory, gdouble level); + /* callbacks */ #if defined(__FreeBSD__) || defined(__linux__) || defined(__NetBSD__) static gboolean _memory_on_timeout(gpointer data); @@ -77,6 +80,7 @@ PanelAppletDefinition applet = /* memory_init */ static Memory * _memory_init(PanelAppletHelper * helper, GtkWidget ** widget) { + const GtkOrientation orientation = GTK_ORIENTATION_VERTICAL; #if defined(__FreeBSD__) || defined(__linux__) || defined(__NetBSD__) const int timeout = 5000; Memory * memory; @@ -103,15 +107,22 @@ static Memory * _memory_init(PanelAppletHelper * helper, GtkWidget ** widget) gtk_widget_modify_font(label, desc); #endif gtk_box_pack_start(GTK_BOX(memory->widget), label, FALSE, FALSE, 0); -#if GTK_CHECK_VERSION(3, 0, 0) - memory->scale = gtk_scale_new_with_range(GTK_ORIENTATION_VERTICAL, 0, - 100, 1); +#if GTK_CHECK_VERSION(3, 6, 0) + memory->scale = gtk_level_bar_new_for_interval(0.0, 100.0); +# if GTK_CHECK_VERSION(3, 8, 0) + gtk_level_bar_set_inverted(GTK_LEVEL_BAR(memory->scale), TRUE); +# endif + gtk_orientable_set_orientation(GTK_ORIENTABLE(memory->scale), orientation); #else +# if GTK_CHECK_VERSION(3, 0, 0) + memory->scale = gtk_scale_new_with_range(orientation, 0, 100, 1); +# else memory->scale = gtk_vscale_new_with_range(0, 100, 1); -#endif +# endif gtk_widget_set_sensitive(memory->scale, FALSE); gtk_range_set_inverted(GTK_RANGE(memory->scale), TRUE); gtk_scale_set_value_pos(GTK_SCALE(memory->scale), GTK_POS_RIGHT); +#endif gtk_box_pack_start(GTK_BOX(memory->widget), memory->scale, FALSE, FALSE, 0); memory->timeout = g_timeout_add(timeout, _memory_on_timeout, memory); @@ -136,6 +147,18 @@ static void _memory_destroy(Memory * memory) } +/* accessors */ +/* memory_set */ +static void _memory_set(Memory * memory, gdouble level) +{ +#if GTK_CHECK_VERSION(3, 6, 0) + gtk_level_bar_set_value(GTK_LEVEL_BAR(memory->scale), level); +#else + gtk_range_set_value(GTK_RANGE(memory->scale), level); +#endif +} + + /* callbacks */ /* memory_on_timeout */ #if defined(__linux__) @@ -153,7 +176,7 @@ static gboolean _memory_on_timeout(gpointer data) } value = sy.sharedram; value /= sy.totalram; - gtk_range_set_value(GTK_RANGE(memory->scale), value); + _memory_set(memory, value); return TRUE; } #elif defined(__FreeBSD__) || defined(__NetBSD__) @@ -173,7 +196,7 @@ static gboolean _memory_on_timeout(gpointer data) } value = vm.t_arm * 100; value /= (vm.t_rm + vm.t_free); - gtk_range_set_value(GTK_RANGE(memory->scale), value); + _memory_set(memory, value); return TRUE; } #endif diff --git a/src/applets/swap.c b/src/applets/swap.c index 16b020c..dfadcda 100644 --- a/src/applets/swap.c +++ b/src/applets/swap.c @@ -47,6 +47,9 @@ typedef struct _PanelApplet static Swap * _swap_init(PanelAppletHelper * helper, GtkWidget ** widget); static void _swap_destroy(Swap * swap); +/* accessors */ +static void _swap_set(Swap * swap, gdouble level); + /* callbacks */ static gboolean _swap_on_timeout(gpointer data); @@ -71,6 +74,7 @@ PanelAppletDefinition applet = /* swap_init */ static Swap * _swap_init(PanelAppletHelper * helper, GtkWidget ** widget) { + const GtkOrientation orientation = GTK_ORIENTATION_VERTICAL; const int timeout = 5000; Swap * swap; PangoFontDescription * desc; @@ -96,15 +100,22 @@ static Swap * _swap_init(PanelAppletHelper * helper, GtkWidget ** widget) gtk_widget_modify_font(label, desc); #endif gtk_box_pack_start(GTK_BOX(swap->widget), label, FALSE, FALSE, 0); -#if GTK_CHECK_VERSION(3, 0, 0) - swap->scale = gtk_scale_new_with_range(GTK_ORIENTATION_VERTICAL, 0, 100, - 1); +#if GTK_CHECK_VERSION(3, 6, 0) + swap->scale = gtk_level_bar_new_for_interval(0.0, 100.0); +# if GTK_CHECK_VERSION(3, 8, 0) + gtk_level_bar_set_inverted(GTK_LEVEL_BAR(swap->scale), TRUE); +# endif + gtk_orientable_set_orientation(GTK_ORIENTABLE(swap->scale), orientation); #else +# if GTK_CHECK_VERSION(3, 0, 0) + swap->scale = gtk_scale_new_with_range(orientation, 0, 100, 1); +# else swap->scale = gtk_vscale_new_with_range(0, 100, 1); -#endif +# endif gtk_widget_set_sensitive(swap->scale, FALSE); gtk_range_set_inverted(GTK_RANGE(swap->scale), TRUE); gtk_scale_set_value_pos(GTK_SCALE(swap->scale), GTK_POS_RIGHT); +#endif gtk_box_pack_start(GTK_BOX(swap->widget), swap->scale, FALSE, FALSE, 0); if(_swap_on_timeout(swap) == TRUE) swap->timeout = g_timeout_add(timeout, _swap_on_timeout, swap); @@ -123,6 +134,16 @@ static void _swap_destroy(Swap * swap) free(swap); } +/* accessors */ +static void _swap_set(Swap * swap, gdouble level) +{ +#if GTK_CHECK_VERSION(3, 6, 0) + gtk_level_bar_set_value(GTK_LEVEL_BAR(swap->scale), level); +#else + gtk_range_set_value(GTK_RANGE(swap->scale), level); +#endif +} + /* callbacks */ /* swap_on_timeout */ @@ -138,7 +159,7 @@ static gboolean _swap_on_timeout(gpointer data) TRUE); if((value = sy.totalswap - sy.freeswap) != 0.0 && sy.totalswap != 0) value /= sy.totalswap; - gtk_range_set_value(GTK_RANGE(swap->scale), value); + _swap_set(swap, value); return TRUE; #elif defined(__NetBSD__) Swap * swap = data; @@ -151,7 +172,7 @@ static gboolean _swap_on_timeout(gpointer data) return TRUE; if((value = ue.swpgonly) != 0.0 && ue.swpages != 0) value /= ue.swpages; - gtk_range_set_value(GTK_RANGE(swap->scale), value); + _swap_set(swap, value); return TRUE; #else Swap * swap = data;