Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
progress.c File Reference
#include "system/macros.h"
#include "system/mem_alloc.h"
#include "gui/application.h"
#include "common/dbus.h"
#include "control/progress.h"
#include "control/control.h"
#include <gdk/gdkwin32.h>
+ Include dependency graph for progress.c:

Go to the source code of this file.

Data Structures

struct  _dt_progress_t
 

Macros

#define ITaskbarList3_SetProgressValue(This, hwnd, ullCompleted, ullTotal)   (This)->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal)
 
#define ITaskbarList3_SetProgressState(This, hwnd, tbpFlags)   (This)->lpVtbl->SetProgressState(This,hwnd,tbpFlags)
 
#define ITaskbarList3_HrInit(This)   (This)->lpVtbl->HrInit(This)
 

Typedefs

typedef struct _dt_progress_t _dt_progress_t
 

Functions

static HWND _taskbar_window (void)
 
static void global_progress_start (dt_control_t *control, dt_progress_t *progress)
 
static void global_progress_set (dt_control_t *control, dt_progress_t *progress, double value)
 
static void global_progress_end (dt_control_t *control, dt_progress_t *progress)
 
void dt_control_progress_init (struct dt_control_t *control)
 
dt_progress_t * dt_control_progress_create (dt_control_t *control, gboolean has_progress_bar, const gchar *message)
 
void dt_control_progress_destroy (dt_control_t *control, dt_progress_t *progress)
 
void dt_control_progress_make_cancellable (struct dt_control_t *control, dt_progress_t *progress, dt_progress_cancel_callback_t cancel, void *data)
 
static void dt_control_progress_cancel_callback (dt_progress_t *progress, void *data)
 
void dt_control_progress_attach_job (dt_control_t *control, dt_progress_t *progress, dt_job_t *job)
 
void dt_control_progress_cancel (dt_control_t *control, dt_progress_t *progress)
 
void dt_control_progress_set_progress (dt_control_t *control, dt_progress_t *progress, double value)
 
double dt_control_progress_get_progress (dt_progress_t *progress)
 
const gchar * dt_control_progress_get_message (dt_progress_t *progress)
 
void dt_control_progress_set_message (dt_control_t *control, dt_progress_t *progress, const char *message)
 
void dt_control_progress_foreach (dt_control_t *control, dt_progress_foreach_callback_t callback, void *data)
 
void dt_control_progress_set_gui_data (dt_progress_t *progress, void *data)
 
void * dt_control_progress_get_gui_data (dt_progress_t *progress)
 
gboolean dt_control_progress_has_progress_bar (dt_progress_t *progress)
 
gboolean dt_control_progress_cancellable (dt_progress_t *progress)
 

Macro Definition Documentation

◆ ITaskbarList3_HrInit

#define ITaskbarList3_HrInit (   This)    (This)->lpVtbl->HrInit(This)

Definition at line 52 of file progress.c.

◆ ITaskbarList3_SetProgressState

#define ITaskbarList3_SetProgressState (   This,
  hwnd,
  tbpFlags 
)    (This)->lpVtbl->SetProgressState(This,hwnd,tbpFlags)

Definition at line 49 of file progress.c.

◆ ITaskbarList3_SetProgressValue

#define ITaskbarList3_SetProgressValue (   This,
  hwnd,
  ullCompleted,
  ullTotal 
)    (This)->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal)

Definition at line 46 of file progress.c.

Typedef Documentation

◆ _dt_progress_t

Function Documentation

◆ _taskbar_window()

static HWND _taskbar_window ( void  )
static

◆ dt_control_progress_attach_job()

void dt_control_progress_attach_job ( struct dt_control_t *  control,
dt_progress_t *  progress,
struct _dt_job_t *  job 
)

convenience function to cancel a job when the progress gets cancelled.

Definition at line 353 of file progress.c.

References dt_control_progress_cancel_callback(), and dt_control_progress_make_cancellable().

Referenced by dt_control_job_add_progress().

◆ dt_control_progress_cancel()

void dt_control_progress_cancel ( struct dt_control_t *  control,
dt_progress_t *  progress 
)

◆ dt_control_progress_cancel_callback()

static void dt_control_progress_cancel_callback ( dt_progress_t *  progress,
void *  data 
)
static

Definition at line 348 of file progress.c.

References dt_control_job_cancel().

Referenced by dt_control_progress_attach_job().

◆ dt_control_progress_cancellable()

gboolean dt_control_progress_cancellable ( dt_progress_t *  progress)

has a job been linked to the progress object?

Definition at line 460 of file progress.c.

References _dt_progress_t::cancel, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), IS_NULL_PTR, _dt_progress_t::mutex, and res.

Referenced by gui_init().

◆ dt_control_progress_create()

dt_progress_t * dt_control_progress_create ( struct dt_control_t *  control,
gboolean  has_progress_bar,
const gchar *  message 
)

◆ dt_control_progress_destroy()

◆ dt_control_progress_foreach()

void dt_control_progress_foreach ( struct dt_control_t *  control,
dt_progress_foreach_callback_t  callback,
void *  data 
)

call back for every progress object alive, oldest first. Runs under the locks of the progress system: the callback must not call back into it.

Definition at line 424 of file progress.c.

References dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_control_t::list, _dt_progress_t::message, dt_control_t::mutex, _dt_progress_t::mutex, and dt_control_t::progress_system.

Referenced by _closing_refresh().

◆ dt_control_progress_get_gui_data()

void * dt_control_progress_get_gui_data ( dt_progress_t *  progress)

◆ dt_control_progress_get_message()

const gchar * dt_control_progress_get_message ( dt_progress_t *  progress)

get the message passed during construction.

Definition at line 401 of file progress.c.

References dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), _dt_progress_t::message, _dt_progress_t::mutex, and res.

Referenced by gui_init().

◆ dt_control_progress_get_progress()

double dt_control_progress_get_progress ( dt_progress_t *  progress)

return the last set progress value.

Definition at line 393 of file progress.c.

References dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), _dt_progress_t::mutex, _dt_progress_t::progress, and res.

Referenced by dt_control_job_get_progress(), global_progress_end(), and gui_init().

◆ dt_control_progress_has_progress_bar()

gboolean dt_control_progress_has_progress_bar ( dt_progress_t *  progress)

does the progress object have a progress bar in its gui?

Definition at line 452 of file progress.c.

References dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), _dt_progress_t::has_progress_bar, _dt_progress_t::mutex, and res.

Referenced by gui_init().

◆ dt_control_progress_init()

void dt_control_progress_init ( struct dt_control_t *  control)

Definition at line 244 of file progress.c.

References dt_dbus_t::dbus_connection, dt_dbus_get_global(), error(), FALSE, and params.

Referenced by dt_init().

◆ dt_control_progress_make_cancellable()

void dt_control_progress_make_cancellable ( struct dt_control_t *  control,
dt_progress_t *  progress,
dt_progress_cancel_callback_t  cancel,
void *  data 
)

◆ dt_control_progress_set_gui_data()

void dt_control_progress_set_gui_data ( dt_progress_t *  progress,
void *  data 
)

these functions are to be used by lib/backgroundjobs.c only.

Definition at line 437 of file progress.c.

References dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), _dt_progress_t::gui_data, and _dt_progress_t::mutex.

Referenced by gui_init().

◆ dt_control_progress_set_message()

◆ dt_control_progress_set_progress()

void dt_control_progress_set_progress ( struct dt_control_t *  control,
dt_progress_t *  progress,
double  value 
)

◆ global_progress_end()

◆ global_progress_set()

◆ global_progress_start()