![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "common/darktable.h"#include "common/act_on.h"#include "common/debug.h"#include "common/collection.h"#include "common/selection.h"#include "control/conf.h"#include "develop/develop.h"#include "gui/gtk.h"#include "views/view.h"#include "math.h"#include "menu.h"
Include dependency graph for menu.c:Typedefs | |
| typedef struct dt_masks_form_gui_t | dt_masks_form_gui_t |
Functions | |
| static void | _activate_callback_to_action_callback (GtkMenuItem *menu_item, gpointer user_data) |
| static gboolean | _menu_icon_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data) |
| GtkWidget * | ctx_gtk_menu_item_new_with_icon (const char *label, GtkWidget *menu, void(*activate_callback)(GtkWidget *widget, gpointer user_data), gpointer user_data, dt_menu_icon_t icon) |
| GtkWidget * | ctx_gtk_menu_item_new_with_icon_and_shortcut (const char *label, const char *shortcut, GtkWidget *menu, void(*activate_callback)(GtkWidget *widget, gpointer user_data), gpointer user_data, dt_menu_icon_t icon) |
| GtkWidget * | ctx_gtk_menu_item_new_with_markup (const char *label, GtkWidget *menu, void(*activate_callback)(GtkWidget *widget, gpointer user_data), gpointer user_data) |
| GtkWidget * | ctx_gtk_menu_item_new_with_markup_and_shortcut (const char *label, const char *shortcut, GtkWidget *menu, void(*activate_callback)(GtkWidget *widget, gpointer user_data), gpointer user_data) |
| GtkWidget * | ctx_gtk_menu_item_new_with_markup_and_pixbuf (const char *label, GdkPixbuf *icon, GtkWidget *menu, void(*activate_callback)(GtkWidget *widget, gpointer user_data), gpointer user_data) |
| GtkWidget * | ctx_gtk_check_menu_item_new_with_markup (const char *label, GtkWidget *menu, void(*activate_callback)(GtkWidget *widget, gpointer user_data), gpointer user_data, const gboolean checked, const gboolean show_checkbox) |
| GtkWidget * | ctx_gtk_check_menu_item_new_with_markup_and_pixbuf (const char *label, GdkPixbuf *icon, GtkWidget *menu, void(*activate_callback)(GtkWidget *widget, gpointer user_data), gpointer user_data, const gboolean checked, const gboolean show_checkbox) |
| dt_menu_entry_t * | set_menu_entry (GtkWidget **menus, GList **items_list, const gchar *label, dt_menus_t menu_index, GtkMenu *parent, void *data, gboolean(*action_callback)(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data), gboolean(*checked_callback)(GtkWidget *widget), gboolean(*active_callback)(GtkWidget *widget), gboolean(*sensitive_callback)(GtkWidget *widget), guint key_val, GdkModifierType mods, GtkAccelGroup *accel_group) |
| void | update_entry (dt_menu_entry_t *entry) |
| void | update_menu_entries (GtkWidget *widget, gpointer user_data) |
| void | add_generic_top_menu_entry (GtkWidget *menu_bar, GtkWidget **menus, GList **lists, const dt_menus_t index, gchar *label, GtkAccelGroup *accel_group, const char *accel_path_prefix) |
| void | add_top_menu_entry (GtkWidget *menu_bar, GtkWidget **menus, GList **lists, const dt_menus_t index, gchar *label) |
| void | add_generic_top_submenu_entry (GtkWidget **menus, GList **lists, const gchar *label, const dt_menus_t index, GtkAccelGroup *accel_group) |
| void | add_top_submenu_entry (GtkWidget **menus, GList **lists, const gchar *label, const dt_menus_t index) |
| void | add_generic_sub_menu_entry (GtkWidget **menus, GList **lists, const gchar *label, const dt_menus_t index, void *data, gboolean(*action_callback)(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data), gboolean(*checked_callback)(GtkWidget *widget), gboolean(*active_callback)(GtkWidget *widget), gboolean(*sensitive_callback)(GtkWidget *widget), guint key_val, GdkModifierType mods, GtkAccelGroup *accel_group) |
| void | add_sub_menu_entry (GtkWidget **menus, GList **lists, const gchar *label, const dt_menus_t index, void *data, gboolean(*action_callback)(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data), gboolean(*checked_callback)(GtkWidget *widget), gboolean(*active_callback)(GtkWidget *widget), gboolean(*sensitive_callback)(GtkWidget *widget), guint key_val, GdkModifierType mods) |
| void | add_no_accel_sub_menu_entry (GtkWidget **menus, GList **lists, const gchar *label, const dt_menus_t index, void *data, gboolean(*action_callback)(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data), gboolean(*checked_callback)(GtkWidget *widget), gboolean(*active_callback)(GtkWidget *widget), gboolean(*sensitive_callback)(GtkWidget *widget), guint key_val, GdkModifierType mods) |
| void | add_generic_sub_sub_menu_entry (GtkWidget **menus, GtkWidget *parent, GList **lists, const gchar *label, const dt_menus_t index, void *data, gboolean(*action_callback)(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data), gboolean(*checked_callback)(GtkWidget *widget), gboolean(*active_callback)(GtkWidget *widget), gboolean(*sensitive_callback)(GtkWidget *widget), guint key_val, GdkModifierType mods, GtkAccelGroup *accel_group) |
| void | add_sub_sub_menu_entry (GtkWidget **menus, GtkWidget *parent, GList **lists, const gchar *label, const dt_menus_t index, void *data, gboolean(*action_callback)(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data), gboolean(*checked_callback)(GtkWidget *widget), gboolean(*active_callback)(GtkWidget *widget), gboolean(*sensitive_callback)(GtkWidget *widget), guint key_val, GdkModifierType mods) |
| void | add_menu_separator (GtkWidget *menu) |
| void | add_sub_menu_separator (GtkWidget *parent) |
| void * | get_custom_data (GtkWidget *widget) |
| GtkWidget * | get_last_widget (GList **list) |
| gboolean | has_selection () |
| gboolean | has_active_images () |
| gboolean | _is_lighttable () |
| gboolean | _is_darkroom () |
| gboolean | has_active_image_in_lighttable () |
| gboolean | dt_menu_is_image_in_dev (GList *imgs) |
| void | dt_menu_apply_dev_history_update (dt_develop_t *dev, const gboolean history_inited) |
| typedef struct dt_masks_form_gui_t dt_masks_form_gui_t |
|
static |
How to use:
darktable.gui since they take no arguments.set_menu_entry function below. GUI states of the children menu items will be updated automatically everytime a top-level menu is opened. References dt_menu_entry_t::accel_group, and dt_menu_entry_t::action_callback.
Referenced by set_menu_entry(), and update_entry().
| gboolean _is_darkroom | ( | ) |
| gboolean _is_lighttable | ( | ) |
|
static |
References double(), DT_MENU_ICON_CIRCLE, DT_MENU_ICON_NONE, DT_MENU_ICON_SQUARE, FALSE, h, M_PI, MAX, dt_menu_icon_data_t::shape, size, and x.
Referenced by ctx_gtk_menu_item_new_with_icon(), and ctx_gtk_menu_item_new_with_icon_and_shortcut().
| void add_generic_sub_menu_entry | ( | GtkWidget ** | menus, |
| GList ** | lists, | ||
| const gchar * | label, | ||
| const dt_menus_t | index, | ||
| void * | data, | ||
| gboolean(*)(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data) | action_callback, | ||
| gboolean(*)(GtkWidget *widget) | checked_callback, | ||
| gboolean(*)(GtkWidget *widget) | active_callback, | ||
| gboolean(*)(GtkWidget *widget) | sensitive_callback, | ||
| guint | key_val, | ||
| GdkModifierType | mods, | ||
| GtkAccelGroup * | accel_group | ||
| ) |
References set_menu_entry(), TRUE, and dt_menu_entry_t::widget.
Referenced by add_no_accel_sub_menu_entry(), add_sub_menu_entry(), and append_thumbnails().
| void add_generic_sub_sub_menu_entry | ( | GtkWidget ** | menus, |
| GtkWidget * | parent, | ||
| GList ** | lists, | ||
| const gchar * | label, | ||
| const dt_menus_t | index, | ||
| void * | data, | ||
| gboolean(*)(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data) | action_callback, | ||
| gboolean(*)(GtkWidget *widget) | checked_callback, | ||
| gboolean(*)(GtkWidget *widget) | active_callback, | ||
| gboolean(*)(GtkWidget *widget) | sensitive_callback, | ||
| guint | key_val, | ||
| GdkModifierType | mods, | ||
| GtkAccelGroup * | accel_group | ||
| ) |
References set_menu_entry(), and dt_menu_entry_t::widget.
Referenced by add_sub_sub_menu_entry(), and append_thumbnails().
| void add_generic_top_menu_entry | ( | GtkWidget * | menu_bar, |
| GtkWidget ** | menus, | ||
| GList ** | lists, | ||
| const dt_menus_t | index, | ||
| gchar * | label, | ||
| GtkAccelGroup * | accel_group, | ||
| const char * | accel_path_prefix | ||
| ) |
References dt_accels_build_path(), dt_free, dt_gui_add_class(), strip_markup(), and update_menu_entries().
Referenced by add_top_menu_entry(), and gui_init().
| void add_generic_top_submenu_entry | ( | GtkWidget ** | menus, |
| GList ** | lists, | ||
| const gchar * | label, | ||
| const dt_menus_t | index, | ||
| GtkAccelGroup * | accel_group | ||
| ) |
References dt_accels_build_path(), dt_free, set_menu_entry(), strip_markup(), and dt_menu_entry_t::widget.
Referenced by add_top_submenu_entry(), and append_thumbnails().
Referenced by append_display(), append_edit(), append_file(), append_help(), append_image(), append_run(), append_select(), and append_styles().
| void add_no_accel_sub_menu_entry | ( | GtkWidget ** | menus, |
| GList ** | lists, | ||
| const gchar * | label, | ||
| const dt_menus_t | index, | ||
| void * | data, | ||
| gboolean(*)(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data) | action_callback, | ||
| gboolean(*)(GtkWidget *widget) | checked_callback, | ||
| gboolean(*)(GtkWidget *widget) | active_callback, | ||
| gboolean(*)(GtkWidget *widget) | sensitive_callback, | ||
| guint | key_val, | ||
| GdkModifierType | mods | ||
| ) |
References add_generic_sub_menu_entry().
Referenced by append_file(), and append_views().
| void add_sub_menu_entry | ( | GtkWidget ** | menus, |
| GList ** | lists, | ||
| const gchar * | label, | ||
| const dt_menus_t | index, | ||
| void * | data, | ||
| gboolean(*)(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data) | action_callback, | ||
| gboolean(*)(GtkWidget *widget) | checked_callback, | ||
| gboolean(*)(GtkWidget *widget) | active_callback, | ||
| gboolean(*)(GtkWidget *widget) | sensitive_callback, | ||
| guint | key_val, | ||
| GdkModifierType | mods | ||
| ) |
References dt_gui_gtk_t::accels, add_generic_sub_menu_entry(), darktable, dt_accels_t::global_accels, and darktable_t::gui.
Referenced by append_display(), append_edit(), append_file(), append_help(), append_image(), append_run(), append_select(), and append_styles().
Referenced by append_image().
| void add_sub_sub_menu_entry | ( | GtkWidget ** | menus, |
| GtkWidget * | parent, | ||
| GList ** | lists, | ||
| const gchar * | label, | ||
| const dt_menus_t | index, | ||
| void * | data, | ||
| gboolean(*)(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data) | action_callback, | ||
| gboolean(*)(GtkWidget *widget) | checked_callback, | ||
| gboolean(*)(GtkWidget *widget) | active_callback, | ||
| gboolean(*)(GtkWidget *widget) | sensitive_callback, | ||
| guint | key_val, | ||
| GdkModifierType | mods | ||
| ) |
References dt_gui_gtk_t::accels, add_generic_sub_sub_menu_entry(), darktable, dt_accels_t::global_accels, and darktable_t::gui.
Referenced by append_display(), append_edit(), append_file(), and append_image().
| void add_top_menu_entry | ( | GtkWidget * | menu_bar, |
| GtkWidget ** | menus, | ||
| GList ** | lists, | ||
| const dt_menus_t | index, | ||
| gchar * | label | ||
| ) |
References dt_gui_gtk_t::accels, add_generic_top_menu_entry(), darktable, dt_accels_t::global_accels, and darktable_t::gui.
Referenced by dt_ui_init_global_menu().
| void add_top_submenu_entry | ( | GtkWidget ** | menus, |
| GList ** | lists, | ||
| const gchar * | label, | ||
| const dt_menus_t | index | ||
| ) |
References dt_gui_gtk_t::accels, add_generic_top_submenu_entry(), darktable, dt_accels_t::global_accels, and darktable_t::gui.
Referenced by _styles_get_submenu(), append_display(), append_edit(), append_file(), and append_image().
| GtkWidget * ctx_gtk_check_menu_item_new_with_markup | ( | const char * | label, |
| GtkWidget * | menu, | ||
| void(*)(GtkWidget *widget, gpointer user_data) | activate_callback, | ||
| gpointer | user_data, | ||
| const gboolean | checked, | ||
| const gboolean | show_checkbox | ||
| ) |
Referenced by populate_masks_context_menu().
| GtkWidget * ctx_gtk_check_menu_item_new_with_markup_and_pixbuf | ( | const char * | label, |
| GdkPixbuf * | icon, | ||
| GtkWidget * | menu, | ||
| void(*)(GtkWidget *widget, gpointer user_data) | activate_callback, | ||
| gpointer | user_data, | ||
| const gboolean | checked, | ||
| const gboolean | show_checkbox | ||
| ) |
Referenced by _blendop_masks_group_ctx_menu().
| GtkWidget * ctx_gtk_menu_item_new_with_icon | ( | const char * | label, |
| GtkWidget * | menu, | ||
| void(*)(GtkWidget *widget, gpointer user_data) | activate_callback, | ||
| gpointer | user_data, | ||
| dt_menu_icon_t | icon | ||
| ) |
References _menu_icon_draw(), DT_MENU_ICON_NONE, FALSE, and dt_menu_icon_data_t::shape.
| GtkWidget * ctx_gtk_menu_item_new_with_icon_and_shortcut | ( | const char * | label, |
| const char * | shortcut, | ||
| GtkWidget * | menu, | ||
| void(*)(GtkWidget *widget, gpointer user_data) | activate_callback, | ||
| gpointer | user_data, | ||
| dt_menu_icon_t | icon | ||
| ) |
References _menu_icon_draw(), DT_MENU_ICON_NONE, FALSE, dt_menu_icon_data_t::shape, and TRUE.
Referenced by _brush_populate_context_menu(), and _polygon_populate_context_menu().
| GtkWidget * ctx_gtk_menu_item_new_with_markup | ( | const char * | label, |
| GtkWidget * | menu, | ||
| void(*)(GtkWidget *widget, gpointer user_data) | activate_callback, | ||
| gpointer | user_data | ||
| ) |
References FALSE.
Referenced by _brush_populate_context_menu(), _polygon_populate_context_menu(), dt_masks_create_menu(), and populate_masks_context_menu().
| GtkWidget * ctx_gtk_menu_item_new_with_markup_and_pixbuf | ( | const char * | label, |
| GdkPixbuf * | icon, | ||
| GtkWidget * | menu, | ||
| void(*)(GtkWidget *widget, gpointer user_data) | activate_callback, | ||
| gpointer | user_data | ||
| ) |
Referenced by dt_masks_create_menu().
| GtkWidget * ctx_gtk_menu_item_new_with_markup_and_shortcut | ( | const char * | label, |
| const char * | shortcut, | ||
| GtkWidget * | menu, | ||
| void(*)(GtkWidget *widget, gpointer user_data) | activate_callback, | ||
| gpointer | user_data | ||
| ) |
Referenced by _brush_populate_context_menu(), and _polygon_populate_context_menu().
| void dt_menu_apply_dev_history_update | ( | dt_develop_t * | dev, |
| const gboolean | history_inited | ||
| ) |
References darktable, DT_DEBUG_CONTROL_SIGNAL_RAISE, dt_dev_history_gui_update(), dt_dev_history_notify_change(), dt_dev_history_pixelpipe_update(), dt_dev_reload_history_items(), DT_SIGNAL_DEVELOP_HISTORY_CHANGE, dt_image_t::id, dt_develop_t::image_storage, darktable_t::signals, and TRUE.
Referenced by _styles_apply_callback(), compress_history_callback(), delete_history_callback(), and load_xmp_callback().
| gboolean dt_menu_is_image_in_dev | ( | GList * | imgs | ) |
Referenced by _jpg_checked(), _jpg_combobox_changed(), _styles_apply_callback(), _zoom_checked(), _zoom_combobox_changed(), init_collection_line(), intent_callback(), intent_checked_callback(), profile_callback(), profile_checked_callback(), update_collection_callback(), views_active_callback(), and views_sensitive_callback().
| GtkWidget * get_last_widget | ( | GList ** | list | ) |
References dt_menu_entry_t::widget.
Referenced by _styles_get_submenu(), append_display(), append_edit(), append_file(), append_image(), and append_thumbnails().
| gboolean has_active_image_in_lighttable | ( | ) |
References _is_lighttable(), and has_active_images().
Referenced by append_file().
| gboolean has_active_images | ( | ) |
References dt_act_on_get_images_nb(), and FALSE.
Referenced by _can_be_rotated(), _styles_add_menu_entry(), append_edit(), append_file(), append_image(), append_run(), delete_history_callback(), duplicate_callback(), has_active_image_in_lighttable(), and new_history_callback().
| gboolean has_selection | ( | ) |
References darktable, dt_selection_get_length(), and darktable_t::selection.
Referenced by append_edit().
| dt_menu_entry_t * set_menu_entry | ( | GtkWidget ** | menus, |
| GList ** | items_list, | ||
| const gchar * | label, | ||
| dt_menus_t | menu_index, | ||
| GtkMenu * | parent, | ||
| void * | data, | ||
| gboolean(*)(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data) | action_callback, | ||
| gboolean(*)(GtkWidget *widget) | checked_callback, | ||
| gboolean(*)(GtkWidget *widget) | active_callback, | ||
| gboolean(*)(GtkWidget *widget) | sensitive_callback, | ||
| guint | key_val, | ||
| GdkModifierType | mods, | ||
| GtkAccelGroup * | accel_group | ||
| ) |
How to use:
darktable.gui since they take no arguments.set_menu_entry function below. GUI states of the children menu items will be updated automatically everytime a top-level menu is opened. References _activate_callback_to_action_callback(), dt_menu_entry_t::accel_group, dt_gui_gtk_t::accels, dt_menu_entry_t::action_callback, dt_menu_entry_t::active_callback, dt_menu_entry_t::checked_callback, darktable, dt_accels_build_path(), dt_accels_new_action_shortcut(), dt_free, DT_MENU_ENTRY_CHECKBUTTON, DT_MENU_ENTRY_DEFAULT, FALSE, darktable_t::gui, dt_menu_entry_t::menu, dt_menu_entry_t::sensitive_callback, strip_markup(), dt_menu_entry_t::style, and dt_menu_entry_t::widget.
Referenced by _styles_add_menu_entry(), add_generic_sub_menu_entry(), add_generic_sub_sub_menu_entry(), and add_generic_top_submenu_entry().
| void update_entry | ( | dt_menu_entry_t * | entry | ) |
References _activate_callback_to_action_callback(), dt_menu_entry_t::active_callback, dt_menu_entry_t::checked_callback, dt_gui_add_class(), dt_gui_remove_class(), DT_MENU_ENTRY_DEFAULT, dt_menu_entry_t::sensitive_callback, dt_menu_entry_t::style, and dt_menu_entry_t::widget.
Referenced by update_menu_entries().
References update_entry().
Referenced by add_generic_top_menu_entry().