Split file src/keybind.[ch] to lib/keybind.[ch] and src/keybind-defaults.[ch].
[midnight-commander.git] / src / file.h
blob958b766b8182895cffc6bbf4fa68abc497fc4621
1 /** \file file.h
2 * \brief Header: File and directory operation routines
3 */
5 #ifndef MC__FILE_H
6 #define MC__FILE_H
8 #include <sys/types.h> /* off_t */
9 #include <sys/time.h>
11 #include "lib/global.h"
12 #include "lib/widget.h"
14 #include "fileopctx.h"
16 /*** typedefs(not structures) and defined constants **********************************************/
18 /* Compute directory size */
19 /* callback to update status dialog */
20 typedef FileProgressStatus (*compute_dir_size_callback) (const void *ui, const char *dirname);
22 /*** enums ***************************************************************************************/
24 /*** structures declarations (and typedefs of structures)*****************************************/
26 struct link;
28 /* status dialog of directory size computing */
29 typedef struct
31 Dlg_head *dlg;
32 WLabel *dirname;
33 } ComputeDirSizeUI;
35 /*** global variables defined in .c file *********************************************************/
37 extern int file_op_compute_totals;
39 /*** declarations of public functions ************************************************************/
41 FileProgressStatus copy_file_file (FileOpTotalContext * tctx, FileOpContext * ctx,
42 const char *src_path, const char *dst_path);
43 FileProgressStatus move_dir_dir (FileOpTotalContext * tctx, FileOpContext * ctx,
44 const char *s, const char *d);
45 FileProgressStatus copy_dir_dir (FileOpTotalContext * tctx, FileOpContext * ctx,
46 const char *s, const char *d,
47 gboolean toplevel, gboolean move_over, gboolean do_delete,
48 struct link *parent_dirs);
49 FileProgressStatus erase_dir (FileOpTotalContext * tctx, FileOpContext * ctx, const char *s);
51 gboolean panel_operate (void *source_panel, FileOperation op, gboolean force_single);
53 /* Error reporting routines */
55 /* Report error with one file */
56 FileProgressStatus file_error (const char *format, const char *file);
58 /* return value is FILE_CONT or FILE_ABORT */
59 FileProgressStatus compute_dir_size (const char *dirname, const void *ui,
60 compute_dir_size_callback cback,
61 off_t * ret_marked, double *ret_total,
62 gboolean compute_symlinks);
65 ComputeDirSizeUI *compute_dir_size_create_ui (void);
66 void compute_dir_size_destroy_ui (ComputeDirSizeUI * ui);
67 FileProgressStatus compute_dir_size_update_ui (const void *ui, const char *dirname);
69 /*** inline functions ****************************************************************************/
70 #endif /* MC__FILE_H */