Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
darkroom.c File Reference
#include "common/extra_optimizations.h"
#include "bauhaus/bauhaus.h"
#include "common/collection.h"
#include "common/colorspaces.h"
#include "common/darktable.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/imageio_module.h"
#include "common/selection.h"
#include "common/styles.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/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/gtk.h"
#include "gui/guides.h"
#include "gui/presets.h"
#include "libs/colorpicker.h"
#include "libs/modulegroups.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:

Data Structures

struct  coords_t
 

Macros

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

Typedefs

typedef struct coords_t coords_t
 

Enumerations

enum  { DND_TARGET_IOP }
 

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 _dev_change_image (dt_view_t *self, const int32_t imgid)
 
static int _change_scaling (dt_develop_t *dev, const float x, const float y, const float new_scaling)
 
const char * name (const dt_view_t *self)
 
void init (dt_view_t *self)
 
uint32_t view (const dt_view_t *self)
 
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_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)
 
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)
 
int try_enter (dt_view_t *self)
 
static void _darkroom_ui_apply_style_activate_callback (gchar *name)
 
static void _darkroom_ui_apply_style_popupmenu (GtkWidget *w, gpointer user_data)
 
static gboolean _toolbar_show_popup (gpointer user_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 _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 _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)
 
void gui_init (dt_view_t *self)
 
static dt_iop_module_t_get_dnd_dest_module (GtkBox *container, gint x, gint y, dt_iop_module_t *module_src)
 
static dt_iop_module_t_get_dnd_source_module (GtkBox *container)
 
static void _on_drag_end (GtkWidget *widget, GdkDragContext *context, gpointer user_data)
 
static void _on_drag_begin (GtkWidget *widget, GdkDragContext *context, gpointer user_data)
 
static void _on_drag_data_get (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *selection_data, guint info, guint time, gpointer user_data)
 
static gboolean _on_drag_drop (GtkWidget *widget, GdkDragContext *dc, gint x, gint y, guint time, gpointer user_data)
 
static gboolean _on_drag_motion (GtkWidget *widget, GdkDragContext *dc, gint x, gint y, guint time, gpointer user_data)
 
static void _on_drag_data_received (GtkWidget *widget, GdkDragContext *dc, gint x, gint y, GtkSelectionData *selection_data, guint info, guint time, gpointer user_data)
 
static void _on_drag_leave (GtkWidget *widget, GdkDragContext *dc, guint time, gpointer user_data)
 
static void _register_modules_drag_n_drop (dt_view_t *self)
 
static void _unregister_modules_drag_n_drop (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)
 
static void _set_default_cursor (dt_view_t *self, double x, double y)
 
void mouse_enter (dt_view_t *self)
 
static int _delayed_history_commit (gpointer data)
 
static void _do_delayed_history_commit (dt_develop_t *dev)
 
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)
 
int key_pressed (dt_view_t *self, GdkEventKey *event)
 
void configure (dt_view_t *self, int wd, int ht)
 

Variables

static const GtkTargetEntry _iop_target_list_internal [] = { { "iop", GTK_TARGET_SAME_WIDGET, DND_TARGET_IOP } }
 
static const guint _iop_n_targets_internal = G_N_ELEMENTS(_iop_target_list_internal)
 

Macro Definition Documentation

◆ DRAWING_TIMEOUT

#define DRAWING_TIMEOUT   200

◆ G_SOURCE_FUNC

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

this is the view for the darkroom module.

Typedef Documentation

◆ coords_t

typedef struct coords_t coords_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
DND_TARGET_IOP 

Function Documentation

◆ _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

◆ _change_scaling()

◆ _colormanage_ui_color()

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

◆ _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

◆ _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?

References _darkroom_is_only_selected_sample(), dt_dev_pixelpipe_t::backbuf_height, dt_dev_pixelpipe_t::backbuf_width, dt_colorpicker_sample_t::box, dt_lib_t::colorpicker, darktable, dt_view_t::data, dt_lib_t::display_samples, dt_dev_get_fit_scale(), dt_dev_rescale_roi(), DT_LIB_COLORPICKER_SIZE_BOX, DT_LIB_COLORPICKER_SIZE_POINT, FALSE, height, darktable_t::lib, lw, M_PI, dt_colorpicker_sample_t::point, dt_develop_t::preview_pipe, dt_lib_t::proxy, dt_lib_t::selected_sample, set_color(), dt_colorpicker_sample_t::size, dt_colorpicker_sample_t::swatch, TRUE, and width.

