Files
federated-calendar/src/gui/meson.build
T
Hari Rana 89ff82924b gui/gizmo: Introduce GcalGizmo
This is a utility widget akin to GtkGizmo[1] and AdwGizmo[2].
It is designed for use in complex widgets which require additional
features such as snapshotting, measuring/allocating, and
focusing capabilities.

We want to implement an entry row widget that allows multi-line content.
The first implementation had two widgets: GcalNotesRow for the widget
itself, and GcalNotesTitle to contain and animate the title by overriding
the measure() and size_allocate() class methods. The GcalNotesTitle
widget ended up becoming a basic widget that could easily be handled
by GcalGizmo. The new implementation simply uses GcalGizmo.[3]

Another potential user of GcalGizmo is GcalDateChooser, where the
date grid contains complicated logic for handling focus to a child widget.
Since GcalGizmo is designed to give full reign over focusability, we can
also use it to simplify focus. The layout manager can quickly be swapped to
GtkBinLayout since we don't want to handle custom measure/allocation logic.[4]

[1]: <https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtkgizmo.c>
[2]: <https://gitlab.gnome.org/GNOME/libadwaita/-/blob/main/src/adw-gizmo.c>
[3]: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/737>
[4]: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/760>

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/790>
2026-09-09 14:57:14 -04:00

63 lines
1.3 KiB
Meson

subdir('calendar-management')
subdir('common')
subdir('event-editor')
subdir('icons')
subdir('importer')
subdir('views')
calendar_incs += include_directories('.')
blueprints = custom_target(
'blueprints',
input: files(
'gcal-calendar-list.blp',
'gcal-calendar-navigation-button.blp',
'gcal-event-popover.blp',
'gcal-event-widget.blp',
'gcal-meeting-row.blp',
'gcal-quick-add-popover.blp',
'gcal-search-button.blp',
'gcal-sync-indicator.blp',
'gcal-weather-settings.blp',
'gcal-window.blp',
'shortcuts-dialog.blp',
),
output: '.',
command: [
find_program('blueprint-compiler'),
'batch-compile',
'@OUTPUT@',
'@CURRENT_SOURCE_DIR@',
'@INPUT@',
],
)
built_sources += gnome.compile_resources(
'gui-resources',
'gui.gresource.xml',
c_name: 'gui',
dependencies: blueprints,
)
sources += files(
'gcal-application.c',
'gcal-bidi.c',
'gcal-calendar-list.c',
'gcal-calendar-navigation-button.c',
'gcal-drop-overlay.c',
'gcal-event-popover.c',
'gcal-event-widget.c',
'gcal-event-widget-pool.c',
'gcal-fading-label.c',
'gcal-gizmo.c',
'gcal-meeting-row.c',
'gcal-overflow-bin.c',
'gcal-overflow-bin-layout.c',
'gcal-quick-add-popover.c',
'gcal-search-button.c',
'gcal-sync-indicator.c',
'gcal-tests.c',
'gcal-weather-settings.c',
'gcal-window.c',
)