Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
print_settings.c File Reference
#include <glib.h>
#include "bauhaus/bauhaus.h"
#include "common/collection.h"
#include "common/colorspaces.h"
#include "common/cups_print.h"
#include "common/file_location.h"
#include "common/image_cache.h"
#include "common/metadata.h"
#include "common/pdf.h"
#include "common/printprof.h"
#include "common/printing.h"
#include "common/styles.h"
#include "common/tags.h"
#include "common/variables.h"
#include "control/jobs.h"
#include "dtgtk/resetlabel.h"
#include "gui/drag_and_drop.h"
#include "gui/gtk.h"
#include "libs/lib.h"
#include "libs/lib_api.h"
+ Include dependency graph for print_settings.c:

Data Structures

struct  dt_lib_print_settings_t
 
struct  dt_lib_print_job_t
 
struct  dt_lib_export_profile_t
 
struct  _dialog_description
 
struct  dt_print_format_t
 

Typedefs

typedef enum _set_controls dt_box_control_set
 
typedef enum _unit_t _unit_t
 
typedef struct dt_lib_print_settings_t dt_lib_print_settings_t
 
typedef struct dt_lib_print_job_t dt_lib_print_job_t
 
typedef struct dt_lib_export_profile_t dt_lib_export_profile_t
 
typedef struct _dialog_description dialog_description_t
 
typedef struct dt_print_format_t dt_print_format_t
 

Enumerations

enum  _set_controls {
  BOX_LEFT = 1 << 0 ,
  BOX_RIGHT = 1 << 1 ,
  BOX_TOP = 1 << 2 ,
  BOX_BOTTOM = 1 << 3 ,
  BOX_TOP_LEFT = BOX_LEFT | BOX_TOP ,
  BOX_TOP_RIGHT = BOX_RIGHT | BOX_TOP ,
  BOX_BOTTOM_LEFT = BOX_LEFT | BOX_BOTTOM ,
  BOX_BOTTOM_RIGHT = BOX_RIGHT | BOX_BOTTOM ,
  BOX_ALL = BOX_LEFT | BOX_RIGHT | BOX_TOP | BOX_BOTTOM
}
 
enum  _unit_t {
  UNIT_MM = 0 ,
  UNIT_CM ,
  UNIT_IN ,
  UNIT_N
}
 

Functions

const char * name (struct dt_lib_module_t *self)
 
const char ** views (dt_lib_module_t *self)
 
uint32_t container (dt_lib_module_t *self)
 
static void _update_slider (dt_lib_print_settings_t *ps)
 
static void _width_changed (GtkWidget *widget, gpointer user_data)
 
static void _height_changed (GtkWidget *widget, gpointer user_data)
 
static void _x_changed (GtkWidget *widget, gpointer user_data)
 
static void _y_changed (GtkWidget *widget, gpointer user_data)
 
int position ()
 
static void _get_page_dimension (dt_print_info_t *prt, float *width, float *height)
 
static void _precision_by_unit (_unit_t unit, int *n_digits, float *incr, char **format)
 
static float _to_mm (dt_lib_print_settings_t *ps, double value)
 
static float _mm_to_hscreen (dt_lib_print_settings_t *ps, const float value, const gboolean offset)
 
static float _mm_to_vscreen (dt_lib_print_settings_t *ps, const float value, const gboolean offset)
 
static float _hscreen_to_mm (dt_lib_print_settings_t *ps, const float value, const gboolean offset)
 
static float _vscreen_to_mm (dt_lib_print_settings_t *ps, const float value, const gboolean offset)
 
static float _percent_unit_of (dt_lib_print_settings_t *ps, float ref, float value)
 
static int bpp (dt_imageio_module_data_t *data)
 
static int levels (dt_imageio_module_data_t *data)
 
static const char * mime (dt_imageio_module_data_t *data)
 
static int write_image (dt_imageio_module_data_t *data, const char *filename, const void *in, dt_colorspaces_color_profile_type_t over_type, const char *over_filename, void *exif, int exif_len, int32_t imgid, int num, int total, dt_dev_pixelpipe_t *pipe, const gboolean export_masks)
 
