Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
view.c File Reference
#include "views/view.h"
#include "widgets/widget_settings.h"
#include "common/variables.h"
#include "widgets/bauhaus.h"
#include "common/sentry.h"
#include "common/telemetry.h"
#include "caches/image_cache.h"
#include "caches/mipmap_cache.h"
#include "common/module.h"
#include "common/module_versioning.h"
#include "common/times.h"
#include "common/undo.h"
#include "common/usermanual_url.h"
#include "common/conf.h"
#include "control/control.h"
#include "develop/develop.h"
#include "develop/supervisor.h"
#include "widgets/expander.h"
#include "gui/dtgtk/thumbtable.h"
#include "gui/application.h"
#include "libs/lib.h"
#include <glib.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include "control/signal.h"
#include "views/view_api.h"
+ Include dependency graph for view.c:

Go to the source code of this file.

Data Structures

struct  dt_view_surface_fetch_job_t
 
struct  dt_view_surface_fetch_commit_t
 

Macros

#define DECORATION_SIZE_LIMIT   40
 
#define INCLUDE_API_FROM_MODULE_LOAD   "view_load_module"
 

Typedefs

typedef struct dt_view_surface_fetch_job_t dt_view_surface_fetch_job_t
 
typedef struct dt_view_surface_fetch_commit_t dt_view_surface_fetch_commit_t
 

Functions

static void dt_view_manager_load_modules (dt_view_manager_t *vm)
 
static int dt_view_load_module (void *v, const char *libname, const char *module_name)
 
static void dt_view_unload_module (dt_view_t *view)
 
static int32_t _view_surface_fetch_job_run (dt_job_t *job)
 
void dt_view_manager_init (dt_view_manager_t *vm)
 
void dt_view_manager_gui_init (dt_view_manager_t *vm)
 
void dt_view_manager_cleanup (dt_view_manager_t *vm)
 
const dt_view_tdt_view_manager_get_current_view (dt_view_manager_t *vm)
 
static gint sort_views (gconstpointer a, gconstpointer b)
 
static uint32_t default_flags ()
 
void dt_vm_remove_child (GtkWidget *widget, gpointer data)
 
static void _remove_child (GtkWidget *child, GtkContainer *container)
 
int dt_view_manager_switch (dt_view_manager_t *vm, const char *view_name)
 
int dt_view_manager_switch_by_view (dt_view_manager_t *vm, const dt_view_t *nv)
 
const char * dt_view_manager_name (dt_view_manager_t *vm)
 
uint32_t dt_view_manager_current_flags (const dt_view_manager_t *vm)
 
void dt_view_manager_expose (dt_view_manager_t *vm, cairo_t *cr, int32_t width, int32_t height, int32_t pointerx, int32_t pointery)
 
void dt_view_manager_reset (dt_view_manager_t *vm)
 
void dt_view_manager_mouse_leave (dt_view_manager_t *vm)
 
void dt_view_manager_mouse_enter (dt_view_manager_t *vm)
 
void dt_view_manager_mouse_moved (dt_view_manager_t *vm, double x, double y, double pressure, int which)
 
int dt_view_manager_key_pressed (dt_view_manager_t *vm, GdkEventKey *event)
 
int dt_view_manager_button_released (dt_view_manager_t *vm, double x, double y, int which, uint32_t state)
 
int dt_view_manager_button_pressed (dt_view_manager_t *vm, double x, double y, double pressure, int which, int type, uint32_t state)
 
void dt_view_manager_configure (dt_view_manager_t *vm, int width, int height)
 
int dt_view_manager_scrolled (dt_view_manager_t *vm, double x, double y, int up, int state, int delta_y)
 
static dt_view_surface_value_t _view_image_get_surface_internal (int32_t imgid, int width, int height, cairo_surface_t **surface, int zoom, dt_atomic_int *shutdown)
 
static void _destroy_surface (cairo_surface_t **surface)
 
static gboolean _view_surface_matches (const dt_view_image_surface_fetcher_t *fetcher, cairo_surface_t **target, const int32_t imgid, const int width, const int height, const int zoom)
 
static void _enqueue_surface_fetch (dt_view_image_surface_fetcher_t *fetcher)
 
static gboolean _view_surface_commit_main (gpointer user_data)
 
void dt_view_image_surface_fetcher_init (dt_view_image_surface_fetcher_t *fetcher)
 
void dt_view_image_surface_fetcher_cleanup (dt_view_image_surface_fetcher_t *fetcher)
 
