Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
control.c File Reference
#include "bauhaus/bauhaus.h"
#include "common/colorspaces.h"
#include "common/darktable.h"
#include "common/debug.h"
#include "common/image_cache.h"
#include "common/imageio.h"
#include "control/conf.h"
#include "control/control.h"
#include "develop/develop.h"
#include "develop/imageop.h"
#include "gui/draw.h"
#include "gui/gtk.h"
#include "views/view.h"
#include <assert.h>
#include <gdk/gdkkeysyms.h>
#include <glib/gstdio.h>
#include <lcms2.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
+ Include dependency graph for control.c:

Functions

void dt_control_init (dt_control_t *s)
 
void dt_control_forbid_change_cursor ()
 
void dt_control_allow_change_cursor ()
 
void dt_control_change_cursor (dt_cursor_t curs)
 
int dt_control_running ()
 
void dt_control_quit ()
 
void dt_control_shutdown (dt_control_t *s)
 
void dt_control_cleanup (dt_control_t *s)
 
gboolean dt_control_configure (GtkWidget *da, GdkEventConfigure *event, gpointer user_data)
 
static GdkRGBA lookup_color (GtkStyleContext *context, const char *name)
 
void dt_control_draw_busy_msg (cairo_t *cr, int width, int height)
 
voiddt_control_expose (void *voidptr)
 
void dt_control_mouse_leave ()
 
void dt_control_mouse_enter ()
 
void dt_control_mouse_moved (double x, double y, double pressure, int which)
 
void dt_control_key_pressed (GdkEventKey *event)
 
void dt_control_button_released (double x, double y, int which, uint32_t state)
 
static void _dt_ctl_switch_mode_prepare ()
 
static gboolean _dt_ctl_switch_mode_to (gpointer user_data)
 
static gboolean _dt_ctl_switch_mode_to_by_view (gpointer user_data)
 
void dt_ctl_switch_mode_to (const char *mode)
 
void dt_ctl_switch_mode_to_by_view (const dt_view_t *view)
 
void dt_ctl_reload_view (const char *mode)
 
static gboolean _dt_ctl_log_message_timeout_callback (gpointer data)
 
static gboolean _dt_ctl_toast_message_timeout_callback (gpointer data)
 
void dt_control_button_pressed (double x, double y, double pressure, int which, int type, uint32_t state)
 
static gboolean _redraw_center (gpointer user_data)
 
void dt_control_log (const char *msg,...)
 
static void _toast_log (const gboolean markup, const char *msg, va_list ap)
 
void dt_toast_log (const char *msg,...)
 
void dt_toast_markup_log (const char *msg,...)
 
void dt_control_log_busy_enter ()
 
void dt_control_toast_busy_enter ()
 
void dt_control_log_busy_leave ()
 
void dt_control_toast_busy_leave ()
 
void dt_control_queue_redraw ()
 request redraw of the workspace. This redraws the whole workspace within a gdk critical section to prevent several threads to carry out a redraw which will end up in crashes.
 
void dt_control_queue_redraw_center ()
 request redraw of center window. This redraws the center view within a gdk critical section to prevent several threads to carry out the redraw.
 
void dt_control_navigation_redraw ()
 request redraw of the navigation widget. This redraws the wiget of the navigation module.
 
void dt_control_log_redraw ()
 request redraw of the log widget. This redraws the message label.
 
void dt_control_toast_redraw ()
 request redraw of the toast widget. This redraws the message label.
 
static int _widget_queue_draw (void *widget)
 
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 widget if your current thread context is not gtk main thread.
 
void dt_control_hinter_message (const struct dt_control_t *s, const char *message)
 
int32_t dt_control_get_mouse_over_id ()
 
void dt_control_set_mouse_over_id (int32_t value)
 
int32_t dt_control_get_keyboard_over_id ()
 
void dt_control_set_keyboard_over_id (int32_t value)
 
float dt_control_get_dev_zoom_x ()
 
void dt_control_set_dev_zoom_x (float value)
 
float dt_control_get_dev_zoom_y ()
 
void dt_control_set_dev_zoom_y (float value)
 
float dt_control_get_dev_zoom_scale ()
 
void dt_control_set_dev_zoom_scale (float value)
 
int dt_control_get_dev_closeup ()
 
void dt_control_set_dev_closeup (int value)
 
dt_dev_zoom_t dt_control_get_dev_zoom ()
 
void dt_control_set_dev_zoom (dt_dev_zoom_t value)
 

Function Documentation

◆ _dt_ctl_log_message_timeout_callback()

◆ _dt_ctl_switch_mode_prepare()