static int _export_image (dt_job_t *job, dt_image_box *img)
 
static void _create_pdf (dt_job_t *job, dt_images_box imgs, const float width, const float height)
 
void _fill_box_values (dt_lib_print_settings_t *ps)
 
static int _export_and_setup_pos (dt_job_t *job, dt_image_box *img, const int32_t idx)
 
static int _print_job_run (dt_job_t *job)
 
static void _page_new_area_clicked (GtkWidget *widget, gpointer user_data)
 
static void _page_clear_area_clicked (GtkWidget *widget, gpointer user_data)
 
static void _page_delete_area (const dt_lib_module_t *self, const int box_index)
 
static void _page_delete_area_clicked (GtkWidget *widget, gpointer user_data)
 
static void _print_job_cleanup (void *p)
 
static void _print_button_clicked (GtkWidget *widget, gpointer user_data)
 
static void _set_printer (const dt_lib_module_t *self, const char *printer_name)
 
static void _printer_changed (GtkWidget *combo, const dt_lib_module_t *self)
 
static void _paper_changed (GtkWidget *combo, const dt_lib_module_t *self)
 
static void _media_changed (GtkWidget *combo, const dt_lib_module_t *self)
 
static void _top_border_callback (GtkWidget *spin, gpointer user_data)
 
static void _bottom_border_callback (GtkWidget *spin, gpointer user_data)
 
static void _left_border_callback (GtkWidget *spin, gpointer user_data)
 
static void _right_border_callback (GtkWidget *spin, gpointer user_data)
 
static void _lock_callback (GtkWidget *button, gpointer user_data)
 
static void _alignment_callback (GtkWidget *tb, gpointer user_data)
 
static void _orientation_changed (GtkWidget *combo, dt_lib_module_t *self)
 
static void _snap_grid_callback (GtkWidget *widget, dt_lib_module_t *self)
 
static void _grid_callback (GtkWidget *widget, dt_lib_module_t *self)
 
static void _grid_size_changed (GtkWidget *widget, dt_lib_module_t *self)
 
static void _unit_changed (GtkWidget *combo, dt_lib_module_t *self)
 
static void _style_callback (GtkWidget *widget, dt_lib_module_t *self)
 
static void _profile_changed (GtkWidget *widget, dt_lib_module_t *self)
 
static void _printer_profile_changed (GtkWidget *widget, dt_lib_module_t *self)
 
static void _printer_intent_callback (GtkWidget *widget, dt_lib_module_t *self)
 
static void _printer_bpc_callback (GtkWidget *widget, dt_lib_module_t *self)
 
static void _intent_callback (GtkWidget *widget, dt_lib_module_t *self)
 
static void _set_orientation (dt_lib_print_settings_t *ps, int32_t imgid)
 
static void _load_image_full_page (dt_lib_print_settings_t *ps, int32_t imgid)
 
static void _print_settings_activate_or_update_callback (gpointer instance, int32_t imgid, gpointer user_data)
 
static GList * _get_profiles ()
 
static void _new_printer_callback (dt_printer_info_t *printer, void *user_data)
 
void view_enter (struct dt_lib_module_t *self, struct dt_view_t *old_view, struct dt_view_t *new_view)
 
void view_leave (struct dt_lib_module_t *self, struct dt_view_t *old_view, struct dt_view_t *new_view)
 
static gboolean _expose_again (gpointer user_data)
 
void _get_control (dt_lib_print_settings_t *ps, float x, float y)
 
int mouse_leave (struct dt_lib_module_t *self)
 
static void _snap_to_grid (dt_lib_print_settings_t *ps, float *x, float *y)
 
int mouse_moved (struct dt_lib_module_t *self, double x, double y, double pressure, int which)
 
static void _swap (float *a, float *b)
 
int button_released (struct dt_lib_module_t *self, double x, double y, int which, uint32_t state)
 
int button_pressed (struct dt_lib_module_t *self, double x, double y, double pressure, int which, int type, uint32_t state)
 
