*** empty log message ***
[m17n/m17n-im-config.git] / src / main.c
index 01b1aad..3c1f622 100644 (file)
@@ -34,6 +34,8 @@ struct CallbackArgument
 {
   /* IM configuration widget created by mim_config_new ().  */
   GtkWidget *config;
+  /* Button widget "default" */
+  GtkWidget *default_;
   /* Button widget "revert" */
   GtkWidget *revert;
   /* Button widget "save" */
@@ -66,6 +68,16 @@ status_changed_cb (GtkWidget *config, gpointer data)
    }
 }
 
+/* Called when "default" button is clicked.  */
+static void
+default_clicked_cb (GtkButton *button, gpointer data)
+{
+  struct CallbackArgument *arg = data;
+
+  mim_config_default (arg->config);
+  status_changed_cb (arg->config, data);
+}
+
 /* Called when "revert" button is clicked.  */
 static void
 revert_clicked_cb (GtkButton *button, gpointer data)
@@ -135,7 +147,7 @@ int
 main (int argc, char **argv)
 {
   GtkWidget *window, *vbox, *hbox;
-  GtkWidget *revert, *save, *ok, *quit;
+  GtkWidget *default_, *revert, *save, *ok, *quit;
   struct CallbackArgument arg;
     
 #if ENABLE_NLS
@@ -160,9 +172,9 @@ main (int argc, char **argv)
      ||                                     ||
      |+-------------------------------------+|
      |+-hbox--------------------------------+|
-     ||          +------+ +----+ +----+ +--+||
-     ||          |revert| |save| |quit| |ok|||
-     ||          +------+ +----+ +----+ +--+||
+     ||+-------+ +------+ +----+ +----+ +--+||
+     |||default| |revert| |save| |quit| |ok|||
+     ||+-------+ +------+ +----+ +----+ +--+||
      |+-------------------------------------+|
      +---------------------------------------+
   */
@@ -171,6 +183,7 @@ main (int argc, char **argv)
   gtk_container_set_border_width (GTK_CONTAINER (vbox), 12);
   gtk_container_add (GTK_CONTAINER (window), vbox);
 
+  default_ = gtk_button_new_from_stock (_("_Default"));
   revert = gtk_button_new_from_stock (GTK_STOCK_REVERT_TO_SAVED);
   gtk_widget_set_sensitive (revert, FALSE);
   save = gtk_button_new_from_stock (GTK_STOCK_SAVE);
@@ -183,6 +196,8 @@ main (int argc, char **argv)
   arg.config = mim_config_new (G_CALLBACK (status_changed_cb), &arg);
   gtk_box_pack_start (GTK_BOX (vbox), arg.config, TRUE, TRUE, 0);
 
+  g_signal_connect (G_OBJECT (default_), "clicked",
+                   G_CALLBACK (default_clicked_cb), &arg);
   g_signal_connect (G_OBJECT (revert), "clicked",
                    G_CALLBACK (revert_clicked_cb), &arg);
   g_signal_connect (G_OBJECT (save), "clicked",
@@ -195,6 +210,7 @@ main (int argc, char **argv)
   hbox = gtk_hbutton_box_new ();
   gtk_button_box_set_layout (GTK_BUTTON_BOX (hbox), GTK_BUTTONBOX_END);
   gtk_box_set_spacing (GTK_BOX (hbox), 5);
+  gtk_container_add (GTK_CONTAINER (hbox), default_);
   gtk_container_add (GTK_CONTAINER (hbox), revert);
   gtk_container_add (GTK_CONTAINER (hbox), save);
   gtk_container_add (GTK_CONTAINER (hbox), quit);