Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
darkroom.c File Reference
#include "bauhaus/bauhaus.h"
#include "common/collection.h"
#include "common/colorspaces.h"
#include "common/darktable.h"
#include "gui/gdkkeys.h"
#include "common/debug.h"
#include "common/file_location.h"
#include "common/history.h"
#include "common/image_cache.h"
#include "common/imageio.h"
#include "common/iop-autoset.h"
#include "common/imageio_module.h"
#include "common/mipmap_cache.h"
#include "common/selection.h"
#include "common/tags.h"
#include "common/undo.h"
#include "control/conf.h"
#include "control/control.h"
#include "control/jobs.h"
#include "develop/blend.h"
#include "develop/dev_pixelpipe.h"
#include "develop/develop.h"
#include "develop/imageop.h"
#include "develop/masks.h"
#include "dtgtk/button.h"
#include "dtgtk/thumbtable.h"
#include "gui/color_picker_proxy.h"
#include "gui/draw.h"
#include "gui/gtk.h"
#include "gui/gui_throttle.h"
#include "gui/guides.h"
#include "gui/presets.h"
#include "libs/colorpicker.h"
#include "libs/lib.h"
#include "views/view.h"
#include "views/view_api.h"
#include <gdk/gdkkeysyms.h>
#include <glib.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
+ Include dependency graph for darkroom.c:

Go to the source code of this file.

Data Structures

struct  coords_t
 
struct  darkroom_locked_surface_t
 
struct  darkroom_expose_state_t
 
struct  darkroom_edge_pan_test_t
 

Macros

#define G_SOURCE_FUNC(f)   ((GSourceFunc) (void (*)(void)) (f))
 
#define DARKROOM_EDGE_PAN_INTERVAL_MS   64
 
#define DARKROOM_EDGE_PAN_MARGIN_PX   DT_PIXEL_APPLY_DPI(100)
 
#define DARKROOM_EDGE_PAN_SPEED_PX_PER_S   360.0f
 
#define DARKROOM_EXPOSE_DUMB_DEBUG   0
 

Typedefs

typedef struct coords_t coords_t
 
typedef struct darkroom_locked_surface_t darkroom_locked_surface_t
 
typedef struct darkroom_expose_state_t darkroom_expose_state_t
 
typedef struct darkroom_edge_pan_test_t darkroom_edge_pan_test_t
 

Functions

static void _update_softproof_gamut_checking (dt_develop_t *d)
 
static void _view_darkroom_filmstrip_activate_callback (gpointer instance, int32_t imgid, gpointer user_data)
 
static void _darkroom_image_loaded_callback (gpointer instance, guint request_id, guint result, gpointer user_data)
 
static void _dev_change_image (dt_view_t *self, const int32_t imgid)
 
static void _darkroom_autoset_popover_rebuild (dt_develop_t *dev)
 
static int _change_scaling (dt_develop_t *dev, const float point[2], const float new_scaling)
 
static void _release_expose_source_caches (void)
 
static void _darkroom_set_default_cursor (dt_view_t *self, double x, double y)
 
static void _darkroom_autoset_popover_refresh (gpointer instance, gpointer user_data)
 
static void _darkroom_autoset_button_set_running (const gboolean running)
 Reflect autoset processing state on the darkroom quick button.
 
static void _darkroom_ioporder_quickbutton_clicked (GtkButton *button, gpointer user_data)
 
const char * name (const dt_view_t *self)
 
void init (dt_view_t *self)
 
uint32_t view (const dt_view_t *self)
 
static void _reset_edge_pan ()
 
void cleanup (dt_view_t *self)
 
static cairo_status_t _write_snapshot_data (void *closure, const unsigned char *data, unsigned int length)
 
static dt_darkroom_layout_t _lib_darkroom_get_layout (dt_view_t *self)
 
static gboolean _darkroom_is_only_selected_sample (gboolean is_primary_sample, dt_colorpicker_sample_t *selected_sample, gboolean display_samples)
 
static void _darkroom_sample_raw_point_to_image_norm (const dt_colorpicker_sample_t *const sample, float point[2])
 
static void _darkroom_sample_raw_box_to_image_norm (const dt_colorpicker_sample_t *const sample, float box[4])
 
static void _darkroom_pickers_draw (dt_view_t *self, cairo_t *cri, int32_t width, int32_t height, int32_t pozx, int32_t pozy, GSList *samples, gboolean is_primary_sample)
 Draw colorpicker samples overlays in darkroom view.
 
void _colormanage_ui_color (const float L, const float a, const float b, dt_aligned_pixel_t RGB)
 
static void _render_iso12646 (cairo_t *cr, double width, double height, int border)
 
static void _release_locked_surface (darkroom_locked_surface_t *locked)
 
static void _release_preview_fallback_surface (void)
 
static void _darkroom_restart_cache_wait (gpointer user_data)
 
static gboolean _lock_pipe_surface (dt_develop_t *dev, dt_dev_pixelpipe_t *pipe, darkroom_locked_surface_t *locked, const gboolean keep_previous_on_fail, const gboolean lock_read)
 
static gboolean _render_main_locked_surface (cairo_t *cr, dt_develop_t *dev, darkroom_locked_surface_t *locked, const int width, const int height, const int border, const dt_aligned_pixel_t bg_color)
 
static gboolean _build_preview_fallback_surface (dt_develop_t *dev, const int width, const int height, const int border, const dt_aligned_pixel_t bg_color, const uint64_t zoom_hash)
 
static gboolean _render_preview_fallback_surface (cairo_t *cr)
 
static void _paint_all (cairo_t *cri, cairo_t *cr, cairo_surface_t *image_surface)
 
static gboolean _darkroom_preview_fallback_valid (const dt_develop_t *dev, const int width, const int height, const uint64_t zoom_hash)
 
static gboolean _darkroom_locked_main_valid_for_zoom (const darkroom_expose_state_t *state, const uint64_t zoom_hash)
 
static void _darkroom_reset_expose_state (darkroom_expose_state_t *state)
 
static void _darkroom_prepare_image_surface (dt_develop_t *dev, const int width, const int height, darkroom_expose_state_t *state)
 
void expose (dt_view_t *self, cairo_t *cri, int32_t width, int32_t height, int32_t pointerx, int32_t pointery)
 
void reset (dt_view_t *self)
 
static void _darkroom_log_image_load_error (const int ret)
 
int try_enter (dt_view_t *self)
 
static gboolean _toolbar_show_popup (gpointer user_data)
 
static gboolean _darkroom_toolbox_button_activate_accel (GtkAccelGroup *accel_group, GObject *accelerable, guint keyval, GdkModifierType modifier, gpointer data)
 
static gboolean _darkroom_toolbox_button_focus_accel (GtkAccelGroup *accel_group, GObject *accelerable, guint keyval, GdkModifierType modifier, gpointer data)
 
static void _get_final_size_with_iso_12646 (dt_develop_t *d)
 
static void _iso_12646_quickbutton_clicked (GtkWidget *w, gpointer user_data)
 
