static void preferences_response (MCPrefsDialog *dialog, int id, MCData *mc) { switch (id) { case GTK_RESPONSE_HELP: show_help_section (GTK_WINDOW (dialog), "command-line-prefs-0"); break; case GTK_RESPONSE_CLOSE: default: { GtkTreeViewColumn *col; dialog = &mc->prefs_dialog; /* A hack to make sure 'edited' on the renderer if we * close the dialog while editing. */ col = gtk_tree_view_get_column (GTK_TREE_VIEW (dialog->macros_tree), 0); if (col->editable_widget && GTK_IS_CELL_EDITABLE (col->editable_widget)) gtk_cell_editable_editing_done (col->editable_widget); col = gtk_tree_view_get_column (GTK_TREE_VIEW (dialog->macros_tree), 1); if (col->editable_widget && GTK_IS_CELL_EDITABLE (col->editable_widget)) gtk_cell_editable_editing_done (col->editable_widget); gtk_widget_hide (dialog->dialog); } break; } }
static void preferences_response (MCPrefsDialog *dialog, int id, MCData *mc) { switch (id) { case GTK_RESPONSE_HELP: show_help_section (GTK_WINDOW (dialog), "command-line-prefs-0"); break; case GTK_RESPONSE_CLOSE: default: { GtkTreeViewColumn *col; GtkCellArea *area; GtkCellEditable *edit_widget; dialog = &mc->prefs_dialog; /* A hack to make sure 'edited' on the renderer if we * close the dialog while editing. */ col = gtk_tree_view_get_column (GTK_TREE_VIEW (dialog->macros_tree), 0); area = gtk_cell_layout_get_area (GTK_CELL_LAYOUT (col)); edit_widget = gtk_cell_area_get_edit_widget (area); if (edit_widget) gtk_cell_editable_editing_done (edit_widget); col = gtk_tree_view_get_column (GTK_TREE_VIEW (dialog->macros_tree), 1); area = gtk_cell_layout_get_area (GTK_CELL_LAYOUT (col)); edit_widget = gtk_cell_area_get_edit_widget (area); if (edit_widget) gtk_cell_editable_editing_done (edit_widget); gtk_widget_hide (dialog->dialog); } break; } }
static void add_response (GtkWidget *window, int id, MCData *mc) { MCPrefsDialog *dialog; dialog = &mc->prefs_dialog; switch (id) { case GTK_RESPONSE_OK: { const char *pattern; const char *command; GtkTreeIter iter; const char *error_message = NULL; pattern = gtk_entry_get_text (GTK_ENTRY (dialog->pattern_entry)); command = gtk_entry_get_text (GTK_ENTRY (dialog->command_entry)); if (!pattern || !pattern [0]) error_message = _("You must specify a pattern"); if (!command || !command [0]) error_message = error_message != NULL ? _("You must specify a pattern and a command") : _("You must specify a command"); if (!error_message && duplicate_pattern (mc, pattern)) error_message = _("You may not specify duplicate patterns"); if (error_message) { GtkWidget *error_dialog; error_dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, error_message); g_signal_connect (error_dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); gtk_window_set_resizable (GTK_WINDOW (error_dialog), FALSE); gtk_widget_show_all (error_dialog); return; } gtk_widget_hide (window); gtk_list_store_append (dialog->macros_store, &iter); gtk_list_store_set (dialog->macros_store, &iter, COLUMN_PATTERN, pattern, COLUMN_COMMAND, command, -1); gtk_tree_view_columns_autosize (GTK_TREE_VIEW (dialog->macros_tree)); gtk_editable_delete_text (GTK_EDITABLE (dialog->pattern_entry), 0, -1); gtk_editable_delete_text (GTK_EDITABLE (dialog->command_entry), 0, -1); save_macros_to_mateconf (mc); } break; case GTK_RESPONSE_HELP: show_help_section (GTK_WINDOW (window), "command-line-prefs-2"); break; case GTK_RESPONSE_CLOSE: default: gtk_editable_delete_text (GTK_EDITABLE (dialog->pattern_entry), 0, -1); gtk_editable_delete_text (GTK_EDITABLE (dialog->command_entry), 0, -1); gtk_widget_hide (window); break; } }