38static gboolean
rotate_clockwise_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
44static gboolean
flip_horizontally_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
50static gboolean
flip_vertically_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
56static gboolean
reset_rotation_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
64static gboolean
group_images_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
76 for(GList *l =
selected; l; l = g_list_next(l))
78 const int32_t
id = GPOINTER_TO_INT(l->data);
79 if(new_group_id ==
UNKNOWN_IMAGE ||
id < new_group_id) new_group_id = id;
82 for(GList *l =
selected; l; l = g_list_next(l))
84 const int32_t
id = GPOINTER_TO_INT(l->data);
86 imgs = g_list_prepend(imgs, GINT_TO_POINTER(
id));
95static gboolean
ungroup_images_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
100 for(GList *l =
selected; l; l = g_list_next(l))
102 const int id = GPOINTER_TO_INT(l->data);
104 if(new_group_id != -1)
107 imgs = g_list_prepend(imgs, GINT_TO_POINTER(
id));
115 g_list_reverse(imgs));
139static gboolean
red_label_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
145static gboolean
yellow_label_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
151static gboolean
green_label_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
157static gboolean
blue_label_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
163static gboolean
magenta_label_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
169static gboolean
reset_label_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
175static gboolean
rating_one_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
181static gboolean
rating_two_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
187static gboolean
rating_three_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
193static gboolean
rating_four_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
199static gboolean
rating_five_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
205static gboolean
rating_reset_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
211static gboolean
rating_reject_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
256 add_sub_sub_menu_entry(menus, parent, lists, _(
"<span foreground='#BB2222'>\342\254\244</span> Red"), index, NULL,
259 add_sub_sub_menu_entry(menus, parent, lists, _(
"<span foreground='#BBBB22'>\342\254\244</span> Yellow"), index, NULL,
262 add_sub_sub_menu_entry(menus, parent, lists, _(
"<span foreground='#22BB22'>\342\254\244</span> Green"), index, NULL,
265 add_sub_sub_menu_entry(menus, parent, lists, _(
"<span foreground='#2222BB'>\342\254\244</span> Blue"), index, NULL,
268 add_sub_sub_menu_entry(menus, parent, lists, _(
"<span foreground='#BB22BB'>\342\254\244</span> Purple"), index, NULL,
273 add_sub_sub_menu_entry(menus, parent, lists, _(
"<span foreground='#BBBBBB'>\342\254\244</span> Clear labels"), index, NULL,
292 add_sub_sub_menu_entry(menus, parent, lists, _(
"\342\230\205\342\230\205\342\230\205\342\230\205"), index, NULL,
295 add_sub_sub_menu_entry(menus, parent, lists, _(
"\342\230\205\342\230\205\342\230\205\342\230\205\342\230\205"), index, NULL,
Handle default and user-set shortcuts (accelerators)
GList * dt_act_on_get_images()
typedef void((*dt_cache_allocate_t)(void *userdata, dt_cache_entry_t *entry))
void dt_collection_update_query(const dt_collection_t *collection, dt_collection_change_t query_change, dt_collection_properties_t changed_property, GList *list)
dt_collection_t * dt_collection_get_global(void)
@ DT_COLLECTION_PROP_GROUPING
@ DT_COLLECTION_CHANGE_RELOAD
void dt_colorlabels_toggle_label_on_list(GList *list, const int color, const gboolean undo_on)
struct _GtkWidget GtkWidget
GtkWidget, opaque, spelled exactly as GTK spells it.
void dt_control_queue_redraw_center()
Request a redraw of the centre view.
void dt_control_refresh_exif()
void dt_control_flip_images(const dt_image_transform_t transform)
GHashTable * selected
set of checked row labels, mirrored to conf on every change
int dt_grouping_remove_from_group(const int32_t image_id)
void dt_grouping_add_to_group(const int32_t group_id, const int32_t image_id)
static gboolean green_label_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean group_images_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean rating_four_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean rating_reset_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean _colorlabels_callback(int color)
static gboolean reset_rotation_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
gboolean _can_be_reoriented()
static gboolean flip_vertically_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
void append_image(GtkWidget **menus, GList **lists, const dt_menus_t index)
static gboolean _rating_callback(int value)
static gboolean blue_label_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean rotate_clockwise_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean reset_label_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean rating_two_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean yellow_label_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean ungroup_images_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean rating_one_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean magenta_label_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean rating_reject_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean rotate_counterclockwise_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean flip_horizontally_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean red_label_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean rating_five_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean rating_three_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
@ DT_IMAGE_TRANSFORM_FLIP_VERTICALLY
mirror top <-> bottom, as displayed
@ DT_IMAGE_TRANSFORM_ROTATE_CW
quarter turn clockwise
@ DT_IMAGE_TRANSFORM_RESET
back to ORIENTATION_NULL, i.e. what EXIF says
@ DT_IMAGE_TRANSFORM_FLIP_HORIZONTALLY
mirror left <-> right, as displayed
@ DT_IMAGE_TRANSFORM_ROTATE_CCW
quarter turn counter-clockwise
#define IS_NULL_PTR(p)
C is way too permissive with !=, == and if(var) checks, which can mean too many things depending on w...
void dt_ratings_apply_on_list(GList *img, const int rating, const gboolean undo_on)
Asking the interface to repaint itself.
struct dt_selection_t * dt_selection_get_global(void)
GList * dt_selection_get_list(struct dt_selection_t *selection)
static const dt_aligned_pixel_simd_t value