static void _guides_quickbutton_clicked (GtkWidget *widget, gpointer user_data)
 
static void _guides_view_changed (gpointer instance, dt_view_t *old_view, dt_view_t *new_view, dt_lib_module_t *self)
 
static void _display_quickbutton_clicked (GtkWidget *w, gpointer user_data)
 
static void display_brightness_callback (GtkWidget *slider, gpointer user_data)
 
static void display_borders_callback (GtkWidget *slider, gpointer user_data)
 
static void display_mask_checker_1_callback (GtkColorButton *widget, gpointer user_data)
 Persist the global mask-preview appearance and resynchronize every node using it.
 
static void display_mask_checker_2_callback (GtkColorButton *widget, gpointer user_data)
 
static void display_mask_checker_size_callback (GtkWidget *slider, gpointer user_data)
 
static void display_mask_black_and_white_callback (GtkToggleButton *toggle, gpointer user_data)
 
static void _darkroom_change_rendering_size (GtkWidget *combobox, gpointer user_data)
 
static void _overexposed_quickbutton_clicked (GtkWidget *w, gpointer user_data)
 
static void colorscheme_callback (GtkWidget *combo, gpointer user_data)
 
static void lower_callback (GtkWidget *slider, gpointer user_data)
 
static void upper_callback (GtkWidget *slider, gpointer user_data)
 
static void mode_callback (GtkWidget *slider, gpointer user_data)
 
static void _rawoverexposed_quickbutton_clicked (GtkWidget *w, gpointer user_data)
 
static void rawoverexposed_mode_callback (GtkWidget *combo, gpointer user_data)
 
static void rawoverexposed_colorscheme_callback (GtkWidget *combo, gpointer user_data)
 
static void rawoverexposed_threshold_callback (GtkWidget *slider, gpointer user_data)
 
static void _softproof_quickbutton_clicked (GtkWidget *w, gpointer user_data)
 
static void _gamut_quickbutton_clicked (GtkWidget *w, gpointer user_data)
 
static void softproof_profile_callback (GtkWidget *combo, gpointer user_data)
 
static gboolean _quickbutton_press_release (GtkWidget *button, GdkEventButton *event, GtkWidget *popover)
 
void connect_button_press_release (GtkWidget *w, GtkWidget *p)
 
gboolean _focus_main_image (GtkAccelGroup *accel_group, GObject *accelerable, guint keyval, GdkModifierType modifier, gpointer data)
 
gboolean _switch_to_next_picture (GtkAccelGroup *accel_group, GObject *accelerable, guint keyval, GdkModifierType modifier, gpointer data)
 
gboolean _switch_to_prev_picture (GtkAccelGroup *accel_group, GObject *accelerable, guint keyval, GdkModifierType modifier, gpointer data)
 
static void _preview_pipe_finished (gpointer instance, gpointer user_data)
 
static void _darkroom_autoset_quickbutton_clicked (GtkButton *button, gpointer user_data)
 
static gchar * _darkroom_autoset_label (const dt_iop_module_t *module)
 
static void _darkroom_autoset_module_toggled (GtkToggleButton *toggle, gpointer user_data)
 
void gui_init (dt_view_t *self)
 
static gboolean _is_scroll_captured_by_widget ()
 
gboolean _scroll_on_focus (GdkEventScroll event, void *data)
 
void enter (dt_view_t *self)
 
void leave (dt_view_t *self)
 
void mouse_leave (dt_view_t *self)
 
static gboolean _is_in_frame (const int width, const int height, const int x, const int y)
 
static gboolean mouse_in_imagearea (dt_view_t *self, double x, double y)
 
static gboolean mouse_in_actionarea (dt_view_t *self, double x, double y)
 
void mouse_enter (dt_view_t *self)
 
static void _delayed_history_commit (gpointer data)
 
static float _darkroom_edge_pan_velocity (const double position, const double size, const float margin)
 
static gboolean _darkroom_edge_pan_enable_check (dt_develop_t *dev)
 
static void _darkroom_edge_pan_update_state (dt_view_t *self, const double pointer_x, const double pointer_y, const int width, const int height, darkroom_edge_pan_test_t *edge)
 Test every condition that allows edge-pan for the current pointer.
 
static gboolean _darkroom_edge_pan_apply (dt_view_t *self, const double pointer_x, const double pointer_y, const int width, const int height)
 Apply one edge-pan step when the current drag is still eligible.
 
static gboolean _darkroom_edge_pan_tick (gpointer user_data)
 Move the darkroom ROI while a drag stays in the center-widget edge band.
 
void mouse_moved (dt_view_t *self, double x, double y, double pressure, int which)
 
int button_released (dt_view_t *self, double x, double y, int which, uint32_t state)
 
int button_pressed (dt_view_t *self, double x, double y, double pressure, int which, int type, uint32_t state)
 
static gboolean _center_view_free_zoom (dt_view_t *self, double x, double y, int up, int state, int flow)
 
int scrolled (dt_view_t *self, double x, double y, int up, int state, int delta_y)
 
static void _key_scroll (dt_develop_t *dev)
 
int key_pressed (dt_view_t *self, GdkEventKey *event)
 
void configure (dt_view_t *self, int wd, int ht)
 

Variables

static int32_t _darkroom_pending_imgid = UNKNOWN_IMAGE
 
static dt_iop_module_t_darkroom_pending_focus_module = NULL
 
static GtkWidget_darkroom_ioporder_button = NULL
 
static gboolean _darkroom_center_pan_drag = FALSE
 
static dt_autoset_manager_t_autoset_manager = NULL
 
static GtkWidget_darkroom_autoset_button = NULL
 
static GtkWidget_darkroom_autoset_popover = NULL
 
static GtkWidget_darkroom_autoset_list = NULL
 
static gboolean _darkroom_autoset_button_is_running = FALSE
 
static darkroom_locked_surface_t _darkroom_main_locked = { .hash = (uint64_t)-1 }
 
static darkroom_locked_surface_t _darkroom_preview_locked = { .hash = (uint64_t)-1 }
 
static dt_dev_pixelpipe_cache_wait_t _darkroom_main_wait = { 0 }
 
static dt_dev_pixelpipe_cache_wait_t _darkroom_preview_wait = { 0 }
 
static cairo_surface_t * _darkroom_preview_fallback_surface = NULL
 
static int32_t _darkroom_preview_fallback_imgid = UNKNOWN_IMAGE
 
static uint64_t _darkroom_preview_fallback_zoom_hash = 0
 
static uint64_t _darkroom_preview_fallback_backbuf_hash = 0
 
static int _darkroom_preview_fallback_width = 0
 
static int _darkroom_preview_fallback_height = 0
 

Macro Definition Documentation

◆ DARKROOM_EDGE_PAN_INTERVAL_MS

#define DARKROOM_EDGE_PAN_INTERVAL_MS   64

Definition at line 149 of file darkroom.c.

◆ DARKROOM_EDGE_PAN_MARGIN_PX

