![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#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"
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_t * | dt_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) |
#define INCLUDE_API_FROM_MODULE_LOAD "lib_load_module" |
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 |
|
static |
References darktable, dt_view_darkroom_get_layout(), dt_view_manager_get_current_view(), dt_view_t::module_name, dt_lib_module_t::plugin_name, and darktable_t::view_manager.
Referenced by dt_lib_is_visible(), and dt_lib_set_visible().
|
static |
References darktable, FALSE, darktable_t::gui, and dt_gui_gtk_t::has_scroll_focus.
Referenced by dt_lib_gui_get_expander().
|
static |
References FALSE.
Referenced by dt_lib_init_module().
|
static |
References container(), darktable, dt_lib_module_t::data, dt_lib_gui_set_expanded(), dt_lib_is_visible_in_view(), dt_modifier_is(), DT_UI_CONTAINER_PANEL_LEFT_CENTER, DT_UI_CONTAINER_PANEL_RIGHT_CENTER, dt_view_manager_get_current_view(), DTGTK_EXPANDER, dtgtk_expander_get_expanded(), FALSE, darktable_t::gui, dt_gui_gtk_t::has_scroll_focus, darktable_t::lib, m, dt_lib_t::plugins, presets_popup_callback(), dt_gui_gtk_t::scroll_to, TRUE, and darktable_t::view_manager.
Referenced by dt_lib_gui_get_expander().
|
static |
References dt_lib_module_t::_postponed_update, FALSE, and dt_lib_module_t::timeout_handle.
Referenced by dt_lib_queue_postponed_update().
|
static |
References size.
Referenced by dt_lib_init_presets().
|
static |
References TRUE.
int default_lib_focus | ( | dt_gui_module_t * | m, |
gboolean | toogle | ||
) |
References dt_lib_gui_get_expanded(), and dt_lib_gui_set_expanded().
|
static |
References FALSE.
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 | ||
) |
References dt_capitalize_label(), and tooltip.
Referenced by gui_init(), gui_init(), and gui_init().
gboolean dt_handle_dialog_enter | ( | GtkWidget * | widget, |
GdkEventKey * | event, | ||
gpointer | data | ||
) |
handle Enter key for dialog. Note it uses GTK_RESPONSE_ACCEPT code
Referenced by _add_tag_button_clicked(), _menuitem_preferences(), and dt_lib_export_metadata_configuration_dialog().
void dt_lib_cancel_postponed_update | ( | dt_lib_module_t * | mod | ) |
cancel any previously-queued callback
References dt_lib_module_t::_postponed_update, and dt_lib_module_t::timeout_handle.
Referenced by _update(), _update(), _update(), _update_atdetach_buttons(), and gui_cleanup().
References dt_lib_module_t::data, dt_lib_unload_module(), and dt_lib_t::plugins.
Referenced by dt_cleanup().
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().
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().
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_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().
gboolean dt_lib_gui_get_expanded | ( | dt_lib_module_t * | module | ) |
get the expanded state of a plugin
References darktable, dt_conf_get_bool(), dt_view_manager_get_current_view(), DTGTK_EXPANDER, dtgtk_expander_get_expanded(), dt_lib_module_t::expander, dt_view_t::module_name, dt_lib_module_t::plugin_name, darktable_t::view_manager, and dt_lib_module_t::widget.
Referenced by default_lib_focus(), and expose().
GtkWidget * dt_lib_gui_get_expander | ( | dt_lib_module_t * | module | ) |
creates a label widget for the expander, with callback to enable/disable this module.
References _lib_plugin_body_button_press(), _lib_plugin_header_button_press(), dt_lib_module_t::arrow, dt_capitalize_label(), dt_gui_add_class(), dt_lib_gui_reset_callback(), DTGTK_EXPANDER, dtgtk_expander_get_body_event_box(), dtgtk_expander_get_frame(), dtgtk_expander_get_header_event_box(), dtgtk_expander_new(), FALSE, dt_lib_module_t::presets_button, presets_popup_callback(), dt_lib_module_t::reset_button, and dt_lib_module_t::widget.
Referenced by dt_view_manager_switch_by_view(), and export_files_callback().
|
static |
Referenced by dt_lib_gui_get_expander().
void dt_lib_gui_set_expanded | ( | dt_lib_module_t * | module, |
gboolean | expanded | ||
) |
set an expand/collapse plugin expander
References dt_lib_module_t::arrow, CPF_DIRECTION_DOWN, CPF_DIRECTION_RIGHT, darktable, dt_conf_set_bool(), dt_control_queue_redraw(), dt_gui_refocus_center(), dt_view_manager_get_current_view(), DTGTK_BUTTON, dtgtk_button_set_paint(), dtgtk_cairo_paint_solid_arrow(), DTGTK_EXPANDER, dtgtk_expander_set_expanded(), dt_lib_module_t::expander, flags, darktable_t::gui, dt_lib_t::gui_module, darktable_t::lib, dt_view_t::module_name, dt_lib_module_t::plugin_name, dt_gui_gtk_t::scroll_to, and darktable_t::view_manager.
Referenced by _lib_plugin_header_button_press(), default_lib_focus(), dt_view_manager_switch_by_view(), expanded_member(), and export_files_callback().
References darktable, dt_lib_init_module(), dt_lib_load_module(), dt_lib_sort_plugins(), dt_module_load_modules(), darktable_t::lib, and dt_lib_t::plugins.
Referenced by dt_init().
References _lib_plugin_focus_accel(), dt_gui_gtk_t::accels, dt_accels_t::darkroom_accels, darktable, delete_underscore(), dt_accels_new_action_shortcut(), dt_capitalize_label(), dt_lib_init_presets(), FALSE, darktable_t::gui, dt_accels_t::lighttable_accels, m, view(), and views().
Referenced by dt_lib_init().
void dt_lib_init_presets | ( | dt_lib_module_t * | module | ) |
init presets for a newly created lib
References _update_params(), darktable, darktable_t::db, dt_database_get(), DT_DEBUG_CONTROL_SIGNAL_RAISE, DT_DEBUG_SQLITE3_BIND_BLOB, DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, DT_SIGNAL_PRESETS_CHANGED, name, dt_lib_module_t::plugin_name, and darktable_t::signals.
Referenced by dt_lib_init_module(), and register_lib().
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().
gboolean dt_lib_is_visible_in_view | ( | dt_lib_module_t * | module, |
const dt_view_t * | view | ||
) |
check if a plugin is to be shown in a given view
References FALSE, TRUE, view(), and views().
Referenced by _lib_plugin_header_button_press(), dt_view_manager_button_pressed(), dt_view_manager_button_released(), dt_view_manager_expose(), dt_view_manager_key_pressed(), dt_view_manager_mouse_leave(), dt_view_manager_mouse_moved(), dt_view_manager_switch_by_view(), and views_member().
|
static |
References darktable, dt_view_t::data, dt_lua_lib_register(), FALSE, darktable_t::lua_state, TRUE, view(), darktable_t::view_manager, and dt_view_manager_t::views.
Referenced by dt_lib_init().
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 | ||
) |
preset stuff for lib add or replace a preset for this operation.
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_BLOB, DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_lib_presets_remove(), name, and params_size().
Referenced by add_rights_preset(), and init_presets().
gboolean dt_lib_presets_apply | ( | const gchar * | preset, |
const gchar * | module_name, | ||
int | module_version | ||
) |
References darktable, darktable_t::db, dt_conf_set_string(), dt_control_log(), dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_gui_store_last_preset(), dt_lib_presets_remove(), FALSE, darktable_t::lib, dt_lib_t::plugins, preset, and TRUE.
Referenced by pick_callback().
gboolean dt_lib_presets_can_autoapply | ( | dt_lib_module_t * | mod | ) |
Referenced by dt_presets_module_can_autoapply().
gchar * dt_lib_presets_duplicate | ( | const gchar * | preset, |
const gchar * | module_name, | ||
int | module_version | ||
) |
|
static |
References darktable, darktable_t::db, dt_conf_get_bool(), dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_gui_add_class(), FALSE, free_module_info(), darktable_t::gui, dt_gui_gtk_t::last_preset, menuitem_delete_preset(), menuitem_edit_preset(), menuitem_manage_presets(), menuitem_new_preset(), menuitem_update_preset(), name, dt_lib_module_info_t::params, dt_lib_module_info_t::params_size, pick_callback(), dt_lib_module_info_t::plugin_name, dt_gui_gtk_t::presets_popup_menu, TRUE, and dt_lib_module_info_t::version.
Referenced by presets_popup_callback().
void dt_lib_presets_remove | ( | const gchar * | preset, |
const gchar * | module_name, | ||
int | module_version | ||
) |
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, and preset.
Referenced by _edit_preset_response(), _menuitem_delete_preset(), _menuitem_new_preset(), dt_lib_presets_add(), dt_lib_presets_apply(), menuitem_delete_preset(), and menuitem_new_preset().
void dt_lib_queue_postponed_update | ( | dt_lib_module_t * | mod, |
void(*)(dt_lib_module_t *self) | update_fn | ||
) |
queue a delayed call of update function after user interaction
References _postponed_update(), dt_lib_module_t::_postponed_update, dt_develop_t::average_delay, darktable, darktable_t::develop, and dt_lib_module_t::timeout_handle.
Referenced by _lib_tagging_redraw_callback(), and _mouse_over_image_callback().
void dt_lib_set_visible | ( | dt_lib_module_t * | module, |
gboolean | visible | ||
) |
set the visible state of a plugin
References _get_lib_view_path(), dt_conf_set_bool(), dt_lib_module_t::expander, key, and dt_lib_module_t::widget.
Referenced by dt_view_manager_switch_by_view(), and visible_member().
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().
|
static |
calls module->cleanup and closes the dl connection.
References DT_GUI_MODULE, and m.
Referenced by dt_lib_cleanup().
|
static |
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_gui_presets_show_edit_dialog(), dt_ui_main_window(), FALSE, get_active_preset_name(), darktable_t::gui, name, dt_lib_module_info_t::plugin_name, TRUE, dt_gui_gtk_t::ui, and dt_lib_module_info_t::version.
Referenced by menuitem_edit_preset(), and menuitem_new_preset().
|
static |
References dt_lib_module_info_t::params, and dt_lib_module_info_t::plugin_name.
Referenced by dt_lib_presets_popup_menu_show().
|
static |
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, name, dt_lib_module_info_t::params, dt_lib_module_info_t::params_size, dt_lib_module_info_t::plugin_name, and dt_lib_module_info_t::version.
Referenced by edit_preset(), and menuitem_delete_preset().
|
static |
References darktable, dt_conf_get_bool(), DT_DEBUG_CONTROL_SIGNAL_RAISE, dt_lib_presets_remove(), dt_osx_disallow_fullscreen(), DT_SIGNAL_PRESETS_CHANGED, dt_ui_main_window(), get_active_preset_name(), darktable_t::gui, name, dt_lib_module_info_t::plugin_name, darktable_t::signals, dt_gui_gtk_t::ui, and dt_lib_module_info_t::version.
Referenced by dt_lib_presets_popup_menu_show().
|
static |
References edit_preset().
Referenced by dt_lib_presets_popup_menu_show().
|
static |
Referenced by dt_lib_presets_popup_menu_show().
|
static |
References darktable, darktable_t::db, dt_database_get(), DT_DEBUG_SQLITE3_BIND_BLOB, DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_lib_presets_remove(), edit_preset(), dt_lib_module_info_t::params, dt_lib_module_info_t::params_size, dt_lib_module_info_t::plugin_name, and dt_lib_module_info_t::version.
Referenced by dt_lib_presets_popup_menu_show().
|
static |
References darktable, darktable_t::db, dt_conf_get_bool(), dt_database_get(), DT_DEBUG_CONTROL_SIGNAL_RAISE, DT_DEBUG_SQLITE3_BIND_BLOB, DT_DEBUG_SQLITE3_BIND_INT, DT_DEBUG_SQLITE3_BIND_TEXT, DT_DEBUG_SQLITE3_PREPARE_V2, dt_osx_disallow_fullscreen(), DT_SIGNAL_PRESETS_CHANGED, dt_ui_main_window(), darktable_t::gui, name, dt_lib_module_info_t::params, dt_lib_module_info_t::params_size, dt_lib_module_info_t::plugin_name, darktable_t::signals, dt_gui_gtk_t::ui, and dt_lib_module_info_t::version.
Referenced by dt_lib_presets_popup_menu_show().
|
static |
|
static |
References darktable, dt_gui_menu_popup(), dt_lib_presets_popup_menu_show(), DTGTK_BUTTON, dtgtk_button_set_active(), FALSE, darktable_t::gui, dt_lib_module_info_t::params, dt_lib_module_info_t::params_size, dt_lib_module_info_t::plugin_name, dt_lib_module_t::plugin_name, dt_gui_gtk_t::presets_popup_menu, and dt_lib_module_info_t::version.
Referenced by _lib_plugin_header_button_press(), and dt_lib_gui_get_expander().