root/src/filemanager/file.h

/* [previous][next][first][last][top][bottom][index][help]  */

INCLUDED FROM


   1 /** \file  file.h
   2  *  \brief Header: File and directory operation routines
   3  */
   4 
   5 #ifndef MC__FILE_H
   6 #define MC__FILE_H
   7 
   8 #include <inttypes.h>           /* off_t, uintmax_t */
   9 
  10 #include "lib/global.h"
  11 #include "lib/widget.h"
  12 
  13 #include "fileopctx.h"
  14 
  15 /*** typedefs(not structures) and defined constants **********************************************/
  16 
  17 typedef struct dirsize_status_msg_t dirsize_status_msg_t;
  18 
  19 /*** enums ***************************************************************************************/
  20 
  21 /*** structures declarations (and typedefs of structures)*****************************************/
  22 
  23 /* status dialog of directory size computing */
  24 struct dirsize_status_msg_t
  25 {
  26     status_msg_t status_msg;    /* base class */
  27 
  28     gboolean allow_skip;
  29     WLabel *dirname;
  30     WLabel *count_size;
  31     Widget *abort_button;
  32     Widget *skip_button;
  33     const vfs_path_t *dirname_vpath;
  34     size_t dir_count;
  35     uintmax_t total_size;
  36 };
  37 
  38 /*** global variables defined in .c file *********************************************************/
  39 
  40 /*** declarations of public functions ************************************************************/
  41 
  42 gboolean file_is_symlink_to_dir (const vfs_path_t * path, struct stat *st, gboolean * stale_link);
  43 
  44 FileProgressStatus copy_file_file (file_op_total_context_t * tctx, file_op_context_t * ctx,
  45                                    const char *src_path, const char *dst_path);
  46 FileProgressStatus move_dir_dir (file_op_total_context_t * tctx, file_op_context_t * ctx,
  47                                  const char *s, const char *d);
  48 FileProgressStatus copy_dir_dir (file_op_total_context_t * tctx, file_op_context_t * ctx,
  49                                  const char *s, const char *d,
  50                                  gboolean toplevel, gboolean move_over, gboolean do_delete,
  51                                  GSList * parent_dirs);
  52 FileProgressStatus erase_dir (file_op_total_context_t * tctx, file_op_context_t * ctx,
  53                               const vfs_path_t * vpath);
  54 
  55 gboolean panel_operate (void *source_panel, FileOperation op, gboolean force_single);
  56 
  57 /* Error reporting routines */
  58 
  59 /* Report error with one file */
  60 FileProgressStatus file_error (gboolean allow_retry, const char *format, const char *file);
  61 
  62 /* return value is FILE_CONT or FILE_ABORT */
  63 FileProgressStatus compute_dir_size (const vfs_path_t * dirname_vpath, dirsize_status_msg_t * sm,
  64                                      size_t *ret_dir_count, size_t *ret_marked_count,
  65                                      uintmax_t * ret_total, gboolean follow_symlinks);
  66 
  67 void dirsize_status_init_cb (status_msg_t * sm);
  68 int dirsize_status_update_cb (status_msg_t * sm);
  69 void dirsize_status_deinit_cb (status_msg_t * sm);
  70 
  71 /*** inline functions ****************************************************************************/
  72 #endif /* MC__FILE_H */

/* [previous][next][first][last][top][bottom][index][help]  */