#define DARKROOM_EDGE_PAN_MARGIN_PX   DT_PIXEL_APPLY_DPI(100)

Definition at line 150 of file darkroom.c.

◆ DARKROOM_EDGE_PAN_SPEED_PX_PER_S

#define DARKROOM_EDGE_PAN_SPEED_PX_PER_S   360.0f

Definition at line 151 of file darkroom.c.

◆ DARKROOM_EXPOSE_DUMB_DEBUG

#define DARKROOM_EXPOSE_DUMB_DEBUG   0

Definition at line 496 of file darkroom.c.

◆ G_SOURCE_FUNC

#define G_SOURCE_FUNC (   f)    ((GSourceFunc) (void (*)(void)) (f))

this is the view for the darkroom module.

Definition at line 136 of file darkroom.c.

Typedef Documentation

◆ coords_t

typedef struct coords_t coords_t

◆ darkroom_edge_pan_test_t

◆ darkroom_expose_state_t

◆ darkroom_locked_surface_t

Function Documentation

◆ _build_preview_fallback_surface()

◆ _center_view_free_zoom()

static gboolean _center_view_free_zoom ( dt_view_t self,
double  x,
double  y,
int  up,
int  state,
int  flow 
)
static

Definition at line 3579 of file darkroom.c.

References _change_scaling(), darktable, darktable_t::develop, dt_develop_t::roi, dt_develop_t::scaling, and x.

Referenced by scrolled().

◆ _change_scaling()

◆ _colormanage_ui_color()

void _colormanage_ui_color ( const float  L,
const float  a,
const float  b,
dt_aligned_pixel_t  RGB 
)

◆ _darkroom_autoset_button_set_running()

static void _darkroom_autoset_button_set_running ( const gboolean  running)
static

Reflect autoset processing state on the darkroom quick button.

The autoset pipeline advances asynchronously across preview-finished callbacks. We keep the button state explicit so users can see when a run is in progress.

Parameters
runningTRUE while autoset still has operations to process.

Definition at line 195 of file darkroom.c.

References _darkroom_autoset_button, _darkroom_autoset_button_is_running, dt_gui_add_class(), dt_gui_remove_class(), and IS_NULL_PTR.

Referenced by _darkroom_autoset_quickbutton_clicked(), _preview_pipe_finished(), and gui_init().

◆ _darkroom_autoset_label()

static gchar * _darkroom_autoset_label ( const dt_iop_module_t module)
static

◆ _darkroom_autoset_module_toggled()

static void _darkroom_autoset_module_toggled ( GtkToggleButton *  toggle,
gpointer  user_data 
)
static

Definition at line 1979 of file darkroom.c.

References dt_iop_autoset_module_set_enabled().

Referenced by _darkroom_autoset_popover_rebuild().

◆ _darkroom_autoset_popover_rebuild()

◆ _darkroom_autoset_popover_refresh()

static void _darkroom_autoset_popover_refresh ( gpointer  instance,
gpointer  user_data 
)
static

Definition at line 2015 of file darkroom.c.

References _darkroom_autoset_popover_rebuild().

Referenced by cleanup(), and gui_init().

◆ _darkroom_autoset_quickbutton_clicked()

static void _darkroom_autoset_quickbutton_clicked ( GtkButton *  button,
gpointer  user_data 
)
static

◆ _darkroom_change_rendering_size()

static void _darkroom_change_rendering_size ( GtkWidget combobox,
gpointer  user_data 
)
static

Definition at line 1603 of file darkroom.c.

References d, dt_bauhaus_combobox_get(), dt_conf_set_int(), and dt_dev_pixelpipe_resync_history_main.

Referenced by gui_init().

◆ _darkroom_edge_pan_apply()

static gboolean _darkroom_edge_pan_apply ( dt_view_t self,
const double  pointer_x,
const double  pointer_y,
const int  width,
const int  height 
)
static

◆ _darkroom_edge_pan_enable_check()

static gboolean _darkroom_edge_pan_enable_check ( dt_develop_t dev)
static

◆ _darkroom_edge_pan_tick()

static gboolean _darkroom_edge_pan_tick ( gpointer  user_data)
static

Move the darkroom ROI while a drag stays in the center-widget edge band.

The timeout owns only the cadence of the auto-pan. Each tick rechecks the real pointer position because a timeout keeps running when the mouse stops moving.

Definition at line 3086 of file darkroom.c.

References _darkroom_edge_pan_apply(), _reset_edge_pan(), darktable, dt_ui_center(), FALSE, darktable_t::gui, IS_NULL_PTR, dt_gui_gtk_t::pan_edge, dt_gui_gtk_t::timeout_source, dt_gui_gtk_t::ui, dt_gui_gtk_t::view, and dt_view_t::width.

Referenced by mouse_moved().

◆ _darkroom_edge_pan_update_state()

static void _darkroom_edge_pan_update_state ( dt_view_t self,
const double  pointer_x,
const double  pointer_y,
const int  width,
const int  height,
darkroom_edge_pan_test_t edge 
)
static

◆ _darkroom_edge_pan_velocity()

static float _darkroom_edge_pan_velocity ( const double  position,
const double  size,
const float  margin 
)
static

Definition at line 2916 of file darkroom.c.

References CLAMPF, position(), and size.

Referenced by _darkroom_edge_pan_update_state().

◆ _darkroom_image_loaded_callback()

◆ _darkroom_ioporder_quickbutton_clicked()

static void _darkroom_ioporder_quickbutton_clicked ( GtkButton *  button,
gpointer  user_data 
)
static

Definition at line 179 of file darkroom.c.

Referenced by gui_init().

◆ _darkroom_is_only_selected_sample()

static gboolean _darkroom_is_only_selected_sample ( gboolean  is_primary_sample,
dt_colorpicker_sample_t selected_sample,
gboolean  display_samples 
)
static

Definition at line 297 of file darkroom.c.

Referenced by _darkroom_pickers_draw().

◆ _darkroom_locked_main_valid_for_zoom()

static gboolean _darkroom_locked_main_valid_for_zoom ( const darkroom_expose_state_t state,
const uint64_t  zoom_hash 
)
inlinestatic

◆ _darkroom_log_image_load_error()

static void _darkroom_log_image_load_error ( const int  ret)
static

◆ _darkroom_pickers_draw()

static void _darkroom_pickers_draw ( dt_view_t self,
cairo_t *  cri,
int32_t  width,
int32_t  height,
int32_t  pozx,
int32_t  pozy,
GSList *  samples,
gboolean  is_primary_sample 
)
static

Draw colorpicker samples overlays in darkroom view.

Parameters
selfactual view
cricairo context
widthwidth of the widget
heightheight of the widget
pozxx pointer
pozyy pointer
sampleslist of samples to draw
is_primary_samplewhether we are drawing the primary sample or live samples
Todo:
: instead of going to all this effort to show how error-prone a preview pipe sample can be, just produce a better point sample
Todo:
: to be really accurate, the colorpicker should render precisely over the nearest pixelpipe pixel, but this gets particularly tricky to do with iop pickers with transformations after them in the pipeline
Todo:
: if an area sample is selected, when selected should fill it with colorpicker color?

