// Title
char* title;
+ // Status
+ char* status;
+
// Flags what to show
int flags;
if (p->parent)
pakfire_progress_unref(p->parent);
+ if (p->status)
+ free(p->status);
if (p->title)
free(p->title);
if (p->ctx)
r = vasprintf(&p->title, format, args);
va_end(args);
+ // Fail
+ if (r < 0)
+ return r;
+
+ // If we have a parent, we set this title as their status
+ if (p->parent) {
+ r = pakfire_progress_set_status(p->parent, "%s", p->title);
+ if (r < 0)
+ return r;
+ }
+
+ return 0;
+}
+
+const char* pakfire_progress_get_status(struct pakfire_progress* p) {
+ return p->status;
+}
+
+int pakfire_progress_set_status(struct pakfire_progress* p, const char* format, ...) {
+ va_list args;
+ int r;
+
+ // Format the status
+ va_start(args, format);
+ r = vasprintf(&p->status, format, args);
+ va_end(args);
+
// Fail
if (r < 0)
return r;
struct pakfire_progress* pakfire_progress_get_parent(struct pakfire_progress* p);
unsigned long int pakfire_progress_get_value(struct pakfire_progress* p);
unsigned long int pakfire_progress_get_max_value(struct pakfire_progress* p);
-const char* pakfire_progress_get_title(struct pakfire_progress* p);
double pakfire_progress_get_percentage(struct pakfire_progress* p);
time_t pakfire_progress_get_elapsed_time(struct pakfire_progress* p);
time_t pakfire_progress_get_eta(struct pakfire_progress* p);
int pakfire_progress_increment(struct pakfire_progress* p, unsigned long int value);
int pakfire_progress_reset(struct pakfire_progress* p);
+const char* pakfire_progress_get_title(struct pakfire_progress* p);
int pakfire_progress_set_title(struct pakfire_progress* p, const char* format, ...)
__attribute__((format(printf, 2, 3)));
+const char* pakfire_progress_get_status(struct pakfire_progress* p);
+int pakfire_progress_set_status(struct pakfire_progress* p, const char* format, ...)
+ __attribute__((format(printf, 2, 3)));
void pakfire_progress_set_max_value(struct pakfire_progress* p, unsigned long int value);
#endif /* PAKFIRE_PROGRESS_H */