void dt_view_image_surface_fetcher_invalidate (dt_view_image_surface_fetcher_t *fetcher, cairo_surface_t **target)
 
dt_view_surface_value_t dt_view_image_get_surface_async (dt_view_image_surface_fetcher_t *fetcher, int32_t imgid, int width, int height, cairo_surface_t **target, GtkWidget *widget, int zoom)
 
cairo_surface_t * dt_cairo_rescale_surface (cairo_surface_t *src, int dst_w, int dst_h)
 
void dt_cairo_sharpen_surface_rgb24 (cairo_surface_t *surface)
 
dt_view_surface_value_t dt_view_image_get_surface (int32_t imgid, int width, int height, cairo_surface_t **surface, int zoom)
 
char * dt_view_extend_modes_str (const char *name, const gboolean is_hdr, const gboolean is_bw, const gboolean is_bw_flow)
 
void dt_view_active_images_reset (gboolean raise)
 
void dt_view_active_images_add (int32_t imgid, gboolean raise)
 
void dt_view_active_images_remove (int32_t imgid, gboolean raise)
 
gboolean dt_view_active_images_has_imgid (int32_t imgid)
 
GList * dt_view_active_images_get_all ()
 
int32_t dt_view_active_images_get_first ()
 
void dt_view_active_images_set (GList *images, gboolean raise)
 
void dt_view_manager_module_toolbox_add (dt_view_manager_t *vm, GtkWidget *tool, dt_view_type_flags_t views)
 
dt_darkroom_layout_t dt_view_darkroom_get_layout (dt_view_manager_t *vm)
 
void dt_view_map_center_on_location (const dt_view_manager_t *vm, gdouble lon, gdouble lat, gdouble zoom)
 
void dt_view_map_center_on_bbox (const dt_view_manager_t *vm, gdouble lon1, gdouble lat1, gdouble lon2, gdouble lat2)
 
void dt_view_map_show_osd (const dt_view_manager_t *vm)
 
void dt_view_map_set_map_source (const dt_view_manager_t *vm, OsmGpsMapSource_t map_source)
 
GObject * dt_view_map_add_marker (const dt_view_manager_t *vm, dt_geo_map_display_t type, GList *points)
 
gboolean dt_view_map_remove_marker (const dt_view_manager_t *vm, dt_geo_map_display_t type, GObject *marker)
 
void dt_view_map_add_location (const dt_view_manager_t *vm, dt_map_location_data_t *p, const guint posid)
 
void dt_view_map_location_action (const dt_view_manager_t *vm, const int action)
 
void dt_view_map_redraw (const dt_view_manager_t *vm)
 
void dt_view_print_settings (const dt_view_manager_t *vm, dt_print_info_t *pinfo, dt_images_box *imgs)
 
static void _audio_child_watch (GPid pid, gint status, gpointer data)
 
void dt_view_audio_start (dt_view_manager_t *vm, int32_t imgid)
 
void dt_view_audio_stop (dt_view_manager_t *vm)
 
void dt_view_image_info_update (int32_t imgid)
 

Macro Definition Documentation

◆ DECORATION_SIZE_LIMIT

#define DECORATION_SIZE_LIMIT   40

Definition at line 106 of file view.c.

◆ INCLUDE_API_FROM_MODULE_LOAD

#define INCLUDE_API_FROM_MODULE_LOAD   "view_load_module"

Typedef Documentation

◆ dt_view_surface_fetch_commit_t

◆ dt_view_surface_fetch_job_t

Function Documentation

◆ _audio_child_watch()

static void _audio_child_watch ( GPid  pid,
gint  status,
gpointer  data 
)
static

Definition at line 1410 of file view.c.

References dt_view_manager_t::audio, and dt_view_manager_t::audio_player_id.

Referenced by dt_view_audio_start().

◆ _destroy_surface()

static void _destroy_surface ( cairo_surface_t **  surface)
static

◆ _enqueue_surface_fetch()

◆ _remove_child()

static void _remove_child ( GtkWidget child,
GtkContainer *  container 
)
static

◆ _view_image_get_surface_internal()

◆ _view_surface_commit_main()

◆ _view_surface_fetch_job_run()

◆ _view_surface_matches()

static gboolean _view_surface_matches ( const dt_view_image_surface_fetcher_t fetcher,
cairo_surface_t **  target,
const int32_t  imgid,
const int  width,
const int  height,
const int  zoom 
)
static

◆ default_flags()

static uint32_t default_flags ( void  )
static

Definition at line 175 of file view.c.

◆ dt_cairo_rescale_surface()