Definition at line 329 of file darkroom.c.

References _darkroom_is_only_selected_sample(), _darkroom_sample_raw_box_to_image_norm(), _darkroom_sample_raw_point_to_image_norm(), dt_develop_t::color_picker, darktable, dt_view_t::data, darktable_t::develop, dt_develop_t::display_samples, dt_dev_get_fit_scale(), dt_dev_rescale_roi(), DT_LIB_COLORPICKER_SIZE_BOX, DT_LIB_COLORPICKER_SIZE_POINT, FALSE, height, IS_NULL_PTR, lw, M_PI, dt_develop_t::preview_height, dt_develop_t::preview_width, dt_develop_t::roi, dt_develop_t::selected_sample, set_color(), dt_colorpicker_sample_t::size, dt_colorpicker_sample_t::swatch, TRUE, width, and x.

Referenced by expose().

◆ _darkroom_prepare_image_surface()

◆ _darkroom_preview_fallback_valid()

static gboolean _darkroom_preview_fallback_valid ( const dt_develop_t dev,
const int  width,
const int  height,
const uint64_t  zoom_hash 
)
inlinestatic

◆ _darkroom_reset_expose_state()

static void _darkroom_reset_expose_state ( darkroom_expose_state_t state)
inlinestatic

◆ _darkroom_restart_cache_wait()

static void _darkroom_restart_cache_wait ( gpointer  user_data)
static

Definition at line 630 of file darkroom.c.

References dt_control_queue_redraw_center(), dt_develop_t::gui_attached, and IS_NULL_PTR.

Referenced by _lock_pipe_surface().

◆ _darkroom_sample_raw_box_to_image_norm()

static void _darkroom_sample_raw_box_to_image_norm ( const dt_colorpicker_sample_t *const  sample,
float  box[4] 
)
inlinestatic

◆ _darkroom_sample_raw_point_to_image_norm()

static void _darkroom_sample_raw_point_to_image_norm ( const dt_colorpicker_sample_t *const  sample,
float  point[2] 
)
inlinestatic

◆ _darkroom_set_default_cursor()

static void _darkroom_set_default_cursor ( dt_view_t self,
double  x,
double  y 
)
static

Definition at line 2874 of file darkroom.c.

References dt_control_queue_cursor_by_name(), mouse_in_actionarea(), mouse_in_imagearea(), and x.

Referenced by gui_init(), and mouse_moved().

◆ _darkroom_toolbox_button_activate_accel()

static gboolean _darkroom_toolbox_button_activate_accel ( GtkAccelGroup *  accel_group,
GObject *  accelerable,
guint  keyval,
GdkModifierType  modifier,
gpointer  data 
)
static

DOC Toolbox accelerators forward keyboard activation to the existing Gtk buttons so the keyboard path reuses the exact same callbacks, state changes and popover anchoring as the pointer path.

Definition at line 1457 of file darkroom.c.

References FALSE, IS_NULL_PTR, and TRUE.

Referenced by gui_init().

◆ _darkroom_toolbox_button_focus_accel()

static gboolean _darkroom_toolbox_button_focus_accel ( GtkAccelGroup *  accel_group,
GObject *  accelerable,
guint  keyval,
GdkModifierType  modifier,
gpointer  data 
)
static

Definition at line 1468 of file darkroom.c.

References _toolbar_show_popup(), FALSE, IS_NULL_PTR, and TRUE.

Referenced by gui_init().

◆ _delayed_history_commit()

◆ _dev_change_image()

static void _dev_change_image ( dt_view_t self,
const int32_t  imgid 
)
static

◆ _display_quickbutton_clicked()

static void _display_quickbutton_clicked ( GtkWidget w,
gpointer  user_data 
)
static

DOC Overexposed and gamut modules are inserted inplace in pipeline at runtime, only for the main preview, and don't add history items. They all need a full history -> pipeline resynchronization.

Definition at line 1536 of file darkroom.c.

Referenced by gui_init().

◆ _focus_main_image()

gboolean _focus_main_image ( GtkAccelGroup *  accel_group,
GObject *  accelerable,
guint  keyval,
GdkModifierType  modifier,
gpointer  data 
)

Definition at line 1857 of file darkroom.c.

References darktable, dt_ui_center(), darktable_t::gui, TRUE, and dt_gui_gtk_t::ui.

◆ _gamut_quickbutton_clicked()

static void _gamut_quickbutton_clicked ( GtkWidget w,
gpointer  user_data 
)
static

◆ _get_final_size_with_iso_12646()

static void _get_final_size_with_iso_12646 ( dt_develop_t d)
static

◆ _guides_quickbutton_clicked()

static void _guides_quickbutton_clicked ( GtkWidget widget,
gpointer  user_data 
)
static

Definition at line 1517 of file darkroom.c.

References dt_control_queue_redraw_center(), and dt_guides_button_toggled().

Referenced by gui_init().

◆ _guides_view_changed()

static void _guides_view_changed ( gpointer  instance,
dt_view_t old_view,
dt_view_t new_view,
dt_lib_module_t self 
)
static

Definition at line 1523 of file darkroom.c.

References dt_guides_update_button_state().

Referenced by gui_init().

◆ _is_in_frame()

static gboolean _is_in_frame ( const int  width,
const int  height,
const int  x,
const int  y 
)
static

Definition at line 2849 of file darkroom.c.

References DT_PIXEL_APPLY_DPI, height, width, and x.

Referenced by mouse_in_actionarea(), and mouse_in_imagearea().

◆ _is_scroll_captured_by_widget()

static gboolean _is_scroll_captured_by_widget ( )
static

◆ _iso_12646_quickbutton_clicked()

static void _iso_12646_quickbutton_clicked ( GtkWidget w,
gpointer  user_data 
)
static

◆ _key_scroll()

◆ _lib_darkroom_get_layout()

static dt_darkroom_layout_t _lib_darkroom_get_layout ( dt_view_t self)
static

Definition at line 292 of file darkroom.c.

References DT_DARKROOM_LAYOUT_EDITING.

Referenced by gui_init().

◆ _lock_pipe_surface()

◆ _overexposed_quickbutton_clicked()

static void _overexposed_quickbutton_clicked ( GtkWidget w,
gpointer  user_data 
)
static

◆ _paint_all()

static void _paint_all ( cairo_t *  cri,
cairo_t *  cr,
cairo_surface_t *  image_surface 
)
static

Definition at line 859 of file darkroom.c.

References IS_NULL_PTR.

Referenced by expose().

◆ _preview_pipe_finished()

◆ _quickbutton_press_release()

static gboolean _quickbutton_press_release ( GtkWidget button,
GdkEventButton *  event,
GtkWidget popover 
)
static

end of toolbox

Definition at line 1828 of file darkroom.c.

References _toolbar_show_popup(), FALSE, and TRUE.

