Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
lib.c File Reference
#include "libs/lib.h"
#include "common/debug.h"
#include "common/module.h"
#include "control/conf.h"
#include "control/control.h"
#include "dtgtk/button.h"
#include "dtgtk/expander.h"
#include "dtgtk/icon.h"
#include "gui/gtk.h"
#include "gui/presets.h"
#include <stdbool.h>
#include <stdlib.h>
#include "libs/lib_api.h"
+ Include dependency graph for libs/lib.c:

Data Structures

struct  dt_lib_module_info_t
 
struct  dt_lib_presets_edit_dialog_t
 

Macros

#define INCLUDE_API_FROM_MODULE_LOAD   "lib_load_module"
 

Typedefs

typedef enum dt_action_element_lib_t dt_action_element_lib_t
 
typedef struct dt_lib_module_info_t dt_lib_module_info_t
 
typedef struct dt_lib_presets_edit_dialog_t dt_lib_presets_edit_dialog_t
 

Enumerations

enum  dt_action_element_lib_t {
  DT_ACTION_ELEMENT_SHOW = 0 ,
  DT_ACTION_ELEMENT_RESET = 1 ,
  DT_ACTION_ELEMENT_PRESETS = 2
}
 

Functions

gboolean dt_lib_is_visible_in_view (dt_lib_module_t *module, const dt_view_t *view)
 
static void dt_lib_unload_module (dt_lib_module_t *module)
 
static gchar * get_active_preset_name (dt_lib_module_info_t *minfo)
 
static void edit_preset (const char *name_in, dt_lib_module_info_t *minfo)
 
static void menuitem_update_preset (GtkMenuItem *menuitem, dt_lib_module_info_t *minfo)
 
static void menuitem_new_preset (GtkMenuItem *menuitem, dt_lib_module_info_t *minfo)
 
static void menuitem_edit_preset (GtkMenuItem *menuitem, dt_lib_module_info_t *minfo)
 
static void menuitem_manage_presets (GtkMenuItem *menuitem, dt_lib_module_info_t *minfo)
 
static void menuitem_delete_preset (GtkMenuItem *menuitem, dt_lib_module_info_t *minfo)
 
gchar * dt_lib_presets_duplicate (const gchar *preset, const gchar *module_name, int module_version)
 
void dt_lib_presets_remove (const gchar *preset, const gchar *module_name, int module_version)
 
gboolean dt_lib_presets_apply (const gchar *preset, const gchar *module_name, int module_version)
 
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)
 
static void pick_callback (GtkMenuItem *menuitem, dt_lib_module_info_t *minfo)
 
static void free_module_info (GtkWidget *widget, gpointer user_data)
 
static void dt_lib_presets_popup_menu_show (dt_lib_module_info_t *minfo)
 
gint dt_lib_sort_plugins (gconstpointer a, gconstpointer b)
 
static gboolean default_expandable (dt_lib_module_t *self)
 
static gboolean default_preset_autoapply (dt_lib_module_t *self)
 
int default_lib_focus (dt_gui_module_t *m, gboolean toogle)
 
static int _lib_plugin_body_button_press (GtkWidget *w, GdkEventButton *e, gpointer user_data)
 
static int dt_lib_load_module (void *m, const char *libname, const char *module_name)
 
static void_update_params (dt_lib_module_t *module, const void *const old_params, size_t old_params_size, int old_version, int target_version, size_t *new_size)
 
void dt_lib_init_presets (dt_lib_module_t *module)
 
static gboolean _lib_plugin_focus_accel (GtkAccelGroup *accel_group, GObject *accelerable, guint keyval, GdkModifierType modifier, gpointer data)
 
static void dt_lib_init_module (void *m)
 
static void dt_lib_gui_reset_callback (GtkButton *button, gpointer user_data)
 
static void presets_popup_callback (GtkButton *button, dt_lib_module_t *module)
 
void dt_lib_gui_set_expanded (dt_lib_module_t *module, gboolean expanded)
 
gboolean dt_lib_gui_get_expanded (dt_lib_module_t *module)
 
static gboolean _lib_plugin_header_button_press (GtkWidget *w, GdkEventButton *e, gpointer user_data)
 
