1#ifndef PROCESSPROGRESSINFO_H
2#define PROCESSPROGRESSINFO_H
8#include "XThreadSync.h"
10BEGIN_MOOTOOLS_NAMESPACE
12 typedef enum _ProgressStep
15 PROGRESS_POS_CHANGED = 0x02,
16 PROGRESS_RANGE_CHANGED = 0x04,
17 PROGRESS_TEXT_CHANGED = 0x08,
18 PROGRESS_CHECK_CANCEL = 0x10,
26 DLL_TOOLSFUNCTION
void progressPushCallback(ProcessProgressCallback callback,
void *data);
27 DLL_TOOLSFUNCTION
bool progressPopCallback();
28 DLL_TOOLSFUNCTION ProcessProgressCallback progressGetCallback(
void *&data);
29 DLL_TOOLSFUNCTION
bool progressUserCancel();
48 progressCallCallback(PROGRESS_END, *
this);
117 float GetPercent()
const
120 return (
float)pos/(
float)(max-min);
125 #define PROGRESS_CALLBACK_INIT(title, text, min, max) \
126 bool processProgressCancel = FALSE; \
127 ProcessProgressInfo progressCallbackInfo; \
128 progressCallbackInfo.SetTitle(title); \
129 progressCallbackInfo.SetText(text); \
130 progressCallbackInfo.SetRange((int)min, (int)max); \
131 progressCallCallback(PROGRESS_INIT|PROGRESS_POS_CHANGED|PROGRESS_RANGE_CHANGED|PROGRESS_TEXT_CHANGED, progressCallbackInfo);
133 #define PROGRESS_CALLBACK_INIT2(title, text) \
134 bool processProgressCancel = FALSE; \
135 ProcessProgressInfo progressCallbackInfo; \
136 progressCallbackInfo.SetTitle(title); \
137 progressCallbackInfo.SetText(text); \
138 progressCallCallback(PROGRESS_INIT|PROGRESS_TEXT_CHANGED, progressCallbackInfo);
140 #define PROGRESS_SET_RANGE(min, max) \
141 progressCallbackInfo.SetRange((int)min, (int)max); \
142 progressCallCallback(PROGRESS_RANGE_CHANGED, progressCallbackInfo);
144 #define PROGRESS_SET_POS(pos) \
145 progressCallbackInfo.SetPos((int)pos); \
146 progressCallCallback(PROGRESS_POS_CHANGED, progressCallbackInfo);
148 #define PROGRESS_USER_CANCEL processProgressCancel
150 #define PROGRESS_CHECK_CANCEL(action) \
151 if (processProgressCancel) \
154 #define PROGRESS_STEP(pos, modulo, action) \
156 if (((int)pos) % modulo) \
158 PROGRESS_SET_POS(pos) \
159 processProgressCancel = progressCallCallback(PROGRESS_POS_CHANGED|PROGRESS_CHECK_CANCEL, progressCallbackInfo); \
160 if (processProgressCancel) \
164END_MOOTOOLS_NAMESPACE
The class defines an x, y, z 3D point which can use int, float or double.
Definition 3DPoint.h:27
Definition XThreadSync.h:20
Definition XThreadSync.h:38
Definition ProcessProgressInfo.h:32