MPlist *p = mplist_value (plist);
MSymbol status_symbol;
- status = MIM_STATUS_DEFAULT;
p = mplist_next (mplist_next (p));
status_symbol = mplist_value (p);
- if (status_symbol != Mnil && status_symbol != Minherited)
- return (status_symbol == Mcustomized
- ? MIM_STATUS_CUSTOMIZED : MIM_STATUS_MODIFIED);
+ if (status_symbol == Mconfigured)
+ return MIM_STATUS_MODIFIED;
+ if (status_symbol == Mcustomized)
+ status = MIM_STATUS_CUSTOMIZED;
+ else if (status == MIM_STATUS_NO)
+ status = MIM_STATUS_DEFAULT;
}
for (plist = minput_get_command (lang, name, Mnil);
plist && mplist_key (plist) != Mnil; plist = mplist_next (plist))
MPlist *p = mplist_value (plist);
MSymbol status_symbol;
- status = MIM_STATUS_DEFAULT;
p = mplist_next (mplist_next (p));
status_symbol = mplist_value (p);
- if (status_symbol != Mnil && status_symbol != Minherited)
- return (status_symbol == Mcustomized
- ? MIM_STATUS_CUSTOMIZED : MIM_STATUS_MODIFIED);
+ if (status_symbol == Mconfigured)
+ return MIM_STATUS_MODIFIED;
+ if (status_symbol == Mcustomized)
+ status = MIM_STATUS_CUSTOMIZED;
+ else if (status == MIM_STATUS_NO)
+ status = MIM_STATUS_DEFAULT;
}
return status;
}
}
}
+extern GtkWidget *create_variable_entries (GtkTooltips *tip, MSymbol lang,
+ MSymbol name);
+extern GtkWidget *create_command_entries (GtkTooltips *tip, MSymbol lang,
+ MSymbol name);
+
static void
edit_im (GtkTreeView *tree, MSymbol lang, MSymbol name)
{
- GtkWidget *dialog, *label;
+ GtkWidget *dialog, *notebook, *scrolled, *vbox, *label;
+ GtkTooltips *tip = gtk_tooltips_new ();
gint response;
+ MPlist *plist;
dialog = (gtk_dialog_new_with_buttons
- (_("Edit"),
+ (name == Mnil ? "global" : msymbol_name (name),
GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (tree))),
GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR,
- _("Default"), 0,
- GTK_STOCK_REVERT_TO_SAVED, GTK_RESPONSE_NO,
- GTK_STOCK_EDIT, GTK_RESPONSE_YES,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
NULL));
- label = gtk_label_new (msymbol_name (name));
- gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), label);
- gtk_widget_show_all (dialog);
- response = gtk_dialog_run (GTK_DIALOG (dialog));
- if (response != GTK_RESPONSE_CANCEL
- && lang == Mt && (name == Mnil || name == msymbol ("unicode")))
- {
- MSymbol variable = msymbol (name == Mnil ? "candidates-group-size"
- : "prompt");
+ gtk_widget_set_size_request (dialog, 500, 300);
- if (response == GTK_RESPONSE_NO)
- {
- minput_config_variable (lang, name, variable, NULL);
- }
- else if (response == 0)
- {
- MPlist *plist = mplist ();
-
- minput_config_variable (lang, name, variable, plist);
- m17n_object_unref (plist);
- }
- else
- {
- MPlist *plist = mplist ();
+ notebook = gtk_notebook_new ();
+ gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), notebook);
- if (name == Mnil)
- {
- mplist_add (plist, Minteger, (void *) 3);
- }
- else
- {
- MText *mt = mtext_from_data (">>", 2, MTEXT_FORMAT_US_ASCII);
- mplist_add (plist, Mtext, mt);
- m17n_object_unref (mt);
- }
- minput_config_variable (lang, name, variable, plist);
- m17n_object_unref (plist);
- }
- }
+ /* Variables' page */
+ scrolled = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ label = gtk_label_new_with_mnemonic ("_Variables");
+ gtk_notebook_append_page (GTK_NOTEBOOK (notebook), scrolled, label);
+ vbox = gtk_vbox_new (FALSE, 0);
+ gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled),
+ vbox);
+ gtk_box_pack_start (GTK_BOX (vbox),
+ create_variable_entries (tip, lang, name),
+ FALSE, FALSE, 0);
+
+ /* Commands' pages */
+ scrolled = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+ label = gtk_label_new_with_mnemonic ("Co_mmands");
+ gtk_notebook_append_page (GTK_NOTEBOOK (notebook), scrolled, label);
+ vbox = gtk_vbox_new (FALSE, 0);
+ gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled),
+ vbox);
+ gtk_box_pack_start (GTK_BOX (vbox),
+ create_command_entries (tip, lang, name),
+ FALSE, FALSE, 0);
+ gtk_widget_show_all (dialog);
+ gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
}
renderer = gtk_cell_renderer_text_new ();
column = (gtk_tree_view_column_new_with_attributes
- (_("status"), renderer, "text", COL_STATUS_STR, NULL));
+ (_("Status"), renderer, "text", COL_STATUS_STR, NULL));
gtk_tree_view_append_column (GTK_TREE_VIEW (tree), column);
g_signal_connect (G_OBJECT (tree), "row-expanded",