GtkWidget * dt_lib_gui_get_expander (dt_lib_module_t *module)
 
void dt_lib_init (dt_lib_t *lib)
 
void dt_lib_cleanup (dt_lib_t *lib)
 
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)
 
static gchar * _get_lib_view_path (dt_lib_module_t *module, char *suffix)
 
gboolean dt_lib_is_visible (dt_lib_module_t *module)
 
void dt_lib_set_visible (dt_lib_module_t *module, gboolean visible)
 
gchar * dt_lib_get_localized_name (const gchar *plugin_name)
 
void dt_lib_colorpicker_set_box_area (dt_lib_t *lib, const dt_boundingbox_t box)
 
void dt_lib_colorpicker_set_point (dt_lib_t *lib, const float pos[2])
 
dt_lib_module_tdt_lib_get_module (const char *name)
 
static gboolean _postponed_update (gpointer data)
 
void dt_lib_queue_postponed_update (dt_lib_module_t *mod, void(*update_fn)(dt_lib_module_t *self))
 
void dt_lib_cancel_postponed_update (dt_lib_module_t *mod)
 
gboolean dt_lib_presets_can_autoapply (dt_lib_module_t *mod)
 
gboolean dt_handle_dialog_enter (GtkWidget *widget, GdkEventKey *event, gpointer data)
 
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)
 

Macro Definition Documentation

◆ INCLUDE_API_FROM_MODULE_LOAD

#define INCLUDE_API_FROM_MODULE_LOAD   "lib_load_module"

Typedef Documentation

◆ dt_action_element_lib_t

◆ dt_lib_module_info_t

◆ dt_lib_presets_edit_dialog_t

Enumeration Type Documentation

◆ dt_action_element_lib_t

Enumerator
DT_ACTION_ELEMENT_SHOW 
DT_ACTION_ELEMENT_RESET 
DT_ACTION_ELEMENT_PRESETS 

Function Documentation

◆ _get_lib_view_path()

◆ _lib_plugin_body_button_press()

static int _lib_plugin_body_button_press ( GtkWidget *  w,
GdkEventButton *  e,
gpointer  user_data 
)
static

◆ _lib_plugin_focus_accel()

static gboolean _lib_plugin_focus_accel ( GtkAccelGroup *  accel_group,
GObject *  accelerable,
guint  keyval,
GdkModifierType  modifier,
gpointer  data 
)
static

References FALSE.

Referenced by dt_lib_init_module().

◆ _lib_plugin_header_button_press()

◆ _postponed_update()

static gboolean _postponed_update ( gpointer  data)
static

◆ _update_params()

static void * _update_params ( dt_lib_module_t module,
const void *const  old_params,
size_t  old_params_size,
int  old_version,
int  target_version,
size_t *  new_size 
)
static

References size.

Referenced by dt_lib_init_presets().

◆ default_expandable()

static gboolean default_expandable ( dt_lib_module_t self)
static

References TRUE.

◆ default_lib_focus()

int default_lib_focus ( dt_gui_module_t m,
gboolean  toogle 
)

◆ default_preset_autoapply()

static gboolean default_preset_autoapply ( dt_lib_module_t self)
static

References FALSE.

◆ dt_action_button_new()

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 
)
Todo:
: figure out where to handle that

References dt_capitalize_label(), and tooltip.

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

◆ dt_handle_dialog_enter()

gboolean dt_handle_dialog_enter ( GtkWidget *  widget,
GdkEventKey *  event,
gpointer  data 
)

handle Enter key for dialog. Note it uses GTK_RESPONSE_ACCEPT code

References FALSE, and TRUE.

Referenced by _add_tag_button_clicked(), _menuitem_preferences(), and dt_lib_export_metadata_configuration_dialog().

◆ dt_lib_cancel_postponed_update()

void dt_lib_cancel_postponed_update ( dt_lib_module_t mod)

◆ dt_lib_cleanup()

void dt_lib_cleanup ( dt_lib_t lib)

◆ dt_lib_colorpicker_set_box_area()

void dt_lib_colorpicker_set_box_area ( dt_lib_t lib,
const dt_boundingbox_t  box 
)

set the colorpicker area selection tool and size, box[k] 0.0 - 1.0