◆ _dt_ctl_switch_mode_to()

static gboolean _dt_ctl_switch_mode_to ( gpointer  user_data)
static

◆ _dt_ctl_switch_mode_to_by_view()

static gboolean _dt_ctl_switch_mode_to_by_view ( gpointer  user_data)
static

◆ _dt_ctl_toast_message_timeout_callback()

◆ _redraw_center()

static gboolean _redraw_center ( gpointer  user_data)
static

◆ _toast_log()

◆ _widget_queue_draw()

static int _widget_queue_draw ( void widget)
static

References FALSE.

Referenced by dt_control_queue_redraw_widget().

◆ dt_control_allow_change_cursor()

void dt_control_allow_change_cursor ( )

◆ dt_control_button_pressed()

◆ dt_control_button_released()

void dt_control_button_released ( double  x,
double  y,
int  which,
uint32_t  state 
)

◆ dt_control_change_cursor()

◆ dt_control_cleanup()

◆ dt_control_configure()

gboolean dt_control_configure ( GtkWidget *  da,
GdkEventConfigure *  event,
gpointer  user_data 
)

◆ dt_control_draw_busy_msg()

◆ dt_control_expose()

◆ dt_control_forbid_change_cursor()

void dt_control_forbid_change_cursor ( )

◆ dt_control_get_dev_closeup()

◆ dt_control_get_dev_zoom()

◆ dt_control_get_dev_zoom_scale()

◆ dt_control_get_dev_zoom_x()

◆ dt_control_get_dev_zoom_y()

◆ dt_control_get_keyboard_over_id()

◆ dt_control_get_mouse_over_id()

◆ dt_control_hinter_message()

◆ dt_control_init()

◆ dt_control_key_pressed()

void dt_control_key_pressed ( GdkEventKey *  event)

◆ dt_control_log()

void dt_control_log ( const char *  msg,
  ... 
)

References _dt_ctl_log_message_timeout_callback(), _redraw_center(), darktable_t::control, darktable, DT_CTL_LOG_MSG_SIZE, DT_CTL_LOG_SIZE, DT_CTL_LOG_TIMEOUT, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_control_t::log_ack, dt_control_t::log_message, dt_control_t::log_message_timeout_id, dt_control_t::log_mutex, and dt_control_t::log_pos.

Referenced by _apply_style_before_export(), _click_on_view(), _control_import_job_run(), _create_dir(), _darkroom_ui_apply_style_activate_callback(), _darkroom_ui_apply_style_popupmenu(), _default_process_tiling_ptp(), _default_process_tiling_roi(), _deflicker_prepare_histogram(), _display_mask_callback(), _do_get_structure_auto(), _do_get_structure_lines(), _do_get_structure_quad(), _dt_collection_changed_callback(), _dt_dev_raster_mask_check(), _edit_preset(), _edit_preset_response(), _event_aspect_presets_changed(), _export_button_clicked(), _export_button_clicked(), _export_image(), _film_import1(), _generic_dt_control_fileop_images_job_run(), _gui_styles_dialog_run(), _gui_styles_edit_style_response(), _gui_styles_new_style_response(), _image_import_internal(), _import_button_clicked(), _import_image(), _import_preset_from_file(), _main_do_event_help(), _menuitem_delete_preset(), _name_editing_done(), _page_new_area_clicked(), _paper_size(), _piwigo_refresh_albums(), _pop_menu_dictionary_delete_node(), _pop_menu_dictionary_delete_tag(), _pop_menu_dictionary_set_as_tag(), _pop_undo(), _print_button_clicked(), _print_job_run(), _print_opencl_errors(), _process_file_list(), _refine_with_detail_mask(), _reset_form_creation(), _set_paper_size(), _set_test_path(), _step_state(), _sync_params(), _thumbtable_dnd_import_check(), aspect_presets_changed(), auto_adjust_contrast_boost(), auto_adjust_exposure_boost(), button_clicked(), button_pressed(), calculate_clut_3dl(), calculate_clut_cube(), calculate_clut_haldclut(), commit_params(), commit_params(), commit_params_late(), copy_callback(), copy_parts_callback(), do_crop(), do_fit(), dt_configure_runtime_performance(), dt_control_datetime_job_run(), dt_control_export(), dt_control_export_job_run(), dt_control_gpx_apply_job_run(), dt_control_local_copy_images_job_run(), dt_control_merge_hdr_job_run(), dt_control_merge_hdr_process(), dt_control_remove_images_job_run(), dt_develop_blend_process(), dt_exif_xmp_write(), dt_film_remove(), dt_gui_hist_dialog_new(), dt_gui_preferences_show(), dt_history_copy_and_paste_on_image(), dt_image_check_camera_missing_sample(), dt_image_local_copy_reset(), dt_image_local_copy_set(), dt_image_local_copy_synch(), dt_image_rename(), dt_imageio_export_with_flags(), dt_imageio_open(), dt_iop_gui_update_blending(), dt_lib_presets_apply(), dt_lightroom_import(), dt_load_from_string(), dt_masks_group_add_form(), dt_masks_read_masks_history(), dt_multiple_styles_apply_to_list(), dt_noiseprofile_init(), dt_pixel_cache_new_entry(), dt_print_file(), dt_pwstorage_new(), dt_ratings_apply_on_image(), dt_style_save(), dt_styles_apply_style_item(), dt_styles_apply_to_list(), dt_styles_create_from_list(), dt_styles_create_from_style(), dt_styles_create_style_header(), dt_styles_import_from_file(), dt_styles_save_to_file(), dt_thumbtable_select_all(), dt_thumbtable_select_range(), dual_demosaic(), duplicate_callback(), enter(), export_clicked(), fast_eigf_surface_blur(), fast_surface_blur(), finalize_store(), find_coeffs(), gui_changed(), gui_init(), gui_update(), legacy_params(), lmmse_demosaic(), lua_print(), new_history_callback(), paste_all_callback(), paste_parts_callback(), prepare_matrices(), process(), process(), process(), process(), process_drago(), process_internal(), pseudo_solve(), rcd_demosaic(), reconstruct_highlights(), reload_defaults(), rt_display_wavelet_scale_callback(), rt_select_algorithm_callback(), rt_showmask_callback(), sanity_check(), set_new_params_interactive(), smoothing_callback(), solve_hermitian(), store(), store(), toneeq_process(), try_enter(), view_popup_menu_onSearchFilmroll(), workicc_changed(), write_image(), write_image(), write_image(), and write_image().

