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:

Macros

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

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)
 
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 cairo_filter_t _get_filtering_level (dt_develop_t *dev, dt_dev_zoom_t zoom, int closeup)
 
static void _darkroom_pickers_draw (dt_view_t *self, cairo_t *cri, int32_t width, int32_t height, dt_dev_zoom_t zoom, int closeup, float zoom_x, float zoom_y, GSList *samples, gboolean is_primary_sample)
 
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)
 
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 _magic_schwalm_offset (dt_develop_t *dev, dt_view_t *self, float *offx, float *offy)
 
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)
 
int scrolled (dt_view_t *self, double x, double y, int up, int state)
 
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.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
DND_TARGET_IOP 

Function Documentation

◆ _colormanage_ui_color()

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

◆ _darkroom_pickers_draw()

static void _darkroom_pickers_draw ( dt_view_t self,
cairo_t *  cri,
int32_t  width,
int32_t  height,
dt_dev_zoom_t  zoom,
int  closeup,
float  zoom_x,
float  zoom_y,
GSList *  samples,
gboolean  is_primary_sample 
)
static
Todo:
: use dt_dev_get_processed_size() for this?
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 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_zoom_scale(), DT_LIB_COLORPICKER_SIZE_BOX, DT_LIB_COLORPICKER_SIZE_POINT, FALSE, darktable_t::gui, height, dt_view_t::height, darktable_t::lib, lw, M_PI, dt_dev_pixelpipe_t::output_backbuf_height, dt_dev_pixelpipe_t::output_backbuf_width, dt_develop_t::pipe, dt_colorpicker_sample_t::point, dt_gui_gtk_t::ppd, 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, width, and dt_view_t::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_filtering_level()

static cairo_filter_t _get_filtering_level ( dt_develop_t dev,
dt_dev_zoom_t  zoom,
int  closeup 
)
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().

◆ _magic_schwalm_offset()

void _magic_schwalm_offset ( dt_develop_t dev,
dt_view_t self,
float *  offx,
float *  offy 
)
Todo:
: find out why this is necessary and fix it.

References dt_develop_t::border_size, double(), dt_view_t::height, and dt_view_t::width.

Referenced by button_pressed(), button_released(), mouse_moved(), and scrolled().

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

◆ _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:
: this overlaps with work in dt_dev_get_pointer_zoom_pos() above
Todo:
Todo:
: this work is only necessary for left-click in box mode or right-click of point live sample
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 _do_delayed_history_commit(), _magic_schwalm_offset(), 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_change_cursor(), dt_control_get_dev_closeup(), dt_control_get_dev_zoom(), dt_control_queue_redraw_center(), dt_dev_get_pointer_zoom_pos(), dt_dev_get_zoom_scale(), 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_iop_module_t::enabled, FALSE, dt_develop_t::form_visible, 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_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_colorpicker_sample_t::size, TRUE, and type.

◆ 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, 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_set_dev_closeup(), dt_control_set_dev_zoom(), dt_control_set_dev_zoom_x(), dt_control_set_dev_zoom_y(), DT_DEBUG_CONTROL, DT_DEBUG_CONTROL_SIGNAL_CONNECT, DT_DEBUG_CONTROL_SIGNAL_RAISE, dt_dev_check_zoom_bounds(), 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_lua_async_call_alien, dt_lua_event_trigger_wrapper(), dt_masks_change_form_gui(), dt_masks_init_form_gui(), dt_print(), dt_pthread_mutex_lock(), dt_pthread_mutex_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_ZOOM_FIT, 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:
: these four dt_control_get_dev_*() calls each lock/unlock global_mutex – consolidate this work
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(), _get_filtering_level(), _write_snapshot_data(), dt_dev_pixelpipe_t::backbuf_height, dt_dev_pixelpipe_t::backbuf_mutex, dt_dev_pixelpipe_t::backbuf_scale, dt_dev_pixelpipe_t::backbuf_width, dt_dev_pixelpipe_t::backbuf_zoom_x, dt_dev_pixelpipe_t::backbuf_zoom_y, 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_control_get_dev_closeup(), dt_control_get_dev_zoom(), dt_control_get_dev_zoom_x(), dt_control_get_dev_zoom_y(), dt_dev_get_zoom_scale(), 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_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_develop_t::proxy, dt_lib_t::proxy, dt_develop_t::request, dt_lib_t::selected_sample, dt_develop_t::snapshot, TRUE, UNKNOWN_IMAGE, and 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_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().