Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifdef HAVE_CONFIG_H
00012 # include <config.h>
00013 #endif
00014
00015 #define DISABLE_DEBUGLOG
00016
00017
00018 #include "progressdata_p.h"
00019
00020 #include <gwenhywfar/misc.h>
00021 #include <gwenhywfar/debug.h>
00022
00023
00024
00025
00026 GWEN_TREE_FUNCTIONS(GWEN_PROGRESS_DATA, GWEN_ProgressData)
00027
00028
00029
00030
00031 GWEN_PROGRESS_DATA *GWEN_ProgressData_new(GWEN_GUI *gui,
00032 uint32_t id,
00033 uint32_t progressFlags,
00034 const char *title,
00035 const char *text,
00036 uint64_t total) {
00037 GWEN_PROGRESS_DATA *pd;
00038
00039 GWEN_NEW_OBJECT(GWEN_PROGRESS_DATA, pd);
00040 GWEN_TREE_INIT(GWEN_PROGRESS_DATA, pd);
00041
00042 pd->gui=gui;
00043 pd->id=id;
00044 pd->flags=progressFlags;
00045 if (title)
00046 pd->title=strdup(title);
00047 if (text)
00048 pd->text=strdup(text);
00049 pd->total=total;
00050
00051 pd->logBuf=GWEN_Buffer_new(0, 1024, 0, 1);
00052 pd->startTime=time(0);
00053
00054 return pd;
00055 }
00056
00057
00058
00059 void GWEN_ProgressData_free(GWEN_PROGRESS_DATA *pd) {
00060 if (pd) {
00061 GWEN_TREE_FINI(GWEN_PROGRESS_DATA, pd);
00062 free(pd->title);
00063 free(pd->text);
00064 GWEN_Buffer_free(pd->logBuf);
00065 GWEN_FREE_OBJECT(pd);
00066 }
00067 }
00068
00069
00070
00071 GWEN_GUI *GWEN_ProgressData_GetGui(const GWEN_PROGRESS_DATA *pd) {
00072 assert(pd);
00073 return pd->gui;
00074 }
00075
00076
00077
00078 uint32_t GWEN_ProgressData_GetId(const GWEN_PROGRESS_DATA *pd) {
00079 assert(pd);
00080 return pd->id;
00081 }
00082
00083
00084
00085 uint32_t GWEN_ProgressData_GetPreviousId(const GWEN_PROGRESS_DATA *pd) {
00086 assert(pd);
00087 return pd->previousId;
00088 }
00089
00090
00091
00092 void GWEN_ProgressData_SetPreviousId(GWEN_PROGRESS_DATA *pd, uint32_t i) {
00093 assert(pd);
00094 pd->previousId=i;
00095 }
00096
00097
00098
00099 uint32_t GWEN_ProgressData_GetFlags(const GWEN_PROGRESS_DATA *pd) {
00100 assert(pd);
00101 return pd->flags;
00102 }
00103
00104
00105
00106 void GWEN_ProgressData_AddFlags(GWEN_PROGRESS_DATA *pd, uint32_t fl) {
00107 assert(pd);
00108 pd->flags|=fl;
00109 }
00110
00111
00112
00113 void GWEN_ProgressData_SubFlags(GWEN_PROGRESS_DATA *pd, uint32_t fl) {
00114 assert(pd);
00115 pd->flags&=~fl;
00116 }
00117
00118
00119
00120 const char *GWEN_ProgressData_GetTitle(const GWEN_PROGRESS_DATA *pd) {
00121 assert(pd);
00122 return pd->title;
00123 }
00124
00125
00126
00127 const char *GWEN_ProgressData_GetText(const GWEN_PROGRESS_DATA *pd) {
00128 assert(pd);
00129 return pd->text;
00130 }
00131
00132
00133
00134 uint64_t GWEN_ProgressData_GetTotal(const GWEN_PROGRESS_DATA *pd) {
00135 assert(pd);
00136 return pd->total;
00137 }
00138
00139
00140
00141 uint64_t GWEN_ProgressData_GetCurrent(const GWEN_PROGRESS_DATA *pd) {
00142 assert(pd);
00143 return pd->current;
00144 }
00145
00146
00147
00148 void GWEN_ProgressData_SetCurrent(GWEN_PROGRESS_DATA *pd, uint64_t i) {
00149 assert(pd);
00150 pd->current=i;
00151 }
00152
00153
00154
00155 void GWEN_ProgressData_SetTotal(GWEN_PROGRESS_DATA *pd, uint64_t i) {
00156 assert(pd);
00157 pd->total=i;
00158 }
00159
00160
00161
00162 GWEN_BUFFER *GWEN_ProgressData_GetLogBuf(const GWEN_PROGRESS_DATA *pd) {
00163 assert(pd);
00164 return pd->logBuf;
00165 }
00166
00167
00168
00169 const char *GWEN_ProgressData_GetLogText(const GWEN_PROGRESS_DATA *pd) {
00170 assert(pd);
00171 return GWEN_Buffer_GetStart(pd->logBuf);
00172 }
00173
00174
00175
00176 void GWEN_ProgressData_ClearLogText(GWEN_PROGRESS_DATA *pd) {
00177 assert(pd);
00178 GWEN_Buffer_Reset(pd->logBuf);
00179 }
00180
00181
00182
00183 void GWEN_ProgressData_AddLogText(GWEN_PROGRESS_DATA *pd,
00184 GWEN_LOGGER_LEVEL level,
00185 const char *s) {
00186 assert(pd);
00187 GWEN_Buffer_AppendString(pd->logBuf, s);
00188 }
00189
00190
00191
00192 int GWEN_ProgressData_GetAborted(const GWEN_PROGRESS_DATA *pd) {
00193 assert(pd);
00194 return pd->aborted;
00195 }
00196
00197
00198
00199 void GWEN_ProgressData_SetAborted(GWEN_PROGRESS_DATA *pd, int i) {
00200 assert(pd);
00201 pd->aborted=i;
00202 }
00203
00204
00205
00206 int GWEN_ProgressData_GetShown(const GWEN_PROGRESS_DATA *pd) {
00207 assert(pd);
00208 return pd->shown;
00209 }
00210
00211
00212
00213 void GWEN_ProgressData_SetShown(GWEN_PROGRESS_DATA *pd, int i) {
00214 assert(pd);
00215 pd->shown=i;
00216 }
00217
00218
00219
00220 time_t GWEN_ProgressData_GetStartTime(const GWEN_PROGRESS_DATA *pd) {
00221 assert(pd);
00222 return pd->startTime;
00223 }
00224
00225
00226
00227 void GWEN_ProgressData_SetStartTime(GWEN_PROGRESS_DATA *pd, time_t t) {
00228 assert(pd);
00229 pd->startTime=t;
00230 }
00231
00232
00233
00234 time_t GWEN_ProgressData_GetCheckTime(const GWEN_PROGRESS_DATA *pd) {
00235 assert(pd);
00236 return pd->checkTime;
00237 }
00238
00239
00240
00241 void GWEN_ProgressData_SetCheckTime(GWEN_PROGRESS_DATA *pd, time_t t) {
00242 assert(pd);
00243 pd->checkTime=t;
00244 }
00245
00246
00247
00248 GWEN_DIALOG *GWEN_ProgressData_GetDialog(const GWEN_PROGRESS_DATA *pd) {
00249 assert(pd);
00250 return pd->dialog;
00251 }
00252
00253
00254
00255 void GWEN_ProgressData_SetDialog(GWEN_PROGRESS_DATA *pd, GWEN_DIALOG *dlg) {
00256 assert(pd);
00257 pd->dialog=dlg;
00258 }
00259
00260
00261
00262 GWEN_PROGRESS_DATA *GWEN_ProgressData_Tree_FindProgressById(GWEN_PROGRESS_DATA_TREE *pt, uint32_t id) {
00263 GWEN_PROGRESS_DATA *pd;
00264
00265 pd=GWEN_ProgressData_Tree_GetFirst(pt);
00266 while(pd) {
00267 if (GWEN_ProgressData_GetId(pd)==id)
00268 break;
00269 pd=GWEN_ProgressData_Tree_GetBelow(pd);
00270 }
00271
00272 return pd;
00273 }
00274
00275
00276
00277
00278
00279
00280
00281
00282
00283
00284