]> git.meshlink.io Git - catta/blobdiff - avahi-ui/avahi-ui.c
avahi-ui: gtk3 fix
[catta] / avahi-ui / avahi-ui.c
index 643c1817cbe784fe0fb6d61126bb55c7e331f5fa..92d765aa1a8b40f426771d094b5d1e0834a63d08 100644 (file)
@@ -1,5 +1,3 @@
-/* $Id$ */
-
 /***
   This file is part of avahi.
 
@@ -37,6 +35,7 @@
 #include <avahi-common/error.h>
 #include <avahi-common/address.h>
 #include <avahi-common/domain.h>
+#include <avahi-common/i18n.h>
 
 #include "avahi-ui.h"
 
@@ -129,16 +128,16 @@ static void aui_service_dialog_get_property(GObject *object, guint prop_id, GVal
 static int get_default_response(GtkDialog *dlg) {
     gint ret = GTK_RESPONSE_NONE;
 
-    if (GTK_WINDOW(dlg)->default_widget)
+    if (gtk_window_get_default_widget(GTK_WINDOW(dlg)))
         /* Use the response of the default widget, if possible */
-        ret = gtk_dialog_get_response_for_widget(dlg, GTK_WINDOW(dlg)->default_widget);
+        ret = gtk_dialog_get_response_for_widget(dlg, gtk_window_get_default_widget(GTK_WINDOW(dlg)));
 
     if (ret == GTK_RESPONSE_NONE) {
         /* Fall back to finding the first positive response */
         GList *children, *t;
         gint bad = GTK_RESPONSE_NONE;
 
-        t = children = gtk_container_get_children(GTK_CONTAINER(dlg->action_area));
+        t = children = gtk_container_get_children(GTK_CONTAINER(gtk_dialog_get_action_area(dlg)));
 
         while (t) {
             GtkWidget *child = t->data;
@@ -172,6 +171,8 @@ G_DEFINE_TYPE(AuiServiceDialog, aui_service_dialog, GTK_TYPE_DIALOG)
 static void aui_service_dialog_class_init(AuiServiceDialogClass *klass) {
     GObjectClass *object_class;
 
+    avahi_init_i18n();
+
     object_class = (GObjectClass*) klass;
 
     object_class->finalize = aui_service_dialog_finalize;
@@ -181,64 +182,64 @@ static void aui_service_dialog_class_init(AuiServiceDialogClass *klass) {
     g_object_class_install_property(
             object_class,
             PROP_BROWSE_SERVICE_TYPES,
-            g_param_spec_pointer("browse_service_types", "Browse Service Types", "A NULL terminated list of service types to browse for",
+            g_param_spec_pointer("browse_service_types", _("Browse Service Types"), _("A NULL terminated list of service types to browse for"),
                                 G_PARAM_READABLE | G_PARAM_WRITABLE));
     g_object_class_install_property(
             object_class,
             PROP_DOMAIN,
-            g_param_spec_string("domain", "Domain", "The domain to browse in, or NULL for the default domain",
+            g_param_spec_string("domain", _("Domain"), _("The domain to browse in, or NULL for the default domain"),
                                 NULL,
                                 G_PARAM_READABLE | G_PARAM_WRITABLE));
     g_object_class_install_property(
             object_class,
             PROP_SERVICE_TYPE,
-            g_param_spec_string("service_type", "Service Type", "The service type of the selected service",
+            g_param_spec_string("service_type", _("Service Type"), _("The service type of the selected service"),
                                 NULL,
                                 G_PARAM_READABLE | G_PARAM_WRITABLE));
     g_object_class_install_property(
             object_class,
             PROP_SERVICE_NAME,
-            g_param_spec_string("service_name", "Service Name", "The service name of the selected service",
+            g_param_spec_string("service_name", _("Service Name"), _("The service name of the selected service"),
                                 NULL,
                                 G_PARAM_READABLE | G_PARAM_WRITABLE));
     g_object_class_install_property(
             object_class,
             PROP_ADDRESS,
-            g_param_spec_pointer("address", "Address", "The address of the resolved service",
+            g_param_spec_pointer("address", _("Address"), _("The address of the resolved service"),
                                 G_PARAM_READABLE));
     g_object_class_install_property(
             object_class,
             PROP_PORT,
-            g_param_spec_uint("port", "Port", "The IP port number of the resolved service",
+            g_param_spec_uint("port", _("Port"), _("The IP port number of the resolved service"),
                              0, 0xFFFF, 0,
                              G_PARAM_READABLE));
     g_object_class_install_property(
             object_class,
             PROP_HOST_NAME,
-            g_param_spec_string("host_name", "Host Name", "The host name of the resolved service",
+            g_param_spec_string("host_name", _("Host Name"), _("The host name of the resolved service"),
                                 NULL,
                                 G_PARAM_READABLE));
     g_object_class_install_property(
             object_class,
             PROP_TXT_DATA,
-            g_param_spec_pointer("txt_data", "TXT Data", "The TXT data of the resolved service",
+            g_param_spec_pointer("txt_data", _("TXT Data"), _("The TXT data of the resolved service"),
                                 G_PARAM_READABLE));
     g_object_class_install_property(
             object_class,
             PROP_RESOLVE_SERVICE,
-            g_param_spec_boolean("resolve_service", "Resolve service", "Resolve service",
+            g_param_spec_boolean("resolve_service", _("Resolve Service"), _("Resolve the selected service automatically before returning"),
                                  TRUE,
                                  G_PARAM_READABLE | G_PARAM_WRITABLE));
     g_object_class_install_property(
             object_class,
             PROP_RESOLVE_HOST_NAME,
-            g_param_spec_boolean("resolve_host_name", "Resolve service host name", "Resolve service host name",
+            g_param_spec_boolean("resolve_host_name", _("Resolve Service Host Name"), _("Resolve the host name of the selected service automatically before returning"),
                                  TRUE,
                                  G_PARAM_READABLE | G_PARAM_WRITABLE));
     g_object_class_install_property(
             object_class,
             PROP_ADDRESS_FAMILY,
-            g_param_spec_int("address_family", "Address family", "The address family for host name resolution",
+            g_param_spec_int("address_family", _("Address family"), _("The address family for host name resolution"),
                              AVAHI_PROTO_UNSPEC, AVAHI_PROTO_INET6, AVAHI_PROTO_UNSPEC,
                              G_PARAM_READABLE | G_PARAM_WRITABLE));
 }
@@ -253,11 +254,13 @@ GtkWidget *aui_service_dialog_new_valist(
     const gchar *button_text;
     gint dr;
 
-    GtkWidget *w = GTK_WIDGET(g_object_new(
+    GtkWidget *w = (GtkWidget*)g_object_new(
                                       AUI_TYPE_SERVICE_DIALOG,
+#if !GTK_CHECK_VERSION (2,21,8)
                                       "has-separator", FALSE,
+#endif
                                       "title", title,
-                                      NULL));
+                                      NULL);
 
     if (parent)
         gtk_window_set_transient_for(GTK_WINDOW(w), parent);
@@ -320,7 +323,7 @@ static void client_callback(AvahiClient *c, AvahiClientState state, void *userda
                                               GTK_DIALOG_DESTROY_WITH_PARENT,
                                               GTK_MESSAGE_ERROR,
                                               GTK_BUTTONS_CLOSE,
-                                              "Avahi client failure: %s",
+                                              _("Avahi client failure: %s"),
                                               avahi_strerror(avahi_client_errno(c)));
         gtk_dialog_run(GTK_DIALOG(m));
         gtk_widget_destroy(m);
@@ -382,7 +385,7 @@ static void resolve_callback(
                                                   GTK_DIALOG_DESTROY_WITH_PARENT,
                                                   GTK_MESSAGE_ERROR,
                                                   GTK_BUTTONS_CLOSE,
-                                                  "Avahi resolver failure: %s",
+                                                  _("Avahi resolver failure: %s"),
                                                   avahi_strerror(avahi_client_errno(d->priv->client)));
             gtk_dialog_run(GTK_DIALOG(m));
             gtk_widget_destroy(m);
@@ -512,8 +515,8 @@ static void browse_callback(
                                                   GTK_DIALOG_DESTROY_WITH_PARENT,
                                                   GTK_MESSAGE_ERROR,
                                                   GTK_BUTTONS_CLOSE,
-                                                  "Browsing for service type %s in domain %s failed: %s",
-                                                  type, domain ? domain : "n/a",
+                                                  _("Browsing for service type %s in domain %s failed: %s"),
+                                                  type, domain ? domain : _("n/a"),
                                                   avahi_strerror(avahi_client_errno(d->priv->client)));
             gtk_dialog_run(GTK_DIALOG(m));
             gtk_widget_destroy(m);
@@ -643,7 +646,7 @@ static void domain_browse_callback(
                                                   GTK_DIALOG_DESTROY_WITH_PARENT,
                                                   GTK_MESSAGE_ERROR,
                                                   GTK_BUTTONS_CLOSE,
-                                                  "Avahi domain browser failure: %s",
+                                                  _("Avahi domain browser failure: %s"),
                                                   avahi_strerror(avahi_client_errno(d->priv->client)));
             gtk_dialog_run(GTK_DIALOG(m));
             gtk_widget_destroy(m);
@@ -678,7 +681,7 @@ static const gchar *get_domain_name(AuiServiceDialog *d) {
                                               GTK_DIALOG_DESTROY_WITH_PARENT,
                                               GTK_MESSAGE_ERROR,
                                               GTK_BUTTONS_CLOSE,
-                                              "Failed to read Avahi domain : %s",
+                                              _("Failed to read Avahi domain: %s"),
                                               avahi_strerror(avahi_client_errno(d->priv->client)));
         gtk_dialog_run(GTK_DIALOG(m));
         gtk_widget_destroy(m);
@@ -700,7 +703,7 @@ static gboolean start_callback(gpointer data) {
     d->priv->start_idle = 0;
 
     if (!d->priv->browse_service_types || !*d->priv->browse_service_types) {
-        g_warning("Browse service type list is empty!");
+        g_warning(_("Browse service type list is empty!"));
         return FALSE;
     }
 
@@ -711,7 +714,7 @@ static gboolean start_callback(gpointer data) {
                                                   GTK_DIALOG_DESTROY_WITH_PARENT,
                                                   GTK_MESSAGE_ERROR,
                                                   GTK_BUTTONS_CLOSE,
-                                                  "Failed to connect to Avahi server: %s",
+                                                  _("Failed to connect to Avahi server: %s"),
                                                   avahi_strerror(error));
             gtk_dialog_run(GTK_DIALOG(m));
             gtk_widget_destroy(m);
@@ -729,9 +732,9 @@ static gboolean start_callback(gpointer data) {
     g_assert(domain);
 
     if (avahi_domain_equal(domain, "local."))
-        gtk_label_set_markup(GTK_LABEL(d->priv->domain_label), "Browsing for services on <b>local network</b>:");
+        gtk_label_set_markup(GTK_LABEL(d->priv->domain_label), _("Browsing for services on <b>local network</b>:"));
     else {
-        gchar *t = g_strdup_printf("Browsing for services in domain <b>%s</b>:", domain);
+        gchar *t = g_strdup_printf(_("Browsing for services in domain <b>%s</b>:"), domain);
         gtk_label_set_markup(GTK_LABEL(d->priv->domain_label), t);
         g_free(t);
     }
@@ -767,7 +770,7 @@ static gboolean start_callback(gpointer data) {
                                                   GTK_DIALOG_DESTROY_WITH_PARENT,
                                                   GTK_MESSAGE_ERROR,
                                                   GTK_BUTTONS_CLOSE,
-                                                  "Failed to create browser for %s: %s",
+                                                  _("Failed to create browser for %s: %s"),
                                                   *st,
                                                   avahi_strerror(avahi_client_errno(d->priv->client)));
             gtk_dialog_run(GTK_DIALOG(m));
@@ -886,8 +889,8 @@ static void response_callback(GtkDialog *dialog, gint response, gpointer user_da
 
         gtk_widget_set_sensitive(GTK_WIDGET(dialog), FALSE);
         cursor = gdk_cursor_new(GDK_WATCH);
-        gdk_window_set_cursor(GTK_WIDGET(dialog)->window, cursor);
-        gdk_cursor_unref(cursor);
+        gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(dialog)), cursor);
+        g_object_unref(G_OBJECT(cursor));
 
         if (!(d->priv->resolver = avahi_service_resolver_new(
                       d->priv->client, interface, protocol, name, type, d->priv->domain,
@@ -897,7 +900,7 @@ static void response_callback(GtkDialog *dialog, gint response, gpointer user_da
                                                   GTK_DIALOG_DESTROY_WITH_PARENT,
                                                   GTK_MESSAGE_ERROR,
                                                   GTK_BUTTONS_CLOSE,
-                                                  "Failed to create resolver for %s of type %s in domain %s: %s",
+                                                  _("Failed to create resolver for %s of type %s in domain %s: %s"),
                                                   name, type, d->priv->domain,
                                                   avahi_strerror(avahi_client_errno(d->priv->client)));
             gtk_dialog_run(GTK_DIALOG(m));
@@ -972,7 +975,7 @@ static void domain_button_clicked(GtkButton *button G_GNUC_UNUSED, gpointer user
                                               GTK_DIALOG_DESTROY_WITH_PARENT,
                                               GTK_MESSAGE_ERROR,
                                               GTK_BUTTONS_CLOSE,
-                                              "Failed to create domain browser: %s",
+                                              _("Failed to create domain browser: %s"),
                                               avahi_strerror(avahi_client_errno(p->client)));
         gtk_dialog_run(GTK_DIALOG(m));
         gtk_widget_destroy(m);
@@ -983,12 +986,14 @@ static void domain_button_clicked(GtkButton *button G_GNUC_UNUSED, gpointer user
 
     p->domain_dialog = gtk_dialog_new();
     gtk_container_set_border_width(GTK_CONTAINER(p->domain_dialog), 5);
-    gtk_window_set_title(GTK_WINDOW(p->domain_dialog), "Change domain");
+    gtk_window_set_title(GTK_WINDOW(p->domain_dialog), _("Change domain"));
+#if !GTK_CHECK_VERSION(2,21,8)
     gtk_dialog_set_has_separator(GTK_DIALOG(p->domain_dialog), FALSE);
+#endif
 
     vbox = gtk_vbox_new(FALSE, 8);
     gtk_container_set_border_width(GTK_CONTAINER(vbox), 8);
-    gtk_box_pack_start(GTK_BOX(GTK_DIALOG(p->domain_dialog)->vbox), vbox, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(p->domain_dialog))), vbox, TRUE, TRUE, 0);
 
     p->domain_entry = gtk_entry_new();
     gtk_entry_set_max_length(GTK_ENTRY(p->domain_entry), AVAHI_DOMAIN_NAME_MAX);
@@ -1015,7 +1020,7 @@ static void domain_button_clicked(GtkButton *button G_GNUC_UNUSED, gpointer user
     g_signal_connect(selection, "changed", G_CALLBACK(domain_selection_changed_callback), d);
 
     renderer = gtk_cell_renderer_text_new();
-    column = gtk_tree_view_column_new_with_attributes("Service Name", renderer, "text", DOMAIN_COLUMN_NAME, NULL);
+    column = gtk_tree_view_column_new_with_attributes(_("Service Name"), renderer, "text", DOMAIN_COLUMN_NAME, NULL);
     gtk_tree_view_column_set_expand(column, TRUE);
     gtk_tree_view_append_column(GTK_TREE_VIEW(p->domain_tree_view), column);
 
@@ -1023,7 +1028,7 @@ static void domain_button_clicked(GtkButton *button G_GNUC_UNUSED, gpointer user
     gtk_container_add(GTK_CONTAINER(scrolled_window), p->domain_tree_view);
 
     p->domain_progress_bar = gtk_progress_bar_new();
-    gtk_progress_bar_set_text(GTK_PROGRESS_BAR(p->domain_progress_bar), "Browsing ...");
+    gtk_progress_bar_set_text(GTK_PROGRESS_BAR(p->domain_progress_bar), _("Browsing..."));
     gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR(p->domain_progress_bar), 0.1);
     gtk_box_pack_end(GTK_BOX(vbox2), p->domain_progress_bar, FALSE, FALSE, 0);
 
@@ -1110,9 +1115,9 @@ static void aui_service_dialog_init(AuiServiceDialog *d) {
 
     vbox = gtk_vbox_new(FALSE, 8);
     gtk_container_set_border_width(GTK_CONTAINER(vbox), 8);
-    gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->vbox), vbox, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(d))), vbox, TRUE, TRUE, 0);
 
-    p->domain_label = gtk_label_new("Initializing...");
+    p->domain_label = gtk_label_new(_("Initializing..."));
     gtk_label_set_ellipsize(GTK_LABEL(p->domain_label), TRUE);
     gtk_misc_set_alignment(GTK_MISC(p->domain_label), 0, 0.5);
     gtk_box_pack_start(GTK_BOX(vbox), p->domain_label, FALSE, FALSE, 0);
@@ -1136,17 +1141,17 @@ static void aui_service_dialog_init(AuiServiceDialog *d) {
     g_signal_connect(selection, "changed", G_CALLBACK(service_selection_changed_callback), d);
 
     renderer = gtk_cell_renderer_text_new();
-    column = gtk_tree_view_column_new_with_attributes("Location", renderer, "text", SERVICE_COLUMN_PRETTY_IFACE, NULL);
+    column = gtk_tree_view_column_new_with_attributes(_("Location"), renderer, "text", SERVICE_COLUMN_PRETTY_IFACE, NULL);
     gtk_tree_view_column_set_visible(column, FALSE);
     gtk_tree_view_append_column(GTK_TREE_VIEW(p->service_tree_view), column);
 
     renderer = gtk_cell_renderer_text_new();
-    column = gtk_tree_view_column_new_with_attributes("Name", renderer, "text", SERVICE_COLUMN_NAME, NULL);
+    column = gtk_tree_view_column_new_with_attributes(_("Name"), renderer, "text", SERVICE_COLUMN_NAME, NULL);
     gtk_tree_view_column_set_expand(column, TRUE);
     gtk_tree_view_append_column(GTK_TREE_VIEW(p->service_tree_view), column);
 
     renderer = gtk_cell_renderer_text_new();
-    column = gtk_tree_view_column_new_with_attributes("Type", renderer, "text", SERVICE_COLUMN_PRETTY_TYPE, NULL);
+    column = gtk_tree_view_column_new_with_attributes(_("Type"), renderer, "text", SERVICE_COLUMN_PRETTY_TYPE, NULL);
     gtk_tree_view_column_set_visible(column, FALSE);
     gtk_tree_view_append_column(GTK_TREE_VIEW(p->service_tree_view), column);
 
@@ -1154,15 +1159,15 @@ static void aui_service_dialog_init(AuiServiceDialog *d) {
     gtk_container_add(GTK_CONTAINER(scrolled_window), p->service_tree_view);
 
     p->service_progress_bar = gtk_progress_bar_new();
-    gtk_progress_bar_set_text(GTK_PROGRESS_BAR(p->service_progress_bar), "Browsing ...");
+    gtk_progress_bar_set_text(GTK_PROGRESS_BAR(p->service_progress_bar), _("Browsing..."));
     gtk_progress_bar_set_pulse_step(GTK_PROGRESS_BAR(p->service_progress_bar), 0.1);
     gtk_box_pack_end(GTK_BOX(vbox2), p->service_progress_bar, FALSE, FALSE, 0);
 
-    p->domain_button = gtk_button_new_with_mnemonic("_Domain...");
+    p->domain_button = gtk_button_new_with_mnemonic(_("_Domain..."));
     gtk_button_set_image(GTK_BUTTON(p->domain_button), gtk_image_new_from_stock(GTK_STOCK_NETWORK, GTK_ICON_SIZE_BUTTON));
     g_signal_connect(p->domain_button, "clicked", G_CALLBACK(domain_button_clicked), d);
-    gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), p->domain_button, FALSE, TRUE, 0);
-    gtk_button_box_set_child_secondary(GTK_BUTTON_BOX(GTK_DIALOG(d)->action_area), p->domain_button, TRUE);
+    gtk_box_pack_start(GTK_BOX(gtk_dialog_get_action_area(GTK_DIALOG(d))), p->domain_button, FALSE, TRUE, 0);
+    gtk_button_box_set_child_secondary(GTK_BUTTON_BOX(gtk_dialog_get_action_area(GTK_DIALOG(d))), p->domain_button, TRUE);
     gtk_widget_show(p->domain_button);
 
     gtk_dialog_set_default_response(GTK_DIALOG(d), GTK_RESPONSE_ACCEPT);