◆ dt_control_log_busy_enter()

◆ dt_control_log_busy_leave()

◆ dt_control_log_redraw()

void dt_control_log_redraw ( )

request redraw of the log widget. This redraws the message label.

References darktable, DT_DEBUG_CONTROL_SIGNAL_RAISE, DT_SIGNAL_CONTROL_LOG_REDRAW, and darktable_t::signals.

Referenced by _dt_ctl_log_message_timeout_callback(), and _redraw_center().

◆ dt_control_mouse_enter()

void dt_control_mouse_enter ( )

◆ dt_control_mouse_leave()

void dt_control_mouse_leave ( )

◆ dt_control_mouse_moved()

void dt_control_mouse_moved ( double  x,
double  y,
double  pressure,
int  which 
)

◆ dt_control_navigation_redraw()

void dt_control_navigation_redraw ( )

request redraw of the navigation widget. This redraws the wiget of the navigation module.

References darktable, DT_DEBUG_CONTROL_SIGNAL_RAISE, DT_SIGNAL_CONTROL_NAVIGATION_REDRAW, and darktable_t::signals.

Referenced by _enter_edit_mode(), _enter_edit_mode(), button_released(), gui_changed(), mouse_moved(), and scrolled().

◆ dt_control_queue_redraw()

void dt_control_queue_redraw ( )

request redraw of the workspace. This redraws the whole workspace within a gdk critical section to prevent several threads to carry out a redraw which will end up in crashes.

References darktable, DT_DEBUG_CONTROL_SIGNAL_RAISE, DT_SIGNAL_CONTROL_REDRAW_ALL, and darktable_t::signals.

Referenced by _export_image(), _film_strip_activated(), _view_print_settings(), _zoom_preset_change(), async_redraw(), clear_caches_callback(), dt_dev_process_preview_job(), dt_image_import_job_run(), dt_lib_gui_set_expanded(), enter(), and process_clusters().

◆ dt_control_queue_redraw_center()

void dt_control_queue_redraw_center ( )

request redraw of center window. This redraws the center view within a gdk critical section to prevent several threads to carry out the redraw.

References darktable, DT_DEBUG_CONTROL_SIGNAL_RAISE, DT_SIGNAL_CONTROL_REDRAW_CENTER, and darktable_t::signals.

