40#include <gtkosxapplication.h>
44#include <gdk/gdkwin32.h>
45#ifndef ITaskbarList3_SetProgressValue
46 #define ITaskbarList3_SetProgressValue(This,hwnd,ullCompleted,ullTotal) (This)->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal)
48#ifndef ITaskbarList3_SetProgressState
49 #define ITaskbarList3_SetProgressState(This,hwnd,tbpFlags) (This)->lpVtbl->SetProgressState(This,hwnd,tbpFlags)
51#ifndef ITaskbarList3_HrInit
52 #define ITaskbarList3_HrInit(This) (This)->lpVtbl->HrInit(This)
93 GVariantBuilder builder;
94 g_variant_builder_init(&builder, G_VARIANT_TYPE(
"a{sv}"));
96 g_variant_builder_add(&builder,
"{sv}",
"progress-visible", g_variant_new_boolean(
TRUE));
97 GVariant *
params = g_variant_new(
"(sa{sv})",
"application://photos.ansel.Ansel.desktop", &builder);
100 "com.canonical.Unity",
102 "com.canonical.Unity.LauncherEntry",
108 fprintf(stderr,
"[progress_create] dbus error: %s\n",
error->message);
122 if(CoCreateInstance(&CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, &IID_ITaskbarList3, (
void **)&taskbarlist) == S_OK)
130 fprintf(stderr,
"[progress_create] SetProgressState failed\n");
132 fprintf(stderr,
"[progress_create] SetProgressValue failed\n");
146 GError *
error = NULL;
148 GVariantBuilder builder;
149 g_variant_builder_init(&builder, G_VARIANT_TYPE(
"a{sv}"));
151 GVariant *
params = g_variant_new(
"(sa{sv})",
"application://photos.ansel.Ansel.desktop", &builder);
154 "com.canonical.Unity",
156 "com.canonical.Unity.LauncherEntry",
162 fprintf(stderr,
"[progress_set] dbus error: %s\n",
error->message);
173 fprintf(stderr,
"[progress_create] SetProgressValue failed\n");
197 GError *
error = NULL;
199 GVariantBuilder builder;
200 g_variant_builder_init(&builder, G_VARIANT_TYPE(
"a{sv}"));
202 g_variant_builder_add(&builder,
"{sv}",
"progress-visible", g_variant_new_boolean(
FALSE));
204 GVariant *
params = g_variant_new(
"(sa{sv})",
"application://photos.ansel.Ansel.desktop", &builder);
207 "com.canonical.Unity",
209 "com.canonical.Unity.LauncherEntry",
215 fprintf(stderr,
"[progress_destroy] dbus error: %s\n",
error->message);
231 fprintf(stderr,
"[progress_create] SetProgressState failed\n");
237 fprintf(stderr,
"[progress_create] SetProgressValue failed\n");
250 GError *
error = NULL;
252 GVariantBuilder builder;
253 g_variant_builder_init(&builder, G_VARIANT_TYPE(
"a{sv}"));
254 g_variant_builder_add(&builder,
"{sv}",
"progress-visible", g_variant_new_boolean(
FALSE));
255 GVariant *
params = g_variant_new(
"(sa{sv})",
"application://photos.ansel.Ansel.desktop", &builder);
258 "com.canonical.Unity",
260 "com.canonical.Unity.LauncherEntry",
266 fprintf(stderr,
"[progress_init] dbus error: %s\n",
error->message);
283 const gchar *message)
290 progress->
message = g_strdup(message);
303 has_progress_bar, message);
336 progress->
cancel = cancel;
413 progress->
message = g_strdup(message);
431 callback(progress->
message, data);
GtkWidget * dt_gui_main_window(void)
static void error(char *msg)
struct dt_gui_gtk_t * dt_gui_get_global(void)
struct dt_dbus_t * dt_dbus_get_global(void)
static int dt_pthread_mutex_unlock(dt_pthread_mutex_t *mutex) RELEASE(mutex) NO_THREAD_SAFETY_ANALYSIS
static int dt_pthread_mutex_init(dt_pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr)
Initialise a mutex. With mutexattr NULL – which is how 54 of the 56 call sites in this tree spell it ...
static int dt_pthread_mutex_destroy(dt_pthread_mutex_t *mutex)
static int dt_pthread_mutex_lock(dt_pthread_mutex_t *mutex) ACQUIRE(mutex) NO_THREAD_SAFETY_ANALYSIS
void dt_control_job_cancel(_dt_job_t *job)
static const dt_iop_drawlayer_params_t * params
#define IS_NULL_PTR(p)
C is way too permissive with !=, == and if(var) checks, which can mean too many things depending on w...
#define dt_free(ptr)
g_free() ptr and set it to NULL, skipping both if it is already NULL.
void dt_control_progress_set_progress(dt_control_t *control, dt_progress_t *progress, double value)
static void dt_control_progress_cancel_callback(dt_progress_t *progress, void *data)
static HWND _taskbar_window(void)
void dt_control_progress_set_message(dt_control_t *control, dt_progress_t *progress, const char *message)
double dt_control_progress_get_progress(dt_progress_t *progress)
gboolean dt_control_progress_cancellable(dt_progress_t *progress)
const gchar * dt_control_progress_get_message(dt_progress_t *progress)
static void global_progress_set(dt_control_t *control, dt_progress_t *progress, double value)
void dt_control_progress_foreach(dt_control_t *control, dt_progress_foreach_callback_t callback, void *data)
static void global_progress_start(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)
dt_progress_t * dt_control_progress_create(dt_control_t *control, gboolean has_progress_bar, const gchar *message)
void dt_control_progress_init(struct dt_control_t *control)
#define ITaskbarList3_SetProgressValue(This, hwnd, ullCompleted, ullTotal)
void dt_control_progress_destroy(dt_control_t *control, dt_progress_t *progress)
#define ITaskbarList3_SetProgressState(This, hwnd, tbpFlags)
void dt_control_progress_set_gui_data(dt_progress_t *progress, void *data)
void dt_control_progress_cancel(dt_control_t *control, dt_progress_t *progress)
void dt_control_progress_attach_job(dt_control_t *control, dt_progress_t *progress, dt_job_t *job)
#define ITaskbarList3_HrInit(This)
static void global_progress_end(dt_control_t *control, dt_progress_t *progress)
gboolean dt_control_progress_has_progress_bar(dt_progress_t *progress)
void * dt_control_progress_get_gui_data(dt_progress_t *progress)
void(* dt_progress_foreach_callback_t)(const gchar *message, void *data)
void(* dt_progress_cancel_callback_t)(dt_progress_t *progress, void *data)
static const dt_aligned_pixel_simd_t value
dt_progress_cancel_callback_t cancel
gboolean has_progress_bar
void(* destroyed)(dt_lib_module_t *self, struct dt_lib_backgroundjob_element_t *instance)
void(* message_updated)(dt_lib_module_t *self, struct dt_lib_backgroundjob_element_t *instance, const char *message)
void(* updated)(dt_lib_module_t *self, struct dt_lib_backgroundjob_element_t *instance, double value)
dt_lib_module_t *void *(* added)(dt_lib_module_t *self, gboolean has_progress_bar, const gchar *message)
ITaskbarList3 * taskbarlist
void(* cancellable)(dt_lib_module_t *self, struct dt_lib_backgroundjob_element_t *instance, dt_progress_t *progress)
struct dt_control_t::@8 progress_system
struct dt_control_t::@8::@10 proxy
GDBusConnection * dbus_connection