void _cairo_rectangle (cairo_t *cr, const int sel_controls, const int x1, const int y1, const int x2, const int y2)
 
void gui_post_expose (struct dt_lib_module_t *self, cairo_t *cr, int32_t width, int32_t height, int32_t pointerx, int32_t pointery)
 
void gui_init (dt_lib_module_t *self)
 
voidlegacy_params (dt_lib_module_t *self, const void *const old_params, const size_t old_params_size, const int old_version, int *new_version, size_t *new_size)
 
int set_params (dt_lib_module_t *self, const void *params, int size)
 
voidget_params (dt_lib_module_t *self, int *size)
 
void gui_cleanup (dt_lib_module_t *self)
 
void gui_reset (dt_lib_module_t *self)
 

Variables

static const float units [UNIT_N] = { 1.0f, 0.1f, 1.0f/25.4f }
 
static const gchar * _unit_names [] = { N_("mm"), N_("cm"), N_("inch"), NULL }
 

Typedef Documentation

◆ _unit_t

typedef enum _unit_t _unit_t

◆ dialog_description_t

◆ dt_box_control_set

◆ dt_lib_export_profile_t

◆ dt_lib_print_job_t

◆ dt_lib_print_settings_t

◆ dt_print_format_t

Enumeration Type Documentation

◆ _set_controls

Enumerator
BOX_LEFT 
BOX_RIGHT 
BOX_TOP 
BOX_BOTTOM 
BOX_TOP_LEFT 
BOX_TOP_RIGHT 
BOX_BOTTOM_LEFT 
BOX_BOTTOM_RIGHT 
BOX_ALL 

◆ _unit_t

enum _unit_t
Enumerator
UNIT_MM 
UNIT_CM 
UNIT_IN 
UNIT_N 

Function Documentation

◆ _alignment_callback()

◆ _bottom_border_callback()

static void _bottom_border_callback ( GtkWidget *  spin,
gpointer  user_data 
)
static

◆ _cairo_rectangle()

void _cairo_rectangle ( cairo_t *  cr,
const int  sel_controls,
const int  x1,
const int  y1,
const int  x2,
const int  y2 
)

◆ _create_pdf()

◆ _export_and_setup_pos()

◆ _export_image()

◆ _expose_again()

static gboolean _expose_again ( gpointer  user_data)
static

◆ _fill_box_values()

◆ _get_control()

◆ _get_page_dimension()

◆ _get_profiles()

◆ _grid_callback()

static void _grid_callback ( GtkWidget *  widget,
dt_lib_module_t self 
)
static

References dt_control_queue_redraw_center().

Referenced by gui_init().

◆ _grid_size_changed()

◆ _height_changed()

◆ _hscreen_to_mm()

static float _hscreen_to_mm ( dt_lib_print_settings_t ps,
const float  value,
const gboolean  offset 
)
static

◆ _intent_callback()

static void _intent_callback ( GtkWidget *  widget,
dt_lib_module_t self 
)
static

◆ _left_border_callback()

static void _left_border_callback ( GtkWidget *  spin,
gpointer  user_data 
)
static

◆ _load_image_full_page()

◆ _lock_callback()

◆ _media_changed()

◆ _mm_to_hscreen()

◆ _mm_to_vscreen()

◆ _new_printer_callback()

◆ _orientation_changed()

static void _orientation_changed ( GtkWidget *  combo,
dt_lib_module_t self 
)
static

◆ _page_clear_area_clicked()

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

◆ _page_delete_area()

◆ _page_delete_area_clicked()

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

◆ _page_new_area_clicked()

◆ _paper_changed()

◆ _percent_unit_of()

static float _percent_unit_of ( dt_lib_print_settings_t ps,
float  ref,
float  value 
)
inlinestatic

◆ _precision_by_unit()

static void _precision_by_unit ( _unit_t  unit,
int *  n_digits,
float *  incr,
char **  format 
)
static

◆ _print_button_clicked()

◆ _print_job_cleanup()

static void _print_job_cleanup ( void p)
static