Referenced by expose().

◆ _darkroom_ui_apply_style_activate_callback()

◆ _darkroom_ui_apply_style_popupmenu()

static void _darkroom_ui_apply_style_popupmenu ( GtkWidget *  w,
gpointer  user_data 
)
static

◆ _delayed_history_commit()

◆ _dev_change_image()

◆ _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.

Referenced by gui_init().

◆ _do_delayed_history_commit()

static void _do_delayed_history_commit ( dt_develop_t dev)
static

◆ _gamut_quickbutton_clicked()

◆ _get_dnd_dest_module()

static dt_iop_module_t * _get_dnd_dest_module ( GtkBox *  container,
gint  x,
gint  y,
dt_iop_module_t module_src 
)
static

◆ _get_dnd_source_module()

static dt_iop_module_t * _get_dnd_source_module ( GtkBox *  container)
static

◆ _get_final_size_with_iso_12646()

◆ _guides_quickbutton_clicked()

static void _guides_quickbutton_clicked ( GtkWidget *  widget,
gpointer  user_data 
)
static

◆ _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

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

◆ _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

◆ _lib_darkroom_get_layout()

static dt_darkroom_layout_t _lib_darkroom_get_layout ( dt_view_t self)
static

References DT_DARKROOM_LAYOUT_EDITING.

Referenced by gui_init().

◆ _on_drag_begin()

static void _on_drag_begin ( GtkWidget *  widget,
GdkDragContext *  context,
gpointer  user_data 
)
static

◆ _on_drag_data_get()

static void _on_drag_data_get ( GtkWidget *  widget,
GdkDragContext *  context,
GtkSelectionData *  selection_data,
guint  info,
guint  time,
gpointer  user_data 
)
static

◆ _on_drag_data_received()

◆ _on_drag_drop()

static gboolean _on_drag_drop ( GtkWidget *  widget,
GdkDragContext *  dc,
gint  x,
gint  y,
guint  time,
gpointer  user_data 
)
static

◆ _on_drag_end()

static void _on_drag_end ( GtkWidget *  widget,
GdkDragContext *  context,
gpointer  user_data 
)
static

◆ _on_drag_leave()

static void _on_drag_leave ( GtkWidget *  widget,
GdkDragContext *  dc,
guint  time,
gpointer  user_data 
)
static

◆ _on_drag_motion()

◆ _overexposed_quickbutton_clicked()

static void _overexposed_quickbutton_clicked ( GtkWidget *  w,
gpointer  user_data 
)
static

◆ _quickbutton_press_release()

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

end of toolbox

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

◆ _register_modules_drag_n_drop()

◆ _scroll_on_focus()

gboolean _scroll_on_focus ( GdkEventScroll  event,
void data 
)

◆ _set_default_cursor()

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

◆ _softproof_quickbutton_clicked()

◆ _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()

static gboolean _toolbar_show_popup ( gpointer  user_data)
static

◆ _unregister_modules_drag_n_drop()

◆ _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

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

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:
: here and in mouse move use to dt_lib_colorpicker_set_{box_area,point} interface? – would require a different hack for figuring out base of the drag
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

References _change_scaling(), _do_delayed_history_commit(), dt_dev_pixelpipe_t::backbuf_height, dt_dev_pixelpipe_t::backbuf_width, dt_colorpicker_sample_t::box, dt_lib_t::colorpicker, darktable, dt_view_t::data, dt_lib_t::display_samples, DT_COLOR_PICKER_AREA, DT_COLOR_PICKER_POINT, dt_control_queue_redraw_center(), dt_control_set_cursor(), dt_dev_retrieve_full_pos(), 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_ui_center(), dt_iop_module_t::enabled, FALSE, dt_develop_t::form_visible, darktable_t::gui, dt_develop_t::gui_module, dt_iop_color_picker_t::kind, darktable_t::lib, dt_lib_t::live_samples, MAX, mouse_in_actionarea(), mouse_in_imagearea(), dt_develop_t::natural_scale, dt_lib_t::picker_proxy, dt_develop_t::pipe, dt_colorpicker_sample_t::point, dt_develop_t::preview_pipe, dt_lib_t::primary_sample, dt_dev_pixelpipe_t::processed_height, dt_dev_pixelpipe_t::processed_width, dt_lib_t::proxy, reset(), dt_develop_t::scaling, dt_colorpicker_sample_t::size, TRUE, type, and dt_gui_gtk_t::ui.

