37 return gdk_window_get_state(gtk_widget_get_window(widget)) & GDK_WINDOW_STATE_FULLSCREEN;
40static gboolean
full_screen_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
46 gtk_window_unfullscreen(GTK_WINDOW(window));
48#ifdef GDK_WINDOWING_QUARTZ
50 gtk_window_set_title(GTK_WINDOW(window),
"Ansel");
58 gtk_window_fullscreen(GTK_WINDOW(window));
60#ifdef GDK_WINDOWING_QUARTZ
62 gtk_window_set_title(GTK_WINDOW(window),
"Ansel Preview");
69#ifdef GDK_WINDOWING_QUARTZ
71 GdkWindow *win = gtk_widget_get_window(window);
72 GdkDisplay *display = gtk_widget_get_display(window);
73 GdkMonitor *monitor = gdk_display_get_monitor_at_window(display, win);
74 GdkRectangle geometry;
75 gdk_monitor_get_geometry(monitor, &geometry);
78 gtk_window_get_size(GTK_WINDOW(window), &w, &h);
79 gtk_window_move(GTK_WINDOW(window), geometry.x + geometry.width - w, geometry.y + geometry.height - h);
103 GdkModifierType modifier, gpointer data)
126 g_return_if_fail(GTK_IS_WIDGET(ui->
panels[
p]));
131 over_panel = gtk_widget_get_parent(ui->
panels[
p]);
135 gtk_widget_show(ui->
panels[
p]);
136 if(over_panel) gtk_widget_show(over_panel);
152 gtk_widget_hide(ui->
panels[
p]);
153 if(over_panel) gtk_widget_hide(over_panel);
185 gboolean collapse =
TRUE;
213 g_return_val_if_fail(GTK_IS_WIDGET(ui->
panels[
p]),
FALSE);
214 return gtk_widget_get_visible(ui->
panels[
p]);
218static gboolean
panel_left_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
229static gboolean
panel_top_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
244 return (
view && strcmp(
view->module_name,
"lighttable"));
248static gboolean
panel_right_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
261static gboolean
filmstrip_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
282static gboolean
profile_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
300 fprintf(stderr,
"can't find display profile `%s', using system display profile instead\n", pp->
filename);
318 if(!strcmp(
string,
"perceptual"))
320 else if(!strcmp(
string,
"relative colorimetric"))
322 else if(!strcmp(
string,
"saturation"))
324 else if(!strcmp(
string,
"absolute colorimetric"))
337static gboolean
intent_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
341 if(new_intent != old_intent)
369static gboolean
hover_overlays_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
393static gboolean
group_borders_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
407static gboolean
collapse_grouped_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
425static gboolean
_jpg_combobox_changed(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
427 const int mode = GPOINTER_TO_INT(
get_custom_data(GTK_WIDGET(user_data)));
434 for(GList *img = g_list_first(imgs); img; img = g_list_next(img))
436 const int32_t imgid = GPOINTER_TO_INT(img->data);
463 add_sub_sub_menu_entry(menus, parent, lists, prof->
name, index, prof,
profile_callback,
profile_checked_callback, NULL, NULL, 0, 0);
472 const char *intents[4] = { _(
"Perceptual"), _(
"Relative colorimetric"), C_(
"rendering intent",
"Saturation"),
473 _(
"Absolute colorimetric") };
475 const char *data[4] = {
"perceptual",
"relative colorimetric",
"saturation",
"absolute colorimetric" };
477 for(
int i = 0;
i < 4;
i++)
478 add_sub_sub_menu_entry(menus, parent, lists, intents[
i], index, (
void *)data[
i],
intent_callback,
intent_checked_callback, NULL, NULL, 0, 0);
519 add_sub_sub_menu_entry(menus, parent, lists, _(
"Use embedded JPG if unedited"), index, GINT_TO_POINTER(1),
524 add_sub_menu_entry(menus, lists, _(
"Collapse grouped images"), index, NULL,
collapse_grouped_callback,
collapse_grouped_checked_callback, NULL, NULL, 0, 0);
static const dt_aligned_pixel_simd_t const dt_adaptation_t const float p
void dt_collection_update_query(const dt_collection_t *collection, dt_collection_change_t query_change, dt_collection_properties_t changed_property, GList *list)
GList * dt_collection_get_all(const dt_collection_t *collection, int limit)
@ DT_COLLECTION_PROP_GROUPING
@ DT_COLLECTION_CHANGE_RELOAD
static void profile_changed(GtkWidget *widget, gpointer user_data)
void dt_colorspaces_update_display_transforms()
@ DT_INTENT_ABSOLUTE_COLORIMETRIC
@ DT_INTENT_RELATIVE_COLORIMETRIC
@ DT_COLORSPACES_PROFILE_TYPE_DISPLAY
void dt_conf_set_bool(const char *name, int val)
int dt_conf_get_bool(const char *name)
void dt_conf_set_int(const char *name, int val)
int dt_conf_get_int(const char *name)
void dt_control_set_mouse_over_id(int32_t value)
void dt_control_set_keyboard_over_id(int32_t value)
uint32_t view(const dt_view_t *self)
void dt_dev_pixelpipe_change_zoom_main(dt_develop_t *dev)
static gboolean profile_checked_callback(GtkWidget *widget)
static gboolean filmstrip_checked_callback(GtkWidget *widget)
static gboolean always_show_overlays_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean panel_right_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
void dt_ui_panel_show(dt_ui_t *ui, const dt_ui_panel_t p, gboolean show, gboolean write)
shows/hide a panel
static gboolean hover_overlays_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean group_borders_checked_callback()
static gboolean collapse_grouped_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean panel_left_checked_callback(GtkWidget *widget)
void append_display(GtkWidget **menus, GList **lists, const dt_menus_t index)
static gboolean always_hide_overlays_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean available_in_lighttable_callback()
gboolean dt_ui_panel_visible(dt_ui_t *ui, const dt_ui_panel_t p)
get visible state of panel
static gboolean intent_checked_callback(GtkWidget *widget)
gboolean full_screen_checked_callback(GtkWidget *w)
static gboolean panel_left_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean intent_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
dt_iop_color_intent_t string_to_color_intent(const char *string)
static gboolean filmstrip_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean _toggle_side_borders_accel_callback(GtkAccelGroup *accel_group, GObject *accelerable, guint keyval, GdkModifierType modifier, gpointer data)
static gboolean hover_overlays_checked_callback(GtkWidget *widget)
void dt_ui_toggle_panels_visibility(dt_ui_t *ui)
toggle view of panels eg. collapse/expands to previous view state
static gboolean group_borders_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean panel_right_checked_callback(GtkWidget *widget)
static gboolean profile_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean always_hide_overlays_checked_callback(GtkWidget *widget)
static gboolean panel_top_checked_callback(GtkWidget *widget)
static gboolean always_show_overlays_checked_callback(GtkWidget *widget)
static gboolean full_screen_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean _panel_is_visible(dt_ui_panel_t panel)
static gboolean collapse_grouped_checked_callback()
static gboolean _jpg_combobox_changed(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean panel_top_callback(GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
static gboolean _jpg_checked(GtkWidget *widget)
GtkWidget * dt_ui_main_window(dt_ui_t *ui)
get the main window widget
#define dt_accels_new_global_action(a, b, c, d, e, f, g)
float *const restrict const size_t k
void dt_mipmap_cache_remove(dt_mipmap_cache_t *cache, const int32_t imgid, const gboolean flush_disk)
#define DT_DEBUG_CONTROL_SIGNAL_RAISE(ctlsig, signal,...)
@ DT_SIGNAL_CONTROL_PROFILE_USER_CHANGED
This signal is raised when a profile is changed by the user 1 uint32_t : the profile type that has ch...
struct _GtkWidget GtkWidget
const float uint32_t state[4]
struct dt_gui_gtk_t * gui
struct dt_colorspaces_t * color_profiles
struct dt_collection_t * collection
struct dt_mipmap_cache_t * mipmap_cache
struct dt_control_signal_t * signals
struct dt_develop_t * develop
struct dt_view_manager_t * view_manager
dt_colorspaces_color_profile_type_t type
pthread_rwlock_t xprofile_lock
dt_colorspaces_color_profile_type_t display_type
char display_filename[512]
dt_iop_color_intent_t display_intent
dt_thumbtable_t * thumbtable_lighttable
dt_thumbtable_t * thumbtable_filmstrip
GtkWidget * panels[DT_UI_PANEL_SIZE]
@ DT_THUMBNAIL_OVERLAYS_HOVER_NORMAL
@ DT_THUMBNAIL_OVERLAYS_ALWAYS_NORMAL
@ DT_THUMBNAIL_OVERLAYS_NONE
int dt_thumbtable_scroll_to_selection(dt_thumbtable_t *table)
Scroll to show selected content.
void dt_thumbtable_set_overlays_mode(dt_thumbtable_t *table, dt_thumbnail_overlay_t over)
Set the overlay display mode for thumbnails.
void dt_thumbtable_set_draw_group_borders(dt_thumbtable_t *table, gboolean enable)
void dt_thumbtable_update_parent(dt_thumbtable_t *table)
#define dt_thumbtable_refresh_thumbnail(table, imgid, reinit)
int32_t dt_view_active_images_get_first()
const dt_view_t * dt_view_manager_get_current_view(dt_view_manager_t *vm)
gchar * panels_get_view_path(char *suffix)
gchar * panels_get_panel_path(dt_ui_panel_t panel, char *suffix)
void dt_ui_set_window_buttons_visible(dt_ui_t *ui, gboolean visible)
void dt_ui_restore_panels(dt_ui_t *ui)