*** empty log message ***
[m17n/m17n-im-config.git] / src / mim-config.c
index d172924..ae19749 100644 (file)
@@ -433,7 +433,7 @@ make_store_for_input_methods ()
 
 static gboolean
 revert_to_saved (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter,
-              gpointer data)
+                gpointer data)
 {
   enum MimStatus status;
   MSymbol lang, name;
@@ -454,7 +454,7 @@ revert_to_saved (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter,
 
 static gboolean
 set_as_saved (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter,
-          gpointer data)
+             gpointer data)
 {
   enum MimStatus status;
   MSymbol lang, name;
@@ -471,6 +471,28 @@ set_as_saved (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter,
   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
@@ -1707,6 +1729,20 @@ mim_config_modified (GtkWidget *config)
 }
 
 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;