Referenced by _print_button_clicked().

◆ _print_job_run()

◆ _print_settings_activate_or_update_callback()

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

◆ _printer_bpc_callback()

static void _printer_bpc_callback ( GtkWidget *  widget,
dt_lib_module_t self 
)
static

◆ _printer_changed()

static void _printer_changed ( GtkWidget *  combo,
const dt_lib_module_t self 
)
static

◆ _printer_intent_callback()

◆ _printer_profile_changed()

◆ _profile_changed()

◆ _right_border_callback()

static void _right_border_callback ( GtkWidget *  spin,
gpointer  user_data 
)
static

◆ _set_orientation()

◆ _set_printer()

◆ _snap_grid_callback()

static void _snap_grid_callback ( GtkWidget *  widget,
dt_lib_module_t self 
)
static

References dt_control_queue_redraw_center().

Referenced by gui_init().

◆ _snap_to_grid()

◆ _style_callback()

◆ _swap()

static void _swap ( float *  a,
float *  b 
)
static

Referenced by button_released().

◆ _to_mm()

◆ _top_border_callback()

◆ _unit_changed()

◆ _update_slider()

◆ _vscreen_to_mm()

static float _vscreen_to_mm ( dt_lib_print_settings_t ps,
const float  value,
const gboolean  offset 
)
static

◆ _width_changed()

◆ _x_changed()

◆ _y_changed()

◆ bpp()

static int bpp ( dt_imageio_module_data_t data)
static

◆ button_pressed()

◆ button_released()

◆ container()

uint32_t container ( dt_lib_module_t self)

◆ get_params()

◆ gui_cleanup()

◆ gui_init()

void gui_init ( dt_lib_module_t self)
Todo:
: set digits/increments on all of these by calling _unit_changed() later?
Todo:
: add labels to x/y/width/height as otherwise are obscure – and there is the horizontal space to do this

