struct GeditSaveFileHandle { GnomeVFSAsyncHandle *handle; GeditGetDataCallback data_callback; GeditFileSavedCallback file_saved_callback; GeditSaveMoreCallback save_more_callback; gpointer callback_data; gchar *buffer; GnomeVFSFileSize bytes_saved; // eventualmente altri }; typedef enum { GEDIT_SAVE_FILE_CREATE_BACKUP = 1 } GeditSaveFileFlags; typedef gchar (* GeditGetDataCallback) (const gchar *uri, GError **error gpointer callback_data); typedef void (* GeditFileSavedCallback) (GnomeVFSResult result, GnomeVFSFileSize file_size, gpointer callback_data); typedef gboolean (* GeditSaveMoreCallback) (GnomeVFSFileSize file_size, GnomeVFSFileSice bytes_written, gpointer callback_data); GeditSaveFileHandle * gedit_save_file_async (const char *uri, gint priority, GeditSaveFileFlags flags, GeditGetDataCallback data_callback, GeditFileSavedCallback file_saved_callback, GeditSaveMoreCallback save_more_callback, gpointer callback_data);