+
+ gtk_widget_destroy (dialog);
+}
+
+void change_multi_disc()
+{
+ HildonDialog* window = HILDON_DIALOG(hildon_dialog_new());
+ gtk_window_set_title (GTK_WINDOW (window), "Change disc");
+ gtk_window_set_default_size(GTK_WINDOW (window), 480, 300);
+
+ GtkWidget* sw = hildon_pannable_area_new ();
+ gtk_box_pack_start (GTK_BOX(GTK_DIALOG(window)->vbox), sw, TRUE, TRUE, 0);
+
+ GtkWidget* tree_view = hildon_gtk_tree_view_new (HILDON_UI_MODE_EDIT);
+ gtk_widget_set_name (tree_view, "fremantle-widget");
+
+ gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (tree_view), TRUE);
+
+ int i;
+ GtkListStore *store = gtk_list_store_new (1, G_TYPE_STRING);
+ for (i = 0; i < cdrIsoMultidiskCount; i++) {
+ gchar *str;
+
+ str = g_strdup_printf ("Disc %d", i+1);
+ gtk_list_store_insert_with_values (store, NULL, i, 0, str, -1);
+ g_free (str);
+ }
+ GtkTreeModel* model = GTK_TREE_MODEL (store);
+
+ gtk_tree_view_set_model (GTK_TREE_VIEW (tree_view), model);
+ g_object_unref (model);
+
+ GtkTreeSelection* selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_view));
+ gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
+
+ GtkCellRenderer* renderer = gtk_cell_renderer_text_new ();
+ g_object_set (renderer,
+ "xalign", 0.5,
+ "weight", PANGO_WEIGHT_NORMAL,
+ NULL);
+
+ gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (tree_view),
+ 0, "Column 0",
+ renderer,
+ "text", 0,
+ NULL);
+
+ char current[5];
+ sprintf(current, "%i", cdrIsoMultidiskSelect);
+ GtkTreePath* path = gtk_tree_path_new_from_string(current);
+ gtk_tree_selection_select_path (selection, path);
+ gtk_tree_path_free(path);
+
+ gtk_widget_set_size_request (tree_view, 480, 800);
+ gtk_container_add (GTK_CONTAINER (sw), tree_view);
+
+ hildon_dialog_add_button (HILDON_DIALOG(window), GTK_STOCK_OK, GTK_RESPONSE_ACCEPT);
+
+ gtk_widget_show_all (GTK_WIDGET(window));
+ gint result = gtk_dialog_run (GTK_DIALOG (window));
+ if (result == GTK_RESPONSE_ACCEPT) {
+ GtkTreeModel* model;
+ GtkTreeIter iter;
+ GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view));
+ if (gtk_tree_selection_get_selected(selection, &model, &iter)){
+ GtkTreePath* path = gtk_tree_model_get_path(model , &iter);
+ int* i = gtk_tree_path_get_indices(path) ;
+
+ cdrIsoMultidiskSelect = *i;
+ CdromId[0] = '\0';
+ CdromLabel[0] = '\0';
+
+ CDR_close();
+ if (CDR_open() < 0) {
+ printf("Failed to load cdr plugin\n");
+ return;
+ }
+
+ SetCdOpenCaseTime(time(NULL) + 3);
+ LidInterrupt();
+ }
+ }
+ gtk_widget_destroy(GTK_WIDGET(window));
+}
+
+static DBusHandlerResult on_msg_recieved(DBusConnection* connection G_GNUC_UNUSED, DBusMessage* message, void* data)
+{
+ const char* path = dbus_message_get_path(message);
+ if (path && g_str_equal(path, CALL_SIGNAL_PATH)){
+ const char* mbr = dbus_message_get_member(message);
+ if (mbr && g_str_equal(mbr, CALL_INCOMING_SIG))
+ show_messagebox("Paused");