Referenced by connect_button_press_release().

◆ _rawoverexposed_quickbutton_clicked()

static void _rawoverexposed_quickbutton_clicked ( GtkWidget w,
gpointer  user_data 
)
static

◆ _release_expose_source_caches()

◆ _release_locked_surface()

◆ _release_preview_fallback_surface()

◆ _render_iso12646()

static void _render_iso12646 ( cairo_t *  cr,
double  width,
double  height,
int  border 
)
static

Definition at line 480 of file darkroom.c.

References height, and width.

Referenced by _build_preview_fallback_surface(), and _render_main_locked_surface().

◆ _render_main_locked_surface()

◆ _render_preview_fallback_surface()

static gboolean _render_preview_fallback_surface ( cairo_t *  cr)
static

Definition at line 851 of file darkroom.c.

References _darkroom_preview_fallback_surface, FALSE, IS_NULL_PTR, and TRUE.

Referenced by expose().

◆ _reset_edge_pan()

◆ _scroll_on_focus()

gboolean _scroll_on_focus ( GdkEventScroll  event,
void data 
)

◆ _softproof_quickbutton_clicked()

static void _softproof_quickbutton_clicked ( GtkWidget w,
gpointer  user_data 
)
static

◆ _switch_to_next_picture()

gboolean _switch_to_next_picture ( GtkAccelGroup *  accel_group,
GObject *  accelerable,
guint  keyval,
GdkModifierType  modifier,
gpointer  data 
)

◆ _switch_to_prev_picture()

gboolean _switch_to_prev_picture ( GtkAccelGroup *  accel_group,
GObject *  accelerable,
guint  keyval,
GdkModifierType  modifier,
gpointer  data 
)

◆ _toolbar_show_popup()

◆ _update_softproof_gamut_checking()

◆ _view_darkroom_filmstrip_activate_callback()

static void _view_darkroom_filmstrip_activate_callback ( gpointer  instance,
int32_t  imgid,
gpointer  user_data 
)
static

Definition at line 1397 of file darkroom.c.

References _dev_change_image(), and UNKNOWN_IMAGE.

Referenced by enter(), and leave().

◆ _write_snapshot_data()

static cairo_status_t _write_snapshot_data ( void closure,
const unsigned char *  data,
unsigned int  length 
)
static

Definition at line 283 of file darkroom.c.

Referenced by expose().

◆ button_pressed()

int button_pressed ( dt_view_t self,
double  x,
double  y,
double  pressure,
int  which,
int  type,
uint32_t  state 
)
Todo:
: this is a naive implementation, nicer would be to cycle through overlapping samples then reset
Todo:
: color_pixer_proxy should have an dt_iop_color_picker_clear_area() function for this

Definition at line 3344 of file darkroom.c.

References _change_scaling(), _darkroom_center_pan_drag, _delayed_history_commit(), dt_colorpicker_sample_t::box, dt_develop_t::color_picker, dt_masks_form_gui_t::creation, darktable, dt_view_t::data, darktable_t::develop, dt_develop_t::display_samples, DT_COLOR_PICKER_AREA, DT_COLOR_PICKER_POINT, dt_control_queue_cursor, DT_DEBUG_INPUT, dt_dev_coordinates_image_norm_to_raw_norm(), dt_dev_coordinates_raw_norm_to_image_norm(), dt_dev_coordinates_widget_delta_to_image_delta(), dt_dev_coordinates_widget_to_image_norm(), dt_dev_get_fit_scale(), dt_gui_throttle_queue(), dt_iop_color_picker_is_visible(), dt_lib_colorpicker_set_box_area(), dt_lib_colorpicker_set_point(), DT_LIB_COLORPICKER_SIZE_BOX, DT_LIB_COLORPICKER_SIZE_POINT, dt_masks_events_button_pressed(), dt_masks_get_visible_form(), dt_print(), dt_ui_center(), dt_iop_module_t::enabled, FALSE, dt_develop_t::form_gui, darktable_t::gui, dt_develop_t::gui_module, dt_gui_gtk_t::is_dragging, dt_iop_color_picker_t::kind, darktable_t::lib, MAX, dt_gui_gtk_t::mouse, mouse_in_imagearea(), dt_develop_t::natural_scale, dt_develop_t::picker, dt_colorpicker_sample_t::point, dt_develop_t::primary_sample, dt_develop_t::processed_height, dt_develop_t::processed_width, reset(), dt_develop_t::roi, dt_develop_t::samples, dt_develop_t::scaling, dt_colorpicker_sample_t::size, state, TRUE, type, dt_gui_gtk_t::ui, and x.

◆ button_released()

◆ cleanup()

◆ colorscheme_callback()

static void colorscheme_callback ( GtkWidget combo,
gpointer  user_data 
)
static

◆ configure()

◆ connect_button_press_release()

void connect_button_press_release ( GtkWidget w,
GtkWidget p 
)

Definition at line 1851 of file darkroom.c.

References _quickbutton_press_release(), and p.

Referenced by gui_init().

◆ display_borders_callback()

static void display_borders_callback ( GtkWidget slider,
gpointer  user_data 
)
static

◆ display_brightness_callback()

static void display_brightness_callback ( GtkWidget slider,
gpointer  user_data 
)
static

◆ display_mask_black_and_white_callback()

static void display_mask_black_and_white_callback ( GtkToggleButton *  toggle,
gpointer  user_data 
)
static

Definition at line 1594 of file darkroom.c.

References d, dt_atomic_add_int(), dt_conf_set_bool(), and dt_dev_pixelpipe_resync_history_main.

Referenced by gui_init().

◆ display_mask_checker_1_callback()

static void display_mask_checker_1_callback ( GtkColorButton *  widget,
gpointer  user_data 
)
static

Persist the global mask-preview appearance and resynchronize every node using it.

The historical Color Balance key namespace is intentionally retained so existing checkerboard preferences survive moving these controls into the darkroom toolbox.

Definition at line 1562 of file darkroom.c.

References d, dt_atomic_add_int(), dt_conf_set_float(), and dt_dev_pixelpipe_resync_history_main.

Referenced by gui_init().

◆ display_mask_checker_2_callback()

static void display_mask_checker_2_callback ( GtkColorButton *  widget,
gpointer  user_data 
)
static

Definition at line 1574 of file darkroom.c.

References d, dt_atomic_add_int(), dt_conf_set_float(), and dt_dev_pixelpipe_resync_history_main.

Referenced by gui_init().

◆ display_mask_checker_size_callback()

static void display_mask_checker_size_callback ( GtkWidget slider,
gpointer  user_data 
)
static

◆ enter()

◆ expose()

void expose ( dt_view_t self,
cairo_t *  cri,
int32_t  width,
int32_t  height,
int32_t  pointerx,
int32_t  pointery 
)
Todo:
: draw picker in gui_post_expose() hook in libs/colorpicker.c – catch would be that live samples would appear over guides, softproof/gamut text overlay would be hidden by picker

