Ignore aoview_glade.h
[fw/altos] / aoview / aoview_dev_dialog.c
index f1165e12f89168536291fd6375594a49f4dec10d..530187c11369329912f12e4923520a199b4811eb 100644 (file)
 
 #include "aoview.h"
 
-static GtkTreeViewColumn *
-add_plain_text_column (GtkTreeView *view, const gchar *title, gint model_column, gint width)
-{
-       GtkCellRenderer *renderer;
-       GtkTreeViewColumn *column;
-
-       renderer = gtk_cell_renderer_text_new ();
-       g_object_set(renderer, "ellipsize", PANGO_ELLIPSIZE_NONE, NULL);
-       g_object_set(renderer, "width-chars", width, NULL);
-       column = gtk_tree_view_column_new_with_attributes (title, renderer,
-                                                          "text", model_column,
-                                                          NULL);
-       gtk_tree_view_column_set_resizable (column, FALSE);
-       gtk_tree_view_append_column (view, column);
-
-       return column;
-}
-
-
-
 static void
 aoview_dev_dialog_map(GtkWidget *widget, gpointer data)
 {
@@ -65,6 +45,23 @@ aoview_dev_dialog_map(GtkWidget *widget, gpointer data)
        gtk_tree_view_columns_autosize(dev_list);
 }
 
+static GtkMessageDialog *dev_open_fail_dialog;
+
+static void
+aoview_dev_open_failed(char *name)
+{
+       char    *utf8_file;
+       utf8_file = g_filename_to_utf8(name, -1, NULL, NULL, NULL);
+       if (!utf8_file)
+               utf8_file = name;
+       gtk_message_dialog_format_secondary_text(dev_open_fail_dialog,
+                                                "\"%s\"", utf8_file);
+       if (utf8_file != name)
+               g_free(utf8_file);
+       gtk_dialog_run(GTK_DIALOG(dev_open_fail_dialog));
+       gtk_widget_hide(GTK_WIDGET(dev_open_fail_dialog));
+}
+
 static void
 aoview_dev_selected(GtkTreeModel *model,
                    GtkTreePath *path,
@@ -75,7 +72,8 @@ aoview_dev_selected(GtkTreeModel *model,
        gtk_tree_model_get(model, iter,
                           2, &string,
                           -1);
-       aoview_monitor_connect(string);
+       if (!aoview_monitor_connect(string))
+               aoview_dev_open_failed(string);
 }
 
 static GtkWidget       *dialog;
@@ -118,9 +116,9 @@ aoview_dev_dialog_init(GladeXML *xml)
        dev_list = GTK_TREE_VIEW(glade_xml_get_widget(xml, "dev_list"));
        assert(dev_list);
 
-       add_plain_text_column(dev_list, _("Product"), 0, 16);
-       add_plain_text_column(dev_list, _("Serial"),  1, 8);
-       add_plain_text_column(dev_list, _("Device"), 2, 13);
+       aoview_add_plain_text_column(dev_list, _("Product"), 0, 16);
+       aoview_add_plain_text_column(dev_list, _("Serial"),  1, 8);
+       aoview_add_plain_text_column(dev_list, _("Device"), 2, 13);
 
        dev_selection = gtk_tree_view_get_selection(dev_list);
        gtk_tree_selection_set_mode(dev_selection, GTK_SELECTION_SINGLE);
@@ -143,4 +141,7 @@ aoview_dev_dialog_init(GladeXML *xml)
        g_signal_connect(G_OBJECT(ao_disconnect), "activate",
                         G_CALLBACK(aoview_dev_disconnect),
                         ao_disconnect);
+
+       dev_open_fail_dialog = GTK_MESSAGE_DIALOG(glade_xml_get_widget(xml, "dev_open_fail_dialog"));
+       assert(dev_open_fail_dialog);
 }