static gboolean
revert_to_saved (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter,
- gpointer data)
+ gpointer data)
{
enum MimStatus status;
MSymbol lang, name;
static gboolean
set_as_saved (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter,
- gpointer data)
+ gpointer data)
{
enum MimStatus status;
MSymbol lang, name;
return FALSE;
}
+static gboolean
+reset_to_default (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter,
+ gpointer data)
+{
+ enum MimStatus status;
+ MSymbol lang, name;
+ MimConfigStatus *config_status = data;
+ MPlist *empty = mplist ();
+
+ gtk_tree_model_get (model, iter, COL_LANG, &lang, COL_NAME, &name, -1);
+ if (lang == Mnil)
+ return FALSE;
+ gtk_tree_model_get (model, iter, COL_STATUS, &status, -1);
+ if (status == MIM_STATUS_DEFAULT)
+ return FALSE;
+ minput_config_variable (lang, name, Mnil, empty);
+ minput_config_command (lang, name, Mnil, empty);
+ status = get_mim_status (lang, name);
+ update_child_row (model, iter, status, config_status, NULL);
+ return FALSE;
+}
+
static int initialized = 0;
static void
}
gboolean
+mim_config_default (GtkWidget *config)
+{
+ GtkTreeView *tree;
+ GtkTreeModel *model;
+ MimConfigStatus *config_status;
+
+ tree = g_object_get_data (G_OBJECT (config), CONFIG_TREE_VIEW);
+ model = gtk_tree_view_get_model (tree);
+ config_status = g_object_get_data (G_OBJECT (model), CONFIG_STATUS_DATA);
+ gtk_tree_model_foreach (model, reset_to_default, config_status);
+ return TRUE;
+}
+
+gboolean
mim_config_revert (GtkWidget *config)
{
GtkTreeView *tree;