using System;
///
/// This defines an interface which can be implemented by UI elements
/// which indicate the progress of a long operation.
/// (See ProgressWindow for a typical implementation)
///
/// Based on http://www.codeproject.com/cs/miscctrl/progressdialog.asp
public interface IProgressCallback
{
///
/// If this property is true, then you should abort work
///
///
/// true if this instance is aborting; otherwise, false.
///
bool IsAborting { get; }
///
/// Call this method from the worker thread to initialize
/// the progress callback.
///
/// The minimum.
/// The maximum.
void Begin(int minimum, int maximum);
///
/// Call this method from the worker thread to initialize
/// the progress callback, without setting the range
///
void Begin();
///
/// Call this method from the worker thread to reset the range in the
/// progress callback
///
/// The minimum.
/// The maximum.
void SetRange(int minimum, int maximum);
///
/// Call this method from the worker thread to update the progress text.
///
/// The text.
void SetText(String text);
///
/// Call this method from the worker thread to increase the progress
/// counter by a specified value.
///
/// The val.
void StepTo(int val);
///
/// Call this method from the worker thread to step the progress meter to a
/// particular value.
///
/// The val.
void Increment(int val);
///
/// Call this method from the worker thread to finalize the progress meter
///
void End();
}