(minput_get_command \
(current_lang, current_name, current_command))))))
+#define CURRENT_DESCRIPTION \
+ (mtext_data \
+ (mplist_value \
+ (mplist_next \
+ (mplist_value \
+ (minput_get_command \
+ (current_lang, current_name, current_command)))), \
+ NULL, NULL, NULL, NULL))
+
#define CONFIG_COMMAND(plist) \
minput_config_command (current_lang, current_name, current_command, \
(plist))
struct BindingWidgets
{
- GtkWidget *entry;
- GtkWidget *clear;
- GtkWidget *add;
GtkWidget *view;
GtkWidget *default_;
GtkWidget *revert;
GtkWidget *delete;
+ GtkWidget *entry;
+ GtkWidget *clear;
+ GtkWidget *add;
GtkWidget *status;
};
{
gtk_widget_set_sensitive (bw->default_, TRUE);
gtk_widget_set_sensitive (bw->revert, TRUE);
- gtk_label_set_text (GTK_LABEL (bw->status), _("Status : modified"));
}
else if (status == Mcustomized)
{
gtk_widget_set_sensitive (bw->default_, TRUE);
gtk_widget_set_sensitive (bw->revert, FALSE);
- gtk_label_set_text (GTK_LABEL (bw->status), _("Status : customized"));
}
else
{
gtk_widget_set_sensitive (bw->default_, FALSE);
gtk_widget_set_sensitive (bw->revert, FALSE);
- gtk_label_set_text (GTK_LABEL (bw->status), _("Status : default"));
}
}
gtk_list_store_set (store, &iter, 0, mplist_value (last), -1);
update_binding_store (bw->view);
clear_cb (NULL, bw);
- update_widgets (bw);
+ gtk_widget_set_sensitive (bw->default_, TRUE);
+ gtk_widget_set_sensitive (bw->revert, TRUE);
+ gtk_label_set_text (GTK_LABEL (bw->status), _("modified"));
}
static GtkWidget *
CONFIG_COMMAND (empty);
m17n_object_unref (empty);
update_binding_store (bw->view);
- update_widgets (bw);
+ gtk_widget_set_sensitive (bw->default_, FALSE);
+ if (CURRENT_STATUS == Mconfigured)
+ {
+ gtk_widget_set_sensitive (bw->revert, TRUE);
+ gtk_label_set_text (GTK_LABEL (bw->status), _("modified"));
+ }
+ else
+ {
+ gtk_widget_set_sensitive (bw->revert, FALSE);
+ gtk_label_set_text (GTK_LABEL (bw->status), _("default"));
+ }
}
static void *
CONFIG_COMMAND (NULL);
update_binding_store (bw->view);
- update_widgets (bw);
+ gtk_widget_set_sensitive (bw->revert, FALSE);
+ if (CURRENT_STATUS == Mnil)
+ {
+ gtk_widget_set_sensitive (bw->default_, FALSE);
+ gtk_label_set_text (GTK_LABEL (bw->status), _("default"));
+ }
+ else
+ {
+ gtk_widget_set_sensitive (bw->default_, TRUE);
+ gtk_label_set_text (GTK_LABEL (bw->status), _("customized"));
+ }
}
static void
gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
update_binding_store (bw->view);
update_widgets (bw);
+ gtk_widget_set_sensitive (bw->default_, TRUE);
+ gtk_widget_set_sensitive (bw->revert, TRUE);
+ gtk_label_set_text (GTK_LABEL (bw->status), _("modified"));
}
static GtkWidget *
return vbox;
}
+static void *
+help_cb (GtkButton *button, gpointer data)
+{
+ struct BindingWidgets *bw = data;
+ GtkWidget *msg;
+
+ msg = gtk_message_dialog_new (GTK_WINDOW
+ (gtk_widget_get_toplevel (bw->view)),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_INFO,
+ GTK_BUTTONS_CLOSE,
+ CURRENT_DESCRIPTION);
+ gtk_dialog_run (GTK_DIALOG (msg));
+ gtk_widget_destroy (msg);
+}
+
static void
set_status (GtkListStore *store, GtkTreeIter *iter)
{
{
GtkTreeModel *model;
GtkTreeIter iter;
- GtkWidget *dialog, *vbox, *hbox;
+ GtkWidget *dialog, *label, *help, *vbox, *hbox;
+ MSymbol status;
struct BindingWidgets bw;
gchar *command;
gtk_tree_model_get (model, &iter, 0, &command, -1);
current_command = msymbol (command);
+ /*
dialog = (gtk_dialog_new_with_buttons
(command,
GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (parent))),
- GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR,
+ GTK_DIALOG_DESTROY_WITH_PARENT,
GTK_STOCK_OK, GTK_RESPONSE_OK,
NULL));
+ */
+ dialog = gtk_dialog_new ();
+ gtk_window_set_title (GTK_WINDOW (dialog), command);
+ gtk_window_set_transient_for
+ (GTK_WINDOW (dialog),
+ GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (parent))));
+ gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE);
+ gtk_button_box_set_layout (GTK_BUTTON_BOX (GTK_DIALOG (dialog)->action_area),
+ GTK_BUTTONBOX_EDGE);
+
+ help = gtk_button_new_from_stock (GTK_STOCK_HELP);
+ g_signal_connect (G_OBJECT (help), "clicked",
+ G_CALLBACK (help_cb), &bw);
+ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area),
+ help, FALSE, FALSE, 0);
+
+ gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_OK, GTK_RESPONSE_OK);
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox),
create_deleting_section (&bw));
vbox = gtk_vbox_new (FALSE, 12);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 12);
+ gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), vbox);
+
hbox = gtk_hbox_new (FALSE, 6);
- bw.status = gtk_label_new (NULL);
- gtk_box_pack_start (GTK_BOX (hbox), bw.status, FALSE, FALSE, 6);
gtk_container_add (GTK_CONTAINER (vbox), hbox);
- gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), vbox);
- update_widgets (&bw);
+ label = gtk_label_new (_("Status : "));
+ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
+
+ bw.status = gtk_label_new (NULL);
+ gtk_box_pack_start (GTK_BOX (hbox), bw.status, FALSE, FALSE, 0);
+
+ status = CURRENT_STATUS;
+ if (status == Mconfigured)
+ {
+ gtk_widget_set_sensitive (bw.default_, TRUE);
+ gtk_widget_set_sensitive (bw.revert, TRUE);
+ gtk_label_set_text (GTK_LABEL (bw.status), _("modified"));
+ }
+ else if (status == Mcustomized)
+ {
+ gtk_widget_set_sensitive (bw.default_, TRUE);
+ gtk_widget_set_sensitive (bw.revert, FALSE);
+ gtk_label_set_text (GTK_LABEL (bw.status), _("customized"));
+ }
+ else
+ {
+ gtk_widget_set_sensitive (bw.default_, FALSE);
+ gtk_widget_set_sensitive (bw.revert, FALSE);
+ gtk_label_set_text (GTK_LABEL (bw.status), _("default"));
+ }
+
gtk_widget_show_all (dialog);
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_tree_model_get_iter (model, &iter, path);