Switch direct label_.set_markup/set_tooltip_markup calls to the
deduplicating setLabelMarkup/setTooltipMarkup helpers in clock, custom
and mpris, keeping their custom tooltip construction logic intact.
taskbar is left untouched: its tooltip lives on per-task Gtk::Button,
not on an ALabel label_.
std::setfill is templated on the fill char type, which must match the
Glib::ustring FormatStream's char type. That type is wchar_t with
libstdc++/glibmm but char with libc++, so no fixed literal (' ' or L' ')
compiles everywhere. The stream's default fill is already a space, so
drop std::setfill entirely; std::setw/std::left/std::right are
char-type-agnostic and keep the exact padding behavior.
The iso8601 flag previously controlled both the calendar grid layout
and the week number format as a coupled boolean. This adds a new
weeks-numbering option (iso/monday/sunday) that explicitly overrides
just the week number calculation method, independent of iso8601 and
locale settings. Existing behaviour is fully preserved when the option
is not set.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace the inner loop with regex_replace. We're already using this
elsewhere and the performance difference isn't worth the loss of human
readability.
Use static const to pre-calc the search string.
Recently introduced for ISO 8601 calendar compatibility. But, lib
differences causing the explicit type to break freebsd.
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
Initialize `cldMonShift_` member in the `clock` module constructor. This
fixes a bug where the calendar tooltip would break after a reload, when
in month mode.
Right now, for the tooltip, all times are shifted if shift-down/shift-up
actions are used. But it really only makes sense for this to apply to
the {calendar} replacement, so use shiftedNow there and now for all
the rest.
```
../include/util/date.hpp:34:26: warning: literal operator suffixes not preceded by ‘_’ are reserved for future standardization [-Wliteral-suffix]
34 | constexpr decltype(auto) operator""d(unsigned long long d) noexcept {
```