code: func FileChooserDialogNewWith1Button(
  	title string,
  	parent *Window,
  	action FileChooserAction,
  	first_button_text string,
  	first_button_id ResponseType) (*FileChooserDialog, error) {
  	c_title := C.CString(title)
  	defer C.free(unsafe.Pointer(c_title))
  	c_first_button_text := C.CString(first_button_text)
  	defer C.free(unsafe.Pointer(c_first_button_text))
  	c := C.gtk_file_chooser_dialog_new_1(
  		(*C.gchar)(c_title), parent.native(), C.GtkFileChooserAction(action),
  		(*C.gchar)(c_first_button_text), C.int(first_button_id))
  	if c == nil {
  		return nil, nilPtrErr
  	}
  	obj := glib.Take(unsafe.Pointer(c))
  	return wrapFileChooserDialog(obj), nil
  }
docs: // FileChooserDialogNewWith1Button is a wrapper around gtk_file_chooser_dialog_new() with one button.