References _alignment_callback(), _bottom_border_callback(), _get_profiles(), _grid_callback(), _grid_size_changed(), _height_changed(), _intent_callback(), _left_border_callback(), _lock_callback(), _media_changed(), _new_printer_callback(), _orientation_changed(), _page_clear_area_clicked(), _page_delete_area_clicked(), _page_new_area_clicked(), _paper_changed(), _precision_by_unit(), _print_button_clicked(), _printer_bpc_callback(), _printer_changed(), _printer_intent_callback(), _printer_profile_changed(), _profile_changed(), _right_border_callback(), _snap_grid_callback(), _style_callback(), _to_mm(), _top_border_callback(), _unit_changed(), _unit_names, _width_changed(), _x_changed(), _y_changed(), dt_lib_print_settings_t::b_bottom, dt_lib_print_settings_t::b_height, dt_lib_print_settings_t::b_left, dt_lib_print_settings_t::b_right, dt_lib_print_settings_t::b_top, dt_lib_print_settings_t::b_width, dt_lib_print_settings_t::b_x, dt_lib_print_settings_t::b_y, darktable_t::bauhaus, dt_lib_print_settings_t::black_point_compensation, dt_lib_print_settings_t::borderless, CPF_SPECIAL_FLAG, dt_lib_print_settings_t::creation, darktable, dt_lib_module_t::data, dt_lib_print_settings_t::del, dt_lib_print_settings_t::dragging, dt_action_button_new(), dt_bauhaus_combobox_add(), dt_bauhaus_combobox_new(), dt_bauhaus_combobox_new_full(), dt_bauhaus_combobox_set(), dt_bauhaus_widget_set_label(), DT_COLORSPACE_FILE, DT_COLORSPACE_NONE, dt_conf_get_bool(), dt_conf_get_float(), dt_conf_get_int(), dt_conf_get_string_const(), dt_conf_set_int(), dt_conf_set_string(), dt_get_help_url(), dt_gui_add_help_link(), DT_GUI_MODULE, dt_init_print_info(), dt_loc_get_datadir(), dt_loc_get_user_config_dir(), DT_PIXEL_APPLY_DPI, dt_printers_discovery(), dt_printing_clear_boxes(), dt_style_free(), dt_styles_get_list(), dt_ui_section_label_new(), dt_lib_print_settings_t::dtba, dtgtk_cairo_paint_alignment(), DTGTK_TOGGLEBUTTON, dtgtk_togglebutton_new(), FALSE, dt_lib_export_profile_t::filename, dt_lib_print_settings_t::grid, dt_lib_print_settings_t::grid_size, dt_lib_print_settings_t::has_changed, dt_lib_print_settings_t::height, dt_lib_print_settings_t::imgs, dt_lib_print_settings_t::info, dt_printer_info_t::intent, dt_lib_print_settings_t::intent, dt_page_setup_t::landscape, dt_lib_print_settings_t::last_selected, dt_lib_print_settings_t::lock_activated, dt_lib_print_settings_t::lock_button, dt_page_setup_t::margin_bottom, dt_page_setup_t::margin_left, dt_page_setup_t::margin_right, dt_page_setup_t::margin_top, dt_lib_print_settings_t::media, dt_lib_print_settings_t::media_list, dt_images_box::motion_over, dt_style_t::name, dt_lib_export_profile_t::name, dt_lib_print_settings_t::orientation, dt_print_info_t::page, dt_lib_print_settings_t::paper_list, dt_lib_print_settings_t::papers, PATH_MAX, dt_lib_print_settings_t::pintent, dt_lib_export_profile_t::pos, dt_lib_export_profile_t::ppos, dt_lib_print_settings_t::pprofile, dt_lib_print_settings_t::print_button, dt_print_info_t::printer, dt_lib_print_settings_t::printers, dt_lib_print_settings_t::profile, dt_lib_print_settings_t::profiles, dt_lib_print_settings_t::prt, dt_lib_print_settings_t::selected, dt_lib_print_settings_t::snap_grid, dt_lib_print_settings_t::style, tooltip, TRUE, dt_lib_export_profile_t::type, dt_lib_print_settings_t::unit, units, dt_lib_print_settings_t::v_black_point_compensation, dt_lib_print_settings_t::v_iccprofile, dt_lib_print_settings_t::v_icctype, dt_lib_print_settings_t::v_piccprofile, dt_lib_print_settings_t::v_picctype, dt_lib_print_settings_t::v_pintent, dt_lib_print_settings_t::v_style, darktable_t::view_manager, dt_lib_module_t::widget, and dt_lib_print_settings_t::width.

◆ gui_post_expose()

void gui_post_expose ( struct dt_lib_module_t self,
cairo_t *  cr,
int32_t  width,
int32_t  height,
int32_t  pointerx,
int32_t  pointery 
)

◆ gui_reset()

◆ legacy_params()

void * legacy_params ( dt_lib_module_t self,
const void *const  old_params,
const size_t  old_params_size,
const int  old_version,
int *  new_version,
size_t *  new_size 
)

◆ levels()

static int levels ( dt_imageio_module_data_t data)
static

◆ mime()

static const char * mime ( dt_imageio_module_data_t data)
static

Referenced by _export_image().

◆ mouse_leave()

◆ mouse_moved()

◆ name()

const char * name ( struct dt_lib_module_t self)

◆ position()

int position ( )

◆ set_params()

◆ view_enter()

◆ view_leave()

void view_leave ( struct dt_lib_module_t self,
struct dt_view_t old_view,
struct dt_view_t new_view 
)

◆ views()

const char ** views ( dt_lib_module_t self)

◆ write_image()

static int write_image ( dt_imageio_module_data_t data,
const char *  filename,
const void in,
dt_colorspaces_color_profile_type_t  over_type,
const char *  over_filename,
void exif,
int  exif_len,
int32_t  imgid,
int  num,
int  total,
dt_dev_pixelpipe_t pipe,
const gboolean  export_masks 
)
static

Variable Documentation

◆ _unit_names

const gchar* _unit_names[] = { N_("mm"), N_("cm"), N_("inch"), NULL }
static

Referenced by _unit_changed(), and gui_init().

◆ units