/*
** 1998-09-30 -	Header file for the progress reporting module. This is a pretty
**		"big" interface, since it's a mess. ;^) Tautologies rule.
*/

typedef enum { PGS_CANCEL, PGS_PROCEED } PgsRes;

#define	PFLG_COUNT_RECURSIVE	(1<<0)	/* Count # of items recursively? */
#define	PFLG_ITEM_VISIBLE	(1<<1)	/* Display progress for individual items? */
#define	PFLG_BYTE_VISIBLE	(1<<2)	/* Display total byte progress? */
#define	PFLG_BUSY_MODE		(1<<10)	/* Just indicate "busyness", no direct filesystem coupling. */

/* ----------------------------------------------------------------------------------------- */

void	pgs_progress_begin(MainInfo *min, const gchar *op_name, guint32 flags);

void	pgs_progress_item_begin(MainInfo *min, const gchar *name, gsize size);
PgsRes	pgs_progress_item_update(MainInfo *min, gsize pos);
void	pgs_progress_item_end(MainInfo *min);

void	pgs_progress_end(MainInfo *min);
