1 /* vifm 2 * Copyright (C) 2014 xaizek. 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License as published by 6 * the Free Software Foundation; either version 2 of the License, or 7 * (at your option) any later version. 8 * 9 * This program is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 * GNU General Public License for more details. 13 * 14 * You should have received a copy of the GNU General Public License 15 * along with this program; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 17 */ 18 19 #ifndef VIFM__IO__IONOTIF_H__ 20 #define VIFM__IO__IONOTIF_H__ 21 22 #include "ioeta.h" 23 24 /* ionotif - client code callbacks management */ 25 26 /* Possible progress stage. */ 27 typedef enum 28 { 29 IO_PS_ESTIMATING, /* Estimating amount of time needed by operation. */ 30 IO_PS_IN_PROGRESS, /* Performing operation. */ 31 } 32 IoPs; 33 34 /* Packed information on operation progress. */ 35 typedef struct 36 { 37 IoPs stage; /* Operation stage. */ 38 ioeta_estim_t *estim; /* Estimation object. */ 39 } 40 io_progress_t; 41 42 /* Estimations change callback prototype. */ 43 typedef void (*ionotif_progress_changed)(const io_progress_t *progress); 44 45 /* Registers callback invoked when estimations are changed. The handle can be 46 * NULL to disable notifications. */ 47 void ionotif_register(ionotif_progress_changed handler); 48 49 #endif /* VIFM__IO__IONOTIF_H__ */ 50 51 /* vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 : */ 52 /* vim: set cinoptions+=t0 filetype=c : */ 53