cairo_surface_t * dt_cairo_rescale_surface ( cairo_surface_t *  src,
int  dst_w,
int  dst_h 
)

rescale the image surface pending the real updated image availability

Definition at line 933 of file view.c.

References double(), and MIN.

◆ dt_cairo_sharpen_surface_rgb24()

void dt_cairo_sharpen_surface_rgb24 ( cairo_surface_t *  surface)

Definition at line 982 of file view.c.

References __OMP_PARALLEL_FOR__, copy(), dt_alloc_align(), dt_free_align, height, i, out, v, width, and x.

◆ dt_view_active_images_add()

◆ dt_view_active_images_get_all()

◆ dt_view_active_images_get_first()

◆ dt_view_active_images_has_imgid()

gboolean dt_view_active_images_has_imgid ( int32_t  imgid)

Definition at line 1297 of file view.c.

References dt_view_active_images_get_all().

Referenced by _filmstrip_is_thumb_highlighted().

◆ dt_view_active_images_remove()

void dt_view_active_images_remove ( int32_t  imgid,
gboolean  raise 
)

◆ dt_view_active_images_reset()

◆ dt_view_active_images_set()

void dt_view_active_images_set ( GList *  images,
gboolean  raise 
)

◆ dt_view_audio_start()

◆ dt_view_audio_stop()

void dt_view_audio_stop ( dt_view_manager_t vm)
Todo:
: add Windows code to actually kill the process

Definition at line 1449 of file view.c.

References dt_view_manager_t::audio, dt_view_manager_t::audio_player_event_source, dt_view_manager_t::audio_player_id, and dt_view_manager_t::audio_player_pid.

Referenced by _event_audio_release().

◆ dt_view_darkroom_get_layout()

◆ dt_view_extend_modes_str()

char * dt_view_extend_modes_str ( const char *  name,
const gboolean  is_hdr,
const gboolean  is_bw,
const gboolean  is_bw_flow 
)

returns an uppercase string of file extension plus some flag information

Definition at line 1220 of file view.c.

References dt_free, and name.

Referenced by _thumb_write_extension().

◆ dt_view_image_get_surface()

dt_view_surface_value_t dt_view_image_get_surface ( int32_t  imgid,
int  width,
int  height,
cairo_surface_t **  surface,
int  zoom 
)

expose an image and return a cair0_surface.

Definition at line 1214 of file view.c.

References _view_image_get_surface_internal(), height, and width.

Referenced by _draw_transient_image(), and _get_image_buffer().

◆ dt_view_image_get_surface_async()

◆ dt_view_image_info_update()

◆ dt_view_image_surface_fetcher_cleanup()

◆ dt_view_image_surface_fetcher_init()

◆ dt_view_image_surface_fetcher_invalidate()

◆ dt_view_load_module()

static int dt_view_load_module ( void v,
const char *  libname,
const char *  module_name 
)
static

load a view module

Definition at line 181 of file view.c.

Referenced by dt_view_manager_load_modules().

◆ dt_view_manager_button_pressed()

int dt_view_manager_button_pressed ( dt_view_manager_t vm,
double  x,
double  y,
double  pressure,
int  which,
int  type,
uint32_t  state 
)

◆ dt_view_manager_button_released()

int dt_view_manager_button_released ( dt_view_manager_t vm,
double  x,
double  y,
int  which,
uint32_t  state 
)

◆ dt_view_manager_cleanup()

void dt_view_manager_cleanup ( dt_view_manager_t vm)

◆ dt_view_manager_configure()

void dt_view_manager_configure ( dt_view_manager_t vm,
int  width,
int  height 
)

Definition at line 633 of file view.c.

References dt_view_t::data, height, v, dt_view_manager_t::views, and width.

Referenced by dt_control_configure(), and dt_gui_gtk_run().

◆ dt_view_manager_current_flags()

uint32_t dt_view_manager_current_flags ( const dt_view_manager_t vm)

expose current module. the current view's flags(), or 0 when there is no view

Definition at line 444 of file view.c.

References dt_view_manager_t::current_view, and IS_NULL_PTR.

Referenced by dt_control_expose().

◆ dt_view_manager_expose()

void dt_view_manager_expose ( dt_view_manager_t vm,
cairo_t *  cr,
int32_t  width,
int32_t  height,
int32_t  pointerx,
int32_t  pointery 
)

◆ dt_view_manager_get_current_view()

◆ dt_view_manager_gui_init()

void dt_view_manager_gui_init ( dt_view_manager_t vm)

