38#include <gtkosxapplication.h>
42#include <gdk/gdkwin32.h>
43#ifndef ITaskbarList3_SetProgressValue
44 #define ITaskbarList3_SetProgressValue(This,hwnd,ullCompleted,ullTotal) (This)->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal)
46#ifndef ITaskbarList3_SetProgressState
47 #define ITaskbarList3_SetProgressState(This,hwnd,tbpFlags) (This)->lpVtbl->SetProgressState(This,hwnd,tbpFlags)
49#ifndef ITaskbarList3_HrInit
50 #define ITaskbarList3_HrInit(This) (This)->lpVtbl->HrInit(This)
81 GVariantBuilder builder;
82 g_variant_builder_init(&builder, G_VARIANT_TYPE(
"a{sv}"));
84 g_variant_builder_add(&builder,
"{sv}",
"progress-visible", g_variant_new_boolean(
TRUE));
85 GVariant *params = g_variant_new(
"(sa{sv})",
"application://photos.ansel.Ansel.desktop", &builder);
88 "com.canonical.Unity",
90 "com.canonical.Unity.LauncherEntry",
96 fprintf(stderr,
"[progress_create] dbus error: %s\n",
error->message);
107 if(CoCreateInstance(&CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, &IID_ITaskbarList3, (
void **)&taskbarlist) == S_OK)
116 fprintf(stderr,
"[progress_create] SetProgressState failed\n");
118 fprintf(stderr,
"[progress_create] SetProgressValue failed\n");
132 GError *
error = NULL;
134 GVariantBuilder builder;
135 g_variant_builder_init(&builder, G_VARIANT_TYPE(
"a{sv}"));
137 GVariant *params = g_variant_new(
"(sa{sv})",
"application://photos.ansel.Ansel.desktop", &builder);
140 "com.canonical.Unity",
142 "com.canonical.Unity.LauncherEntry",
148 fprintf(stderr,
"[progress_set] dbus error: %s\n",
error->message);
159 fprintf(stderr,
"[progress_create] SetProgressValue failed\n");
183 GError *
error = NULL;
185 GVariantBuilder builder;
186 g_variant_builder_init(&builder, G_VARIANT_TYPE(
"a{sv}"));
188 g_variant_builder_add(&builder,
"{sv}",
"progress-visible", g_variant_new_boolean(
FALSE));
190 GVariant *params = g_variant_new(
"(sa{sv})",
"application://photos.ansel.Ansel.desktop", &builder);
193 "com.canonical.Unity",
195 "com.canonical.Unity.LauncherEntry",
201 fprintf(stderr,
"[progress_destroy] dbus error: %s\n",
error->message);
217 fprintf(stderr,
"[progress_create] SetProgressState failed\n");
223 fprintf(stderr,
"[progress_create] SetProgressValue failed\n");
236 GError *
error = NULL;
238 GVariantBuilder builder;
239 g_variant_builder_init(&builder, G_VARIANT_TYPE(
"a{sv}"));
240 g_variant_builder_add(&builder,
"{sv}",
"progress-visible", g_variant_new_boolean(
FALSE));
241 GVariant *params = g_variant_new(
"(sa{sv})",
"application://photos.ansel.Ansel.desktop", &builder);
244 "com.canonical.Unity",
246 "com.canonical.Unity.LauncherEntry",
252 fprintf(stderr,
"[progress_init] dbus error: %s\n",
error->message);
269 const gchar *message)
276 progress->
message = g_strdup(message);
289 has_progress_bar, message);
322 progress->
cancel = cancel;
399 progress->
message = g_strdup(message);
GtkWidget * dt_gui_main_window(void)
static void error(char *msg)
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)
#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)
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)
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_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