Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
libs/lib.h
Go to the documentation of this file.
1/*
2 This file is part of darktable,
3 Copyright (C) 2009-2021 darktable developers.
4
5 darktable is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 darktable is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with darktable. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#pragma once
20
21#include "common/darktable.h"
22#include "common/iop_profile.h"
24#include "views/view.h"
25#include <gmodule.h>
26#include <gtk/gtk.h>
27#include <glib.h>
28
29#ifdef USE_LUA
30#include "lua/call.h"
31#include "lua/events.h"
32#include "lua/lib.h"
33#include "lua/modules.h"
34#include "lua/types.h"
35#endif
36
37struct dt_lib_module_t;
39
41typedef struct dt_lib_t
42{
43 GList *plugins;
45
47 struct
48 {
50 struct
51 {
52 struct dt_lib_module_t *module;
55 GSList *live_samples;
63 void (*set_sample_point)(struct dt_lib_module_t *self, const float pos[2]);
65
66 struct
67 {
68 struct dt_lib_module_t *module;
72
73
74typedef struct dt_lib_module_t
75{
76 // Needs to stay on top for casting
78
79#define INCLUDE_API_FROM_MODULE_H
80#include "libs/lib_api.h"
81
83 GModule *module;
85 void *data;
87 char plugin_name[128];
89 GtkWidget *widget;
91 GtkWidget *expander;
96
97 GtkWidget *arrow;
98 GtkWidget *reset_button;
99 GtkWidget *presets_button;
100
102
103void dt_lib_init(dt_lib_t *lib);
104void dt_lib_cleanup(dt_lib_t *lib);
105
107GtkWidget *dt_lib_gui_get_expander(dt_lib_module_t *module);
109void dt_lib_gui_set_expanded(dt_lib_module_t *module, gboolean expanded);
112
115
117gboolean dt_lib_is_visible(dt_lib_module_t *module);
119void dt_lib_set_visible(dt_lib_module_t *module, gboolean visible);
122
124gchar *dt_lib_get_localized_name(const gchar *plugin_name);
125
129void dt_lib_presets_add(const char *name, const char *plugin_name, const int32_t version, const void *params,
130 const int32_t params_size, gboolean readonly);
131
133void dt_lib_queue_postponed_update(dt_lib_module_t *mod, void (*update_fn)(dt_lib_module_t *self));
136
137// apply a preset to the given module
138gboolean dt_lib_presets_apply(const gchar *preset, const gchar *module_name, int module_version);
139// duplicate a preset
140gchar *dt_lib_presets_duplicate(const gchar *preset, const gchar *module_name, int module_version);
141// remove a preset
142void dt_lib_presets_remove(const gchar *preset, const gchar *module_name, int module_version);
143// update a preset
144void dt_lib_presets_update(const gchar *preset, const gchar *module_name, int module_version, const gchar *newname,
145 const gchar *desc, const void *params, const int32_t params_size);
146// know if the module can autoapply presets
148
149/*
150 * Proxy functions
151 */
152
155
157void dt_lib_colorpicker_set_point(dt_lib_t *lib, const float pos[2]);
158
160gint dt_lib_sort_plugins(gconstpointer a, gconstpointer b);
163
165gboolean dt_handle_dialog_enter(GtkWidget *widget, GdkEventKey *event, gpointer data);
166
168GtkWidget *dt_action_button_new(dt_lib_module_t *self, const gchar *label, gpointer callback, gpointer data,
169 const gchar *tooltip, guint accel_key, GdkModifierType mods);
170
171// clang-format off
172// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py
173// vim: shiftwidth=2 expandtab tabstop=2 cindent
174// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified;
175// clang-format on
size_t params_size(dt_imageio_module_format_t *self)
Definition avif.c:615
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
const char * tooltip
Definition common/image.h:163
char * name
Definition common/metadata.c:41
uint32_t view(const dt_view_t *self)
Definition darkroom.c:114
float dt_boundingbox_t[4]
Definition darktable.h:467
struct dt_iop_tonecurve_params_t preset
Definition iop/tonecurve.c:497
gboolean dt_handle_dialog_enter(GtkWidget *widget, GdkEventKey *event, gpointer data)
Definition libs/lib.c:1304
gboolean dt_lib_presets_can_autoapply(dt_lib_module_t *mod)
Definition libs/lib.c:1299
gint dt_lib_sort_plugins(gconstpointer a, gconstpointer b)
Definition libs/lib.c:574
void dt_lib_colorpicker_set_box_area(dt_lib_t *lib, const dt_boundingbox_t box)
Definition libs/lib.c:1237
void dt_lib_cancel_postponed_update(dt_lib_module_t *mod)
Definition libs/lib.c:1289
gboolean dt_lib_gui_get_expanded(dt_lib_module_t *module)
Definition libs/lib.c:941
void dt_lib_init(dt_lib_t *lib)
Definition libs/lib.c:1114
void dt_lib_presets_remove(const gchar *preset, const gchar *module_name, int module_version)
Definition libs/lib.c:321
void dt_lib_init_presets(dt_lib_module_t *module)
Definition libs/lib.c:703
GtkWidget * dt_action_button_new(dt_lib_module_t *self, const gchar *label, gpointer callback, gpointer data, const gchar *tooltip, guint accel_key, GdkModifierType mods)
Definition libs/lib.c:1314
gboolean dt_lib_is_visible_in_view(dt_lib_module_t *module, const dt_view_t *view)
Definition libs/lib.c:63
void dt_lib_queue_postponed_update(dt_lib_module_t *mod, void(*update_fn)(dt_lib_module_t *self))
Definition libs/lib.c:1276
void dt_lib_presets_add(const char *name, const char *plugin_name, const int32_t version, const void *params, const int32_t params_size, gboolean readonly)
Definition libs/lib.c:1141
gboolean dt_lib_presets_apply(const gchar *preset, const gchar *module_name, int module_version)
Definition libs/lib.c:338
void dt_lib_colorpicker_set_point(dt_lib_t *lib, const float pos[2])
Definition libs/lib.c:1244
gboolean dt_lib_is_visible(dt_lib_module_t *module)
Definition libs/lib.c:1189
gchar * dt_lib_presets_duplicate(const gchar *preset, const gchar *module_name, int module_version)
Definition libs/lib.c:265
void dt_lib_gui_set_expanded(dt_lib_module_t *module, gboolean expanded)
Definition libs/lib.c:906
void dt_lib_presets_update(const gchar *preset, const gchar *module_name, int module_version, const gchar *newname, const gchar *desc, const void *params, const int32_t params_size)
Definition libs/lib.c:389
dt_lib_module_t * dt_lib_get_module(const char *name)
Definition libs/lib.c:1251
void dt_lib_set_visible(dt_lib_module_t *module, gboolean visible)
Definition libs/lib.c:1199
void dt_lib_cleanup(dt_lib_t *lib)
Definition libs/lib.c:1122
GtkWidget * dt_lib_gui_get_expander(dt_lib_module_t *module)
Definition libs/lib.c:1035
gchar * dt_lib_get_localized_name(const gchar *plugin_name)
Definition libs/lib.c:1220
size_t size
Definition mipmap_cache.c:3
Definition colorpicker.h:42
The dt_gui_module_t type is the intersection between a dt_lib_module_t and a dt_iop_module_t structur...
Definition gui_module_api.h:25
Definition color_picker_proxy.h:42
Definition libs/lib.h:75
GtkWidget * expander
Definition libs/lib.h:91
GtkWidget * reset_button
Definition libs/lib.h:98
GtkWidget * presets_button
Definition libs/lib.h:99
void(* _postponed_update)(struct dt_lib_module_t *self)
Definition libs/lib.h:93
char plugin_name[128]
Definition libs/lib.h:87
dt_gui_module_t common_fields
Definition libs/lib.h:77
GModule *void * data
Definition libs/lib.h:85
GtkWidget * arrow
Definition libs/lib.h:97
GtkWidget * widget
Definition libs/lib.h:89
guint timeout_handle
Definition libs/lib.h:95
Definition libs/lib.h:42
struct dt_iop_color_picker_t * picker_proxy
Definition libs/lib.h:54
gboolean display_samples
Definition libs/lib.h:57
void(* set_sample_box_area)(struct dt_lib_module_t *self, const dt_boundingbox_t size)
Definition libs/lib.h:62
GSList * live_samples
Definition libs/lib.h:55
struct dt_lib_t::@51::@53 navigation
struct dt_lib_module_t *struct dt_colorpicker_sample_t * primary_sample
Definition libs/lib.h:53
struct dt_lib_t::@51 proxy
struct dt_lib_module_t * gui_module
Definition libs/lib.h:44
void(* update_panel)(struct dt_lib_module_t *self)
Definition libs/lib.h:60
int statistic
Definition libs/lib.h:59
gboolean restrict_histogram
Definition libs/lib.h:58
GList * plugins
Definition libs/lib.h:43
struct dt_colorpicker_sample_t * selected_sample
Definition libs/lib.h:56
struct dt_lib_t::@51::@52 colorpicker
void(* set_sample_point)(struct dt_lib_module_t *self, const float pos[2])
Definition libs/lib.h:63
void(* update_samples)(struct dt_lib_module_t *self)
Definition libs/lib.h:61
Definition views/view.h:95