Definition at line 121 of file view.c.

References dt_view_t::data, view, and dt_view_manager_t::views.

Referenced by dt_init().

◆ dt_view_manager_init()

◆ dt_view_manager_key_pressed()

int dt_view_manager_key_pressed ( dt_view_manager_t vm,
GdkEventKey *  event 
)

◆ dt_view_manager_load_modules()

static void dt_view_manager_load_modules ( dt_view_manager_t vm)
static

◆ dt_view_manager_module_toolbox_add()

void dt_view_manager_module_toolbox_add ( dt_view_manager_t vm,
GtkWidget tool,
dt_view_type_flags_t  view 
)

add widget to the current module toolbox

Definition at line 1329 of file view.c.

References dt_view_manager_t::add, dt_view_manager_t::module_toolbox, dt_view_manager_t::proxy, and views().

Referenced by _create_one_button(), _shape_manager_add_popup_button_idle(), and gui_init().

◆ dt_view_manager_mouse_enter()

void dt_view_manager_mouse_enter ( dt_view_manager_t vm)

Definition at line 519 of file view.c.

References dt_view_manager_t::current_view, and IS_NULL_PTR.

Referenced by dt_control_mouse_enter().

◆ dt_view_manager_mouse_leave()

void dt_view_manager_mouse_leave ( dt_view_manager_t vm)

◆ dt_view_manager_mouse_moved()

void dt_view_manager_mouse_moved ( dt_view_manager_t vm,
double  x,
double  y,
double  pressure,
int  which 
)

◆ dt_view_manager_name()

const char * dt_view_manager_name ( dt_view_manager_t vm)

return translated name.

Definition at line 435 of file view.c.

References dt_view_manager_t::current_view, IS_NULL_PTR, and dt_view_t::module_name.

◆ dt_view_manager_reset()

void dt_view_manager_reset ( dt_view_manager_t vm)

reset current view.

Definition at line 491 of file view.c.

References dt_view_manager_t::current_view, and IS_NULL_PTR.

Referenced by dt_film_open().

◆ dt_view_manager_scrolled()

int dt_view_manager_scrolled ( dt_view_manager_t vm,
double  x,
double  y,
int  up,
int  state,
int  delta_y 
)

Definition at line 645 of file view.c.

References dt_view_manager_t::current_view, FALSE, IS_NULL_PTR, state, and x.

Referenced by _scrolled().

◆ dt_view_manager_switch()

int dt_view_manager_switch ( dt_view_manager_t vm,
const char *  view_name 
)

◆ dt_view_manager_switch_by_view()

◆ dt_view_map_add_location()

void dt_view_map_add_location ( const dt_view_manager_t vm,
dt_map_location_data_t p,
const guint  posid 
)

◆ dt_view_map_add_marker()

GObject * dt_view_map_add_marker ( const dt_view_manager_t vm,
dt_geo_map_display_t  type,
GList *  points 
)

◆ dt_view_map_center_on_bbox()

void dt_view_map_center_on_bbox ( const dt_view_manager_t vm,
gdouble  lon1,
gdouble  lat1,
gdouble  lon2,
gdouble  lat2 
)

◆ dt_view_map_center_on_location()

void dt_view_map_center_on_location ( const dt_view_manager_t vm,
gdouble  lon,
gdouble  lat,
gdouble  zoom 
)

◆ dt_view_map_location_action()

void dt_view_map_location_action ( const dt_view_manager_t vm,
const int  action 
)

◆ dt_view_map_redraw()

void dt_view_map_redraw ( const dt_view_manager_t vm)

◆ dt_view_map_remove_marker()

◆ dt_view_map_set_map_source()

void dt_view_map_set_map_source ( const dt_view_manager_t vm,
OsmGpsMapSource_t  map_source 
)

◆ dt_view_map_show_osd()

void dt_view_map_show_osd ( const dt_view_manager_t vm)

◆ dt_view_print_settings()

◆ dt_view_unload_module()

static void dt_view_unload_module ( dt_view_t view)
static

unload, cleanup

Definition at line 201 of file view.c.

References view.

Referenced by dt_view_manager_cleanup().

◆ dt_vm_remove_child()

void dt_vm_remove_child ( GtkWidget widget,
gpointer  data 
)

Definition at line 208 of file view.c.

◆ sort_views()

static gint sort_views ( gconstpointer  a,
gconstpointer  b 
)
static

Definition at line 146 of file view.c.

References i, and dt_view_t::module_name.

Referenced by dt_view_manager_load_modules().