Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
user_message.h
Go to the documentation of this file.
1/*
2 This file is part of Ansel.
3 Copyright (C) 2026 Aurélien Pierre.
4
5 Ansel is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 Ansel is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with Ansel. If not, see <http://www.gnu.org/licenses/>.
17*/
18
39#ifndef DT_CONTROL_USER_MESSAGE_H
40#define DT_CONTROL_USER_MESSAGE_H
41
42/* These are defined in a C translation unit and called from C++ ones (imageio/format/exr.cc),
43 * so the declarations must carry C linkage -- control/control.h wraps its own in the same
44 * guard. Without it the C++ caller emits a mangled reference (_Z14dt_control_logPKcz) that
45 * nothing defines.
46 *
47 * On Linux that still LINKS: a shared object may carry undefined symbols and resolve them when
48 * the plugin is dlopen()ed, so the breakage would first appear as a module failing to load at
49 * runtime. macOS and Windows resolve plugin symbols at link time and fail the build instead,
50 * which is how this was caught. Three green Linux configurations do not cover it. */
51#ifdef __cplusplus
52extern "C" {
53#endif
54
56void dt_control_log(const char *msg, ...) __attribute__((format(printf, 1, 2)));
57
59void dt_toast_log(const char *msg, ...) __attribute__((format(printf, 1, 2)));
60
62void dt_toast_markup_log(const char *msg, ...) __attribute__((format(printf, 1, 2)));
63
64/* Busy counters. Each enter must be matched by a leave: they are counters, not flags, so
65 * nested work does not clear the indicator early. */
70
71#ifdef __cplusplus
72}
73#endif
74
75#endif // DT_CONTROL_USER_MESSAGE_H
76
77// clang-format off
78// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py
79// vim: shiftwidth=2 expandtab tabstop=2 cindent
80// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified;
81// clang-format on
float dt_aligned_pixel_simd_t __attribute__((vector_size(16), aligned(16)))
Apply one channel's tone curve to each of the three colour channels, or pass the channel through unto...
Definition simd.h:55
void dt_control_toast_busy_enter()
Definition control.c:845
void dt_control_log_busy_leave()
Definition control.c:853
void void dt_toast_log(const char *msg,...) __attribute__((format(printf
Post a transient toast, escaping markup in msg.
void void void void dt_control_log_busy_enter()
Definition control.c:837
void dt_control_log(const char *msg,...) __attribute__((format(printf
Post a message to the log overlay drawn over the centre view.
void void void dt_toast_markup_log(const char *msg,...) __attribute__((format(printf
Post a transient toast, interpreting Pango markup in msg.
void dt_control_toast_busy_leave()
Definition control.c:861