]> Pileus Git - aweather/commitdiff
Gtk 3 Port gtk3
authorAndy Spencer <andy753421@gmail.com>
Thu, 20 Dec 2012 09:18:17 +0000 (09:18 +0000)
committerAndy Spencer <andy753421@gmail.com>
Wed, 2 Jan 2013 09:58:57 +0000 (09:58 +0000)
src/aweather-gui.c
src/main.c
src/plugins/alert.c
src/plugins/gps-plugin.c
src/plugins/level2.c
src/plugins/radar.c

index 6d5c96e3a1c67df2361dcfe6d29e3c78e963c767..b0cc5d5638fa477dcdb9f786b92752678dd03ca6 100644 (file)
@@ -80,14 +80,14 @@ G_MODULE_EXPORT gboolean on_gui_key_press(GtkWidget *widget, GdkEventKey *event,
                        event->keyval, event->state);
        GObject *action = aweather_gui_get_object(self, "fullscreen");
        gboolean full   = gtk_toggle_action_get_active(GTK_TOGGLE_ACTION(action));
-       if (event->keyval == GDK_q)
+       if (event->keyval == GDK_KEY_q)
                gtk_widget_destroy(GTK_WIDGET(self));
-       else if (event->keyval == GDK_F11 ||
-               (event->keyval == GDK_Escape && full))
+       else if (event->keyval == GDK_KEY_F11 ||
+               (event->keyval == GDK_KEY_Escape && full))
                gtk_action_activate(GTK_ACTION(action));
-       else if (event->keyval == GDK_r && event->state & GDK_CONTROL_MASK)
+       else if (event->keyval == GDK_KEY_r && event->state & GDK_CONTROL_MASK)
                grits_viewer_refresh(self->viewer);
-       else if (event->keyval == GDK_Tab || event->keyval == GDK_ISO_Left_Tab) {
+       else if (event->keyval == GDK_KEY_Tab || event->keyval == GDK_KEY_ISO_Left_Tab) {
                GtkNotebook *tabs = GTK_NOTEBOOK(aweather_gui_get_widget(self, "main_tabs"));
                gint num_tabs = gtk_notebook_get_n_pages(tabs);
                gint cur_tab  = gtk_notebook_get_current_page(tabs);
index e1272013abe1fcee5342e19de40c3a1c5075705b..2cb6e36adac6df165292b187d445e1bdfd465742 100644 (file)
@@ -144,7 +144,7 @@ int main(int argc, char *argv[])
 
        /* Init */
        GError *error = NULL;
-       gdk_threads_init();
+       //gdk_threads_init();
        if (!gtk_init_with_args(&argc, &argv, "aweather", entries, NULL, &error)) {
                g_print("%s\n", error->message);
                g_error_free(error);
@@ -152,16 +152,17 @@ int main(int argc, char *argv[])
        }
 
        /* Use external handler for link buttons */
-       gtk_link_button_set_uri_hook((GtkLinkButtonUriFunc)xdg_open, NULL, NULL);
-       gtk_about_dialog_set_url_hook((GtkAboutDialogActivateLinkFunc)xdg_open, NULL, NULL);
-       gtk_about_dialog_set_email_hook((GtkAboutDialogActivateLinkFunc)xdg_open, NULL, NULL);
+       //gtk_link_button_set_uri_hook((GtkLinkButtonUriFunc)xdg_open, NULL, NULL);
+       //gtk_about_dialog_set_url_hook((GtkAboutDialogActivateLinkFunc)xdg_open, NULL, NULL);
+       //gtk_about_dialog_set_email_hook((GtkAboutDialogActivateLinkFunc)xdg_open, NULL, NULL);
+       (void)xdg_open;
 
        /* Setup debug level for aweather_gui_new */
        g_log_set_handler(NULL, G_LOG_LEVEL_MASK, log_func, NULL);
        log_levels = int2log(opt_debug >= 0 ? opt_debug : debug);
 
        /* Set up AWeather */
-       gdk_threads_enter();
+       //gdk_threads_enter();
        /* Pre-load some types for gtkbuilder */
        GRITS_TYPE_OPENGL;
        AWEATHER_TYPE_GUI;
@@ -200,7 +201,7 @@ int main(int argc, char *argv[])
        set_toggle_action(gui, "fullscreen", fullscreen); // Resest widget hiding
        setup_mac(gui); // done after show_all
        gtk_main();
-       gdk_threads_leave();
-       gdk_display_close(gdk_display_get_default());
+       //gdk_threads_leave();
+       //gdk_display_close(gdk_display_get_default());
        return 0;
 }
index e82821932b85049987e165d82879c35d66144239..4150d3623192d52509013cf44fcd1183fc2c5e6b 100644 (file)
@@ -477,7 +477,7 @@ static GtkWidget *_make_msg_details(AlertMsg *msg)
        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);