Referenced by _add_shape(), _blendop_masks_add_shape(), _color_picker_callback_button_press(), _display_samples_changed(), _do_get_structure_lines(), _do_get_structure_quad(), _drag_and_drop_received(), _drag_motion_received(), _edit_masks(), _enter_edit_mode(), _enter_edit_mode(), _event_fit_both_button_clicked(), _event_fit_h_button_clicked(), _event_fit_v_button_clicked(), _event_process_after_preview_callback(), _event_structure_auto_clicked(), _event_structure_lines_clicked(), _event_structure_quad_clicked(), _expose_again(), _film_import1(), _generic_dt_control_fileop_images_job_run(), _grid_callback(), _grid_horizontal_changed(), _grid_size_changed(), _grid_subdiv_changed(), _grid_vertical_changed(), _gui_delete_callback(), _gui_set_single_expanded(), _guides_quickbutton_clicked(), _height_changed(), _iso_12646_quickbutton_clicked(), _lib_duplicate_preview_updated_callback(), _lib_duplicate_thumb_release_callback(), _lib_navigation_set_position(), _lib_snapshots_toggled_callback(), _live_sample_button(), _load_image_full_page(), _page_clear_area_clicked(), _page_delete_area(), _refresh_display(), _remove_sample_cb(), _sample_enter_callback(), _sample_leave_callback(), _set_orientation(), _settings_colors_changed(), _settings_contrast_changed(), _settings_flip_changed(), _settings_guides_changed(), _snap_grid_callback(), _tree_add_brush(), _tree_add_circle(), _tree_add_ellipse(), _tree_add_gradient(), _tree_add_path(), _tree_difference(), _tree_exclusion(), _tree_intersection(), _tree_inverse(), _tree_selection_change(), _tree_union(), _width_changed(), _x_changed(), _y_changed(), aspect_presets_changed(), button_pressed(), button_pressed(), button_pressed(), button_released(), button_released(), checker_changed_callback(), delete_history_callback(), display_borders_callback(), display_brightness_callback(), do_crop(), dt_control_delete_images_job_run(), dt_control_duplicate_images_job_run(), dt_control_flip_images_job_run(), dt_control_local_copy_images_job_run(), dt_control_log_busy_enter(), dt_control_log_busy_leave(), dt_control_merge_hdr_job_run(), dt_control_monochrome_images_job_run(), dt_control_refresh_exif_run(), dt_control_remove_images_job_run(), dt_control_toast_busy_enter(), dt_control_toast_busy_leave(), dt_dev_configure_real(), dt_dev_process_image_job(), dt_dev_snapshot_request(), dt_film_open(), dt_image_local_copy_reset(), dt_image_local_copy_set(), dt_iop_request_focus(), dt_masks_set_edit_mode(), entry_activated(), gui_changed(), gui_reset(), gui_update(), import_images(), key_swap_callback(), keystone_type_changed(), load_xmp_callback(), mouse_leave(), mouse_leave(), mouse_moved(), mouse_moved(), mouse_moved(), mouse_moved(), paste_all_callback(), paste_parts_callback(), process_job_run(), row_activated_with_event(), rt_add_shape(), rt_select_algorithm_callback(), rt_show_forms_for_current_scale(), safety_changed_callback(), scrolled(), scrolled(), set_params(), start_profiling_callback(), switch_cursors(), sync_pipe(), and ungroup_images_callback().

◆ dt_control_queue_redraw_widget()

◆ dt_control_quit()

◆ dt_control_running()

◆ dt_control_set_dev_closeup()

◆ dt_control_set_dev_zoom()

◆ dt_control_set_dev_zoom_scale()

◆ dt_control_set_dev_zoom_x()

◆ dt_control_set_dev_zoom_y()

◆ dt_control_set_keyboard_over_id()

◆ dt_control_set_mouse_over_id()

◆ dt_control_shutdown()

◆ dt_control_toast_busy_enter()

◆ dt_control_toast_busy_leave()

◆ dt_control_toast_redraw()

void dt_control_toast_redraw ( )

request redraw of the toast widget. This redraws the message label.

References darktable, DT_DEBUG_CONTROL_SIGNAL_RAISE, DT_SIGNAL_CONTROL_TOAST_REDRAW, and darktable_t::signals.

Referenced by _dt_ctl_toast_message_timeout_callback(), and _redraw_center().

◆ dt_ctl_reload_view()

◆ dt_ctl_switch_mode_to()

◆ dt_ctl_switch_mode_to_by_view()

void dt_ctl_switch_mode_to_by_view ( const dt_view_t view)

◆ dt_toast_log()

◆ dt_toast_markup_log()

void dt_toast_markup_log ( const char *  msg,
  ... 
)

References _toast_log(), and TRUE.

◆ lookup_color()

static GdkRGBA lookup_color ( GtkStyleContext *  context,
const char *  name 
)
static

References name.

Referenced by dt_control_expose().