Definition at line 940 of file darkroom.c.

References _build_preview_fallback_surface(), _colormanage_ui_color(), _darkroom_locked_main_valid_for_zoom(), _darkroom_main_locked, _darkroom_pickers_draw(), _darkroom_prepare_image_surface(), _darkroom_preview_fallback_backbuf_hash, _darkroom_preview_fallback_valid(), _darkroom_preview_locked, _lock_pipe_surface(), _paint_all(), _release_preview_fallback_surface(), _render_main_locked_surface(), _render_preview_fallback_surface(), _write_snapshot_data(), dt_dev_pixelpipe_t::backbuf, darktable_t::bauhaus, dt_develop_t::border_size, dt_develop_t::color_picker, darktable_t::color_profiles, darktable, dt_view_t::data, darktable_t::develop, dt_develop_t::display_samples, dt_conf_get_int(), dt_control_queue_redraw_center(), DT_DEBUG_DEV, dt_dev_backbuf_get_hash(), dt_dev_clip_roi(), dt_dev_get_overlay_scale(), dt_dev_pipelines_share_preview_output(), dt_dev_rescale_roi(), dt_get_times(), dt_guides_draw(), dt_hash(), dt_iop_color_picker_is_visible(), dt_lib_get_module(), dt_lib_gui_get_expanded(), dt_masks_events_post_expose(), dt_masks_get_visible_form(), DT_PIXEL_APPLY_DPI, DT_PIXELPIPE_CACHE_HASH_INVALID, dt_print(), DT_PROFILE_GAMUTCHECK, DT_PROFILE_NORMAL, dt_show_times_f(), dt_develop_t::enabled, dt_iop_module_t::enabled, FALSE, dt_develop_t::filename, dt_develop_t::gui_module, darkroom_locked_surface_t::hash, height, dt_backbuf_t::height, dt_image_t::id, dt_develop_t::image_storage, dt_develop_t::image_surface, darkroom_expose_state_t::image_surface_has_main, darkroom_expose_state_t::image_surface_hash, darkroom_expose_state_t::image_surface_imgid, darkroom_expose_state_t::image_surface_width, IOP_FLAGS_GUIDES_SPECIAL_DRAW, IS_NULL_PTR, dt_develop_t::iso_12646, darkroom_expose_state_t::main_zoom_hash, dt_colorspaces_t::mode, O_BINARY, dt_bauhaus_t::pango_font_desc, darkroom_expose_state_t::pending_main_hash, dt_develop_t::pipe, dt_develop_t::preview_height, dt_develop_t::preview_pipe, dt_develop_t::preview_width, dt_develop_t::primary_sample, dt_develop_t::proxy, dt_develop_t::request, dt_develop_t::roi, dt_develop_t::samples, scaling, dt_develop_t::selected_sample, dt_develop_t::snapshot, darkroom_locked_surface_t::surface, TRUE, UNKNOWN_IMAGE, width, and dt_backbuf_t::width.

Referenced by mouse_moved().

◆ gui_init()

void gui_init ( dt_view_t self)

let's fill the encapsulating widgets

let's fill the encapsulating widgets

Todo:
can't use DT_BAUHAUS_COMBOBOX_NEW_FULL because of (unnecessary?) translation context

let's fill the encapsulating widgets

let's fill the encapsulating widgets

Definition at line 2020 of file darkroom.c.

References _autoset_manager, _darkroom_autoset_button, _darkroom_autoset_button_set_running(), _darkroom_autoset_list, _darkroom_autoset_popover, _darkroom_autoset_popover_rebuild(), _darkroom_autoset_popover_refresh(), _darkroom_autoset_quickbutton_clicked(), _darkroom_change_rendering_size(), _darkroom_ioporder_button, _darkroom_ioporder_quickbutton_clicked(), _darkroom_set_default_cursor(), _darkroom_toolbox_button_activate_accel(), _darkroom_toolbox_button_focus_accel(), _display_quickbutton_clicked(), _gamut_quickbutton_clicked(), _guides_quickbutton_clicked(), _guides_view_changed(), _iso_12646_quickbutton_clicked(), _lib_darkroom_get_layout(), _overexposed_quickbutton_clicked(), _preview_pipe_finished(), _rawoverexposed_quickbutton_clicked(), _softproof_quickbutton_clicked(), _switch_to_next_picture(), _switch_to_prev_picture(), _update_softproof_gamut_checking(), dt_gui_gtk_t::accels, darktable_t::bauhaus, dt_develop_t::border_size, dt_develop_t::button, darktable_t::color_profiles, dt_develop_t::colorscheme, colorscheme_callback(), connect_button_press_release(), dt_view_manager_t::darkroom, dt_accels_t::darkroom_accels, darktable, dt_view_t::data, dt_develop_t::display, display_borders_callback(), display_brightness_callback(), display_mask_black_and_white_callback(), display_mask_checker_1_callback(), display_mask_checker_2_callback(), display_mask_checker_size_callback(), dt_accels_build_path(), dt_accels_new_darkroom_action, dt_accels_new_virtual_shortcut(), dt_bauhaus_combobox_add(), dt_bauhaus_combobox_new(), DT_BAUHAUS_COMBOBOX_NEW_FULL, dt_bauhaus_combobox_set(), dt_bauhaus_combobox_set_entries_ellipsis(), dt_bauhaus_slider_new_with_range(), dt_bauhaus_slider_set(), dt_bauhaus_slider_set_format(), dt_bauhaus_widget_set_label(), dt_calloc_align(), DT_COLORSPACE_FILE, dt_conf_get_bool(), dt_conf_get_float(), dt_conf_get_int(), DT_DEBUG_CONTROL_SIGNAL_CONNECT, dt_free, dt_get_help_url(), dt_gui_add_help_link(), DT_GUI_BOX_SPACING, DT_GUI_MODULE, dt_guides_popover(), dt_loc_get_datadir(), dt_loc_get_user_config_dir(), DT_PIXEL_APPLY_DPI, DT_SIGNAL_DEVELOP_HISTORY_CHANGE, DT_SIGNAL_DEVELOP_IMAGE_CHANGED, DT_SIGNAL_DEVELOP_MODULE_REMOVE, DT_SIGNAL_DEVELOP_PREVIEW_PIPE_FINISHED, DT_SIGNAL_VIEWMANAGER_VIEW_CHANGED, dt_ui_center(), dt_ui_label_new(), dt_ui_section_label_new(), DT_VIEW_DARKROOM, dt_view_manager_module_toolbox_add(), dtgtk_button_new(), dtgtk_cairo_paint_bulb(), dtgtk_cairo_paint_display(), dtgtk_cairo_paint_flowchart(), dtgtk_cairo_paint_gamut_check(), dtgtk_cairo_paint_grid(), dtgtk_cairo_paint_overexposed(), dtgtk_cairo_paint_rawoverexposed(), dtgtk_cairo_paint_softproof(), dtgtk_cairo_paint_wand(), dtgtk_togglebutton_new(), FALSE, dt_colorspaces_color_profile_t::filename, dt_develop_t::floating_window, dt_develop_t::gamut_button, dt_view_manager_t::get_layout, darktable_t::gui, dt_view_manager_t::guides_popover, dt_view_manager_t::guides_toggle, dt_develop_t::iso_12646, dt_develop_t::lower, lower_callback(), dt_develop_t::mode, mode_callback(), dt_colorspaces_color_profile_t::name, dt_colorspaces_color_profile_t::out_pos, dt_develop_t::overexposed, PATH_MAX, dt_develop_t::profile, dt_colorspaces_t::profiles, dt_view_manager_t::proxy, dt_develop_t::rawoverexposed, rawoverexposed_colorscheme_callback(), rawoverexposed_mode_callback(), rawoverexposed_threshold_callback(), dt_develop_t::roi, dt_view_manager_t::set_default_cursor, darktable_t::signals, dt_develop_t::softproof_button, dt_colorspaces_t::softproof_filename, softproof_profile_callback(), dt_colorspaces_t::softproof_type, threshold, dt_develop_t::threshold, tooltip, TRUE, dt_colorspaces_color_profile_t::type, dt_gui_gtk_t::ui, dt_develop_t::upper, upper_callback(), and darktable_t::view_manager.