◆ 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 
)

References _quickbutton_press_release().

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

◆ enter()

void enter ( dt_view_t self)

References _register_modules_drag_n_drop(), _scroll_on_focus(), _view_darkroom_filmstrip_activate_callback(), dt_gui_gtk_t::accels, darktable_t::bauhaus, darktable_t::control, darktable, dt_view_t::data, dt_bauhaus_t::default_value_changed_callback, dt_accels_attach_scroll_handler(), dt_accels_connect_accels(), dt_accels_connect_active_group(), dt_bauhaus_value_changed_default_callback(), dt_conf_get_int(), dt_conf_get_string_const(), dt_control_flush_jobs_queue(), DT_DEBUG_CONTROL, DT_DEBUG_CONTROL_SIGNAL_CONNECT, DT_DEBUG_CONTROL_SIGNAL_RAISE, dt_dev_modulegroups_set(), dt_dev_pop_history_items(), dt_dev_undo_end_record(), dt_dev_undo_start_record(), dt_get_wtime(), dt_gui_refocus_center(), dt_image_check_camera_missing_sample(), dt_iop_color_picker_init(), dt_iop_gui_init(), dt_iop_gui_set_expander(), dt_iop_gui_update_expanded(), dt_iop_is_hidden(), dt_iop_request_focus(), DT_JOB_QUEUE_SYSTEM_FG, dt_lua_async_call_alien, dt_lua_event_trigger_wrapper(), dt_masks_change_form_gui(), dt_masks_init_form_gui(), dt_print(), dt_pthread_rwlock_rdlock, dt_pthread_rwlock_unlock, dt_selection_clear(), DT_SIGNAL_DEVELOP_INITIALIZE, DT_SIGNAL_VIEWMANAGER_THUMBTABLE_ACTIVATE, dt_thumbtable_show(), dt_thumbtable_update_parent(), dt_ui_center(), dt_undo_clear(), DT_UNDO_DEVELOP, DT_UNDO_TAGS, dt_view_active_images_add(), dt_view_active_images_reset(), dt_view_image_info_update(), dt_develop_t::exit, FALSE, dt_develop_t::form_gui, dt_masks_form_gui_t::formid, 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::iop, LUA_ASYNC_DONE, LUA_ASYNC_TYPENAME, dt_masks_form_gui_t::pipe_hash, darktable_t::selection, darktable_t::signals, dt_ui_t::thumbtable_filmstrip, dt_gui_gtk_t::ui, and darktable_t::undo.

◆ 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

References _colormanage_ui_color(), _darkroom_pickers_draw(), _write_snapshot_data(), dt_dev_pixelpipe_t::backbuf_mutex, darktable_t::bauhaus, dt_develop_t::border_size, darktable_t::color_profiles, dt_lib_t::colorpicker, darktable, dt_view_t::data, darktable_t::develop, dt_lib_t::display_samples, dt_cairo_image_surface_create(), dt_cairo_image_surface_create_for_data(), dt_conf_get_int(), dt_dev_clip_roi(), dt_dev_get_fit_scale(), dt_dev_get_overlay_scale(), dt_dev_rescale_roi(), dt_guides_draw(), dt_iop_color_picker_is_visible(), dt_lib_get_module(), dt_lib_gui_get_expanded(), dt_masks_events_post_expose(), DT_PIXEL_APPLY_DPI, DT_PROFILE_GAMUTCHECK, DT_PROFILE_NORMAL, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_develop_t::enabled, dt_iop_module_t::enabled, FALSE, dt_develop_t::filename, dt_develop_t::form_visible, darktable_t::gui, dt_develop_t::gui_module, height, dt_develop_t::height, dt_image_t::id, dt_develop_t::image_storage, IOP_FLAGS_GUIDES_SPECIAL_DRAW, dt_develop_t::iso_12646, darktable_t::lib, dt_lib_t::live_samples, dt_colorspaces_t::mode, mutex, O_BINARY, dt_dev_pixelpipe_t::output_backbuf, dt_dev_pixelpipe_t::output_backbuf_height, dt_dev_pixelpipe_t::output_backbuf_width, dt_dev_pixelpipe_t::output_imgid, dt_bauhaus_t::pango_font_desc, dt_develop_t::pipe, dt_gui_gtk_t::ppd, dt_develop_t::preview_pipe, dt_lib_t::primary_sample, dt_dev_pixelpipe_t::processing, dt_develop_t::proxy, dt_lib_t::proxy, dt_develop_t::request, dt_lib_t::selected_sample, dt_develop_t::snapshot, TRUE, UNKNOWN_IMAGE, width, and dt_develop_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