@@ -797,10 +797,10 @@ static void _on_update(GritsPluginAlert *alert)
 /* 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");
@@ -819,7 +819,7 @@ static GtkWidget *_make_config(GritsPluginAlert *alert)
        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);
@@ -848,11 +848,10 @@ static gboolean _clear_details(GtkWidget *dialog)
        return TRUE;
 }
 
-static gboolean _set_details_uri(GtkWidget *notebook, GtkNotebookPage *_,
+static gboolean _set_details_uri(GtkWidget *notebook, GtkWidget *page,
                guint num, GtkWidget *button)
 {
        g_debug("_set_details_uri");
-       GtkWidget *page = gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook), num);
        AlertMsg  *msg  = g_object_get_data(G_OBJECT(page), "msg");
        gtk_link_button_set_uri(GTK_LINK_BUTTON(button), msg->link);
        return FALSE;
index c2ef65e81f45cf63b01301799d95c1ed7939dc86..d229bd244361c5c877f7a9e9985f1dae3f89e3aa 100644 (file)
@@ -695,7 +695,7 @@ static void gps_init_control_frame(GritsPluginGps *gps, GtkWidget *gbox)
        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);
 
@@ -782,7 +782,7 @@ static void gps_init_track_log_frame(GritsPluginGps *gps, GtkWidget *gbox)
        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);
@@ -796,7 +796,7 @@ static void gps_init_track_log_frame(GritsPluginGps *gps, GtkWidget *gbox)
               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();
@@ -805,11 +805,11 @@ static void gps_init_track_log_frame(GritsPluginGps *gps, GtkWidget *gbox)
        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),
@@ -819,9 +819,9 @@ static void gps_init_track_log_frame(GritsPluginGps *gps, GtkWidget *gbox)
        gtk_range_set_increments(
                    GTK_RANGE(gps->ui.gps_log_interval_slider),
                    10.0 /* step */, 30.0 /* page up/down */);
-       gtk_range_set_update_policy(
-                   GTK_RANGE(gps->ui.gps_log_interval_slider),
-                   GTK_UPDATE_DELAYED);
+       //gtk_range_set_update_policy(
+       //            GTK_RANGE(gps->ui.gps_log_interval_slider),
+       //            GTK_UPDATE_DELAYED);
        gtk_box_pack_start(GTK_BOX(ubox), gps->ui.gps_log_interval_slider,
                    TRUE, TRUE, 0);
        gtk_box_pack_start(GTK_BOX(lbox), ubox, FALSE, FALSE, 0);
@@ -832,7 +832,7 @@ static void gps_init_track_log_frame(GritsPluginGps *gps, GtkWidget *gbox)
  * GPSD interfaces *
  *******************/
 
-static void process_gps(gpointer data, gint source, GdkInputCondition condition)
+static gboolean process_gps(GIOChannel *source, GIOCondition condition, gpointer data)
 {
        struct gps_data_t *gps_data = (struct gps_data_t *)data;
 
@@ -850,6 +850,7 @@ static void process_gps(gpointer data, gint source, GdkInputCondition condition)
        } else {
                g_warning("GritsPluginGps: process_gps - gps_data == NULL.");
        }
+       return TRUE;
 }
 
 static gint initialize_gpsd(char *server, gchar *port, struct gps_data_t *gps_data)
@@ -866,7 +867,10 @@ static gint initialize_gpsd(char *server, gchar *port, struct gps_data_t *gps_da
 
        (void)gps_stream(gps_data, WATCH_ENABLE|WATCH_JSON, NULL);
        g_debug("GritsPluginGps: initialize_gpsd - gpsd fd %u.", gps_data->gps_fd);
-       return gdk_input_add(gps_data->gps_fd, GDK_INPUT_READ, process_gps, gps_data);
+       GIOChannel *channel = g_io_channel_unix_new(gps_data->gps_fd);
+       gint input_tag = g_io_add_watch(channel, G_IO_IN, process_gps, gps_data);
+       g_io_channel_unref(channel);
+       return input_tag;
 }
 
 
@@ -917,7 +921,7 @@ static void grits_plugin_gps_init(GritsPluginGps *gps)
 {
        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)
