#include <glib.h>
#include "helper.h"
#include "message-dialog.h"
+#include <data/format.h>
#include <data/data-in.h>
#include <data/data-out.h>
#include <data/dictionary.h>
}
msg_disable ();
- ok = data_in (ss_cstr (text), format.type, 0, 0,
+ ok = data_in (ss_cstr (text), LEGACY_NATIVE, format.type, 0, 0, 0,
v, fmt_var_width (&format));
msg_enable ();
static void
give_help (void)
{
- static struct msg m = {
- MSG_GENERAL,
- MSG_NOTE,
- {0, -1},
- 0,
- };
-
- if (! m.text)
- m.text=g_strdup (_("Sorry. The help system hasn't yet been implemented."));
-
- popup_message (&m);
+ GtkWidget *dialog;
+
+ dialog = gtk_message_dialog_new (NULL,
+ GTK_DIALOG_MODAL,
+ GTK_MESSAGE_INFO,
+ GTK_BUTTONS_CLOSE,
+ _("Sorry. The help system hasn't yet "
+ "been implemented."));
+ gtk_dialog_run (GTK_DIALOG (dialog));
+ gtk_widget_destroy (dialog);
}
void
GList *i;
for ( i = g_list_first (helps); i ; i = g_list_next (i))
g_signal_connect (GTK_WIDGET (i->data), "clicked", give_help, 0);
+
+ g_list_free (helps);
}
g_marshal_value_peek_int (param_values + 3),
data2);
}
+
+/* Create a deep copy of SRC */
+GtkListStore *
+clone_list_store (const GtkListStore *src)
+{
+ GtkTreeIter src_iter;
+ gboolean ok;
+ gint i;
+ const gint n_cols = gtk_tree_model_get_n_columns (GTK_TREE_MODEL (src));
+ GType *types = g_malloc (sizeof (*types) * n_cols);
+
+ int row = 0;
+ GtkListStore *dest;
+
+ for (i = 0 ; i < n_cols; ++i )
+ types[i] = gtk_tree_model_get_column_type (GTK_TREE_MODEL (src), i);
+
+ dest = gtk_list_store_newv (n_cols, types);
+
+ for (ok = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (src),
+ &src_iter);
+ ok;
+ ok = gtk_tree_model_iter_next (GTK_TREE_MODEL (src), &src_iter))
+ {
+ GtkTreeIter dest_iter;
+ gtk_list_store_append (dest, &dest_iter);
+
+ for (i = 0 ; i < n_cols; ++i )
+ {
+ GValue val = {0};
+
+ gtk_tree_model_get_value (GTK_TREE_MODEL (src), &src_iter, i, &val);
+ gtk_list_store_set_value (dest, &dest_iter, i, &val);
+
+ g_value_unset (&val);
+ }
+ row++;
+ }
+
+ g_free (types);
+
+ return dest;
+}
+
+