References _darkroom_ui_apply_style_popupmenu(), _display_quickbutton_clicked(), _gamut_quickbutton_clicked(), _guides_quickbutton_clicked(), _guides_view_changed(), _iso_12646_quickbutton_clicked(), _lib_darkroom_get_layout(), _overexposed_quickbutton_clicked(), _rawoverexposed_quickbutton_clicked(), _softproof_quickbutton_clicked(), _switch_to_next_picture(), _switch_to_prev_picture(), _update_softproof_gamut_checking(), 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, darktable, dt_view_t::data, dt_develop_t::display, display_borders_callback(), display_brightness_callback(), dt_accels_new_darkroom_action, 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_COLORSPACE_FILE, dt_conf_get_int(), DT_DEBUG_CONTROL_SIGNAL_CONNECT, dt_get_help_url(), dt_gui_add_help_link(), DT_GUI_MODULE, dt_guides_popover(), dt_loc_get_datadir(), dt_loc_get_user_config_dir(), DT_PIXEL_APPLY_DPI, DT_SIGNAL_VIEWMANAGER_VIEW_CHANGED, DT_VIEW_DARKROOM, dt_view_manager_module_toolbox_add(), dtgtk_button_new(), dtgtk_cairo_paint_bulb(), dtgtk_cairo_paint_display(), dtgtk_cairo_paint_gamut_check(), dtgtk_cairo_paint_grid(), dtgtk_cairo_paint_overexposed(), dtgtk_cairo_paint_rawoverexposed(), dtgtk_cairo_paint_softproof(), dtgtk_cairo_paint_styles(), dtgtk_togglebutton_new(), dt_colorspaces_color_profile_t::filename, dt_develop_t::floating_window, dt_develop_t::gamut_button, dt_view_manager_t::get_layout, 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(), darktable_t::signals, dt_develop_t::softproof_button, dt_colorspaces_t::softproof_filename, softproof_profile_callback(), dt_colorspaces_t::softproof_type, dt_develop_t::threshold, tooltip, TRUE, dt_colorspaces_color_profile_t::type, dt_develop_t::upper, upper_callback(), and darktable_t::view_manager.

◆ init()

◆ key_pressed()

int key_pressed ( dt_view_t self,
GdkEventKey *  event 
)

◆ leave()

void leave ( dt_view_t self)

References _unregister_modules_drag_n_drop(), _view_darkroom_filmstrip_activate_callback(), dt_gui_gtk_t::accels, dt_develop_t::allforms, dt_develop_t::alliop, dt_dev_pixelpipe_t::busy_mutex, dt_lib_t::colorpicker, darktable, dt_view_t::data, darktable_t::develop, dt_accels_detach_scroll_handler(), dt_accels_disconnect_active_group(), dt_atomic_set_int(), dt_conf_set_int(), dt_conf_set_string(), DT_DEBUG_CONTROL, DT_DEBUG_CONTROL_SIGNAL_DISCONNECT, dt_dev_history_auto_save(), dt_dev_history_free_history(), dt_dev_modulegroups_get(), dt_dev_pixelpipe_cleanup_nodes(), dt_get_wtime(), 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_change_form_gui(), dt_masks_clear_form_gui(), dt_masks_free_form(), 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::iop, darktable_t::lib, dt_iop_module_t::op, dt_develop_t::overexposed, dt_lib_t::picker_proxy, dt_develop_t::pipe, dt_develop_t::preview_pipe, dt_develop_t::profile, dt_lib_t::proxy, 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, 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()

◆ mouse_in_actionarea()

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

◆ mouse_in_imagearea()

◆ mouse_leave()

◆ mouse_moved()

◆ name()

const char * name ( const dt_view_t self)

◆ 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()

Variable Documentation

◆ _iop_n_targets_internal

const guint _iop_n_targets_internal = G_N_ELEMENTS(_iop_target_list_internal)
static

◆ _iop_target_list_internal

const GtkTargetEntry _iop_target_list_internal[] = { { "iop", GTK_TARGET_SAME_WIDGET, DND_TARGET_IOP } }
static

drag and drop module list

Referenced by _register_modules_drag_n_drop().