Also add a wrapper to keep the GTK 2 version compiling.
--- /dev/null
+#include <gtk/gtk.h>
+
+#if ! GTK_CHECK_VERSION(3,0,0)
+static inline GtkWidget *gtk_box_new(GtkOrientation orientation, gint spacing)
+{
+ return orientation == GTK_ORIENTATION_HORIZONTAL
+ ? gtk_hbox_new(0, spacing)
+ : gtk_vbox_new(0, spacing);
+}
+static inline GtkWidget *gtk_scale_new_with_range(GtkOrientation orientation,
+ gdouble min, gdouble max, gdouble step)
+{
+ return orientation == GTK_ORIENTATION_HORIZONTAL
+ ? gtk_hscale_new_with_range(min, max, step)
+ : gtk_vscale_new_with_range(min, max, step);
+}
+#endif
#include "alert.h"
#include "alert-info.h"
+#include "compat.h"
+
#define MSG_INDEX "http://alerts.weather.gov/cap/us.php?x=0"
#define CONFIG_HEIGHT 3
g_free(alert_str);
GtkWidget *align = gtk_alignment_new(0, 0, 1, 1);
- GtkWidget *box = gtk_vbox_new(FALSE, 10);
+ GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
gtk_alignment_set_padding(GTK_ALIGNMENT(align), 10, 10, 10, 10);
gtk_container_add(GTK_CONTAINER(align), box);
gtk_box_pack_start(GTK_BOX(box), title, FALSE, FALSE, 0);
/* Init helpers */
static GtkWidget *_make_config(GritsPluginAlert *alert)
{
- GtkWidget *config = gtk_vbox_new(FALSE, 0);
+ GtkWidget *config = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
/* Setup tools area */
- GtkWidget *tools = gtk_hbox_new(FALSE, 10);
+ GtkWidget *tools = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 10);
GtkWidget *updated = gtk_label_new(" Loading...");
GtkWidget *storm_based = gtk_toggle_button_new_with_label("Storm based");
GtkWidget *county_based = gtk_toggle_button_new_with_label("County based");
gchar *labels[] = {"<b>Warnings</b>", "<b>Watches</b>",
"<b>Advisories</b>", "<b>Other</b>"};
gchar *keys[] = {"warning", "watch", "advisory", "other"};
- GtkWidget *alerts = gtk_hbox_new(FALSE, 10);
+ GtkWidget *alerts = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 10);
for (int i = 0; i < G_N_ELEMENTS(labels); i++) {
GtkWidget *frame = gtk_frame_new(labels[i]);
GtkWidget *table = gtk_table_new(1, 1, TRUE);
#include "level2.h"
#include "../aweather-location.h"
+#include "compat.h"
+
/* interval to update map with new gps data in seconds. */
#define GPS_UPDATE_INTERVAL (2)
gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
gtk_frame_set_shadow_type(GTK_FRAME(gps_control_frame),
GTK_SHADOW_NONE);
- GtkWidget *cbox = gtk_vbox_new(FALSE, 2);
+ GtkWidget *cbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 2);
gtk_container_add(GTK_CONTAINER(gps_control_frame), cbox);
gtk_box_pack_start(GTK_BOX(gbox), gps_control_frame, FALSE, FALSE, 0);
GtkWidget *label = gtk_frame_get_label_widget(GTK_FRAME(gps_log_frame));
gtk_label_set_use_markup(GTK_LABEL(label), TRUE);
gtk_frame_set_shadow_type(GTK_FRAME(gps_log_frame), GTK_SHADOW_NONE);
- GtkWidget *lbox = gtk_vbox_new(FALSE, 2);
+ GtkWidget *lbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 2);
gtk_container_add(GTK_CONTAINER(gps_log_frame), lbox);
gtk_box_pack_start(GTK_BOX(gbox), gps_log_frame,
FALSE, FALSE, 0);
FALSE, FALSE, 0);
/* Set up filename entry box */
- GtkWidget *fbox = gtk_hbox_new(FALSE, 2);
+ GtkWidget *fbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2);
GtkWidget *filename_label = gtk_label_new("Filename:");
gtk_box_pack_start(GTK_BOX(fbox), filename_label, FALSE, FALSE, 0);
gps->ui.gps_log_filename_entry = gtk_entry_new();
gtk_box_pack_start(GTK_BOX(lbox), fbox, FALSE, FALSE, 0);
/* set up gps log interval slider */
- GtkWidget *ubox = gtk_hbox_new(FALSE, 4);
+ GtkWidget *ubox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 4);
GtkWidget *interval_label = gtk_label_new("Update Interval:");
gtk_box_pack_start(GTK_BOX(ubox), interval_label, FALSE, FALSE, 0);
gps->ui.gps_log_interval_slider =
- gtk_hscale_new_with_range(1.0, 600.0, 30.0);
+ gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, 1.0, 600.0, 30.0);
gtk_range_set_value(GTK_RANGE(gps->ui.gps_log_interval_slider),
GPS_LOG_DEFAULT_UPDATE_INTERVAL);
g_signal_connect(G_OBJECT(gps->ui.gps_log_interval_slider),
{
g_debug("GritsPluginGps: gps_init");
- gps->config = gtk_hbox_new(FALSE, 15);
+ gps->config = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 15);
}
static void grits_plugin_gps_dispose(GObject *gobject)
#include "level2.h"
+#include "compat.h"
+
#define ISO_MIN 30
#define ISO_MAX 80
cols-1,cols, 0,1, GTK_FILL,GTK_FILL, 0,0);
}
- elev_box = gtk_hbox_new(TRUE, 0);
+ elev_box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_box_set_homogeneous(GTK_BOX(elev_box), TRUE);
gtk_table_attach(GTK_TABLE(table), elev_box,
cols-1,cols, rows-1,rows, GTK_FILL,GTK_FILL, 0,0);
}
gtk_misc_set_alignment(GTK_MISC(row_label), 1, 0.5);
gtk_table_attach(GTK_TABLE(table), row_label,
0,1, rows,rows+1, GTK_FILL,GTK_FILL, 5,0);
- GtkWidget *scale = gtk_hscale_new_with_range(ISO_MIN, ISO_MAX, 0.5);
+ GtkWidget *scale = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, ISO_MIN, ISO_MAX, 0.5);
gtk_widget_set_size_request(scale, -1, 26);
gtk_scale_set_value_pos(GTK_SCALE(scale), GTK_POS_LEFT);
gtk_range_set_inverted(GTK_RANGE(scale), TRUE);
#include "level2.h"
#include "../aweather-location.h"
+#include "compat.h"
+
static void aweather_bin_set_child(GtkBin *bin, GtkWidget *new)
{
GtkWidget *old = gtk_bin_get_child(bin);
g_warning("RadarSite: update_end - %s", site->message);
const char *fmt = "http://forecast.weather.gov/product.php?site=NWS&product=FTM&format=TXT&issuedby=%s";
char *uri = g_strdup_printf(fmt, site->city->code+1);
- GtkWidget *box = gtk_vbox_new(TRUE, 0);
+ GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
GtkWidget *msg = gtk_label_new(site->message);
GtkWidget *btn = gtk_link_button_new_with_label(uri, "View Radar Status");
+ gtk_box_set_homogeneous(GTK_BOX(box), TRUE);
gtk_box_pack_start(GTK_BOX(box), msg, TRUE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(box), btn, TRUE, TRUE, 0);
aweather_bin_set_child(GTK_BIN(site->config), box);