@@ -935,7 +939,7 @@ static void grits_plugin_gps_dispose(GObject *gobject)
                gps->ui.gps_log_timeout_id = 0;
        }
        if (gps->input_tag) {
-               gdk_input_remove(gps->input_tag);
+               g_source_remove(gps->input_tag);
                gps->input_tag = 0;
        }
        if (gps->viewer) {
index d5566e1749ad8bd7717d13ce604c8126e2908232..2c42664d8d4e7d0e030839ac1ce132bc978863ca 100644 (file)
@@ -459,7 +459,8 @@ GtkWidget *aweather_level2_get_config(AWeatherLevel2 *level2)
                                                        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);
                        }
@@ -489,7 +490,7 @@ GtkWidget *aweather_level2_get_config(AWeatherLevel2 *level2)
        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);
index 8e5abfc4d1225b8a055c2a1e5723c9b4f97dfd8d..0cee302b8ad21d6f4c11b62316cb7d0af73a7996 100644 (file)
@@ -30,7 +30,7 @@
 #include "level2.h"
 #include "../aweather-location.h"
 
-static void _gtk_bin_set_child(GtkBin *bin, GtkWidget *new)
+static void aweather_bin_set_child(GtkBin *bin, GtkWidget *new)
 {
        GtkWidget *old = gtk_bin_get_child(bin);
        if (old)
@@ -123,15 +123,16 @@ gboolean _site_update_end(gpointer _site)
                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);
-               _gtk_bin_set_child(GTK_BIN(site->config), box);
+               aweather_bin_set_child(GTK_BIN(site->config), box);
                g_free(uri);
        } else {
-               _gtk_bin_set_child(GTK_BIN(site->config),
+               aweather_bin_set_child(GTK_BIN(site->config),
                                aweather_level2_get_config(site->level2));
        }
        site->status = STATUS_LOADED;
@@ -211,7 +212,7 @@ void _site_update(RadarSite *site)
        /* Add a progress bar */
        GtkWidget *progress = gtk_progress_bar_new();
        gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progress), "Loading...");
-       _gtk_bin_set_child(GTK_BIN(site->config), progress);
+       aweather_bin_set_child(GTK_BIN(site->config), progress);
 
        /* Remove old volume */
        g_debug("RadarSite: update - remove - %s", site->city->code);
@@ -450,7 +451,7 @@ gboolean _conus_update_end(gpointer _conus)
        /* Check error status */
        if (conus->message) {
                g_warning("Conus: update_end - %s", conus->message);
-               _gtk_bin_set_child(GTK_BIN(conus->config), gtk_label_new(conus->message));
+               aweather_bin_set_child(GTK_BIN(conus->config), gtk_label_new(conus->message));
                goto out;
        }
 
@@ -459,7 +460,7 @@ gboolean _conus_update_end(gpointer _conus)
        GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file(conus->path, &error);
        if (!pixbuf || error) {
                g_warning("Conus: update_end - error loading pixbuf: %s", conus->path);
-               _gtk_bin_set_child(GTK_BIN(conus->config), gtk_label_new("Error loading pixbuf"));
+               aweather_bin_set_child(GTK_BIN(conus->config), gtk_label_new("Error loading pixbuf"));
                g_remove(conus->path);
                goto out;
        }
@@ -483,7 +484,7 @@ gboolean _conus_update_end(gpointer _conus)
 
        /* Update GUI */
        gchar *label = g_path_get_basename(conus->path);
-       _gtk_bin_set_child(GTK_BIN(conus->config), gtk_label_new(label));
+       aweather_bin_set_child(GTK_BIN(conus->config), gtk_label_new(label));
        grits_viewer_queue_draw(conus->viewer);
        g_free(label);
 
@@ -558,7 +559,7 @@ void _conus_update(RadarConus *conus)
        /* Add a progress bar */
        GtkWidget *progress = gtk_progress_bar_new();
        gtk_progress_bar_set_text(GTK_PROGRESS_BAR(progress), "Loading...");
-       _gtk_bin_set_child(GTK_BIN(conus->config), progress);
+       aweather_bin_set_child(GTK_BIN(conus->config), progress);
 
        g_thread_new("conus-update-thread", _conus_update_thread, conus);
 }
@@ -680,7 +681,7 @@ out:
 }
 
 static void _update_hidden(GtkNotebook *notebook,
-               GtkNotebookPage *page, guint page_num, gpointer viewer)
+               GtkWidget *page, guint page_num, gpointer viewer)
 {
        g_debug("GritsPluginRadar: _update_hidden - 0..%d = %d",
                        gtk_notebook_get_n_pages(notebook), page_num);