116#define dt_control_change_cursor(cursor) \
117 dt_control_change_cursor_EXT((cursor), __FILE__, __LINE__)
135#define dt_control_queue_cursor(cursor) \
136 dt_control_queue_cursor_EXT((cursor), __FILE__, __LINE__)
148#define dt_control_set_cursor_visible(visible) \
149 dt_control_set_cursor_visible_EXT((visible), __FILE__, __LINE__)
199#define DT_CTL_LOG_SIZE 10
200#define DT_CTL_LOG_MSG_SIZE 1000
201#define DT_CTL_LOG_TIMEOUT 8000
202#define DT_CTL_TOAST_SIZE 10
203#define DT_CTL_TOAST_MSG_SIZE 300
204#define DT_CTL_TOAST_TIMEOUT 5000
279 ITaskbarList3 *taskbarlist;
286 void *(*added)(
dt_lib_module_t *self, gboolean has_progress_bar,
const gchar *message);
292 const char *message);
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
void dt_ctl_switch_mode_to(const char *mode)
void dt_control_set_cursor_visible_EXT(gboolean visible, const char *file, int line)
Set whether the cursor should be visible or not.
void dt_control_key_pressed(GdkEventKey *event)
void dt_control_init(dt_control_t *s)
int32_t dt_control_get_mouse_over_id()
void dt_control_draw_busy_msg(cairo_t *cr, int width, int height)
void dt_control_button_pressed(double x, double y, double pressure, int which, int type, uint32_t state)
void * dt_control_expose(void *voidptr)
void dt_ctl_switch_mode_to_by_view(const dt_view_t *view)
void dt_control_queue_cursor_EXT(dt_cursor_t cursor, const char *file, int line)
void dt_control_get_pointer_input(dt_control_pointer_input_t *input)
void dt_control_set_mouse_over_id(int32_t value)
#define DT_CTL_TOAST_SIZE
void dt_control_forbid_change_cursor()
#define DT_CTL_TOAST_MSG_SIZE
void dt_control_queue_redraw_center()
request redraw of center window. This redraws the center view within a gdk critical section to preven...
void dt_control_write_sidecar_files()
void dt_control_mouse_leave()
void dt_control_toast_busy_enter()
void dt_control_shutdown(dt_control_t *s)
void dt_control_log_busy_leave()
gboolean dt_control_configure(GtkWidget *da, GdkEventConfigure *event, gpointer user_data)
void dt_control_change_cursor_by_name_and_flush(const char *curs_str)
Apply a GTK named cursor immediately and flush display updates.
void void dt_toast_log(const char *msg,...) __attribute__((format(printf
void dt_control_cleanup(dt_control_t *s)
void dt_control_button_released(double x, double y, int which, uint32_t state)
void dt_control_commit_cursor()
void dt_control_set_pointer_input(const dt_control_pointer_input_t *input)
void dt_control_change_cursor_by_name(const char *curs_str)
Apply a GTK named cursor immediately without replacing the queued cursor state.
void dt_control_allow_change_cursor()
void dt_control_save_xmp(const int32_t imgid)
void dt_control_mouse_moved(double x, double y, double pressure, int which)
void void void void dt_control_log_busy_enter()
void dt_control_log(const char *msg,...) __attribute__((format(printf
#define DT_CTL_LOG_MSG_SIZE
void dt_control_delete_images()
void dt_ctl_reload_view(const char *mode)
void dt_control_queue_redraw_widget(GtkWidget *widget)
threadsafe request of redraw of specific widget. Use this function if you need to redraw a specific w...
void dt_control_hinter_message(const struct dt_control_t *s, const char *message)
int32_t dt_control_get_keyboard_over_id()
void dt_control_toast_redraw()
request redraw of the toast widget. This redraws the message label.
void dt_control_mouse_enter()
void dt_control_change_cursor_EXT(dt_cursor_t cursor, const char *file, int line)
void dt_control_log_redraw()
request redraw of the log widget. This redraws the message label.
void dt_control_navigation_redraw()
request redraw of the navigation widget. This redraws the wiget of the navigation module.
void void void dt_toast_markup_log(const char *msg,...) __attribute__((format(printf
void dt_control_toast_busy_leave()
GdkCursorType dt_cursor_t
void dt_control_queue_cursor_by_name(const char *curs_str)
Queue a GTK named cursor for the next cursor commit.
void dt_control_save_xmps(const GList *imgids, const gboolean check_history)
void dt_control_queue_redraw()
request redraw of the workspace. This redraws the whole workspace within a gdk critical section to pr...
void dt_control_set_keyboard_over_id(int32_t value)
uint32_t view(const dt_view_t *self)
float dt_aligned_pixel_simd_t __attribute__((vector_size(16), aligned(16)))
Enable aggressive floating-point arithmetic optimizations, in denormals handling. Set through user pr...
static const dt_aligned_pixel_simd_t value
#define DT_CTL_WORKER_RESERVED
struct _GtkWidget GtkWidget
const float uint32_t state[4]
dt_pthread_mutex_t run_mutex
struct dt_control_t::@12 cursor
dt_pthread_mutex_t image_mutex
dt_lib_module_t *void(* set_message)(dt_lib_module_t *self, const gchar *message)
void(* destroyed)(dt_lib_module_t *self, struct dt_lib_backgroundjob_element_t *instance)
GList * queues[DT_JOB_QUEUE_MAX]
struct dt_control_t::@13 progress_system
char toast_message[10][300]
gboolean export_scheduled
struct dt_control_t::@13::@15 proxy
gchar * current_shape_str
void(* message_updated)(dt_lib_module_t *self, struct dt_lib_backgroundjob_element_t *instance, const char *message)
pthread_t thread_res[DT_CTL_WORKER_RESERVED]
dt_pthread_mutex_t log_mutex
void(* updated)(dt_lib_module_t *self, struct dt_lib_backgroundjob_element_t *instance, double value)
guint log_message_timeout_id
guint toast_message_timeout_id
dt_pthread_mutex_t res_mutex
dt_cursor_t current_shape
pthread_t kick_on_workers_thread
dt_pthread_mutex_t queue_mutex
uint8_t new_res[DT_CTL_WORKER_RESERVED]
dt_job_t * job_res[DT_CTL_WORKER_RESERVED]
struct dt_control_t::@14::@16 hinter
dt_pthread_mutex_t toast_mutex
char log_message[10][1000]
dt_pthread_mutex_t cond_mutex
dt_pthread_mutex_t global_mutex
void(* cancellable)(dt_lib_module_t *self, struct dt_lib_backgroundjob_element_t *instance, dt_progress_t *progress)
size_t queue_length[DT_JOB_QUEUE_MAX]