References dt_lib_t::colorpicker, dt_gui_refocus_center(), dt_lib_t::proxy, and dt_lib_t::set_sample_box_area.

Referenced by _color_picker_callback_button_press(), and button_pressed().

◆ dt_lib_colorpicker_set_point()

void dt_lib_colorpicker_set_point ( dt_lib_t lib,
const float  pos[2] 
)

set the colorpicker point selection tool and position

References dt_lib_t::colorpicker, dt_gui_refocus_center(), dt_lib_t::proxy, and dt_lib_t::set_sample_point.

Referenced by _color_picker_callback_button_press(), and button_pressed().

◆ dt_lib_get_localized_name()

gchar * dt_lib_get_localized_name ( const gchar *  plugin_name)

returns the localized plugin name for a given plugin_name. must not be freed.

References darktable, darktable_t::lib, dt_lib_module_t::plugin_name, and dt_lib_t::plugins.

◆ dt_lib_get_module()

dt_lib_module_t * dt_lib_get_module ( const char *  name)

return the plugin with the given name

References darktable, darktable_t::lib, name, dt_lib_module_t::plugin_name, and dt_lib_t::plugins.

Referenced by expose().

◆ dt_lib_gui_get_expanded()

◆ dt_lib_gui_get_expander()

◆ dt_lib_gui_reset_callback()

static void dt_lib_gui_reset_callback ( GtkButton *  button,
gpointer  user_data 
)
static

Referenced by dt_lib_gui_get_expander().

◆ dt_lib_gui_set_expanded()

◆ dt_lib_init()

◆ dt_lib_init_module()

static void dt_lib_init_module ( void m)
static

◆ dt_lib_init_presets()

◆ dt_lib_is_visible()

gboolean dt_lib_is_visible ( dt_lib_module_t module)

get the visible state of a plugin

References _get_lib_view_path(), dt_conf_get_bool(), dt_conf_key_exists(), key, and TRUE.

Referenced by dt_view_manager_switch_by_view(), and visible_member().

◆ dt_lib_is_visible_in_view()

◆ dt_lib_load_module()

static int dt_lib_load_module ( void m,
const char *  libname,
const char *  module_name 
)
static

◆ dt_lib_presets_add()

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 
)

◆ dt_lib_presets_apply()

◆ dt_lib_presets_can_autoapply()

gboolean dt_lib_presets_can_autoapply ( dt_lib_module_t mod)

◆ dt_lib_presets_duplicate()

gchar * dt_lib_presets_duplicate ( const gchar *  preset,
const gchar *  module_name,
int  module_version 
)

◆ dt_lib_presets_popup_menu_show()

◆ dt_lib_presets_remove()

◆ dt_lib_presets_update()

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 
)

◆ dt_lib_queue_postponed_update()

void dt_lib_queue_postponed_update ( dt_lib_module_t mod,
void(*)(dt_lib_module_t *self)  update_fn 
)

◆ dt_lib_set_visible()

void dt_lib_set_visible ( dt_lib_module_t module,
gboolean  visible 
)

◆ dt_lib_sort_plugins()

gint dt_lib_sort_plugins ( gconstpointer  a,
gconstpointer  b 
)

sorter callback to add a lib in the list of libs after init

Referenced by dt_lib_init(), and register_lib().

◆ dt_lib_unload_module()

void dt_lib_unload_module ( dt_lib_module_t module)
static

calls module->cleanup and closes the dl connection.

References DT_GUI_MODULE, and m.

Referenced by dt_lib_cleanup().

◆ edit_preset()

◆ free_module_info()

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

◆ get_active_preset_name()

◆ menuitem_delete_preset()

◆ menuitem_edit_preset()

static void menuitem_edit_preset ( GtkMenuItem *  menuitem,
dt_lib_module_info_t minfo 
)
static

References edit_preset().

Referenced by dt_lib_presets_popup_menu_show().

◆ menuitem_manage_presets()

static void menuitem_manage_presets ( GtkMenuItem *  menuitem,
dt_lib_module_info_t minfo 
)
static

◆ menuitem_new_preset()

◆ menuitem_update_preset()

◆ pick_callback()

◆ presets_popup_callback()