◆ init()

◆ key_pressed()

◆ leave()

void leave ( dt_view_t self)

Definition at line 2644 of file darkroom.c.

References _autoset_manager, _darkroom_center_pan_drag, _darkroom_pending_focus_module, _release_expose_source_caches(), _reset_edge_pan(), _view_darkroom_filmstrip_activate_callback(), dt_gui_gtk_t::accels, dt_develop_t::allforms, dt_develop_t::alliop, dt_dev_pixelpipe_t::backbuf, dt_dev_pixelpipe_t::busy_mutex, dt_develop_t::color_picker, darktable, dt_view_t::data, darktable_t::develop, dt_develop_t::display_histogram, dt_accels_detach_scroll_handler(), dt_accels_disconnect_active_group(), dt_atomic_set_int(), dt_conf_set_string(), DT_DEBUG_CONTROL, DT_DEBUG_CONTROL_SIGNAL_DISCONNECT, dt_dev_backbuf_get_hash(), dt_dev_backbuf_set_hash(), dt_dev_history_free_history(), dt_dev_pixelpipe_cache_flush_clmem_for_pipe(), dt_dev_pixelpipe_cache_unref_hash(), dt_dev_pixelpipe_cache_wait_cleanup(), dt_dev_pixelpipe_cache_wait_dump_pending(), dt_dev_pixelpipe_cleanup_nodes(), dt_dev_set_backbuf(), dt_free, dt_get_wtime(), dt_gui_throttle_cancel(), dt_iop_cleanup_module(), dt_iop_color_picker_cleanup(), dt_iop_color_picker_reset(), dt_iop_gui_cleanup_module(), dt_iop_is_hidden(), dt_masks_free_form(), dt_masks_gui_cleanup(), DT_PIXELPIPE_CACHE_HASH_INVALID, dt_print(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_pthread_rwlock_unlock, dt_pthread_rwlock_wrlock, dt_selection_select_single(), dt_thumbtable_hide(), dt_thumbtable_refresh_thumbnail, dt_ui_center(), dt_view_active_images_get_first(), dt_view_active_images_reset(), dt_develop_t::exit, FALSE, dt_develop_t::floating_window, dt_develop_t::form_gui, dt_develop_t::forms, darktable_t::gui, dt_develop_t::gui_module, dt_develop_t::history_mutex, dt_image_t::id, dt_develop_t::image_storage, dt_develop_t::image_surface, dt_autoset_manager_t::input_wait, dt_develop_t::iop, dt_gui_gtk_t::is_dragging, IS_NULL_PTR, dt_dev_pixelpipe_t::last_devid, m, dt_develop_t::masks_mutex, dt_gui_gtk_t::mouse, dt_iop_module_t::op, dt_develop_t::output_histogram, dt_develop_t::overexposed, dt_develop_t::picker, dt_develop_t::pipe, dt_develop_t::pipelines_started, darktable_t::pixelpipe_cache, dt_develop_t::preview_pipe, dt_develop_t::profile, dt_develop_t::raw_histogram, dt_develop_t::rawoverexposed, darktable_t::selection, dt_dev_pixelpipe_t::shutdown, darktable_t::signals, dt_ui_t::thumbtable_filmstrip, dt_ui_t::thumbtable_lighttable, TRUE, dt_gui_gtk_t::ui, dt_develop_t::virtual_pipe, and void().

Referenced by _event_dnd_received(), and _name_editing_done().

◆ lower_callback()

static void lower_callback ( GtkWidget slider,
gpointer  user_data 
)
static

◆ mode_callback()

static void mode_callback ( GtkWidget slider,
gpointer  user_data 
)
static

◆ mouse_enter()

void mouse_enter ( dt_view_t self)

◆ mouse_in_actionarea()

static gboolean mouse_in_actionarea ( dt_view_t self,
double  x,
double  y 
)
static

◆ mouse_in_imagearea()

static gboolean mouse_in_imagearea ( dt_view_t self,
double  x,
double  y 
)
static

◆ mouse_leave()

◆ mouse_moved()

void mouse_moved ( dt_view_t self,
double  x,
double  y,
double  pressure,
int  which 
)

Definition at line 3118 of file darkroom.c.

References _darkroom_center_pan_drag, _darkroom_edge_pan_tick(), _darkroom_edge_pan_update_state(), _darkroom_sample_raw_point_to_image_norm(), _darkroom_set_default_cursor(), _delayed_history_commit(), _reset_edge_pan(), dt_gui_gtk_t::block_normal_pan, dt_colorpicker_sample_t::box, dt_control_t::button_down, dt_control_t::button_down_which, dt_control_t::button_x, dt_control_t::button_y, dt_develop_t::color_picker, darktable_t::control, DARKROOM_EDGE_PAN_INTERVAL_MS, darktable, dt_view_t::data, delta, darktable_t::develop, darkroom_edge_pan_test_t::drag, dt_control_commit_cursor(), dt_control_queue_redraw_center(), dt_dev_check_zoom_pos_bounds(), dt_dev_coordinates_raw_norm_to_image_norm(), dt_dev_coordinates_widget_delta_to_image_delta(), dt_dev_coordinates_widget_to_image_norm(), dt_dev_pixelpipe_change_zoom_main(), dt_gui_throttle_queue(), dt_iop_color_picker_is_visible(), dt_lib_colorpicker_set_box_area(), dt_lib_colorpicker_set_point(), DT_LIB_COLORPICKER_SIZE_BOX, DT_LIB_COLORPICKER_SIZE_POINT, dt_masks_events_mouse_moved(), dt_masks_get_visible_form(), FALSE, darktable_t::gui, dt_develop_t::gui_module, dt_view_t::height, darkroom_edge_pan_test_t::in_margin, dt_gui_gtk_t::is_dragging, k, dt_gui_gtk_t::last_time_us, darktable_t::lib, MAX, MIN, dt_gui_gtk_t::mouse, mouse_in_imagearea(), dt_gui_gtk_t::pan_edge, dt_develop_t::primary_sample, dt_develop_t::processed_height, dt_develop_t::processed_width, dt_develop_t::roi, dt_develop_t::scaling, dt_colorpicker_sample_t::size, dt_gui_gtk_t::timeout_source, TRUE, dt_gui_gtk_t::velocity, darkroom_edge_pan_test_t::velocity, dt_gui_gtk_t::view, dt_view_t::width, x, dt_develop_t::x, and dt_develop_t::y.

Referenced by _darkroom_edge_pan_apply().

◆ name()

const char * name ( const dt_view_t self)

Definition at line 213 of file darkroom.c.

◆ rawoverexposed_colorscheme_callback()

static void rawoverexposed_colorscheme_callback ( GtkWidget combo,
gpointer  user_data 
)
static

◆ rawoverexposed_mode_callback()

static void rawoverexposed_mode_callback ( GtkWidget combo,
gpointer  user_data 
)
static

◆ rawoverexposed_threshold_callback()

static void rawoverexposed_threshold_callback ( GtkWidget slider,
gpointer  user_data 
)
static

◆ reset()

◆ scrolled()

◆ softproof_profile_callback()

◆ try_enter()

◆ upper_callback()

static void upper_callback ( GtkWidget slider,
gpointer  user_data 
)
static

◆ view()

uint32_t view ( const dt_view_t self)

Definition at line 227 of file darkroom.c.

References DT_VIEW_DARKROOM.

Referenced by _active_modules_popup(), _add_selected_metadata(), _add_tag_button_clicked(), _apply_smudge_stroke_mode(), _attached_key_pressed(), _blendop_masks_all_rename_callback(), _brush_runtime_view_from_state(), _click_on_metadata_list(), _click_on_view(), _click_on_view_attached(), _click_on_view_dictionary(), _collect_expanded_cb(), _dictionary_key_pressed(), _discarded_files_popup(), _dt_ctl_switch_mode_to_by_view(), _ensure_widget_cache(), _estimate_alpha_noise_gain(), _init_treeview(), _menuitem_preferences(), _needs_recompute(), _pop_menu_dictionary_change_path(), _pop_menu_dictionary_create_tag(), _pop_menu_dictionary_delete_node(), _pop_menu_dictionary_edit_tag(), _pop_menu_dictionary_set_as_tag(), _pop_menu_view(), _prepare_analytic_pixel_context(), _prepare_blur_context(), _preview_button_press(), _sample_alpha_noise_raw(), _select_next_user_attached_tag(), _select_previous_user_attached_tag(), _selected_tagids(), _show_iter_on_view(), _show_keyword_on_view(), _show_tag_on_view(), _switch_to_next_picture(), _switch_to_prev_picture(), _unselect_all_in_view(), _update_attached_count(), _view_button_pressed(), _view_row_activated(), _view_row_expanded(), append_views(), available_in_lighttable_callback(), dt_ctl_switch_mode_to_by_view(), dt_drawlayer_brush_rasterize(), dt_drawlayer_compute_view_patch(), dt_lib_export_metadata_configuration_dialog(), dt_lib_init_module(), dt_lib_is_visible_in_view(), dt_lib_load_module(), dt_lib_unload_module(), dt_view_manager_gui_init(), dt_view_unload_module(), gui_init(), gui_init(), gui_post_expose(), and row_activated().

Variable Documentation

◆ _autoset_manager

dt_autoset_manager_t* _autoset_manager = NULL
static

◆ _darkroom_autoset_button

GtkWidget* _darkroom_autoset_button = NULL
static

Definition at line 172 of file darkroom.c.

Referenced by _darkroom_autoset_button_set_running(), and gui_init().

◆ _darkroom_autoset_button_is_running

gboolean _darkroom_autoset_button_is_running = FALSE
static

Definition at line 175 of file darkroom.c.

Referenced by _darkroom_autoset_button_set_running(), and cleanup().

◆ _darkroom_autoset_list

GtkWidget* _darkroom_autoset_list = NULL
static

Definition at line 174 of file darkroom.c.

Referenced by _darkroom_autoset_popover_rebuild(), cleanup(), and gui_init().

◆ _darkroom_autoset_popover

GtkWidget* _darkroom_autoset_popover = NULL
static

Definition at line 173 of file darkroom.c.

Referenced by _toolbar_show_popup(), cleanup(), and gui_init().

◆ _darkroom_center_pan_drag

gboolean _darkroom_center_pan_drag = FALSE
static

Definition at line 169 of file darkroom.c.

Referenced by button_pressed(), button_released(), leave(), mouse_leave(), and mouse_moved().

◆ _darkroom_ioporder_button

GtkWidget* _darkroom_ioporder_button = NULL
static

Definition at line 168 of file darkroom.c.

Referenced by gui_init().

◆ _darkroom_main_locked

darkroom_locked_surface_t _darkroom_main_locked = { .hash = (uint64_t)-1 }
static

◆ _darkroom_main_wait

dt_dev_pixelpipe_cache_wait_t _darkroom_main_wait = { 0 }
static

Definition at line 586 of file darkroom.c.

Referenced by _lock_pipe_surface(), and _release_expose_source_caches().

◆ _darkroom_pending_focus_module

dt_iop_module_t* _darkroom_pending_focus_module = NULL
static

Definition at line 167 of file darkroom.c.

Referenced by _darkroom_image_loaded_callback(), cleanup(), enter(), and leave().

◆ _darkroom_pending_imgid

int32_t _darkroom_pending_imgid = UNKNOWN_IMAGE
static

Definition at line 166 of file darkroom.c.

Referenced by cleanup(), enter(), and try_enter().

◆ _darkroom_preview_fallback_backbuf_hash

uint64_t _darkroom_preview_fallback_backbuf_hash = 0
static

◆ _darkroom_preview_fallback_height

int _darkroom_preview_fallback_height = 0
static

◆ _darkroom_preview_fallback_imgid

int32_t _darkroom_preview_fallback_imgid = UNKNOWN_IMAGE
static

◆ _darkroom_preview_fallback_surface

cairo_surface_t* _darkroom_preview_fallback_surface = NULL
static

◆ _darkroom_preview_fallback_width

int _darkroom_preview_fallback_width = 0
static

◆ _darkroom_preview_fallback_zoom_hash

uint64_t _darkroom_preview_fallback_zoom_hash = 0
static

◆ _darkroom_preview_locked

darkroom_locked_surface_t _darkroom_preview_locked = { .hash = (uint64_t)-1 }
static

◆ _darkroom_preview_wait

dt_dev_pixelpipe_cache_wait_t _darkroom_preview_wait = { 0 }
static

Definition at line 587 of file darkroom.c.

Referenced by _lock_pipe_surface(), and _release_expose_source_caches().