[libdazzle] build: use export macros instead of linker script



commit 7415a7d3019e713ad7eae0da6f5bb366b80f7543
Author: Christian Hergert <chergert redhat com>
Date:   Tue Nov 7 23:17:48 2017 -0800

    build: use export macros instead of linker script
    
    This uses a series of export macros instead of a linker script as it is
    more portable (should we eventually care about that).

 meson.build                                     |    6 -
 src/actions/dzl-child-property-action.h         |    3 +
 src/actions/dzl-properties-group.h              |    8 ++
 src/actions/dzl-settings-flag-action.h          |    3 +
 src/actions/dzl-widget-action-group.h           |    5 +
 src/animation/dzl-animation.h                   |   10 ++
 src/animation/dzl-box-theatric.h                |    3 +-
 src/app/dzl-application-window.h                |    6 +
 src/app/dzl-application.h                       |    8 ++
 src/bindings/dzl-binding-group.h                |    8 ++
 src/bindings/dzl-signal-group.h                 |   12 ++
 src/cache/dzl-task-cache.h                      |   10 ++
 src/dzl-version-macros.h                        |  131 +++++++++++++++++++++++
 src/files/dzl-directory-model.h                 |    6 +
 src/files/dzl-directory-reaper.h                |    9 ++
 src/graphing/dzl-cpu-graph.h                    |    3 +
 src/graphing/dzl-cpu-model.h                    |    3 +
 src/graphing/dzl-graph-column.h                 |    5 +
 src/graphing/dzl-graph-line-renderer.h          |    6 +
 src/graphing/dzl-graph-model.h                  |   17 +++
 src/graphing/dzl-graph-renderer.h               |    3 +
 src/graphing/dzl-graph-view.h                   |    6 +
 src/menus/dzl-joined-menu.h                     |    8 ++
 src/menus/dzl-menu-button.h                     |   11 ++
 src/menus/dzl-menu-manager.h                    |    8 ++
 src/meson.build                                 |   12 +--
 src/panel/dzl-dock-bin-edge.h                   |    3 +
 src/panel/dzl-dock-bin.h                        |    8 ++
 src/panel/dzl-dock-item.h                       |   19 ++++
 src/panel/dzl-dock-manager.h                    |    7 ++
 src/panel/dzl-dock-overlay-edge.h               |    6 +
 src/panel/dzl-dock-overlay.h                    |    6 +
 src/panel/dzl-dock-paned.h                      |    3 +
 src/panel/dzl-dock-revealer.h                   |   17 +++
 src/panel/dzl-dock-stack.h                      |    9 ++
 src/panel/dzl-dock-transient-grab.h             |   12 ++
 src/panel/dzl-dock-types.h                      |    3 +
 src/panel/dzl-dock-widget.h                     |    5 +
 src/panel/dzl-dock-window.h                     |    3 +
 src/panel/dzl-tab-strip.h                       |   10 ++
 src/panel/dzl-tab.h                             |   16 +++
 src/pathbar/dzl-path-bar.h                      |    6 +
 src/pathbar/dzl-path-element.h                  |    6 +
 src/pathbar/dzl-path.h                          |   11 ++
 src/prefs/dzl-preferences-bin.h                 |    2 +
 src/prefs/dzl-preferences-entry.h               |    4 +
 src/prefs/dzl-preferences-file-chooser-button.h |    2 +
 src/prefs/dzl-preferences-flow-box.h            |    3 +
 src/prefs/dzl-preferences-font-button.h         |    2 +
 src/prefs/dzl-preferences-group.h               |    7 ++
 src/prefs/dzl-preferences-page.h                |    6 +
 src/prefs/dzl-preferences-spin-button.h         |    3 +
 src/prefs/dzl-preferences-switch.h              |    2 +
 src/prefs/dzl-preferences-view.h                |    4 +
 src/prefs/dzl-preferences.h                     |   14 +++
 src/search/dzl-fuzzy-index-builder.h            |   14 +++
 src/search/dzl-fuzzy-index-cursor.h             |    3 +
 src/search/dzl-fuzzy-index-match.h              |    6 +
 src/search/dzl-fuzzy-index.h                    |   12 ++
 src/search/dzl-fuzzy-mutable-index.h            |   15 +++
 src/search/dzl-levenshtein.h                    |    3 +
 src/search/dzl-pattern-spec.h                   |    8 ++
 src/search/dzl-trie.h                           |   11 ++
 src/settings/dzl-settings-sandwich.h            |   21 ++++
 src/shortcuts/dzl-shortcut-accel-dialog.h       |    8 ++
 src/shortcuts/dzl-shortcut-chord.h              |   29 +++++
 src/shortcuts/dzl-shortcut-context.h            |   13 +++
 src/shortcuts/dzl-shortcut-controller.h         |   15 +++
 src/shortcuts/dzl-shortcut-label.h              |    7 ++
 src/shortcuts/dzl-shortcut-manager.h            |   20 ++++
 src/shortcuts/dzl-shortcut-model.h              |    9 ++
 src/shortcuts/dzl-shortcut-phase.h              |    3 +
 src/shortcuts/dzl-shortcut-simple-label.h       |   11 ++
 src/shortcuts/dzl-shortcut-theme-editor.h       |    5 +
 src/shortcuts/dzl-shortcut-theme.h              |   27 +++++
 src/shortcuts/dzl-shortcuts-group.h             |    3 +
 src/shortcuts/dzl-shortcuts-section.h           |    3 +
 src/shortcuts/dzl-shortcuts-shortcut.h          |    3 +
 src/shortcuts/dzl-shortcuts-window.h            |    3 +
 src/statemachine/dzl-state-machine-buildable.h  |    3 +
 src/statemachine/dzl-state-machine.h            |   12 ++
 src/suggestions/dzl-suggestion-entry-buffer.h   |    8 ++
 src/suggestions/dzl-suggestion-entry.h          |   11 ++
 src/suggestions/dzl-suggestion-popover.h        |   13 +++
 src/suggestions/dzl-suggestion-row.h            |    5 +
 src/suggestions/dzl-suggestion.h                |   13 +++
 src/theming/dzl-css-provider.h                  |    3 +
 src/theming/dzl-theme-manager.h                 |    5 +
 src/tree/dzl-list-store-adapter.h               |    5 +
 src/tree/dzl-tree-builder.h                     |    3 +
 src/tree/dzl-tree-node.h                        |   37 +++++++
 src/tree/dzl-tree.h                             |   19 ++++
 src/util/dzl-cairo.h                            |    4 +
 src/util/dzl-counter.h                          |   12 ++
 src/util/dzl-date-time.h                        |    5 +
 src/util/dzl-dnd.h                              |    3 +
 src/util/dzl-file-manager.h                     |    3 +
 src/util/dzl-gdk.h                              |    4 +
 src/util/dzl-gtk.h                              |   15 +++
 src/util/dzl-heap.h                             |    9 ++
 src/util/dzl-pango.h                            |    3 +
 src/util/dzl-rgba.h                             |    3 +
 src/util/dzl-ring.h                             |    8 ++
 src/util/dzl-variant.h                          |    3 +
 src/widgets/dzl-bin.h                           |    3 +
 src/widgets/dzl-bolding-label.h                 |    4 +
 src/widgets/dzl-box.h                           |    6 +
 src/widgets/dzl-centering-bin.h                 |    3 +
 src/widgets/dzl-column-layout.h                 |   11 ++
 src/widgets/dzl-counters-window.h               |    5 +
 src/widgets/dzl-elastic-bin.h                   |    3 +
 src/widgets/dzl-empty-state.h                   |   10 ++
 src/widgets/dzl-entry-box.h                     |    3 +
 src/widgets/dzl-file-chooser-entry.h            |    5 +
 src/widgets/dzl-list-box.h                      |    7 ++
 src/widgets/dzl-multi-paned.h                   |    5 +
 src/widgets/dzl-pill-box.h                      |    5 +
 src/widgets/dzl-priority-box.h                  |    3 +
 src/widgets/dzl-progress-button.h               |    7 ++
 src/widgets/dzl-progress-icon.h                 |    5 +
 src/widgets/dzl-progress-menu-button.h          |    8 ++
 src/widgets/dzl-radio-box.h                     |    6 +
 src/widgets/dzl-search-bar.h                    |    8 ++
 src/widgets/dzl-simple-label.h                  |    9 ++
 src/widgets/dzl-simple-popover.h                |   13 +++
 src/widgets/dzl-slider.h                        |    7 ++
 src/widgets/dzl-stack-list.h                    |    8 ++
 src/widgets/dzl-three-grid.h                    |    4 +
 128 files changed, 1100 insertions(+), 18 deletions(-)
---
diff --git a/meson.build b/meson.build
index aa7728d..347ee1f 100644
--- a/meson.build
+++ b/meson.build
@@ -84,12 +84,6 @@ add_project_arguments(
   language: 'c'
 )
 
-# Check if we can use version scripts for ABI exports
-ld_supports_version_script = cc.links('''
-  int main (void) { return 0; }
-''', args: '-Wl,--version-script,' + join_paths(meson.source_root(), 'src/dazzle.map'))
-message('Linker supports --version-script: @0@'.format(ld_supports_version_script))
-
 # Setup various paths that subdirectory meson.build files need
 package_subdir = get_option('package_subdir') # When used as subproject
 libdir = join_paths(get_option('libdir'), package_subdir)
diff --git a/src/actions/dzl-child-property-action.h b/src/actions/dzl-child-property-action.h
index 63764f0..9a6dac9 100644
--- a/src/actions/dzl-child-property-action.h
+++ b/src/actions/dzl-child-property-action.h
@@ -25,12 +25,15 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_CHILD_PROPERTY_ACTION  (dzl_child_property_action_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlChildPropertyAction, dzl_child_property_action,  DZL, CHILD_PROPERTY_ACTION, 
GObject)
 
+DZL_AVAILABLE_IN_ALL
 GAction *dzl_child_property_action_new (const gchar  *name,
                                         GtkContainer *container,
                                         GtkWidget    *child,
diff --git a/src/actions/dzl-properties-group.h b/src/actions/dzl-properties-group.h
index 9bf9ab2..7133a58 100644
--- a/src/actions/dzl-properties-group.h
+++ b/src/actions/dzl-properties-group.h
@@ -21,6 +21,8 @@
 
 #include <gio/gio.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_PROPERTIES_GROUP (dzl_properties_group_get_type())
@@ -33,16 +35,22 @@ typedef enum
   DZL_PROPERTIES_FLAGS_STATEFUL_BOOLEANS = 1 << 0,
 } DzlPropertiesFlags;
 
+DZL_AVAILABLE_IN_ALL
 DzlPropertiesGroup *dzl_properties_group_new                (GObject            *object);
+DZL_AVAILABLE_IN_ALL
 DzlPropertiesGroup *dzl_properties_group_new_for_type       (GType               object_type);
+DZL_AVAILABLE_IN_ALL
 void                dzl_properties_group_add_property       (DzlPropertiesGroup *self,
                                                              const gchar        *name,
                                                              const gchar        *property_name);
+DZL_AVAILABLE_IN_ALL
 void                dzl_properties_group_add_property_full  (DzlPropertiesGroup *self,
                                                              const gchar        *name,
                                                              const gchar        *property_name,
                                                              DzlPropertiesFlags  flags);
+DZL_AVAILABLE_IN_ALL
 void                dzl_properties_group_add_all_properties (DzlPropertiesGroup *self);
+DZL_AVAILABLE_IN_ALL
 void                dzl_properties_group_remove             (DzlPropertiesGroup *self,
                                                              const gchar        *name);
 
diff --git a/src/actions/dzl-settings-flag-action.h b/src/actions/dzl-settings-flag-action.h
index 44acd32..442326e 100644
--- a/src/actions/dzl-settings-flag-action.h
+++ b/src/actions/dzl-settings-flag-action.h
@@ -21,12 +21,15 @@
 
 #include <gio/gio.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_SETTINGS_FLAG_ACTION (dzl_settings_flag_action_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlSettingsFlagAction, dzl_settings_flag_action, DZL, SETTINGS_FLAG_ACTION, GObject)
 
+DZL_AVAILABLE_IN_ALL
 GAction *dzl_settings_flag_action_new (const gchar *schema_id,
                                        const gchar *schema_key,
                                        const gchar *flag_nick);
diff --git a/src/actions/dzl-widget-action-group.h b/src/actions/dzl-widget-action-group.h
index d7a2537..a5817ed 100644
--- a/src/actions/dzl-widget-action-group.h
+++ b/src/actions/dzl-widget-action-group.h
@@ -21,15 +21,20 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_WIDGET_ACTION_GROUP (dzl_widget_action_group_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlWidgetActionGroup, dzl_widget_action_group, DZL, WIDGET_ACTION_GROUP, GObject)
 
+DZL_AVAILABLE_IN_ALL
 GActionGroup *dzl_widget_action_group_new                (GtkWidget            *widget);
+DZL_AVAILABLE_IN_ALL
 void          dzl_widget_action_group_attach             (gpointer              widget,
                                                           const gchar          *group_name);
+DZL_AVAILABLE_IN_ALL
 void          dzl_widget_action_group_set_action_enabled (DzlWidgetActionGroup *self,
                                                           const gchar          *action_name,
                                                           gboolean              enabled);
diff --git a/src/animation/dzl-animation.h b/src/animation/dzl-animation.h
index cbf24ab..86bb2fc 100644
--- a/src/animation/dzl-animation.h
+++ b/src/animation/dzl-animation.h
@@ -21,6 +21,8 @@
 
 #include <gdk/gdk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_ANIMATION      (dzl_animation_get_type())
@@ -43,24 +45,31 @@ enum _DzlAnimationMode
   DZL_ANIMATION_LAST
 };
 
+DZL_AVAILABLE_IN_ALL
 GType         dzl_animation_mode_get_type      (void);
+DZL_AVAILABLE_IN_ALL
 void          dzl_animation_start              (DzlAnimation     *animation);
+DZL_AVAILABLE_IN_ALL
 void          dzl_animation_stop               (DzlAnimation     *animation);
+DZL_AVAILABLE_IN_ALL
 void          dzl_animation_add_property       (DzlAnimation     *animation,
                                                 GParamSpec       *pspec,
                                                 const GValue     *value);
+DZL_AVAILABLE_IN_ALL
 DzlAnimation *dzl_object_animatev              (gpointer          object,
                                                 DzlAnimationMode  mode,
                                                 guint             duration_msec,
                                                 GdkFrameClock    *frame_clock,
                                                 const gchar      *first_property,
                                                 va_list           args);
+DZL_AVAILABLE_IN_ALL
 DzlAnimation* dzl_object_animate               (gpointer          object,
                                                 DzlAnimationMode  mode,
                                                 guint             duration_msec,
                                                 GdkFrameClock    *frame_clock,
                                                 const gchar      *first_property,
                                                 ...) G_GNUC_NULL_TERMINATED;
+DZL_AVAILABLE_IN_ALL
 DzlAnimation* dzl_object_animate_full          (gpointer          object,
                                                 DzlAnimationMode  mode,
                                                 guint             duration_msec,
@@ -69,6 +78,7 @@ DzlAnimation* dzl_object_animate_full          (gpointer          object,
                                                 gpointer          notify_data,
                                                 const gchar      *first_property,
                                                 ...) G_GNUC_NULL_TERMINATED;
+DZL_AVAILABLE_IN_ALL
 guint         dzl_animation_calculate_duration (GdkMonitor       *monitor,
                                                 gdouble           from_value,
                                                 gdouble           to_value);
diff --git a/src/animation/dzl-box-theatric.h b/src/animation/dzl-box-theatric.h
index ac64410..7ab174b 100644
--- a/src/animation/dzl-box-theatric.h
+++ b/src/animation/dzl-box-theatric.h
@@ -25,8 +25,7 @@ G_BEGIN_DECLS
 
 #define DZL_TYPE_BOX_THEATRIC (dzl_box_theatric_get_type())
 
-G_DECLARE_FINAL_TYPE (DzlBoxTheatric, dzl_box_theatric,
-                      DZL, BOX_THEATRIC, GObject)
+G_DECLARE_FINAL_TYPE (DzlBoxTheatric, dzl_box_theatric, DZL, BOX_THEATRIC, GObject)
 
 G_END_DECLS
 
diff --git a/src/app/dzl-application-window.h b/src/app/dzl-application-window.h
index 05ddbfb..b4c8cc5 100644
--- a/src/app/dzl-application-window.h
+++ b/src/app/dzl-application-window.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_APPLICATION_WINDOW (dzl_application_window_get_type())
@@ -45,10 +47,14 @@ struct _DzlApplicationWindowClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 gboolean   dzl_application_window_get_fullscreen (DzlApplicationWindow *self);
+DZL_AVAILABLE_IN_ALL
 void       dzl_application_window_set_fullscreen (DzlApplicationWindow *self,
                                                   gboolean              fullscreen);
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_application_window_get_titlebar   (DzlApplicationWindow *self);
+DZL_AVAILABLE_IN_ALL
 void       dzl_application_window_set_titlebar   (DzlApplicationWindow *self,
                                                   GtkWidget            *titlebar);
 
diff --git a/src/app/dzl-application.h b/src/app/dzl-application.h
index 744b3c0..df8f1d6 100644
--- a/src/app/dzl-application.h
+++ b/src/app/dzl-application.h
@@ -25,6 +25,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "menus/dzl-menu-manager.h"
 #include "shortcuts/dzl-shortcut-manager.h"
 #include "theming/dzl-theme-manager.h"
@@ -55,13 +57,19 @@ struct _DzlApplicationClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 DzlMenuManager     *dzl_application_get_menu_manager     (DzlApplication *self);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutManager *dzl_application_get_shortcut_manager (DzlApplication *self);
+DZL_AVAILABLE_IN_ALL
 DzlThemeManager    *dzl_application_get_theme_manager    (DzlApplication *self);
+DZL_AVAILABLE_IN_ALL
 GMenu              *dzl_application_get_menu_by_id       (DzlApplication *self,
                                                           const gchar    *menu_id);
+DZL_AVAILABLE_IN_ALL
 void                dzl_application_add_resources        (DzlApplication *self,
                                                           const gchar    *resource_path);
+DZL_AVAILABLE_IN_ALL
 void                dzl_application_remove_resources     (DzlApplication *self,
                                                           const gchar    *resource_path);
 
diff --git a/src/bindings/dzl-binding-group.h b/src/bindings/dzl-binding-group.h
index e64e5f0..de81102 100644
--- a/src/bindings/dzl-binding-group.h
+++ b/src/bindings/dzl-binding-group.h
@@ -22,21 +22,28 @@
 
 #include <gio/gio.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_BINDING_GROUP (dzl_binding_group_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlBindingGroup, dzl_binding_group, DZL, BINDING_GROUP, GObject)
 
+DZL_AVAILABLE_IN_ALL
 DzlBindingGroup *dzl_binding_group_new                (void);
+DZL_AVAILABLE_IN_ALL
 GObject         *dzl_binding_group_get_source         (DzlBindingGroup       *self);
+DZL_AVAILABLE_IN_ALL
 void             dzl_binding_group_set_source         (DzlBindingGroup       *self,
                                                        gpointer               source);
+DZL_AVAILABLE_IN_ALL
 void             dzl_binding_group_bind               (DzlBindingGroup       *self,
                                                        const gchar           *source_property,
                                                        gpointer               target,
                                                        const gchar           *target_property,
                                                        GBindingFlags          flags);
+DZL_AVAILABLE_IN_ALL
 void             dzl_binding_group_bind_full          (DzlBindingGroup       *self,
                                                        const gchar           *source_property,
                                                        gpointer               target,
@@ -46,6 +53,7 @@ void             dzl_binding_group_bind_full          (DzlBindingGroup       *se
                                                        GBindingTransformFunc  transform_from,
                                                        gpointer               user_data,
                                                        GDestroyNotify         user_data_destroy);
+DZL_AVAILABLE_IN_ALL
 void             dzl_binding_group_bind_with_closures (DzlBindingGroup       *self,
                                                        const gchar           *source_property,
                                                        gpointer               target,
diff --git a/src/bindings/dzl-signal-group.h b/src/bindings/dzl-signal-group.h
index 77b83c3..32df3e7 100644
--- a/src/bindings/dzl-signal-group.h
+++ b/src/bindings/dzl-signal-group.h
@@ -22,40 +22,52 @@
 
 #include <glib-object.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_SIGNAL_GROUP (dzl_signal_group_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlSignalGroup, dzl_signal_group, DZL, SIGNAL_GROUP, GObject)
 
+DZL_AVAILABLE_IN_ALL
 DzlSignalGroup *dzl_signal_group_new             (GType           target_type);
 
+DZL_AVAILABLE_IN_ALL
 void            dzl_signal_group_set_target      (DzlSignalGroup *self,
                                                   gpointer        target);
+DZL_AVAILABLE_IN_ALL
 gpointer        dzl_signal_group_get_target      (DzlSignalGroup *self);
 
+DZL_AVAILABLE_IN_ALL
 void            dzl_signal_group_block           (DzlSignalGroup *self);
+DZL_AVAILABLE_IN_ALL
 void            dzl_signal_group_unblock         (DzlSignalGroup *self);
 
+DZL_AVAILABLE_IN_ALL
 void            dzl_signal_group_connect_object  (DzlSignalGroup *self,
                                                   const gchar    *detailed_signal,
                                                   GCallback       c_handler,
                                                   gpointer        object,
                                                   GConnectFlags   flags);
+DZL_AVAILABLE_IN_ALL
 void            dzl_signal_group_connect_data    (DzlSignalGroup *self,
                                                   const gchar    *detailed_signal,
                                                   GCallback       c_handler,
                                                   gpointer        data,
                                                   GClosureNotify  notify,
                                                   GConnectFlags   flags);
+DZL_AVAILABLE_IN_ALL
 void            dzl_signal_group_connect         (DzlSignalGroup *self,
                                                   const gchar    *detailed_signal,
                                                   GCallback       c_handler,
                                                   gpointer        data);
+DZL_AVAILABLE_IN_ALL
 void            dzl_signal_group_connect_after   (DzlSignalGroup *self,
                                                   const gchar    *detailed_signal,
                                                   GCallback       c_handler,
                                                   gpointer        data);
+DZL_AVAILABLE_IN_ALL
 void            dzl_signal_group_connect_swapped (DzlSignalGroup *self,
                                                   const gchar    *detailed_signal,
                                                   GCallback       c_handler,
diff --git a/src/cache/dzl-task-cache.h b/src/cache/dzl-task-cache.h
index c55a91b..5850a06 100644
--- a/src/cache/dzl-task-cache.h
+++ b/src/cache/dzl-task-cache.h
@@ -21,6 +21,8 @@
 
 #include <gio/gio.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_TASK_CACHE (dzl_task_cache_get_type())
@@ -49,6 +51,7 @@ typedef void (*DzlTaskCacheCallback) (DzlTaskCache  *self,
                                       GTask         *task,
                                       gpointer       user_data);
 
+DZL_AVAILABLE_IN_ALL
 DzlTaskCache *dzl_task_cache_new        (GHashFunc              key_hash_func,
                                          GEqualFunc             key_equal_func,
                                          GBoxedCopyFunc         key_copy_func,
@@ -59,22 +62,29 @@ DzlTaskCache *dzl_task_cache_new        (GHashFunc              key_hash_func,
                                          DzlTaskCacheCallback   populate_callback,
                                          gpointer               populate_callback_data,
                                          GDestroyNotify         populate_callback_data_destroy);
+DZL_AVAILABLE_IN_ALL
 void          dzl_task_cache_set_name   (DzlTaskCache          *self,
                                          const gchar           *name);
+DZL_AVAILABLE_IN_ALL
 void          dzl_task_cache_get_async  (DzlTaskCache          *self,
                                          gconstpointer          key,
                                          gboolean               force_update,
                                          GCancellable          *cancellable,
                                          GAsyncReadyCallback    callback,
                                          gpointer               user_data);
+DZL_AVAILABLE_IN_ALL
 gpointer      dzl_task_cache_get_finish (DzlTaskCache          *self,
                                          GAsyncResult          *result,
                                          GError               **error);
+DZL_AVAILABLE_IN_ALL
 gboolean      dzl_task_cache_evict      (DzlTaskCache          *self,
                                          gconstpointer          key);
+DZL_AVAILABLE_IN_ALL
 void          dzl_task_cache_evict_all  (DzlTaskCache          *self);
+DZL_AVAILABLE_IN_ALL
 gpointer      dzl_task_cache_peek       (DzlTaskCache          *self,
                                          gconstpointer          key);
+DZL_AVAILABLE_IN_ALL
 GPtrArray    *dzl_task_cache_get_values (DzlTaskCache          *self);
 
 G_END_DECLS
diff --git a/src/dzl-version-macros.h b/src/dzl-version-macros.h
new file mode 100644
index 0000000..1ffee7b
--- /dev/null
+++ b/src/dzl-version-macros.h
@@ -0,0 +1,131 @@
+/* dzl-version-macros.h
+ *
+ * Copyright (C) 2017 Christian Hergert <chergert redhat com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef DZL_VERSION_MACROS_H
+#define DZL_VERSION_MACROS_H
+
+#if !defined(DAZZLE_INSIDE) && !defined(DAZZLE_COMPILATION)
+# error "Only <dazzle.h> can be included directly."
+#endif
+
+#include <glib.h>
+
+#include "dzl-version.h"
+
+#ifndef _DZL_EXTERN
+#define _DZL_EXTERN extern
+#endif
+
+#ifdef DZL_DISABLE_DEPRECATION_WARNINGS
+#define DZL_DEPRECATED _DZL_EXTERN
+#define DZL_DEPRECATED_FOR(f) _DZL_EXTERN
+#define DZL_UNAVAILABLE(maj,min) _DZL_EXTERN
+#else
+#define DZL_DEPRECATED G_DEPRECATED _DZL_EXTERN
+#define DZL_DEPRECATED_FOR(f) G_DEPRECATED_FOR(f) _DZL_EXTERN
+#define DZL_UNAVAILABLE(maj,min) G_UNAVAILABLE(maj,min) _DZL_EXTERN
+#endif
+
+#define DZL_VERSION_3_28 (G_ENCODE_VERSION (3, 28))
+
+#if (DZL_MINOR_VERSION == 99)
+# define DZL_VERSION_CUR_STABLE (G_ENCODE_VERSION (DZL_MAJOR_VERSION + 1, 0))
+#elif (DZL_MINOR_VERSION % 2)
+# define DZL_VERSION_CUR_STABLE (G_ENCODE_VERSION (DZL_MAJOR_VERSION, DZL_MINOR_VERSION + 1))
+#else
+# define DZL_VERSION_CUR_STABLE (G_ENCODE_VERSION (DZL_MAJOR_VERSION, DZL_MINOR_VERSION))
+#endif
+
+#if (DZL_MINOR_VERSION == 99)
+# define DZL_VERSION_PREV_STABLE (G_ENCODE_VERSION (DZL_MAJOR_VERSION + 1, 0))
+#elif (DZL_MINOR_VERSION % 2)
+# define DZL_VERSION_PREV_STABLE (G_ENCODE_VERSION (DZL_MAJOR_VERSION, DZL_MINOR_VERSION - 1))
+#else
+# define DZL_VERSION_PREV_STABLE (G_ENCODE_VERSION (DZL_MAJOR_VERSION, DZL_MINOR_VERSION - 2))
+#endif
+
+/**
+ * DZL_VERSION_MIN_REQUIRED:
+ *
+ * A macro that should be defined by the user prior to including
+ * the dazzle.h header.
+ *
+ * The definition should be one of the predefined DZL version
+ * macros: %DZL_VERSION_3_28, ...
+ *
+ * This macro defines the lower bound for the Dazzle API to use.
+ *
+ * If a function has been deprecated in a newer version of Dazzle,
+ * it is possible to use this symbol to avoid the compiler warnings
+ * without disabling warning for every deprecated function.
+ *
+ * Since: 3.28
+ */
+#ifndef DZL_VERSION_MIN_REQUIRED
+# define DZL_VERSION_MIN_REQUIRED (DZL_VERSION_CUR_STABLE)
+#endif
+
+/**
+ * DZL_VERSION_MAX_ALLOWED:
+ *
+ * A macro that should be defined by the user prior to including
+ * the dazzle.h header.
+
+ * The definition should be one of the predefined Dazzle version
+ * macros: %DZL_VERSION_1_0, %DZL_VERSION_1_2,...
+ *
+ * This macro defines the upper bound for the DZL API to use.
+ *
+ * If a function has been introduced in a newer version of Dazzle,
+ * it is possible to use this symbol to get compiler warnings when
+ * trying to use that function.
+ *
+ * Since: 3.28
+ */
+#ifndef DZL_VERSION_MAX_ALLOWED
+# if DZL_VERSION_MIN_REQUIRED > DZL_VERSION_PREV_STABLE
+#  define DZL_VERSION_MAX_ALLOWED (DZL_VERSION_MIN_REQUIRED)
+# else
+#  define DZL_VERSION_MAX_ALLOWED (DZL_VERSION_CUR_STABLE)
+# endif
+#endif
+
+#if DZL_VERSION_MAX_ALLOWED < DZL_VERSION_MIN_REQUIRED
+#error "DZL_VERSION_MAX_ALLOWED must be >= DZL_VERSION_MIN_REQUIRED"
+#endif
+#if DZL_VERSION_MIN_REQUIRED < DZL_VERSION_3_28
+#error "DZL_VERSION_MIN_REQUIRED must be >= DZL_VERSION_3_28"
+#endif
+
+#define DZL_AVAILABLE_IN_ALL                   _DZL_EXTERN
+
+#if DZL_VERSION_MIN_REQUIRED >= DZL_VERSION_3_28
+# define DZL_DEPRECATED_IN_3_28                DZL_DEPRECATED
+# define DZL_DEPRECATED_IN_3_28_FOR(f)         DZL_DEPRECATED_FOR(f)
+#else
+# define DZL_DEPRECATED_IN_3_28                _DZL_EXTERN
+# define DZL_DEPRECATED_IN_3_28_FOR(f)         _DZL_EXTERN
+#endif
+
+#if DZL_VERSION_MAX_ALLOWED < DZL_VERSION_3_28
+# define DZL_AVAILABLE_IN_3_28                 DZL_UNAVAILABLE(3, 28)
+#else
+# define DZL_AVAILABLE_IN_3_28                 _DZL_EXTERN
+#endif
+
+#endif /* DZL_VERSION_MACROS_H */
diff --git a/src/files/dzl-directory-model.h b/src/files/dzl-directory-model.h
index d772453..f4b6309 100644
--- a/src/files/dzl-directory-model.h
+++ b/src/files/dzl-directory-model.h
@@ -21,6 +21,8 @@
 
 #include <gio/gio.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_DIRECTORY_MODEL (dzl_directory_model_get_type())
@@ -32,10 +34,14 @@ typedef gboolean (*DzlDirectoryModelVisibleFunc) (DzlDirectoryModel *self,
                                                   GFileInfo         *file_info,
                                                   gpointer           user_data);
 
+DZL_AVAILABLE_IN_ALL
 GListModel *dzl_directory_model_new              (GFile                        *directory);
+DZL_AVAILABLE_IN_ALL
 GFile      *dzl_directory_model_get_directory    (DzlDirectoryModel            *self);
+DZL_AVAILABLE_IN_ALL
 void        dzl_directory_model_set_directory    (DzlDirectoryModel            *self,
                                                   GFile                        *directory);
+DZL_AVAILABLE_IN_ALL
 void        dzl_directory_model_set_visible_func (DzlDirectoryModel            *self,
                                                   DzlDirectoryModelVisibleFunc  visible_func,
                                                   gpointer                      user_data,
diff --git a/src/files/dzl-directory-reaper.h b/src/files/dzl-directory-reaper.h
index bdde3d6..3a60c5a 100644
--- a/src/files/dzl-directory-reaper.h
+++ b/src/files/dzl-directory-reaper.h
@@ -21,30 +21,39 @@
 
 #include <gio/gio.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_DIRECTORY_REAPER (dzl_directory_reaper_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlDirectoryReaper, dzl_directory_reaper, DZL, DIRECTORY_REAPER, GObject)
 
+DZL_AVAILABLE_IN_ALL
 DzlDirectoryReaper *dzl_directory_reaper_new               (void);
+DZL_AVAILABLE_IN_ALL
 void                dzl_directory_reaper_add_directory     (DzlDirectoryReaper   *self,
                                                             GFile                *directory,
                                                             GTimeSpan             min_age);
+DZL_AVAILABLE_IN_ALL
 void                dzl_directory_reaper_add_file          (DzlDirectoryReaper   *self,
                                                             GFile                *file,
                                                             GTimeSpan             min_age);
+DZL_AVAILABLE_IN_ALL
 void                dzl_directory_reaper_add_glob          (DzlDirectoryReaper   *self,
                                                             GFile                *directory,
                                                             const gchar          *glob,
                                                             GTimeSpan             min_age);
+DZL_AVAILABLE_IN_ALL
 gboolean            dzl_directory_reaper_execute           (DzlDirectoryReaper   *self,
                                                             GCancellable         *cancellable,
                                                             GError              **error);
+DZL_AVAILABLE_IN_ALL
 void                dzl_directory_reaper_execute_async     (DzlDirectoryReaper   *self,
                                                             GCancellable         *cancellable,
                                                             GAsyncReadyCallback   callback,
                                                             gpointer              user_data);
+DZL_AVAILABLE_IN_ALL
 gboolean            dzl_directory_reaper_execute_finish    (DzlDirectoryReaper   *self,
                                                             GAsyncResult         *result,
                                                             GError              **error);
diff --git a/src/graphing/dzl-cpu-graph.h b/src/graphing/dzl-cpu-graph.h
index 5f4dee2..a677853 100644
--- a/src/graphing/dzl-cpu-graph.h
+++ b/src/graphing/dzl-cpu-graph.h
@@ -19,6 +19,8 @@
 #ifndef DZL_CPU_GRAPH_H
 #define DZL_CPU_GRAPH_H
 
+#include "dzl-version-macros.h"
+
 #include "dzl-graph-view.h"
 
 G_BEGIN_DECLS
@@ -27,6 +29,7 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (DzlCpuGraph, dzl_cpu_graph, DZL, CPU_GRAPH, DzlGraphView)
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_cpu_graph_new (void);
 
 G_END_DECLS
diff --git a/src/graphing/dzl-cpu-model.h b/src/graphing/dzl-cpu-model.h
index bea57a4..3446ed9 100644
--- a/src/graphing/dzl-cpu-model.h
+++ b/src/graphing/dzl-cpu-model.h
@@ -19,6 +19,8 @@
 #ifndef DZL_CPU_MODEL_H
 #define DZL_CPU_MODEL_H
 
+#include "dzl-version-macros.h"
+
 #include "dzl-graph-model.h"
 
 G_BEGIN_DECLS
@@ -27,6 +29,7 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (DzlCpuModel, dzl_cpu_model, DZL, CPU_MODEL, DzlGraphModel)
 
+DZL_AVAILABLE_IN_ALL
 DzlGraphModel *dzl_cpu_model_new (void);
 
 G_END_DECLS
diff --git a/src/graphing/dzl-graph-column.h b/src/graphing/dzl-graph-column.h
index 41b5c1a..c572fe2 100644
--- a/src/graphing/dzl-graph-column.h
+++ b/src/graphing/dzl-graph-column.h
@@ -21,6 +21,8 @@
 
 #include <glib-object.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_GRAPH_COLUMN (dzl_graph_view_column_get_type())
@@ -32,9 +34,12 @@ struct _DzlGraphColumnClass
   GObjectClass parent;
 };
 
+DZL_AVAILABLE_IN_ALL
 DzlGraphColumn    *dzl_graph_view_column_new      (const gchar *name,
                                  GType        value_type);
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_graph_view_column_get_name (DzlGraphColumn    *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_graph_view_column_set_name (DzlGraphColumn    *self,
                                  const gchar *name);
 
diff --git a/src/graphing/dzl-graph-line-renderer.h b/src/graphing/dzl-graph-line-renderer.h
index a5769b0..68ffec7 100644
--- a/src/graphing/dzl-graph-line-renderer.h
+++ b/src/graphing/dzl-graph-line-renderer.h
@@ -21,6 +21,8 @@
 
 #include <gdk/gdk.h>
 
+#include "dzl-version-macros.h"
+
 #include "dzl-graph-renderer.h"
 
 G_BEGIN_DECLS
@@ -29,11 +31,15 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (DzlGraphLineRenderer, dzl_graph_view_line_renderer, DZL, GRAPH_LINE_RENDERER, GObject)
 
+DZL_AVAILABLE_IN_ALL
 DzlGraphLineRenderer *dzl_graph_view_line_renderer_new (void);
+DZL_AVAILABLE_IN_ALL
 void            dzl_graph_view_line_renderer_set_stroke_color      (DzlGraphLineRenderer *self,
                                                         const gchar    *stroke_color);
+DZL_AVAILABLE_IN_ALL
 void            dzl_graph_view_line_renderer_set_stroke_color_rgba (DzlGraphLineRenderer *self,
                                                         const GdkRGBA  *stroke_color_rgba);
+DZL_AVAILABLE_IN_ALL
 const GdkRGBA  *dzl_graph_view_line_renderer_get_stroke_color_rgba (DzlGraphLineRenderer *self);
 
 G_END_DECLS
diff --git a/src/graphing/dzl-graph-model.h b/src/graphing/dzl-graph-model.h
index c4350cf..9c38135 100644
--- a/src/graphing/dzl-graph-model.h
+++ b/src/graphing/dzl-graph-model.h
@@ -21,6 +21,8 @@
 
 #include <glib-object.h>
 
+#include "dzl-version-macros.h"
+
 #include "dzl-graph-column.h"
 
 G_BEGIN_DECLS
@@ -39,31 +41,46 @@ typedef struct
   gpointer data[8];
 } DzlGraphModelIter;
 
+DZL_AVAILABLE_IN_ALL
 DzlGraphModel   *dzl_graph_view_model_new                (void);
+DZL_AVAILABLE_IN_ALL
 guint      dzl_graph_view_model_add_column         (DzlGraphModel     *self,
                                         DzlGraphColumn    *column);
+DZL_AVAILABLE_IN_ALL
 GTimeSpan  dzl_graph_view_model_get_timespan       (DzlGraphModel     *self);
+DZL_AVAILABLE_IN_ALL
 void       dzl_graph_view_model_set_timespan       (DzlGraphModel     *self,
                                         GTimeSpan    timespan);
+DZL_AVAILABLE_IN_ALL
 gint64     dzl_graph_view_model_get_end_time       (DzlGraphModel     *self);
+DZL_AVAILABLE_IN_ALL
 guint      dzl_graph_view_model_get_max_samples    (DzlGraphModel     *self);
+DZL_AVAILABLE_IN_ALL
 void       dzl_graph_view_model_set_max_samples    (DzlGraphModel     *self,
                                         guint        n_rows);
+DZL_AVAILABLE_IN_ALL
 void       dzl_graph_view_model_push               (DzlGraphModel     *self,
                                         DzlGraphModelIter *iter,
                                         gint64       timestamp);
+DZL_AVAILABLE_IN_ALL
 gboolean   dzl_graph_view_model_get_iter_first     (DzlGraphModel     *self,
                                         DzlGraphModelIter *iter);
+DZL_AVAILABLE_IN_ALL
 gboolean   dzl_graph_view_model_get_iter_last      (DzlGraphModel     *self,
                                         DzlGraphModelIter *iter);
+DZL_AVAILABLE_IN_ALL
 gboolean   dzl_graph_view_model_iter_next          (DzlGraphModelIter *iter);
+DZL_AVAILABLE_IN_ALL
 void       dzl_graph_view_model_iter_get           (DzlGraphModelIter *iter,
                                         gint         first_column,
                                         ...);
+DZL_AVAILABLE_IN_ALL
 void       dzl_graph_view_model_iter_get_value     (DzlGraphModelIter *iter,
                                         guint        column,
                                         GValue      *value);
+DZL_AVAILABLE_IN_ALL
 gint64     dzl_graph_view_model_iter_get_timestamp (DzlGraphModelIter *iter);
+DZL_AVAILABLE_IN_ALL
 void       dzl_graph_view_model_iter_set           (DzlGraphModelIter *iter,
                                         gint         first_column,
                                         ...);
diff --git a/src/graphing/dzl-graph-renderer.h b/src/graphing/dzl-graph-renderer.h
index c90138e..4c808ed 100644
--- a/src/graphing/dzl-graph-renderer.h
+++ b/src/graphing/dzl-graph-renderer.h
@@ -21,6 +21,8 @@
 
 #include <glib-object.h>
 
+#include "dzl-version-macros.h"
+
 #include "dzl-graph-model.h"
 
 G_BEGIN_DECLS
@@ -43,6 +45,7 @@ struct _DzlGraphRendererInterface
                   const cairo_rectangle_int_t *area);
 };
 
+DZL_AVAILABLE_IN_ALL
 void dzl_graph_view_renderer_render (DzlGraphRenderer                  *self,
                          DzlGraphModel                     *table,
                          gint64                       x_begin,
diff --git a/src/graphing/dzl-graph-view.h b/src/graphing/dzl-graph-view.h
index 1a09fe9..aad0196 100644
--- a/src/graphing/dzl-graph-view.h
+++ b/src/graphing/dzl-graph-view.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "dzl-graph-model.h"
 #include "dzl-graph-renderer.h"
 
@@ -44,10 +46,14 @@ struct _DzlGraphViewClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget     *dzl_graph_view_new          (void);
+DZL_AVAILABLE_IN_ALL
 void           dzl_graph_view_set_model    (DzlGraphView     *self,
                                             DzlGraphModel    *model);
+DZL_AVAILABLE_IN_ALL
 DzlGraphModel *dzl_graph_view_get_model    (DzlGraphView     *self);
+DZL_AVAILABLE_IN_ALL
 void           dzl_graph_view_add_renderer (DzlGraphView     *self,
                                             DzlGraphRenderer *renderer);
 
diff --git a/src/menus/dzl-joined-menu.h b/src/menus/dzl-joined-menu.h
index 8550f70..4fd97ea 100644
--- a/src/menus/dzl-joined-menu.h
+++ b/src/menus/dzl-joined-menu.h
@@ -21,20 +21,28 @@
 
 #include <gio/gio.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_JOINED_MENU (dzl_joined_menu_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlJoinedMenu, dzl_joined_menu, DZL, JOINED_MENU, GMenuModel)
 
+DZL_AVAILABLE_IN_ALL
 DzlJoinedMenu *dzl_joined_menu_new          (void);
+DZL_AVAILABLE_IN_ALL
 guint          dzl_joined_menu_get_n_joined (DzlJoinedMenu *self);
+DZL_AVAILABLE_IN_ALL
 void           dzl_joined_menu_append_menu  (DzlJoinedMenu *self,
                                              GMenuModel    *model);
+DZL_AVAILABLE_IN_ALL
 void           dzl_joined_menu_prepend_menu (DzlJoinedMenu *self,
                                              GMenuModel    *model);
+DZL_AVAILABLE_IN_ALL
 void           dzl_joined_menu_remove_menu  (DzlJoinedMenu *self,
                                              GMenuModel    *model);
+DZL_AVAILABLE_IN_ALL
 void           dzl_joined_menu_remove_index (DzlJoinedMenu *self,
                                              guint          index);
 
diff --git a/src/menus/dzl-menu-button.h b/src/menus/dzl-menu-button.h
index d07d548..86233eb 100644
--- a/src/menus/dzl-menu-button.h
+++ b/src/menus/dzl-menu-button.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_MENU_BUTTON (dzl_menu_button_get_type())
@@ -37,18 +39,27 @@ struct _DzlMenuButtonClass
   gpointer _reserved4;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget     *dzl_menu_button_new_with_model  (const gchar   *icon_name,
                                                 GMenuModel    *model);
+DZL_AVAILABLE_IN_ALL
 GMenuModel    *dzl_menu_button_get_model       (DzlMenuButton *self);
+DZL_AVAILABLE_IN_ALL
 void           dzl_menu_button_set_model       (DzlMenuButton *self,
                                                 GMenuModel    *model);
+DZL_AVAILABLE_IN_ALL
 gboolean       dzl_menu_button_get_show_arrow  (DzlMenuButton *self);
+DZL_AVAILABLE_IN_ALL
 void           dzl_menu_button_set_show_arrow  (DzlMenuButton *self,
                                                 gboolean       show_arrow);
+DZL_AVAILABLE_IN_ALL
 gboolean       dzl_menu_button_get_show_icons  (DzlMenuButton *self);
+DZL_AVAILABLE_IN_ALL
 void           dzl_menu_button_set_show_icons  (DzlMenuButton *self,
                                                 gboolean       show_icons);
+DZL_AVAILABLE_IN_ALL
 gboolean       dzl_menu_button_get_show_accels (DzlMenuButton *self);
+DZL_AVAILABLE_IN_ALL
 void           dzl_menu_button_set_show_accels (DzlMenuButton *self,
                                                 gboolean       show_accels);
 
diff --git a/src/menus/dzl-menu-manager.h b/src/menus/dzl-menu-manager.h
index 5383eb7..61d3fab 100644
--- a/src/menus/dzl-menu-manager.h
+++ b/src/menus/dzl-menu-manager.h
@@ -21,24 +21,32 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_MENU_MANAGER (dzl_menu_manager_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlMenuManager, dzl_menu_manager, DZL, MENU_MANAGER, GObject)
 
+DZL_AVAILABLE_IN_ALL
 DzlMenuManager *dzl_menu_manager_new            (void);
+DZL_AVAILABLE_IN_ALL
 guint           dzl_menu_manager_add_filename   (DzlMenuManager  *self,
                                                  const gchar     *filename,
                                                  GError         **error);
+DZL_AVAILABLE_IN_ALL
 guint           dzl_menu_manager_add_resource   (DzlMenuManager  *self,
                                                  const gchar     *resource,
                                                  GError         **error);
+DZL_AVAILABLE_IN_ALL
 guint           dzl_menu_manager_merge          (DzlMenuManager  *self,
                                                  const gchar     *menu_id,
                                                  GMenuModel      *model);
+DZL_AVAILABLE_IN_ALL
 void            dzl_menu_manager_remove         (DzlMenuManager  *self,
                                                  guint            merge_id);
+DZL_AVAILABLE_IN_ALL
 GMenu          *dzl_menu_manager_get_menu_by_id (DzlMenuManager  *self,
                                                  const gchar     *menu_id);
 
diff --git a/src/meson.build b/src/meson.build
index 6a4a785..6a4dd5a 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -35,7 +35,8 @@ libdazzle_generated_headers = [
   dzl_version_h,
 ]
 
-install_headers('dazzle.h', subdir: libdazzle_header_subdir)
+install_headers(['dazzle.h', 'dzl-version-macros.h'],
+  subdir: libdazzle_header_subdir)
 
 # Filled out in the subdirs
 libdazzle_public_headers = []
@@ -83,21 +84,12 @@ if get_option('enable_rdtscp')
   libdazzle_args += '-DDZL_HAVE_RDTSCP'
 endif
 
-libdazzle_map = join_paths(meson.current_source_dir(), 'dazzle.map')
-
-libdazzle_link_args = []
-if ld_supports_version_script
-libdazzle_link_args += [ '-Wl,--version-script,' + libdazzle_map ]
-endif
-
 libdazzle = shared_library(
   'dazzle-' + apiversion,
   libdazzle_sources,
 
             soversion: 0,
-         link_depends: libdazzle_map,
                c_args: libdazzle_args,
-            link_args: libdazzle_link_args,
          dependencies: libdazzle_deps,
   include_directories: [ root_inc, src_inc ],
               install: true,
diff --git a/src/panel/dzl-dock-bin-edge.h b/src/panel/dzl-dock-bin-edge.h
index b3671b3..1234cd4 100644
--- a/src/panel/dzl-dock-bin-edge.h
+++ b/src/panel/dzl-dock-bin-edge.h
@@ -23,6 +23,8 @@
 #ifndef DZL_DOCK_BIN_EDGE_H
 #define DZL_DOCK_BIN_EDGE_H
 
+#include "dzl-version-macros.h"
+
 #include "dzl-dock-types.h"
 
 G_BEGIN_DECLS
@@ -43,6 +45,7 @@ struct _DzlDockBinEdgeClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkPositionType dzl_dock_bin_edge_get_edge (DzlDockBinEdge  *self);
 
 G_END_DECLS
diff --git a/src/panel/dzl-dock-bin.h b/src/panel/dzl-dock-bin.h
index 6e37d1d..6fb9aab 100644
--- a/src/panel/dzl-dock-bin.h
+++ b/src/panel/dzl-dock-bin.h
@@ -23,6 +23,8 @@
 #ifndef DZL_DOCK_BIN_H
 #define DZL_DOCK_BIN_H
 
+#include "dzl-version-macros.h"
+
 #include "dzl-dock-types.h"
 
 G_BEGIN_DECLS
@@ -46,11 +48,17 @@ struct _DzlDockBinClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_dock_bin_new               (void);
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_dock_bin_get_center_widget (DzlDockBin   *self);
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_dock_bin_get_top_edge      (DzlDockBin   *self);
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_dock_bin_get_left_edge     (DzlDockBin   *self);
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_dock_bin_get_bottom_edge   (DzlDockBin   *self);
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_dock_bin_get_right_edge    (DzlDockBin   *self);
 
 G_END_DECLS
diff --git a/src/panel/dzl-dock-item.h b/src/panel/dzl-dock-item.h
index cb9d11b..9cdf152 100644
--- a/src/panel/dzl-dock-item.h
+++ b/src/panel/dzl-dock-item.h
@@ -23,6 +23,8 @@
 #ifndef DZL_DOCK_ITEM_H
 #define DZL_DOCK_ITEM_H
 
+#include "dzl-version-macros.h"
+
 #include "dzl-dock-manager.h"
 
 G_BEGIN_DECLS
@@ -57,30 +59,47 @@ struct _DzlDockItemInterface
                                          DzlDockItem     *child);
 };
 
+DZL_AVAILABLE_IN_ALL
 DzlDockManager *dzl_dock_item_get_manager       (DzlDockItem     *self);
+DZL_AVAILABLE_IN_ALL
 void            dzl_dock_item_set_manager       (DzlDockItem     *self,
                                                  DzlDockManager  *manager);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_dock_item_adopt             (DzlDockItem     *self,
                                                  DzlDockItem     *child);
+DZL_AVAILABLE_IN_ALL
 void            dzl_dock_item_present           (DzlDockItem     *self);
+DZL_AVAILABLE_IN_ALL
 void            dzl_dock_item_present_child     (DzlDockItem     *self,
                                                  DzlDockItem     *child);
+DZL_AVAILABLE_IN_ALL
 void            dzl_dock_item_update_visibility (DzlDockItem     *self);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_dock_item_has_widgets       (DzlDockItem     *self);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_dock_item_get_child_visible (DzlDockItem     *self,
                                                  DzlDockItem     *child);
+DZL_AVAILABLE_IN_ALL
 void            dzl_dock_item_set_child_visible (DzlDockItem     *self,
                                                  DzlDockItem     *child,
                                                  gboolean         child_visible);
+DZL_AVAILABLE_IN_ALL
 DzlDockItem    *dzl_dock_item_get_parent        (DzlDockItem     *self);
+DZL_AVAILABLE_IN_ALL
 gchar          *dzl_dock_item_get_title         (DzlDockItem     *self);
+DZL_AVAILABLE_IN_ALL
 gchar          *dzl_dock_item_get_icon_name     (DzlDockItem     *self);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_dock_item_get_can_close     (DzlDockItem     *self);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_dock_item_get_can_minimize  (DzlDockItem     *self);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_dock_item_close             (DzlDockItem     *self);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_dock_item_minimize          (DzlDockItem     *self,
                                                  DzlDockItem     *child,
                                                  GtkPositionType *position);
+DZL_AVAILABLE_IN_ALL
 void            dzl_dock_item_release           (DzlDockItem     *self,
                                                  DzlDockItem     *child);
 void            _dzl_dock_item_printf           (DzlDockItem     *self);
diff --git a/src/panel/dzl-dock-manager.h b/src/panel/dzl-dock-manager.h
index 8952c19..6204bc4 100644
--- a/src/panel/dzl-dock-manager.h
+++ b/src/panel/dzl-dock-manager.h
@@ -23,6 +23,8 @@
 #ifndef DZL_DOCK_MANAGER_H
 #define DZL_DOCK_MANAGER_H
 
+#include "dzl-version-macros.h"
+
 #include "dzl-dock-types.h"
 
 G_BEGIN_DECLS
@@ -46,12 +48,17 @@ struct _DzlDockManagerClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 DzlDockManager *dzl_dock_manager_new             (void);
+DZL_AVAILABLE_IN_ALL
 void            dzl_dock_manager_register_dock   (DzlDockManager *self,
                                                   DzlDock        *dock);
+DZL_AVAILABLE_IN_ALL
 void            dzl_dock_manager_unregister_dock (DzlDockManager *self,
                                                   DzlDock        *dock);
+DZL_AVAILABLE_IN_ALL
 void            dzl_dock_manager_pause_grabs     (DzlDockManager *self);
+DZL_AVAILABLE_IN_ALL
 void            dzl_dock_manager_unpause_grabs   (DzlDockManager *self);
 
 G_END_DECLS
diff --git a/src/panel/dzl-dock-overlay-edge.h b/src/panel/dzl-dock-overlay-edge.h
index a1e6eba..67c50a7 100644
--- a/src/panel/dzl-dock-overlay-edge.h
+++ b/src/panel/dzl-dock-overlay-edge.h
@@ -23,14 +23,20 @@
 #ifndef DZL_DOCK_OVERLAY_EDGE_H
 #define DZL_DOCK_OVERLAY_EDGE_H
 
+#include "dzl-version-macros.h"
+
 #include "dzl-dock-types.h"
 
 G_BEGIN_DECLS
 
+DZL_AVAILABLE_IN_ALL
 GtkPositionType dzl_dock_overlay_edge_get_edge     (DzlDockOverlayEdge *self);
+DZL_AVAILABLE_IN_ALL
 void            dzl_dock_overlay_edge_set_edge     (DzlDockOverlayEdge *self,
                                                     GtkPositionType     edge);
+DZL_AVAILABLE_IN_ALL
 gint            dzl_dock_overlay_edge_get_position (DzlDockOverlayEdge *self);
+DZL_AVAILABLE_IN_ALL
 void            dzl_dock_overlay_edge_set_position (DzlDockOverlayEdge *self,
                                                     gint                position);
 
diff --git a/src/panel/dzl-dock-overlay.h b/src/panel/dzl-dock-overlay.h
index bb8af79..b26b081 100644
--- a/src/panel/dzl-dock-overlay.h
+++ b/src/panel/dzl-dock-overlay.h
@@ -23,6 +23,8 @@
 #ifndef DZL_DOCK_OVERLAY_H
 #define DZL_DOCK_OVERLAY_H
 
+#include "dzl-version-macros.h"
+
 #include "dzl-dock.h"
 #include "dzl-dock-overlay-edge.h"
 
@@ -44,12 +46,16 @@ struct _DzlDockOverlayClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget              *dzl_dock_overlay_new                   (void);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_overlay_add_child                  (DzlDockOverlay  *self,
                                                                 GtkWidget       *child,
                                                                 const gchar     *type);
+DZL_AVAILABLE_IN_ALL
 DzlDockOverlayEdge     *dzl_dock_overlay_get_edge              (DzlDockOverlay  *self,
                                                                 GtkPositionType  position);
+DZL_AVAILABLE_IN_ALL
 GtkAdjustment          *dzl_dock_overlay_get_edge_adjustment   (DzlDockOverlay  *self,
                                                                 GtkPositionType  position);
 G_END_DECLS
diff --git a/src/panel/dzl-dock-paned.h b/src/panel/dzl-dock-paned.h
index df72d55..e0cb911 100644
--- a/src/panel/dzl-dock-paned.h
+++ b/src/panel/dzl-dock-paned.h
@@ -23,6 +23,8 @@
 #ifndef DZL_DOCK_PANED_H
 #define DZL_DOCK_PANED_H
 
+#include "dzl-version-macros.h"
+
 #include "dzl-dock-types.h"
 
 G_BEGIN_DECLS
@@ -41,6 +43,7 @@ struct _DzlDockPanedClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_dock_paned_new (void);
 
 G_END_DECLS
diff --git a/src/panel/dzl-dock-revealer.h b/src/panel/dzl-dock-revealer.h
index 9f38acf..a43c91c 100644
--- a/src/panel/dzl-dock-revealer.h
+++ b/src/panel/dzl-dock-revealer.h
@@ -23,6 +23,8 @@
 #ifndef DZL_DOCK_REVEALER_H
 #define DZL_DOCK_REVEALER_H
 
+#include "dzl-version-macros.h"
+
 #include "widgets/dzl-bin.h"
 
 G_BEGIN_DECLS
@@ -55,27 +57,42 @@ struct _DzlDockRevealerClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 GType                          dzl_dock_revealer_transition_type_get_type (void);
+DZL_AVAILABLE_IN_ALL
 GtkWidget                     *dzl_dock_revealer_new                      (void);
+DZL_AVAILABLE_IN_ALL
 void                           dzl_dock_revealer_animate_to_position      (DzlDockRevealer               
*self,
                                                                            gint                           
position,
                                                                            guint                          
transition_duration);
+DZL_AVAILABLE_IN_ALL
 DzlDockRevealerTransitionType  dzl_dock_revealer_get_transition_type      (DzlDockRevealer *self);
+DZL_AVAILABLE_IN_ALL
 void                           dzl_dock_revealer_set_transition_type      (DzlDockRevealer               
*self,
                                                                            DzlDockRevealerTransitionType  
transition_type);
+DZL_AVAILABLE_IN_ALL
 gboolean                       dzl_dock_revealer_get_child_revealed       (DzlDockRevealer               
*self);
+DZL_AVAILABLE_IN_ALL
 void                           dzl_dock_revealer_set_reveal_child         (DzlDockRevealer               
*self,
                                                                            gboolean                       
reveal_child);
+DZL_AVAILABLE_IN_ALL
 gboolean                       dzl_dock_revealer_get_reveal_child         (DzlDockRevealer               
*self);
+DZL_AVAILABLE_IN_ALL
 gint                           dzl_dock_revealer_get_position             (DzlDockRevealer               
*self);
+DZL_AVAILABLE_IN_ALL
 void                           dzl_dock_revealer_set_position             (DzlDockRevealer               
*self,
                                                                            gint                           
position);
+DZL_AVAILABLE_IN_ALL
 gboolean                       dzl_dock_revealer_get_position_set         (DzlDockRevealer               
*self);
+DZL_AVAILABLE_IN_ALL
 void                           dzl_dock_revealer_set_position_set         (DzlDockRevealer               
*self,
                                                                            gboolean                       
position_set);
+DZL_AVAILABLE_IN_ALL
 guint                          dzl_dock_revealer_get_transition_duration  (DzlDockRevealer               
*self);
+DZL_AVAILABLE_IN_ALL
 void                           dzl_dock_revealer_set_transition_duration  (DzlDockRevealer               
*self,
                                                                            guint                          
transition_duration);
+DZL_AVAILABLE_IN_ALL
 gboolean                       dzl_dock_revealer_is_animating             (DzlDockRevealer               
*self);
 
 G_END_DECLS
diff --git a/src/panel/dzl-dock-stack.h b/src/panel/dzl-dock-stack.h
index 79a2840..a166127 100644
--- a/src/panel/dzl-dock-stack.h
+++ b/src/panel/dzl-dock-stack.h
@@ -23,6 +23,8 @@
 #ifndef DZL_DOCK_STACK_H
 #define DZL_DOCK_STACK_H
 
+#include "dzl-version-macros.h"
+
 #include "dzl-dock-types.h"
 
 G_BEGIN_DECLS
@@ -37,14 +39,21 @@ struct _DzlDockStackClass
   gpointer _reserved4;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget       *dzl_dock_stack_new                    (void);
+DZL_AVAILABLE_IN_ALL
 GtkPositionType  dzl_dock_stack_get_edge               (DzlDockStack    *self);
+DZL_AVAILABLE_IN_ALL
 void             dzl_dock_stack_set_edge               (DzlDockStack    *self,
                                                         GtkPositionType  edge);
+DZL_AVAILABLE_IN_ALL
 DzlTabStyle      dzl_dock_stack_get_style              (DzlDockStack    *self);
+DZL_AVAILABLE_IN_ALL
 void             dzl_dock_stack_set_style              (DzlDockStack    *self,
                                                         DzlTabStyle      style);
+DZL_AVAILABLE_IN_ALL
 gboolean         dzl_dock_stack_get_show_pinned_button (DzlDockStack    *self);
+DZL_AVAILABLE_IN_ALL
 void             dzl_dock_stack_set_show_pinned_button (DzlDockStack    *self,
                                                         gboolean         show_pinned_button);
 
diff --git a/src/panel/dzl-dock-transient-grab.h b/src/panel/dzl-dock-transient-grab.h
index b55d3cc..a4ce54f 100644
--- a/src/panel/dzl-dock-transient-grab.h
+++ b/src/panel/dzl-dock-transient-grab.h
@@ -23,6 +23,8 @@
 #ifndef DZL_DOCK_TRANSIENT_GRAB_H
 #define DZL_DOCK_TRANSIENT_GRAB_H
 
+#include "dzl-version-macros.h"
+
 #include "dzl-dock-item.h"
 
 G_BEGIN_DECLS
@@ -31,20 +33,30 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (DzlDockTransientGrab, dzl_dock_transient_grab, DZL, DOCK_TRANSIENT_GRAB, GObject)
 
+DZL_AVAILABLE_IN_ALL
 DzlDockTransientGrab *dzl_dock_transient_grab_new                    (void);
+DZL_AVAILABLE_IN_ALL
 void                  dzl_dock_transient_grab_add_item               (DzlDockTransientGrab *self,
                                                                       DzlDockItem          *item);
+DZL_AVAILABLE_IN_ALL
 void                  dzl_dock_transient_grab_remove_item            (DzlDockTransientGrab *self,
                                                                       DzlDockItem          *item);
+DZL_AVAILABLE_IN_ALL
 void                  dzl_dock_transient_grab_acquire                (DzlDockTransientGrab *self);
+DZL_AVAILABLE_IN_ALL
 void                  dzl_dock_transient_grab_release                (DzlDockTransientGrab *self);
+DZL_AVAILABLE_IN_ALL
 guint                 dzl_dock_transient_grab_get_timeout            (DzlDockTransientGrab *self);
+DZL_AVAILABLE_IN_ALL
 void                  dzl_dock_transient_grab_set_timeout            (DzlDockTransientGrab *self,
                                                                       guint                 timeout);
+DZL_AVAILABLE_IN_ALL
 gboolean              dzl_dock_transient_grab_contains               (DzlDockTransientGrab *self,
                                                                       DzlDockItem          *item);
+DZL_AVAILABLE_IN_ALL
 gboolean              dzl_dock_transient_grab_is_descendant          (DzlDockTransientGrab *self,
                                                                       GtkWidget            *widget);
+DZL_AVAILABLE_IN_ALL
 void                  dzl_dock_transient_grab_steal_common_ancestors (DzlDockTransientGrab *self,
                                                                       DzlDockTransientGrab *other);
 
diff --git a/src/panel/dzl-dock-types.h b/src/panel/dzl-dock-types.h
index 821bad8..4be1ff4 100644
--- a/src/panel/dzl-dock-types.h
+++ b/src/panel/dzl-dock-types.h
@@ -25,6 +25,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "widgets/dzl-bin.h"
 #include "widgets/dzl-multi-paned.h"
 #include "panel/dzl-dock-revealer.h"
@@ -70,6 +72,7 @@ typedef enum
   DZL_TAB_BOTH  = (DZL_TAB_TEXT | DZL_TAB_ICONS),
 } DzlTabStyle;
 
+DZL_AVAILABLE_IN_ALL
 GType dzl_tab_style_get_type (void);
 
 G_END_DECLS
diff --git a/src/panel/dzl-dock-widget.h b/src/panel/dzl-dock-widget.h
index e135bc8..069fce0 100644
--- a/src/panel/dzl-dock-widget.h
+++ b/src/panel/dzl-dock-widget.h
@@ -23,6 +23,8 @@
 #ifndef DZL_DOCK_WIDGET_H
 #define DZL_DOCK_WIDGET_H
 
+#include "dzl-version-macros.h"
+
 #include "dzl-dock-types.h"
 
 G_BEGIN_DECLS
@@ -41,9 +43,12 @@ struct _DzlDockWidgetClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_dock_widget_new           (void);
+DZL_AVAILABLE_IN_ALL
 void       dzl_dock_widget_set_title     (DzlDockWidget *self,
                                           const gchar   *title);
+DZL_AVAILABLE_IN_ALL
 void       dzl_dock_widget_set_icon_name (DzlDockWidget *self,
                                           const gchar   *icon_name);
 
diff --git a/src/panel/dzl-dock-window.h b/src/panel/dzl-dock-window.h
index 6459f51..03e4cda 100644
--- a/src/panel/dzl-dock-window.h
+++ b/src/panel/dzl-dock-window.h
@@ -23,6 +23,8 @@
 #ifndef DZL_DOCK_WINDOW_H
 #define DZL_DOCK_WINDOW_H
 
+#include "dzl-version-macros.h"
+
 #include "dzl-dock.h"
 
 G_BEGIN_DECLS
@@ -41,6 +43,7 @@ struct _DzlDockWindowClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_dock_window_new (void);
 
 G_END_DECLS
diff --git a/src/panel/dzl-tab-strip.h b/src/panel/dzl-tab-strip.h
index f6b0b0d..75cd013 100644
--- a/src/panel/dzl-tab-strip.h
+++ b/src/panel/dzl-tab-strip.h
@@ -24,6 +24,8 @@
 #ifndef DZL_TAB_STRIP_H
 #define DZL_TAB_STRIP_H
 
+#include "dzl-version-macros.h"
+
 #include "dzl-dock-types.h"
 
 G_BEGIN_DECLS
@@ -42,16 +44,24 @@ struct _DzlTabStripClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget       *dzl_tab_strip_new             (void);
+DZL_AVAILABLE_IN_ALL
 GtkStack        *dzl_tab_strip_get_stack       (DzlTabStrip     *self);
+DZL_AVAILABLE_IN_ALL
 void             dzl_tab_strip_set_stack       (DzlTabStrip     *self,
                                                 GtkStack        *stack);
+DZL_AVAILABLE_IN_ALL
 GtkPositionType  dzl_tab_strip_get_edge        (DzlTabStrip     *self);
+DZL_AVAILABLE_IN_ALL
 void             dzl_tab_strip_set_edge        (DzlTabStrip     *self,
                                                 GtkPositionType  edge);
+DZL_AVAILABLE_IN_ALL
 DzlTabStyle      dzl_tab_strip_get_style       (DzlTabStrip     *self);
+DZL_AVAILABLE_IN_ALL
 void             dzl_tab_strip_set_style       (DzlTabStrip     *self,
                                                 DzlTabStyle      style);
+DZL_AVAILABLE_IN_ALL
 void             dzl_tab_strip_add_control     (DzlTabStrip     *self,
                                                 GtkWidget       *widget);
 
diff --git a/src/panel/dzl-tab.h b/src/panel/dzl-tab.h
index 0115906..dcd4209 100644
--- a/src/panel/dzl-tab.h
+++ b/src/panel/dzl-tab.h
@@ -24,29 +24,45 @@
 #ifndef DZL_TAB_H
 #define DZL_TAB_H
 
+#include "dzl-version-macros.h"
+
 #include "dzl-dock-types.h"
 
 G_BEGIN_DECLS
 
+DZL_AVAILABLE_IN_ALL
 const gchar     *dzl_tab_get_icon_name  (DzlTab          *self);
+DZL_AVAILABLE_IN_ALL
 void             dzl_tab_set_icon_name  (DzlTab          *self,
                                          const gchar     *icon_name);
+DZL_AVAILABLE_IN_ALL
 const gchar     *dzl_tab_get_title      (DzlTab          *self);
+DZL_AVAILABLE_IN_ALL
 void             dzl_tab_set_title      (DzlTab          *self,
                                          const gchar     *title);
+DZL_AVAILABLE_IN_ALL
 GtkPositionType  dzl_tab_get_edge       (DzlTab          *self);
+DZL_AVAILABLE_IN_ALL
 void             dzl_tab_set_edge       (DzlTab          *self,
                                          GtkPositionType  edge);
+DZL_AVAILABLE_IN_ALL
 GtkWidget       *dzl_tab_get_widget     (DzlTab          *self);
+DZL_AVAILABLE_IN_ALL
 void             dzl_tab_set_widget     (DzlTab          *self,
                                          GtkWidget       *widget);
+DZL_AVAILABLE_IN_ALL
 gboolean         dzl_tab_get_active     (DzlTab          *self);
+DZL_AVAILABLE_IN_ALL
 void             dzl_tab_set_active     (DzlTab          *self,
                                          gboolean         active);
+DZL_AVAILABLE_IN_ALL
 gboolean         dzl_tab_get_can_close  (DzlTab          *self);
+DZL_AVAILABLE_IN_ALL
 void             dzl_tab_set_can_close  (DzlTab          *self,
                                          gboolean         can_close);
+DZL_AVAILABLE_IN_ALL
 DzlTabStyle      dzl_tab_get_style      (DzlTab          *self);
+DZL_AVAILABLE_IN_ALL
 void             dzl_tab_set_style      (DzlTab          *self,
                                          DzlTabStyle      style);
 
diff --git a/src/pathbar/dzl-path-bar.h b/src/pathbar/dzl-path-bar.h
index 97df143..8c2e889 100644
--- a/src/pathbar/dzl-path-bar.h
+++ b/src/pathbar/dzl-path-bar.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "pathbar/dzl-path.h"
 
 G_BEGIN_DECLS
@@ -29,10 +31,14 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (DzlPathBar, dzl_path_bar, DZL, PATH_BAR, GtkBox)
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_path_bar_new                (void);
+DZL_AVAILABLE_IN_ALL
 DzlPath   *dzl_path_bar_get_path           (DzlPathBar *self);
+DZL_AVAILABLE_IN_ALL
 void       dzl_path_bar_set_path           (DzlPathBar *self,
                                             DzlPath   *path);
+DZL_AVAILABLE_IN_ALL
 void       dzl_path_bar_set_selected_index (DzlPathBar *self,
                                             guint       index);
 
diff --git a/src/pathbar/dzl-path-element.h b/src/pathbar/dzl-path-element.h
index 0b7f8fc..2850f9d 100644
--- a/src/pathbar/dzl-path-element.h
+++ b/src/pathbar/dzl-path-element.h
@@ -21,17 +21,23 @@
 
 #include <glib-object.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_PATH_ELEMENT (dzl_path_element_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlPathElement, dzl_path_element, DZL, PATH_ELEMENT, GObject)
 
+DZL_AVAILABLE_IN_ALL
 DzlPathElement *dzl_path_element_new           (const gchar    *id,
                                                 const gchar    *icon_name,
                                                 const gchar    *title);
+DZL_AVAILABLE_IN_ALL
 const gchar    *dzl_path_element_get_title     (DzlPathElement *self);
+DZL_AVAILABLE_IN_ALL
 const gchar    *dzl_path_element_get_id        (DzlPathElement *self);
+DZL_AVAILABLE_IN_ALL
 const gchar    *dzl_path_element_get_icon_name (DzlPathElement *self);
 
 G_END_DECLS
diff --git a/src/pathbar/dzl-path.h b/src/pathbar/dzl-path.h
index 9cf4a76..c60b437 100644
--- a/src/pathbar/dzl-path.h
+++ b/src/pathbar/dzl-path.h
@@ -21,6 +21,8 @@
 
 #include <glib-object.h>
 
+#include "dzl-version-macros.h"
+
 #include "pathbar/dzl-path-element.h"
 
 G_BEGIN_DECLS
@@ -29,18 +31,27 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (DzlPath, dzl_path, DZL, PATH, GObject)
 
+DZL_AVAILABLE_IN_ALL
 DzlPath        *dzl_path_new          (void);
+DZL_AVAILABLE_IN_ALL
 void            dzl_path_prepend      (DzlPath        *self,
                                        DzlPathElement *element);
+DZL_AVAILABLE_IN_ALL
 void            dzl_path_append       (DzlPath        *self,
                                        DzlPathElement *element);
+DZL_AVAILABLE_IN_ALL
 GList          *dzl_path_get_elements (DzlPath        *self);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_path_has_prefix   (DzlPath        *self,
                                        DzlPath        *prefix);
+DZL_AVAILABLE_IN_ALL
 guint           dzl_path_get_length   (DzlPath        *self);
+DZL_AVAILABLE_IN_ALL
 DzlPathElement *dzl_path_get_element  (DzlPath        *self,
                                        guint           index);
+DZL_AVAILABLE_IN_ALL
 gchar          *dzl_path_printf       (DzlPath        *self);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_path_is_empty     (DzlPath        *self);
 
 G_END_DECLS
diff --git a/src/prefs/dzl-preferences-bin.h b/src/prefs/dzl-preferences-bin.h
index cb7d9d9..3e4f60b 100644
--- a/src/prefs/dzl-preferences-bin.h
+++ b/src/prefs/dzl-preferences-bin.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "search/dzl-pattern-spec.h"
 
 G_BEGIN_DECLS
diff --git a/src/prefs/dzl-preferences-entry.h b/src/prefs/dzl-preferences-entry.h
index 2203fd1..5140769 100644
--- a/src/prefs/dzl-preferences-entry.h
+++ b/src/prefs/dzl-preferences-entry.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "prefs/dzl-preferences-bin.h"
 
 G_BEGIN_DECLS
@@ -34,7 +36,9 @@ struct _DzlPreferencesEntryClass
   DzlPreferencesBinClass parent_class;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_preferences_entry_get_entry_widget (DzlPreferencesEntry *self);
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_preferences_entry_get_title_widget (DzlPreferencesEntry *self);
 
 G_END_DECLS
diff --git a/src/prefs/dzl-preferences-file-chooser-button.h b/src/prefs/dzl-preferences-file-chooser-button.h
index d87c3b4..f26de00 100644
--- a/src/prefs/dzl-preferences-file-chooser-button.h
+++ b/src/prefs/dzl-preferences-file-chooser-button.h
@@ -19,6 +19,8 @@
 #ifndef DZL_PREFERENCES_FILE_CHOOSER_BUTTON_H
 #define DZL_PREFERENCES_FILE_CHOOSER_BUTTON_H
 
+#include "dzl-version-macros.h"
+
 #include "prefs/dzl-preferences-bin.h"
 
 G_BEGIN_DECLS
diff --git a/src/prefs/dzl-preferences-flow-box.h b/src/prefs/dzl-preferences-flow-box.h
index b5e86e5..f887f28 100644
--- a/src/prefs/dzl-preferences-flow-box.h
+++ b/src/prefs/dzl-preferences-flow-box.h
@@ -19,6 +19,8 @@
 #ifndef DZL_PREFERENCES_FLOW_BOX_H
 #define DZL_PREFERENCES_FLOW_BOX_H
 
+#include "dzl-version-macros.h"
+
 #include "widgets/dzl-column-layout.h"
 
 G_BEGIN_DECLS
@@ -27,6 +29,7 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (DzlPreferencesFlowBox, dzl_preferences_flow_box, DZL, PREFERENCES_FLOW_BOX, 
DzlColumnLayout)
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_preferences_flow_box_new (void);
 
 G_END_DECLS
diff --git a/src/prefs/dzl-preferences-font-button.h b/src/prefs/dzl-preferences-font-button.h
index 45c02bb..361c114 100644
--- a/src/prefs/dzl-preferences-font-button.h
+++ b/src/prefs/dzl-preferences-font-button.h
@@ -19,6 +19,8 @@
 #ifndef DZL_PREFERENCES_FONT_BUTTON_H
 #define DZL_PREFERENCES_FONT_BUTTON_H
 
+#include "dzl-version-macros.h"
+
 #include "prefs/dzl-preferences-bin.h"
 
 G_BEGIN_DECLS
diff --git a/src/prefs/dzl-preferences-group.h b/src/prefs/dzl-preferences-group.h
index 0c14624..dd63a0b 100644
--- a/src/prefs/dzl-preferences-group.h
+++ b/src/prefs/dzl-preferences-group.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "search/dzl-pattern-spec.h"
 
 G_BEGIN_DECLS
@@ -29,12 +31,17 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (DzlPreferencesGroup, dzl_preferences_group, DZL, PREFERENCES_GROUP, GtkBin)
 
+DZL_AVAILABLE_IN_ALL
 void         dzl_preferences_group_add          (DzlPreferencesGroup *self,
                                                  GtkWidget           *widget);
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_preferences_group_get_title    (DzlPreferencesGroup *self);
+DZL_AVAILABLE_IN_ALL
 gint         dzl_preferences_group_get_priority (DzlPreferencesGroup *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_preferences_group_set_map      (DzlPreferencesGroup *self,
                                                  GHashTable          *map);
+DZL_AVAILABLE_IN_ALL
 guint        dzl_preferences_group_refilter     (DzlPreferencesGroup *self,
                                                  DzlPatternSpec      *spec);
 
diff --git a/src/prefs/dzl-preferences-page.h b/src/prefs/dzl-preferences-page.h
index 13c490a..5ad9ad2 100644
--- a/src/prefs/dzl-preferences-page.h
+++ b/src/prefs/dzl-preferences-page.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "prefs/dzl-preferences-group.h"
 #include "search/dzl-pattern-spec.h"
 
@@ -30,12 +32,16 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (DzlPreferencesPage, dzl_preferences_page, DZL, PREFERENCES_PAGE, GtkBin)
 
+DZL_AVAILABLE_IN_ALL
 void                 dzl_preferences_page_add_group (DzlPreferencesPage  *self,
                                                      DzlPreferencesGroup *group);
+DZL_AVAILABLE_IN_ALL
 DzlPreferencesGroup *dzl_preferences_page_get_group (DzlPreferencesPage  *self,
                                                      const gchar         *group_name);
+DZL_AVAILABLE_IN_ALL
 void                 dzl_preferences_page_refilter  (DzlPreferencesPage  *self,
                                                      DzlPatternSpec      *spec);
+DZL_AVAILABLE_IN_ALL
 void                 dzl_preferences_page_set_map   (DzlPreferencesPage  *self,
                                                      GHashTable          *map);
 
diff --git a/src/prefs/dzl-preferences-spin-button.h b/src/prefs/dzl-preferences-spin-button.h
index 715e656..0f53f56 100644
--- a/src/prefs/dzl-preferences-spin-button.h
+++ b/src/prefs/dzl-preferences-spin-button.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "prefs/dzl-preferences-bin.h"
 
 G_BEGIN_DECLS
@@ -29,6 +31,7 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (DzlPreferencesSpinButton, dzl_preferences_spin_button, DZL, PREFERENCES_SPIN_BUTTON, 
DzlPreferencesBin)
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_preferences_spin_button_get_spin_button (DzlPreferencesSpinButton *self);
 
 G_END_DECLS
diff --git a/src/prefs/dzl-preferences-switch.h b/src/prefs/dzl-preferences-switch.h
index 7f83523..2748f9f 100644
--- a/src/prefs/dzl-preferences-switch.h
+++ b/src/prefs/dzl-preferences-switch.h
@@ -19,6 +19,8 @@
 #ifndef DZL_PREFERENCES_SWITCH_H
 #define DZL_PREFERENCES_SWITCH_H
 
+#include "dzl-version-macros.h"
+
 #include "prefs/dzl-preferences-bin.h"
 
 G_BEGIN_DECLS
diff --git a/src/prefs/dzl-preferences-view.h b/src/prefs/dzl-preferences-view.h
index 4524b54..2cf4ea6 100644
--- a/src/prefs/dzl-preferences-view.h
+++ b/src/prefs/dzl-preferences-view.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "prefs/dzl-preferences.h"
 
 G_BEGIN_DECLS
@@ -43,7 +45,9 @@ struct _DzlPreferencesViewClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_preferences_view_new            (void);
+DZL_AVAILABLE_IN_ALL
 void       dzl_preferences_view_reapply_filter (DzlPreferencesView *self);
 
 G_END_DECLS
diff --git a/src/prefs/dzl-preferences.h b/src/prefs/dzl-preferences.h
index 2aa738c..7cef803 100644
--- a/src/prefs/dzl-preferences.h
+++ b/src/prefs/dzl-preferences.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_PREFERENCES (dzl_preferences_get_type())
@@ -112,21 +114,25 @@ struct _DzlPreferencesInterface
                                              guint                 widget_id);
 };
 
+DZL_AVAILABLE_IN_ALL
 void       dzl_preferences_add_page         (DzlPreferences       *self,
                                              const gchar          *page_name,
                                              const gchar          *title,
                                              gint                  priority);
+DZL_AVAILABLE_IN_ALL
 void       dzl_preferences_add_group        (DzlPreferences       *self,
                                              const gchar          *page_name,
                                              const gchar          *group_name,
                                              const gchar          *title,
                                              gint                  priority);
+DZL_AVAILABLE_IN_ALL
 void       dzl_preferences_add_list_group   (DzlPreferences       *self,
                                              const gchar          *page_name,
                                              const gchar          *group_name,
                                              const gchar          *title,
                                              GtkSelectionMode      mode,
                                              gint                  priority);
+DZL_AVAILABLE_IN_ALL
 guint      dzl_preferences_add_radio        (DzlPreferences       *self,
                                              const gchar          *page_name,
                                              const gchar          *group_name,
@@ -138,6 +144,7 @@ guint      dzl_preferences_add_radio        (DzlPreferences       *self,
                                              const gchar          *subtitle,
                                              const gchar          *keywords,
                                              gint                  priority);
+DZL_AVAILABLE_IN_ALL
 guint      dzl_preferences_add_switch       (DzlPreferences       *self,
                                              const gchar          *page_name,
                                              const gchar          *group_name,
@@ -149,6 +156,7 @@ guint      dzl_preferences_add_switch       (DzlPreferences       *self,
                                              const gchar          *subtitle,
                                              const gchar          *keywords,
                                              gint                  priority);
+DZL_AVAILABLE_IN_ALL
 guint      dzl_preferences_add_spin_button  (DzlPreferences       *self,
                                              const gchar          *page_name,
                                              const gchar          *group_name,
@@ -159,12 +167,14 @@ guint      dzl_preferences_add_spin_button  (DzlPreferences       *self,
                                              const gchar          *subtitle,
                                              const gchar          *keywords,
                                              gint                  priority);
+DZL_AVAILABLE_IN_ALL
 guint      dzl_preferences_add_custom       (DzlPreferences       *self,
                                              const gchar          *page_name,
                                              const gchar          *group_name,
                                              GtkWidget            *widget,
                                              const gchar          *keywords,
                                              gint                  priority);
+DZL_AVAILABLE_IN_ALL
 guint      dzl_preferences_add_font_button  (DzlPreferences       *self,
                                              const gchar          *page_name,
                                              const gchar          *group_name,
@@ -173,6 +183,7 @@ guint      dzl_preferences_add_font_button  (DzlPreferences       *self,
                                              const gchar          *title,
                                              const gchar          *keywords,
                                              gint                  priority);
+DZL_AVAILABLE_IN_ALL
 guint      dzl_preferences_add_file_chooser (DzlPreferences       *self,
                                              const gchar          *page_name,
                                              const gchar          *group_name,
@@ -184,11 +195,14 @@ guint      dzl_preferences_add_file_chooser (DzlPreferences       *self,
                                              GtkFileChooserAction  action,
                                              const gchar          *keywords,
                                              gint                  priority);
+DZL_AVAILABLE_IN_ALL
 gboolean   dzl_preferences_remove_id        (DzlPreferences       *self,
                                              guint                 widget_id);
+DZL_AVAILABLE_IN_ALL
 void       dzl_preferences_set_page         (DzlPreferences       *self,
                                              const gchar          *page_name,
                                              GHashTable           *map);
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_preferences_get_widget       (DzlPreferences       *self,
                                              guint                 widget_id);
 
diff --git a/src/search/dzl-fuzzy-index-builder.h b/src/search/dzl-fuzzy-index-builder.h
index 7be63cf..cb7aefb 100644
--- a/src/search/dzl-fuzzy-index-builder.h
+++ b/src/search/dzl-fuzzy-index-builder.h
@@ -21,45 +21,59 @@
 
 #include <gio/gio.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_FUZZY_INDEX_BUILDER (dzl_fuzzy_index_builder_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlFuzzyIndexBuilder, dzl_fuzzy_index_builder, DZL, FUZZY_INDEX_BUILDER, GObject)
 
+DZL_AVAILABLE_IN_ALL
 DzlFuzzyIndexBuilder *dzl_fuzzy_index_builder_new                 (void);
+DZL_AVAILABLE_IN_ALL
 gboolean              dzl_fuzzy_index_builder_get_case_sensitive  (DzlFuzzyIndexBuilder  *self);
+DZL_AVAILABLE_IN_ALL
 void                  dzl_fuzzy_index_builder_set_case_sensitive  (DzlFuzzyIndexBuilder  *self,
                                                                    gboolean               case_sensitive);
+DZL_AVAILABLE_IN_ALL
 guint64               dzl_fuzzy_index_builder_insert              (DzlFuzzyIndexBuilder  *self,
                                                                    const gchar           *key,
                                                                    GVariant              *document,
                                                                    guint                  priority);
+DZL_AVAILABLE_IN_ALL
 gboolean              dzl_fuzzy_index_builder_write               (DzlFuzzyIndexBuilder  *self,
                                                                    GFile                 *file,
                                                                    gint                   io_priority,
                                                                    GCancellable          *cancellable,
                                                                    GError               **error);
+DZL_AVAILABLE_IN_ALL
 void                  dzl_fuzzy_index_builder_write_async         (DzlFuzzyIndexBuilder  *self,
                                                                    GFile                 *file,
                                                                    gint                   io_priority,
                                                                    GCancellable          *cancellable,
                                                                    GAsyncReadyCallback    callback,
                                                                    gpointer               user_data);
+DZL_AVAILABLE_IN_ALL
 gboolean              dzl_fuzzy_index_builder_write_finish        (DzlFuzzyIndexBuilder  *self,
                                                                    GAsyncResult          *result,
                                                                    GError               **error);
+DZL_AVAILABLE_IN_ALL
 const GVariant       *dzl_fuzzy_index_builder_get_document        (DzlFuzzyIndexBuilder  *self,
                                                                    guint64                document_id);
+DZL_AVAILABLE_IN_ALL
 void                  dzl_fuzzy_index_builder_set_metadata        (DzlFuzzyIndexBuilder  *self,
                                                                    const gchar           *key,
                                                                    GVariant              *value);
+DZL_AVAILABLE_IN_ALL
 void                  dzl_fuzzy_index_builder_set_metadata_string (DzlFuzzyIndexBuilder  *self,
                                                                    const gchar           *key,
                                                                    const gchar           *value);
+DZL_AVAILABLE_IN_ALL
 void                  dzl_fuzzy_index_builder_set_metadata_uint32 (DzlFuzzyIndexBuilder  *self,
                                                                    const gchar           *key,
                                                                    guint32                value);
+DZL_AVAILABLE_IN_ALL
 void                  dzl_fuzzy_index_builder_set_metadata_uint64 (DzlFuzzyIndexBuilder  *self,
                                                                    const gchar           *key,
                                                                    guint64                value);
diff --git a/src/search/dzl-fuzzy-index-cursor.h b/src/search/dzl-fuzzy-index-cursor.h
index a537838..92189a9 100644
--- a/src/search/dzl-fuzzy-index-cursor.h
+++ b/src/search/dzl-fuzzy-index-cursor.h
@@ -21,6 +21,8 @@
 
 #include <gio/gio.h>
 
+#include "dzl-version-macros.h"
+
 #include "dzl-fuzzy-index.h"
 
 G_BEGIN_DECLS
@@ -29,6 +31,7 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (DzlFuzzyIndexCursor, dzl_fuzzy_index_cursor, DZL, FUZZY_INDEX_CURSOR, GObject)
 
+DZL_AVAILABLE_IN_ALL
 DzlFuzzyIndex *dzl_fuzzy_index_cursor_get_index (DzlFuzzyIndexCursor *self);
 
 G_END_DECLS
diff --git a/src/search/dzl-fuzzy-index-match.h b/src/search/dzl-fuzzy-index-match.h
index bd5418f..d540a50 100644
--- a/src/search/dzl-fuzzy-index-match.h
+++ b/src/search/dzl-fuzzy-index-match.h
@@ -21,15 +21,21 @@
 
 #include <gio/gio.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_FUZZY_INDEX_MATCH (dzl_fuzzy_index_match_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlFuzzyIndexMatch, dzl_fuzzy_index_match, DZL, FUZZY_INDEX_MATCH, GObject)
 
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_fuzzy_index_match_get_key      (DzlFuzzyIndexMatch *self);
+DZL_AVAILABLE_IN_ALL
 GVariant    *dzl_fuzzy_index_match_get_document (DzlFuzzyIndexMatch *self);
+DZL_AVAILABLE_IN_ALL
 gfloat       dzl_fuzzy_index_match_get_score    (DzlFuzzyIndexMatch *self);
+DZL_AVAILABLE_IN_ALL
 guint        dzl_fuzzy_index_match_get_priority (DzlFuzzyIndexMatch *self);
 
 G_END_DECLS
diff --git a/src/search/dzl-fuzzy-index.h b/src/search/dzl-fuzzy-index.h
index 747ae7c..8ced3b2 100644
--- a/src/search/dzl-fuzzy-index.h
+++ b/src/search/dzl-fuzzy-index.h
@@ -21,40 +21,52 @@
 
 #include <gio/gio.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_FUZZY_INDEX (dzl_fuzzy_index_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlFuzzyIndex, dzl_fuzzy_index, DZL, FUZZY_INDEX, GObject)
 
+DZL_AVAILABLE_IN_ALL
 DzlFuzzyIndex  *dzl_fuzzy_index_new                 (void);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_fuzzy_index_load_file           (DzlFuzzyIndex        *self,
                                                      GFile                *file,
                                                      GCancellable         *cancellable,
                                                      GError              **error);
+DZL_AVAILABLE_IN_ALL
 void            dzl_fuzzy_index_load_file_async     (DzlFuzzyIndex        *self,
                                                      GFile                *file,
                                                      GCancellable         *cancellable,
                                                      GAsyncReadyCallback   callback,
                                                      gpointer              user_data);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_fuzzy_index_load_file_finish    (DzlFuzzyIndex        *self,
                                                      GAsyncResult         *result,
                                                      GError              **error);
+DZL_AVAILABLE_IN_ALL
 void            dzl_fuzzy_index_query_async         (DzlFuzzyIndex        *self,
                                                      const gchar          *query,
                                                      guint                 max_matches,
                                                      GCancellable         *cancellable,
                                                      GAsyncReadyCallback   callback,
                                                      gpointer              user_data);
+DZL_AVAILABLE_IN_ALL
 GListModel     *dzl_fuzzy_index_query_finish        (DzlFuzzyIndex        *self,
                                                      GAsyncResult         *result,
                                                      GError              **error);
+DZL_AVAILABLE_IN_ALL
 GVariant       *dzl_fuzzy_index_get_metadata        (DzlFuzzyIndex        *self,
                                                      const gchar          *key);
+DZL_AVAILABLE_IN_ALL
 guint32         dzl_fuzzy_index_get_metadata_uint32 (DzlFuzzyIndex        *self,
                                                      const gchar          *key);
+DZL_AVAILABLE_IN_ALL
 guint64         dzl_fuzzy_index_get_metadata_uint64 (DzlFuzzyIndex        *self,
                                                      const gchar          *key);
+DZL_AVAILABLE_IN_ALL
 const gchar    *dzl_fuzzy_index_get_metadata_string (DzlFuzzyIndex        *self,
                                                      const gchar          *key);
 
diff --git a/src/search/dzl-fuzzy-mutable-index.h b/src/search/dzl-fuzzy-mutable-index.h
index f05684b..ed25f8a 100644
--- a/src/search/dzl-fuzzy-mutable-index.h
+++ b/src/search/dzl-fuzzy-mutable-index.h
@@ -21,6 +21,8 @@
 
 #include <glib-object.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_FUZZY_MUTABLE_INDEX (dzl_fuzzy_mutable_index_get_type())
@@ -35,26 +37,39 @@ typedef struct
    guint        id;
 } DzlFuzzyMutableIndexMatch;
 
+DZL_AVAILABLE_IN_ALL
 GType                     dzl_fuzzy_mutable_index_get_type           (void);
+DZL_AVAILABLE_IN_ALL
 DzlFuzzyMutableIndex     *dzl_fuzzy_mutable_index_new                (gboolean              case_sensitive);
+DZL_AVAILABLE_IN_ALL
 DzlFuzzyMutableIndex     *dzl_fuzzy_mutable_index_new_with_free_func (gboolean              case_sensitive,
                                                                       GDestroyNotify        free_func);
+DZL_AVAILABLE_IN_ALL
 void                      dzl_fuzzy_mutable_index_set_free_func      (DzlFuzzyMutableIndex *fuzzy,
                                                                       GDestroyNotify        free_func);
+DZL_AVAILABLE_IN_ALL
 void                      dzl_fuzzy_mutable_index_begin_bulk_insert  (DzlFuzzyMutableIndex *fuzzy);
+DZL_AVAILABLE_IN_ALL
 void                      dzl_fuzzy_mutable_index_end_bulk_insert    (DzlFuzzyMutableIndex *fuzzy);
+DZL_AVAILABLE_IN_ALL
 gboolean                  dzl_fuzzy_mutable_index_contains           (DzlFuzzyMutableIndex *fuzzy,
                                                                       const gchar          *key);
+DZL_AVAILABLE_IN_ALL
 void                      dzl_fuzzy_mutable_index_insert             (DzlFuzzyMutableIndex *fuzzy,
                                                                       const gchar          *key,
                                                                       gpointer              value);
+DZL_AVAILABLE_IN_ALL
 GArray                   *dzl_fuzzy_mutable_index_match              (DzlFuzzyMutableIndex *fuzzy,
                                                                       const gchar          *needle,
                                                                       gsize                 max_matches);
+DZL_AVAILABLE_IN_ALL
 void                      dzl_fuzzy_mutable_index_remove             (DzlFuzzyMutableIndex *fuzzy,
                                                                       const gchar          *key);
+DZL_AVAILABLE_IN_ALL
 DzlFuzzyMutableIndex     *dzl_fuzzy_mutable_index_ref                (DzlFuzzyMutableIndex *fuzzy);
+DZL_AVAILABLE_IN_ALL
 void                      dzl_fuzzy_mutable_index_unref              (DzlFuzzyMutableIndex *fuzzy);
+DZL_AVAILABLE_IN_ALL
 gchar                    *dzl_fuzzy_highlight                        (const gchar          *str,
                                                                       const gchar          *query,
                                                                       gboolean              case_sensitive);
diff --git a/src/search/dzl-levenshtein.h b/src/search/dzl-levenshtein.h
index 23a09a6..7a62cf9 100644
--- a/src/search/dzl-levenshtein.h
+++ b/src/search/dzl-levenshtein.h
@@ -21,8 +21,11 @@
 
 #include <glib.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
+DZL_AVAILABLE_IN_ALL
 gint dzl_levenshtein (const gchar *needle,
                       const gchar *haystack);
 
diff --git a/src/search/dzl-pattern-spec.h b/src/search/dzl-pattern-spec.h
index 0849ad6..d783a6d 100644
--- a/src/search/dzl-pattern-spec.h
+++ b/src/search/dzl-pattern-spec.h
@@ -21,18 +21,26 @@
 
 #include <glib-object.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 typedef struct _DzlPatternSpec DzlPatternSpec;
 
 #define DZL_TYPE_PATTERN_SPEC (dzl_pattern_spec_get_type())
 
+DZL_AVAILABLE_IN_ALL
 GType           dzl_pattern_spec_get_type (void);
+DZL_AVAILABLE_IN_ALL
 DzlPatternSpec *dzl_pattern_spec_new      (const gchar    *keywords);
+DZL_AVAILABLE_IN_ALL
 DzlPatternSpec *dzl_pattern_spec_ref      (DzlPatternSpec *self);
+DZL_AVAILABLE_IN_ALL
 void            dzl_pattern_spec_unref    (DzlPatternSpec *self);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_pattern_spec_match    (DzlPatternSpec *self,
                                            const gchar     *haystack);
+DZL_AVAILABLE_IN_ALL
 const gchar    *dzl_pattern_spec_get_text (DzlPatternSpec *self);
 
 G_DEFINE_AUTOPTR_CLEANUP_FUNC (DzlPatternSpec, dzl_pattern_spec_unref)
diff --git a/src/search/dzl-trie.h b/src/search/dzl-trie.h
index 8b30385..10c4b4c 100644
--- a/src/search/dzl-trie.h
+++ b/src/search/dzl-trie.h
@@ -21,6 +21,8 @@
 
 #include <glib-object.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_TRIE (dzl_trie_get_type())
@@ -32,18 +34,27 @@ typedef gboolean (*DzlTrieTraverseFunc) (DzlTrie     *dzl_trie,
                                          gpointer     value,
                                          gpointer     user_data);
 
+DZL_AVAILABLE_IN_ALL
 GType     dzl_trie_get_type (void);
+DZL_AVAILABLE_IN_ALL
 void      dzl_trie_destroy  (DzlTrie             *trie);
+DZL_AVAILABLE_IN_ALL
 void      dzl_trie_unref    (DzlTrie             *trie);
+DZL_AVAILABLE_IN_ALL
 DzlTrie  *dzl_trie_ref      (DzlTrie             *trie);
+DZL_AVAILABLE_IN_ALL
 void      dzl_trie_insert   (DzlTrie             *trie,
                              const gchar         *key,
                              gpointer             value);
+DZL_AVAILABLE_IN_ALL
 gpointer  dzl_trie_lookup   (DzlTrie             *trie,
                              const gchar         *key);
+DZL_AVAILABLE_IN_ALL
 DzlTrie  *dzl_trie_new      (GDestroyNotify       value_destroy);
+DZL_AVAILABLE_IN_ALL
 gboolean  dzl_trie_remove   (DzlTrie             *trie,
                              const gchar         *key);
+DZL_AVAILABLE_IN_ALL
 void      dzl_trie_traverse (DzlTrie             *trie,
                              const gchar         *key,
                              GTraverseType        order,
diff --git a/src/settings/dzl-settings-sandwich.h b/src/settings/dzl-settings-sandwich.h
index 23f4f96..ad1614a 100644
--- a/src/settings/dzl-settings-sandwich.h
+++ b/src/settings/dzl-settings-sandwich.h
@@ -21,55 +21,75 @@
 
 #include <gio/gio.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_SETTINGS_SANDWICH (dzl_settings_sandwich_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlSettingsSandwich, dzl_settings_sandwich, DZL, SETTINGS_SANDWICH, GObject)
 
+DZL_AVAILABLE_IN_ALL
 DzlSettingsSandwich *dzl_settings_sandwich_new               (const gchar             *schema_id,
                                                               const gchar             *path);
+DZL_AVAILABLE_IN_ALL
 GVariant            *dzl_settings_sandwich_get_default_value (DzlSettingsSandwich     *self,
                                                               const gchar             *key);
+DZL_AVAILABLE_IN_ALL
 GVariant            *dzl_settings_sandwich_get_user_value    (DzlSettingsSandwich     *self,
                                                               const gchar             *key);
+DZL_AVAILABLE_IN_ALL
 GVariant            *dzl_settings_sandwich_get_value         (DzlSettingsSandwich     *self,
                                                               const gchar             *key);
+DZL_AVAILABLE_IN_ALL
 void                 dzl_settings_sandwich_set_value         (DzlSettingsSandwich     *self,
                                                               const gchar             *key,
                                                               GVariant                *value);
+DZL_AVAILABLE_IN_ALL
 gboolean             dzl_settings_sandwich_get_boolean       (DzlSettingsSandwich     *self,
                                                               const gchar             *key);
+DZL_AVAILABLE_IN_ALL
 gdouble              dzl_settings_sandwich_get_double        (DzlSettingsSandwich     *self,
                                                               const gchar             *key);
+DZL_AVAILABLE_IN_ALL
 gint                 dzl_settings_sandwich_get_int           (DzlSettingsSandwich     *self,
                                                               const gchar             *key);
+DZL_AVAILABLE_IN_ALL
 gchar               *dzl_settings_sandwich_get_string        (DzlSettingsSandwich     *self,
                                                               const gchar             *key);
+DZL_AVAILABLE_IN_ALL
 guint                dzl_settings_sandwich_get_uint          (DzlSettingsSandwich     *self,
                                                               const gchar             *key);
+DZL_AVAILABLE_IN_ALL
 void                 dzl_settings_sandwich_set_boolean       (DzlSettingsSandwich     *self,
                                                               const gchar             *key,
                                                               gboolean                 val);
+DZL_AVAILABLE_IN_ALL
 void                 dzl_settings_sandwich_set_double        (DzlSettingsSandwich     *self,
                                                               const gchar             *key,
                                                               gdouble                  val);
+DZL_AVAILABLE_IN_ALL
 void                 dzl_settings_sandwich_set_int           (DzlSettingsSandwich     *self,
                                                               const gchar             *key,
                                                               gint                     val);
+DZL_AVAILABLE_IN_ALL
 void                 dzl_settings_sandwich_set_string        (DzlSettingsSandwich     *self,
                                                               const gchar             *key,
                                                               const gchar             *val);
+DZL_AVAILABLE_IN_ALL
 void                 dzl_settings_sandwich_set_uint          (DzlSettingsSandwich     *self,
                                                               const gchar             *key,
                                                               guint                    val);
+DZL_AVAILABLE_IN_ALL
 void                 dzl_settings_sandwich_append            (DzlSettingsSandwich     *self,
                                                               GSettings               *settings);
+DZL_AVAILABLE_IN_ALL
 void                 dzl_settings_sandwich_bind              (DzlSettingsSandwich     *self,
                                                               const gchar             *key,
                                                               gpointer                 object,
                                                               const gchar             *property,
                                                               GSettingsBindFlags       flags);
+DZL_AVAILABLE_IN_ALL
 void                 dzl_settings_sandwich_bind_with_mapping (DzlSettingsSandwich     *self,
                                                               const gchar             *key,
                                                               gpointer                 object,
@@ -79,6 +99,7 @@ void                 dzl_settings_sandwich_bind_with_mapping (DzlSettingsSandwic
                                                               GSettingsBindSetMapping  set_mapping,
                                                               gpointer                 user_data,
                                                               GDestroyNotify           destroy);
+DZL_AVAILABLE_IN_ALL
 void                 dzl_settings_sandwich_unbind            (DzlSettingsSandwich     *self,
                                                               const gchar             *property);
 
diff --git a/src/shortcuts/dzl-shortcut-accel-dialog.h b/src/shortcuts/dzl-shortcut-accel-dialog.h
index d2d8d29..0dc3b78 100644
--- a/src/shortcuts/dzl-shortcut-accel-dialog.h
+++ b/src/shortcuts/dzl-shortcut-accel-dialog.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "dzl-shortcut-chord.h"
 
 G_BEGIN_DECLS
@@ -29,12 +31,18 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (DzlShortcutAccelDialog, dzl_shortcut_accel_dialog, DZL, SHORTCUT_ACCEL_DIALOG, 
GtkDialog)
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget              *dzl_shortcut_accel_dialog_new                (void);
+DZL_AVAILABLE_IN_ALL
 gchar                  *dzl_shortcut_accel_dialog_get_accelerator    (DzlShortcutAccelDialog *self);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_accel_dialog_set_accelerator    (DzlShortcutAccelDialog *self,
                                                                       const gchar            *accelerator);
+DZL_AVAILABLE_IN_ALL
 const DzlShortcutChord *dzl_shortcut_accel_dialog_get_chord          (DzlShortcutAccelDialog *self);
+DZL_AVAILABLE_IN_ALL
 const gchar            *dzl_shortcut_accel_dialog_get_shortcut_title (DzlShortcutAccelDialog *self);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_accel_dialog_set_shortcut_title (DzlShortcutAccelDialog *self,
                                                                       const gchar            *title);
 
diff --git a/src/shortcuts/dzl-shortcut-chord.h b/src/shortcuts/dzl-shortcut-chord.h
index 4149475..d2dd5c3 100644
--- a/src/shortcuts/dzl-shortcut-chord.h
+++ b/src/shortcuts/dzl-shortcut-chord.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 typedef enum
@@ -41,48 +43,75 @@ typedef void (*DzlShortcutChordTableForeach) (const DzlShortcutChord *chord,
                                               gpointer                chord_data,
                                               gpointer                user_data);
 
+DZL_AVAILABLE_IN_ALL
 GType                   dzl_shortcut_chord_get_type            (void);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutChord       *dzl_shortcut_chord_new_from_event      (const GdkEventKey            *event);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutChord       *dzl_shortcut_chord_new_from_string     (const gchar                  *accelerator);
+DZL_AVAILABLE_IN_ALL
 gchar                  *dzl_shortcut_chord_to_string           (const DzlShortcutChord       *self);
+DZL_AVAILABLE_IN_ALL
 gchar                  *dzl_shortcut_chord_get_label           (const DzlShortcutChord       *self);
+DZL_AVAILABLE_IN_ALL
 guint                   dzl_shortcut_chord_get_length          (const DzlShortcutChord       *self);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_chord_get_nth_key         (const DzlShortcutChord       *self,
                                                                 guint                         nth,
                                                                 guint                        *keyval,
                                                                 GdkModifierType              *modifier);
+DZL_AVAILABLE_IN_ALL
 gboolean                dzl_shortcut_chord_has_modifier        (const DzlShortcutChord       *self);
+DZL_AVAILABLE_IN_ALL
 gboolean                dzl_shortcut_chord_append_event        (DzlShortcutChord             *self,
                                                                 const GdkEventKey            *event);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutMatch        dzl_shortcut_chord_match               (const DzlShortcutChord       *self,
                                                                 const DzlShortcutChord       *other);
+DZL_AVAILABLE_IN_ALL
 guint                   dzl_shortcut_chord_hash                (gconstpointer                 data);
+DZL_AVAILABLE_IN_ALL
 gboolean                dzl_shortcut_chord_equal               (gconstpointer                 data1,
                                                                 gconstpointer                 data2);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutChord       *dzl_shortcut_chord_copy                (const DzlShortcutChord       *self);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_chord_free                (DzlShortcutChord             *self);
+DZL_AVAILABLE_IN_ALL
 GType                   dzl_shortcut_chord_table_get_type      (void);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutChordTable  *dzl_shortcut_chord_table_new           (void);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_chord_table_set_free_func (DzlShortcutChordTable        *self,
                                                                 GDestroyNotify                notify);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_chord_table_free          (DzlShortcutChordTable        *self);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_chord_table_add           (DzlShortcutChordTable        *self,
                                                                 const DzlShortcutChord       *chord,
                                                                 gpointer                      data);
+DZL_AVAILABLE_IN_ALL
 gboolean                dzl_shortcut_chord_table_remove        (DzlShortcutChordTable        *self,
                                                                 const DzlShortcutChord       *chord);
+DZL_AVAILABLE_IN_ALL
 gboolean                dzl_shortcut_chord_table_remove_data   (DzlShortcutChordTable        *self,
                                                                 gpointer                      data);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutMatch        dzl_shortcut_chord_table_lookup        (DzlShortcutChordTable        *self,
                                                                 const DzlShortcutChord       *chord,
                                                                 gpointer                     *data);
+DZL_AVAILABLE_IN_ALL
 const DzlShortcutChord *dzl_shortcut_chord_table_lookup_data   (DzlShortcutChordTable        *self,
                                                                 gpointer                      data);
+DZL_AVAILABLE_IN_ALL
 guint                   dzl_shortcut_chord_table_size          (const DzlShortcutChordTable  *self);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_chord_table_foreach       (const DzlShortcutChordTable  *self,
                                                                 DzlShortcutChordTableForeach  foreach_func,
                                                                 gpointer                      foreach_data);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_chord_table_printf        (const DzlShortcutChordTable  *self);
+DZL_AVAILABLE_IN_ALL
 GType                   dzl_shortcut_match_get_type            (void);
 
 G_DEFINE_AUTOPTR_CLEANUP_FUNC (DzlShortcutChord, dzl_shortcut_chord_free)
diff --git a/src/shortcuts/dzl-shortcut-context.h b/src/shortcuts/dzl-shortcut-context.h
index 969907d..38782e6 100644
--- a/src/shortcuts/dzl-shortcut-context.h
+++ b/src/shortcuts/dzl-shortcut-context.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "dzl-shortcut-chord.h"
 
 G_BEGIN_DECLS
@@ -29,37 +31,48 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (DzlShortcutContext, dzl_shortcut_context, DZL, SHORTCUT_CONTEXT, GObject)
 
+DZL_AVAILABLE_IN_ALL
 DzlShortcutContext *dzl_shortcut_context_new                (const gchar             *name);
+DZL_AVAILABLE_IN_ALL
 const gchar        *dzl_shortcut_context_get_name           (DzlShortcutContext      *self);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutMatch    dzl_shortcut_context_activate           (DzlShortcutContext      *self,
                                                              GtkWidget               *widget,
                                                              const DzlShortcutChord  *chord);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_context_add_action         (DzlShortcutContext      *self,
                                                              const gchar             *accel,
                                                              const gchar             *detailed_action_name);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_context_add_command        (DzlShortcutContext      *self,
                                                              const gchar             *accel,
                                                              const gchar             *command);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_context_add_signal         (DzlShortcutContext      *self,
                                                              const gchar             *accel,
                                                              const gchar             *signal_name,
                                                              guint                    n_args,
                                                              ...);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_context_add_signal_va_list (DzlShortcutContext      *self,
                                                              const gchar             *accel,
                                                              const gchar             *signal_name,
                                                              guint                    n_args,
                                                              va_list                  args);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_context_add_signalv        (DzlShortcutContext      *self,
                                                              const gchar             *accel,
                                                              const gchar             *signal_name,
                                                              GArray                  *values);
+DZL_AVAILABLE_IN_ALL
 gboolean            dzl_shortcut_context_remove             (DzlShortcutContext      *self,
                                                              const gchar             *accel);
+DZL_AVAILABLE_IN_ALL
 gboolean            dzl_shortcut_context_load_from_data     (DzlShortcutContext      *self,
                                                              const gchar             *data,
                                                              gssize                   len,
                                                              GError                 **error);
+DZL_AVAILABLE_IN_ALL
 gboolean            dzl_shortcut_context_load_from_resource (DzlShortcutContext      *self,
                                                              const gchar             *resource_path,
                                                              GError                 **error);
diff --git a/src/shortcuts/dzl-shortcut-controller.h b/src/shortcuts/dzl-shortcut-controller.h
index 8a829d1..e47acfb 100644
--- a/src/shortcuts/dzl-shortcut-controller.h
+++ b/src/shortcuts/dzl-shortcut-controller.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "shortcuts/dzl-shortcut-context.h"
 #include "shortcuts/dzl-shortcut-manager.h"
 #include "shortcuts/dzl-shortcut-phase.h"
@@ -31,25 +33,37 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (DzlShortcutController, dzl_shortcut_controller, DZL, SHORTCUT_CONTROLLER, GObject)
 
+DZL_AVAILABLE_IN_ALL
 DzlShortcutController  *dzl_shortcut_controller_new                   (GtkWidget             *widget);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutManager     *dzl_shortcut_controller_get_manager           (DzlShortcutController *self);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_controller_set_manager           (DzlShortcutController *self,
                                                                        DzlShortcutManager    *manager);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutController  *dzl_shortcut_controller_find                  (GtkWidget             *widget);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutController  *dzl_shortcut_controller_try_find              (GtkWidget             *widget);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutContext     *dzl_shortcut_controller_get_context           (DzlShortcutController *self);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_controller_set_context_by_name   (DzlShortcutController *self,
                                                                        const gchar           *name);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutContext     *dzl_shortcut_controller_get_context_for_phase (DzlShortcutController *self,
                                                                        DzlShortcutPhase       phase);
+DZL_AVAILABLE_IN_ALL
 gboolean                dzl_shortcut_controller_execute_command       (DzlShortcutController *self,
                                                                        const gchar           *command);
+DZL_AVAILABLE_IN_ALL
 const DzlShortcutChord *dzl_shortcut_controller_get_current_chord     (DzlShortcutController *self);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_controller_add_command_action    (DzlShortcutController *self,
                                                                        const gchar           *command_id,
                                                                        const gchar           *default_accel,
                                                                        DzlShortcutPhase       phase,
                                                                        const gchar           *action);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_controller_add_command_callback  (DzlShortcutController *self,
                                                                        const gchar           *command_id,
                                                                        const gchar           *default_accel,
@@ -57,6 +71,7 @@ void                    dzl_shortcut_controller_add_command_callback  (DzlShortc
                                                                        GtkCallback            callback,
                                                                        gpointer               callback_data,
                                                                        GDestroyNotify         
callback_data_destroy);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_controller_add_command_signal    (DzlShortcutController *self,
                                                                        const gchar           *command_id,
                                                                        const gchar           *default_accel,
diff --git a/src/shortcuts/dzl-shortcut-label.h b/src/shortcuts/dzl-shortcut-label.h
index b14f2f3..9fa0d9e 100644
--- a/src/shortcuts/dzl-shortcut-label.h
+++ b/src/shortcuts/dzl-shortcut-label.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "dzl-shortcut-chord.h"
 
 G_BEGIN_DECLS
@@ -29,12 +31,17 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (DzlShortcutLabel, dzl_shortcut_label, DZL, SHORTCUT_LABEL, GtkBox)
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget              *dzl_shortcut_label_new             (void);
+DZL_AVAILABLE_IN_ALL
 gchar                  *dzl_shortcut_label_get_accelerator (DzlShortcutLabel       *self);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_label_set_accelerator (DzlShortcutLabel       *self,
                                                             const gchar            *accelerator);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_label_set_chord       (DzlShortcutLabel       *self,
                                                             const DzlShortcutChord *chord);
+DZL_AVAILABLE_IN_ALL
 const DzlShortcutChord *dzl_shortcut_label_get_chord       (DzlShortcutLabel       *self);
 
 G_END_DECLS
diff --git a/src/shortcuts/dzl-shortcut-manager.h b/src/shortcuts/dzl-shortcut-manager.h
index 01e56f0..089ef4a 100644
--- a/src/shortcuts/dzl-shortcut-manager.h
+++ b/src/shortcuts/dzl-shortcut-manager.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "dzl-shortcut-phase.h"
 #include "dzl-shortcut-theme.h"
 #include "dzl-shortcuts-window.h"
@@ -70,46 +72,64 @@ struct _DzlShortcutManagerClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 DzlShortcutManager *dzl_shortcut_manager_get_default             (void);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_manager_queue_reload            (DzlShortcutManager     *self);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_manager_reload                  (DzlShortcutManager     *self,
                                                                   GCancellable           *cancellable);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_manager_append_search_path      (DzlShortcutManager     *self,
                                                                   const gchar            *directory);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_manager_prepend_search_path     (DzlShortcutManager     *self,
                                                                   const gchar            *directory);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_manager_remove_search_path      (DzlShortcutManager     *self,
                                                                   const gchar            *directory);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutTheme   *dzl_shortcut_manager_get_theme               (DzlShortcutManager     *self);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_manager_set_theme               (DzlShortcutManager     *self,
                                                                   DzlShortcutTheme       *theme);
+DZL_AVAILABLE_IN_ALL
 const gchar        *dzl_shortcut_manager_get_theme_name          (DzlShortcutManager     *self);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_manager_set_theme_name          (DzlShortcutManager     *self,
                                                                   const gchar            *theme_name);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutTheme   *dzl_shortcut_manager_get_theme_by_name       (DzlShortcutManager     *self,
                                                                   const gchar            *theme_name);
+DZL_AVAILABLE_IN_ALL
 gboolean            dzl_shortcut_manager_handle_event            (DzlShortcutManager     *self,
                                                                   const GdkEventKey      *event,
                                                                   GtkWidget              *toplevel);
+DZL_AVAILABLE_IN_ALL
 const gchar        *dzl_shortcut_manager_get_user_dir            (DzlShortcutManager     *self);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_manager_set_user_dir            (DzlShortcutManager     *self,
                                                                   const gchar            *user_dir);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_manager_add_action              (DzlShortcutManager     *self,
                                                                   const gchar            
*detailed_action_name,
                                                                   const gchar            *section,
                                                                   const gchar            *group,
                                                                   const gchar            *title,
                                                                   const gchar            *subtitle);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_manager_add_command             (DzlShortcutManager     *self,
                                                                   const gchar            *command,
                                                                   const gchar            *section,
                                                                   const gchar            *group,
                                                                   const gchar            *title,
                                                                   const gchar            *subtitle);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_manager_add_shortcut_entries    (DzlShortcutManager     *self,
                                                                   const DzlShortcutEntry *shortcuts,
                                                                   guint                   n_shortcuts,
                                                                   const gchar            
*translation_domain);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_manager_add_shortcuts_to_window (DzlShortcutManager     *self,
                                                                   DzlShortcutsWindow     *window);
 
diff --git a/src/shortcuts/dzl-shortcut-model.h b/src/shortcuts/dzl-shortcut-model.h
index 56ed020..76f9ab1 100644
--- a/src/shortcuts/dzl-shortcut-model.h
+++ b/src/shortcuts/dzl-shortcut-model.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "dzl-shortcut-chord.h"
 #include "dzl-shortcut-manager.h"
 #include "dzl-shortcut-theme.h"
@@ -31,16 +33,23 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (DzlShortcutModel, dzl_shortcut_model, DZL, SHORTCUT_MODEL, GtkTreeStore)
 
+DZL_AVAILABLE_IN_ALL
 GtkTreeModel       *dzl_shortcut_model_new         (void);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutManager *dzl_shortcut_model_get_manager (DzlShortcutModel       *self);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_model_set_manager (DzlShortcutModel       *self,
                                                     DzlShortcutManager     *manager);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutTheme   *dzl_shortcut_model_get_theme   (DzlShortcutModel       *self);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_model_set_theme   (DzlShortcutModel       *self,
                                                     DzlShortcutTheme       *theme);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_model_set_chord   (DzlShortcutModel       *self,
                                                     GtkTreeIter            *iter,
                                                     const DzlShortcutChord *chord);
+DZL_AVAILABLE_IN_ALL
 void                dzl_shortcut_model_rebuild     (DzlShortcutModel       *self);
 
 G_END_DECLS
diff --git a/src/shortcuts/dzl-shortcut-phase.h b/src/shortcuts/dzl-shortcut-phase.h
index 67d9bac..d02784f 100644
--- a/src/shortcuts/dzl-shortcut-phase.h
+++ b/src/shortcuts/dzl-shortcut-phase.h
@@ -21,6 +21,8 @@
 
 #include <glib-object.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_SHORTCUT_PHASE (dzl_shortcut_phase_get_type())
@@ -46,6 +48,7 @@ typedef enum
   DZL_SHORTCUT_PHASE_GLOBAL   = 1 << 2,
 } DzlShortcutPhase;
 
+DZL_AVAILABLE_IN_ALL
 GType dzl_shortcut_phase_get_type (void);
 
 G_END_DECLS
diff --git a/src/shortcuts/dzl-shortcut-simple-label.h b/src/shortcuts/dzl-shortcut-simple-label.h
index c71ef6a..4b7089c 100644
--- a/src/shortcuts/dzl-shortcut-simple-label.h
+++ b/src/shortcuts/dzl-shortcut-simple-label.h
@@ -21,23 +21,34 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_SHORTCUT_SIMPLE_LABEL (dzl_shortcut_simple_label_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlShortcutSimpleLabel, dzl_shortcut_simple_label, DZL, SHORTCUT_SIMPLE_LABEL, GtkBox)
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget   *dzl_shortcut_simple_label_new         (void);
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_shortcut_simple_label_get_accel   (DzlShortcutSimpleLabel *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_shortcut_simple_label_set_accel   (DzlShortcutSimpleLabel *self,
                                                     const gchar            *accel);
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_shortcut_simple_label_get_action  (DzlShortcutSimpleLabel *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_shortcut_simple_label_set_action  (DzlShortcutSimpleLabel *self,
                                                     const gchar            *action);
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_shortcut_simple_label_get_command (DzlShortcutSimpleLabel *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_shortcut_simple_label_set_command (DzlShortcutSimpleLabel *self,
                                                     const gchar            *command);
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_shortcut_simple_label_get_title   (DzlShortcutSimpleLabel *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_shortcut_simple_label_set_title   (DzlShortcutSimpleLabel *self,
                                                     const gchar            *title);
 
diff --git a/src/shortcuts/dzl-shortcut-theme-editor.h b/src/shortcuts/dzl-shortcut-theme-editor.h
index 1e60aca..6aed686 100644
--- a/src/shortcuts/dzl-shortcut-theme-editor.h
+++ b/src/shortcuts/dzl-shortcut-theme-editor.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "dzl-shortcut-theme.h"
 
 G_BEGIN_DECLS
@@ -43,8 +45,11 @@ struct _DzlShortcutThemeEditorClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget        *dzl_shortcut_theme_editor_new       (void);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutTheme *dzl_shortcut_theme_editor_get_theme (DzlShortcutThemeEditor *self);
+DZL_AVAILABLE_IN_ALL
 void              dzl_shortcut_theme_editor_set_theme (DzlShortcutThemeEditor *self,
                                                        DzlShortcutTheme       *theme);
 
diff --git a/src/shortcuts/dzl-shortcut-theme.h b/src/shortcuts/dzl-shortcut-theme.h
index 53e3905..8f48199 100644
--- a/src/shortcuts/dzl-shortcut-theme.h
+++ b/src/shortcuts/dzl-shortcut-theme.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "shortcuts/dzl-shortcut-chord.h"
 #include "shortcuts/dzl-shortcut-context.h"
 #include "shortcuts/dzl-shortcut-phase.h"
@@ -45,69 +47,94 @@ struct _DzlShortcutThemeClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 DzlShortcutTheme       *dzl_shortcut_theme_new                   (const gchar             *name);
+DZL_AVAILABLE_IN_ALL
 const gchar            *dzl_shortcut_theme_get_name              (DzlShortcutTheme        *self);
+DZL_AVAILABLE_IN_ALL
 const gchar            *dzl_shortcut_theme_get_title             (DzlShortcutTheme        *self);
+DZL_AVAILABLE_IN_ALL
 const gchar            *dzl_shortcut_theme_get_subtitle          (DzlShortcutTheme        *self);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutTheme       *dzl_shortcut_theme_get_parent            (DzlShortcutTheme        *self);
+DZL_AVAILABLE_IN_ALL
 const gchar            *dzl_shortcut_theme_get_parent_name       (DzlShortcutTheme        *self);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_theme_set_parent_name       (DzlShortcutTheme        *self,
                                                                   const gchar             *parent_name);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutContext     *dzl_shortcut_theme_find_default_context  (DzlShortcutTheme        *self,
                                                                   GtkWidget               *widget);
+DZL_AVAILABLE_IN_ALL
 DzlShortcutContext     *dzl_shortcut_theme_find_context_by_name  (DzlShortcutTheme        *self,
                                                                   const gchar             *name);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_theme_add_command           (DzlShortcutTheme        *self,
                                                                   const gchar             *accelerator,
                                                                   const gchar             *command);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_theme_add_context           (DzlShortcutTheme        *self,
                                                                   DzlShortcutContext      *context);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_theme_set_chord_for_action  (DzlShortcutTheme        *self,
                                                                   const gchar             
*detailed_action_name,
                                                                   const DzlShortcutChord  *chord,
                                                                   DzlShortcutPhase         phase);
+DZL_AVAILABLE_IN_ALL
 const DzlShortcutChord *dzl_shortcut_theme_get_chord_for_action  (DzlShortcutTheme        *self,
                                                                   const gchar             
*detailed_action_name);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_theme_set_accel_for_action  (DzlShortcutTheme        *self,
                                                                   const gchar             
*detailed_action_name,
                                                                   const gchar             *accel,
                                                                   DzlShortcutPhase         phase);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_theme_set_chord_for_command (DzlShortcutTheme        *self,
                                                                   const gchar             *command,
                                                                   const DzlShortcutChord  *chord,
                                                                   DzlShortcutPhase         phase);
+DZL_AVAILABLE_IN_ALL
 const DzlShortcutChord *dzl_shortcut_theme_get_chord_for_command (DzlShortcutTheme        *self,
                                                                   const gchar             *command);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_theme_set_accel_for_command (DzlShortcutTheme        *self,
                                                                   const gchar             *command,
                                                                   const gchar             *accel,
                                                                   DzlShortcutPhase         phase);
+DZL_AVAILABLE_IN_ALL
 gboolean                dzl_shortcut_theme_load_from_data        (DzlShortcutTheme        *self,
                                                                   const gchar             *data,
                                                                   gssize                   len,
                                                                   GError                 **error);
+DZL_AVAILABLE_IN_ALL
 gboolean                dzl_shortcut_theme_load_from_file        (DzlShortcutTheme        *self,
                                                                   GFile                   *file,
                                                                   GCancellable            *cancellable,
                                                                   GError                 **error);
+DZL_AVAILABLE_IN_ALL
 gboolean                dzl_shortcut_theme_load_from_path        (DzlShortcutTheme        *self,
                                                                   const gchar             *path,
                                                                   GCancellable            *cancellable,
                                                                   GError                 **error);
+DZL_AVAILABLE_IN_ALL
 gboolean                dzl_shortcut_theme_save_to_file          (DzlShortcutTheme        *self,
                                                                   GFile                   *file,
                                                                   GCancellable            *cancellable,
                                                                   GError                 **error);
+DZL_AVAILABLE_IN_ALL
 gboolean                dzl_shortcut_theme_save_to_stream        (DzlShortcutTheme        *self,
                                                                   GOutputStream           *stream,
                                                                   GCancellable            *cancellable,
                                                                   GError                 **error);
+DZL_AVAILABLE_IN_ALL
 gboolean                dzl_shortcut_theme_save_to_path          (DzlShortcutTheme        *self,
                                                                   const gchar             *path,
                                                                   GCancellable            *cancellable,
                                                                   GError                 **error);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_theme_add_css_resource      (DzlShortcutTheme        *self,
                                                                   const gchar             *path);
+DZL_AVAILABLE_IN_ALL
 void                    dzl_shortcut_theme_remove_css_resource   (DzlShortcutTheme        *self,
                                                                   const gchar             *path);
 
diff --git a/src/shortcuts/dzl-shortcuts-group.h b/src/shortcuts/dzl-shortcuts-group.h
index 5ab4205..c42432e 100644
--- a/src/shortcuts/dzl-shortcuts-group.h
+++ b/src/shortcuts/dzl-shortcuts-group.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_SHORTCUTS_GROUP            (dzl_shortcuts_group_get_type ())
@@ -34,6 +36,7 @@ G_BEGIN_DECLS
 typedef struct _DzlShortcutsGroup         DzlShortcutsGroup;
 typedef struct _DzlShortcutsGroupClass    DzlShortcutsGroupClass;
 
+DZL_AVAILABLE_IN_ALL
 GType dzl_shortcuts_group_get_type (void) G_GNUC_CONST;
 
 G_END_DECLS
diff --git a/src/shortcuts/dzl-shortcuts-section.h b/src/shortcuts/dzl-shortcuts-section.h
index 358cfbb..7a9378a 100644
--- a/src/shortcuts/dzl-shortcuts-section.h
+++ b/src/shortcuts/dzl-shortcuts-section.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_SHORTCUTS_SECTION            (dzl_shortcuts_section_get_type ())
@@ -33,6 +35,7 @@ G_BEGIN_DECLS
 typedef struct _DzlShortcutsSection      DzlShortcutsSection;
 typedef struct _DzlShortcutsSectionClass DzlShortcutsSectionClass;
 
+DZL_AVAILABLE_IN_ALL
 GType dzl_shortcuts_section_get_type (void) G_GNUC_CONST;
 
 G_END_DECLS
diff --git a/src/shortcuts/dzl-shortcuts-shortcut.h b/src/shortcuts/dzl-shortcuts-shortcut.h
index 5d0d991..9140250 100644
--- a/src/shortcuts/dzl-shortcuts-shortcut.h
+++ b/src/shortcuts/dzl-shortcuts-shortcut.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_SHORTCUTS_SHORTCUT (dzl_shortcuts_shortcut_get_type())
@@ -71,6 +73,7 @@ typedef enum {
   DZL_SHORTCUT_GESTURE
 } DzlShortcutType;
 
+DZL_AVAILABLE_IN_ALL
 GType dzl_shortcuts_shortcut_get_type (void) G_GNUC_CONST;
 
 G_END_DECLS
diff --git a/src/shortcuts/dzl-shortcuts-window.h b/src/shortcuts/dzl-shortcuts-window.h
index dad216f..e725f8e 100644
--- a/src/shortcuts/dzl-shortcuts-window.h
+++ b/src/shortcuts/dzl-shortcuts-window.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_SHORTCUTS_WINDOW            (dzl_shortcuts_window_get_type ())
@@ -48,6 +50,7 @@ struct _DzlShortcutsWindowClass
   void (*search) (DzlShortcutsWindow *self);
 };
 
+DZL_AVAILABLE_IN_ALL
 GType dzl_shortcuts_window_get_type (void) G_GNUC_CONST;
 
 G_DEFINE_AUTOPTR_CLEANUP_FUNC(DzlShortcutsWindow, g_object_unref)
diff --git a/src/statemachine/dzl-state-machine-buildable.h b/src/statemachine/dzl-state-machine-buildable.h
index 1e7538e..49e5063 100644
--- a/src/statemachine/dzl-state-machine-buildable.h
+++ b/src/statemachine/dzl-state-machine-buildable.h
@@ -21,8 +21,11 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
+DZL_AVAILABLE_IN_ALL
 void dzl_state_machine_buildable_iface_init (GtkBuildableIface *iface);
 
 G_END_DECLS
diff --git a/src/statemachine/dzl-state-machine.h b/src/statemachine/dzl-state-machine.h
index d610168..eee858c 100644
--- a/src/statemachine/dzl-state-machine.h
+++ b/src/statemachine/dzl-state-machine.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_STATE_MACHINE  (dzl_state_machine_get_type())
@@ -32,28 +34,36 @@ struct _DzlStateMachineClass
   GObjectClass parent;
 };
 
+DZL_AVAILABLE_IN_ALL
 DzlStateMachine *dzl_state_machine_new               (void);
+DZL_AVAILABLE_IN_ALL
 const gchar     *dzl_state_machine_get_state         (DzlStateMachine *self);
+DZL_AVAILABLE_IN_ALL
 void             dzl_state_machine_set_state         (DzlStateMachine *self,
                                                       const gchar     *state);
+DZL_AVAILABLE_IN_ALL
 GAction         *dzl_state_machine_create_action     (DzlStateMachine *self,
                                                       const gchar     *name);
+DZL_AVAILABLE_IN_ALL
 void             dzl_state_machine_add_property      (DzlStateMachine *self,
                                                       const gchar     *state,
                                                       gpointer         object,
                                                       const gchar     *property,
                                                       ...);
+DZL_AVAILABLE_IN_ALL
 void             dzl_state_machine_add_property_valist
                                                      (DzlStateMachine *self,
                                                       const gchar     *state,
                                                       gpointer         object,
                                                       const gchar     *property,
                                                       va_list          var_args);
+DZL_AVAILABLE_IN_ALL
 void             dzl_state_machine_add_propertyv     (DzlStateMachine *self,
                                                       const gchar     *state,
                                                       gpointer         object,
                                                       const gchar     *property,
                                                       const GValue    *value);
+DZL_AVAILABLE_IN_ALL
 void             dzl_state_machine_add_binding       (DzlStateMachine *self,
                                                       const gchar     *state,
                                                       gpointer         source_object,
@@ -61,10 +71,12 @@ void             dzl_state_machine_add_binding       (DzlStateMachine *self,
                                                       gpointer         target_object,
                                                       const gchar     *target_property,
                                                       GBindingFlags    flags);
+DZL_AVAILABLE_IN_ALL
 void             dzl_state_machine_add_style         (DzlStateMachine *self,
                                                       const gchar     *state,
                                                       GtkWidget       *widget,
                                                       const gchar     *style);
+DZL_AVAILABLE_IN_ALL
 void             dzl_state_machine_connect_object    (DzlStateMachine *self,
                                                       const gchar     *state,
                                                       gpointer         source,
diff --git a/src/suggestions/dzl-suggestion-entry-buffer.h b/src/suggestions/dzl-suggestion-entry-buffer.h
index 4c56a95..4dee343 100644
--- a/src/suggestions/dzl-suggestion-entry-buffer.h
+++ b/src/suggestions/dzl-suggestion-entry-buffer.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "dzl-suggestion.h"
 
 G_BEGIN_DECLS
@@ -39,12 +41,18 @@ struct _DzlSuggestionEntryBufferClass
   gpointer _reserved4;
 };
 
+DZL_AVAILABLE_IN_ALL
 DzlSuggestionEntryBuffer *dzl_suggestion_entry_buffer_new              (void);
+DZL_AVAILABLE_IN_ALL
 DzlSuggestion            *dzl_suggestion_entry_buffer_get_suggestion   (DzlSuggestionEntryBuffer *self);
+DZL_AVAILABLE_IN_ALL
 void                      dzl_suggestion_entry_buffer_set_suggestion   (DzlSuggestionEntryBuffer *self,
                                                                         DzlSuggestion            
*suggestion);
+DZL_AVAILABLE_IN_ALL
 const gchar              *dzl_suggestion_entry_buffer_get_typed_text   (DzlSuggestionEntryBuffer *self);
+DZL_AVAILABLE_IN_ALL
 guint                     dzl_suggestion_entry_buffer_get_typed_length (DzlSuggestionEntryBuffer *self);
+DZL_AVAILABLE_IN_ALL
 void                      dzl_suggestion_entry_buffer_commit           (DzlSuggestionEntryBuffer *self);
 
 G_END_DECLS
diff --git a/src/suggestions/dzl-suggestion-entry.h b/src/suggestions/dzl-suggestion-entry.h
index 0e3b15b..c7bd727 100644
--- a/src/suggestions/dzl-suggestion-entry.h
+++ b/src/suggestions/dzl-suggestion-entry.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "dzl-suggestion.h"
 
 G_BEGIN_DECLS
@@ -69,23 +71,32 @@ struct _DzlSuggestionEntryClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget     *dzl_suggestion_entry_new               (void);
+DZL_AVAILABLE_IN_ALL
 void           dzl_suggestion_entry_set_model         (DzlSuggestionEntry        *self,
                                                        GListModel                *model);
+DZL_AVAILABLE_IN_ALL
 GListModel    *dzl_suggestion_entry_get_model         (DzlSuggestionEntry        *self);
+DZL_AVAILABLE_IN_ALL
 const gchar   *dzl_suggestion_entry_get_typed_text    (DzlSuggestionEntry        *self);
+DZL_AVAILABLE_IN_ALL
 DzlSuggestion *dzl_suggestion_entry_get_suggestion    (DzlSuggestionEntry        *self);
+DZL_AVAILABLE_IN_ALL
 void           dzl_suggestion_entry_set_suggestion    (DzlSuggestionEntry        *self,
                                                        DzlSuggestion             *suggestion);
+DZL_AVAILABLE_IN_ALL
 void           dzl_suggestion_entry_set_position_func (DzlSuggestionEntry        *self,
                                                        DzlSuggestionPositionFunc  func,
                                                        gpointer                   func_data,
                                                        GDestroyNotify             func_data_destroy);
 
+DZL_AVAILABLE_IN_ALL
 void dzl_suggestion_entry_default_position_func (DzlSuggestionEntry *self,
                                                  GdkRectangle       *area,
                                                  gboolean           *is_absolute,
                                                  gpointer            user_data);
+DZL_AVAILABLE_IN_ALL
 void dzl_suggestion_entry_window_position_func  (DzlSuggestionEntry *self,
                                                  GdkRectangle       *area,
                                                  gboolean           *is_absolute,
diff --git a/src/suggestions/dzl-suggestion-popover.h b/src/suggestions/dzl-suggestion-popover.h
index f8c291a..9dcf85b 100644
--- a/src/suggestions/dzl-suggestion-popover.h
+++ b/src/suggestions/dzl-suggestion-popover.h
@@ -22,26 +22,39 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_SUGGESTION_POPOVER (dzl_suggestion_popover_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlSuggestionPopover, dzl_suggestion_popover, DZL, SUGGESTION_POPOVER, GtkWindow)
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget     *dzl_suggestion_popover_new               (void);
+DZL_AVAILABLE_IN_ALL
 GtkWidget     *dzl_suggestion_popover_get_relative_to   (DzlSuggestionPopover *self);
+DZL_AVAILABLE_IN_ALL
 void           dzl_suggestion_popover_set_relative_to   (DzlSuggestionPopover *self,
                                                          GtkWidget            *widget);
+DZL_AVAILABLE_IN_ALL
 void           dzl_suggestion_popover_popup             (DzlSuggestionPopover *self);
+DZL_AVAILABLE_IN_ALL
 void           dzl_suggestion_popover_popdown           (DzlSuggestionPopover *self);
+DZL_AVAILABLE_IN_ALL
 GListModel    *dzl_suggestion_popover_get_model         (DzlSuggestionPopover *self);
+DZL_AVAILABLE_IN_ALL
 void           dzl_suggestion_popover_set_model         (DzlSuggestionPopover *self,
                                                          GListModel           *model);
+DZL_AVAILABLE_IN_ALL
 void           dzl_suggestion_popover_move_by           (DzlSuggestionPopover *self,
                                                          gint                  amount);
+DZL_AVAILABLE_IN_ALL
 DzlSuggestion *dzl_suggestion_popover_get_selected      (DzlSuggestionPopover *self);
+DZL_AVAILABLE_IN_ALL
 void           dzl_suggestion_popover_set_selected      (DzlSuggestionPopover *self,
                                                          DzlSuggestion        *suggestion);
+DZL_AVAILABLE_IN_ALL
 void           dzl_suggestion_popover_activate_selected (DzlSuggestionPopover *self);
 
 G_END_DECLS
diff --git a/src/suggestions/dzl-suggestion-row.h b/src/suggestions/dzl-suggestion-row.h
index 8abf493..7e4a911 100644
--- a/src/suggestions/dzl-suggestion-row.h
+++ b/src/suggestions/dzl-suggestion-row.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "suggestions/dzl-suggestion.h"
 #include "widgets/dzl-list-box-row.h"
 
@@ -40,8 +42,11 @@ struct _DzlSuggestionRowClass
   gpointer _reserved4;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget     *dzl_suggestion_row_new            (void);
+DZL_AVAILABLE_IN_ALL
 DzlSuggestion *dzl_suggestion_row_get_suggestion (DzlSuggestionRow *self);
+DZL_AVAILABLE_IN_ALL
 void           dzl_suggestion_row_set_suggestion (DzlSuggestionRow *self,
                                                   DzlSuggestion    *suggestion);
 
diff --git a/src/suggestions/dzl-suggestion.h b/src/suggestions/dzl-suggestion.h
index f78bb03..bb0248d 100644
--- a/src/suggestions/dzl-suggestion.h
+++ b/src/suggestions/dzl-suggestion.h
@@ -22,6 +22,8 @@
 
 #include <glib-object.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_SUGGESTION (dzl_suggestion_get_type())
@@ -43,21 +45,32 @@ struct _DzlSuggestionClass
   gpointer _reserved4;
 };
 
+DZL_AVAILABLE_IN_ALL
 DzlSuggestion *dzl_suggestion_new                (void);
+DZL_AVAILABLE_IN_ALL
 const gchar   *dzl_suggestion_get_id             (DzlSuggestion *self);
+DZL_AVAILABLE_IN_ALL
 void           dzl_suggestion_set_id             (DzlSuggestion *self,
                                                   const gchar   *id);
+DZL_AVAILABLE_IN_ALL
 const gchar   *dzl_suggestion_get_icon_name      (DzlSuggestion *self);
+DZL_AVAILABLE_IN_ALL
 void           dzl_suggestion_set_icon_name      (DzlSuggestion *self,
                                                   const gchar   *icon_name);
+DZL_AVAILABLE_IN_ALL
 const gchar   *dzl_suggestion_get_title          (DzlSuggestion *self);
+DZL_AVAILABLE_IN_ALL
 void           dzl_suggestion_set_title          (DzlSuggestion *self,
                                                   const gchar   *title);
+DZL_AVAILABLE_IN_ALL
 const gchar   *dzl_suggestion_get_subtitle       (DzlSuggestion *self);
+DZL_AVAILABLE_IN_ALL
 void           dzl_suggestion_set_subtitle       (DzlSuggestion *self,
                                                   const gchar   *subtitle);
+DZL_AVAILABLE_IN_ALL
 gchar         *dzl_suggestion_suggest_suffix     (DzlSuggestion *self,
                                                   const gchar   *typed_text);
+DZL_AVAILABLE_IN_ALL
 gchar         *dzl_suggestion_replace_typed_text (DzlSuggestion *self,
                                                   const gchar   *typed_text);
 
diff --git a/src/theming/dzl-css-provider.h b/src/theming/dzl-css-provider.h
index 02f14e1..ee73b1b 100644
--- a/src/theming/dzl-css-provider.h
+++ b/src/theming/dzl-css-provider.h
@@ -21,12 +21,15 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_CSS_PROVIDER (dzl_css_provider_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlCssProvider, dzl_css_provider, DZL, CSS_PROVIDER, GtkCssProvider)
 
+DZL_AVAILABLE_IN_ALL
 GtkCssProvider *dzl_css_provider_new (const gchar *base_path);
 
 G_END_DECLS
diff --git a/src/theming/dzl-theme-manager.h b/src/theming/dzl-theme-manager.h
index b74a2d5..522f943 100644
--- a/src/theming/dzl-theme-manager.h
+++ b/src/theming/dzl-theme-manager.h
@@ -21,15 +21,20 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_THEME_MANAGER (dzl_theme_manager_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlThemeManager, dzl_theme_manager, DZL, THEME_MANAGER, GObject)
 
+DZL_AVAILABLE_IN_ALL
 DzlThemeManager *dzl_theme_manager_new              (void);
+DZL_AVAILABLE_IN_ALL
 void             dzl_theme_manager_add_resources    (DzlThemeManager *self,
                                                      const gchar     *resource_path);
+DZL_AVAILABLE_IN_ALL
 void             dzl_theme_manager_remove_resources (DzlThemeManager *self,
                                                      const gchar     *resource_path);
 
diff --git a/src/tree/dzl-list-store-adapter.h b/src/tree/dzl-list-store-adapter.h
index 66c98ca..894a6eb 100644
--- a/src/tree/dzl-list-store-adapter.h
+++ b/src/tree/dzl-list-store-adapter.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_LIST_STORE_ADAPTER (dzl_list_store_adapter_get_type())
@@ -32,8 +34,11 @@ struct _DzlListStoreAdapterClass
   GObjectClass parent_class;
 };
 
+DZL_AVAILABLE_IN_ALL
 DzlListStoreAdapter *dzl_list_store_adapter_new       (GListModel          *model);
+DZL_AVAILABLE_IN_ALL
 GListModel          *dzl_list_store_adapter_get_model (DzlListStoreAdapter *self);
+DZL_AVAILABLE_IN_ALL
 void                 dzl_list_store_adapter_set_model (DzlListStoreAdapter *self,
                                                        GListModel          *model);
 
diff --git a/src/tree/dzl-tree-builder.h b/src/tree/dzl-tree-builder.h
index a4a2ec8..554af2c 100644
--- a/src/tree/dzl-tree-builder.h
+++ b/src/tree/dzl-tree-builder.h
@@ -21,6 +21,8 @@
 
 #include <glib-object.h>
 
+#include "dzl-version-macros.h"
+
 #include "tree/dzl-tree-node.h"
 #include "tree/dzl-tree-types.h"
 
@@ -47,6 +49,7 @@ struct _DzlTreeBuilderClass
                                GMenu          *menu);
 };
 
+DZL_AVAILABLE_IN_ALL
 DzlTree *dzl_tree_builder_get_tree (DzlTreeBuilder *builder);
 
 G_END_DECLS
diff --git a/src/tree/dzl-tree-node.h b/src/tree/dzl-tree-node.h
index 85ea2f3..fc6e5c2 100644
--- a/src/tree/dzl-tree-node.h
+++ b/src/tree/dzl-tree-node.h
@@ -19,63 +19,100 @@
 #ifndef DZL_TREE_NODE_H
 #define DZL_TREE_NODE_H
 
+#include "dzl-version-macros.h"
+
 #include "tree/dzl-tree-types.h"
 
 G_BEGIN_DECLS
 
+DZL_AVAILABLE_IN_ALL
 DzlTreeNode    *dzl_tree_node_new                   (void);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_append                (DzlTreeNode            *node,
                                                      DzlTreeNode            *child);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_insert_sorted         (DzlTreeNode            *node,
                                                      DzlTreeNode            *child,
                                                      DzlTreeNodeCompareFunc  compare_func,
                                                      gpointer                user_data);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_tree_node_is_root               (DzlTreeNode            *node);
+DZL_AVAILABLE_IN_ALL
 const gchar    *dzl_tree_node_get_icon_name         (DzlTreeNode            *node);
+DZL_AVAILABLE_IN_ALL
 GObject        *dzl_tree_node_get_item              (DzlTreeNode            *node);
+DZL_AVAILABLE_IN_ALL
 DzlTreeNode    *dzl_tree_node_get_parent            (DzlTreeNode            *node);
+DZL_AVAILABLE_IN_ALL
 GtkTreePath    *dzl_tree_node_get_path              (DzlTreeNode            *node);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_tree_node_get_iter              (DzlTreeNode            *node,
                                                      GtkTreeIter            *iter);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_prepend               (DzlTreeNode            *node,
                                                      DzlTreeNode            *child);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_remove                (DzlTreeNode            *node,
                                                      DzlTreeNode            *child);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_set_icon_name         (DzlTreeNode            *node,
                                                      const gchar            *icon_name);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_set_item              (DzlTreeNode            *node,
                                                      GObject                *item);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_tree_node_expand                (DzlTreeNode            *node,
                                                      gboolean                expand_ancestors);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_collapse              (DzlTreeNode            *node);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_select                (DzlTreeNode            *node);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_get_area              (DzlTreeNode            *node,
                                                      GdkRectangle           *area);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_invalidate            (DzlTreeNode            *node);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_tree_node_get_expanded          (DzlTreeNode            *node);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_show_popover          (DzlTreeNode            *node,
                                                      GtkPopover             *popover);
+DZL_AVAILABLE_IN_ALL
 const gchar    *dzl_tree_node_get_text              (DzlTreeNode            *node);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_set_text              (DzlTreeNode            *node,
                                                      const gchar            *text);
+DZL_AVAILABLE_IN_ALL
 DzlTree        *dzl_tree_node_get_tree              (DzlTreeNode            *node);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_tree_node_get_children_possible (DzlTreeNode            *self);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_set_children_possible (DzlTreeNode            *self,
                                                      gboolean                children_possible);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_tree_node_get_use_markup        (DzlTreeNode            *self);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_set_use_markup        (DzlTreeNode            *self,
                                                      gboolean                use_markup);
+DZL_AVAILABLE_IN_ALL
 GIcon          *dzl_tree_node_get_gicon             (DzlTreeNode            *self);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_add_emblem            (DzlTreeNode            *self,
                                                      const gchar            *emblem_name);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_remove_emblem         (DzlTreeNode            *self,
                                                      const gchar            *emblem_name);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_clear_emblems         (DzlTreeNode            *self);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_tree_node_has_emblem            (DzlTreeNode            *self,
                                                      const gchar            *emblem_name);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_set_emblems           (DzlTreeNode            *self,
                                                      const gchar * const    *emblems);
+DZL_AVAILABLE_IN_ALL
 gboolean        dzl_tree_node_get_use_dim_label     (DzlTreeNode            *self);
+DZL_AVAILABLE_IN_ALL
 void            dzl_tree_node_set_use_dim_label     (DzlTreeNode            *self,
                                                      gboolean                use_dim_label);
 
diff --git a/src/tree/dzl-tree.h b/src/tree/dzl-tree.h
index a311527..a29d71b 100644
--- a/src/tree/dzl-tree.h
+++ b/src/tree/dzl-tree.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "tree/dzl-tree-builder.h"
 #include "tree/dzl-tree-node.h"
 #include "tree/dzl-tree-types.h"
@@ -63,37 +65,54 @@ struct _DzlTreeClass
                           GtkWidget   *widget);
 };
 
+DZL_AVAILABLE_IN_ALL
 void          dzl_tree_add_builder      (DzlTree           *self,
                                          DzlTreeBuilder    *builder);
+DZL_AVAILABLE_IN_ALL
 void          dzl_tree_remove_builder   (DzlTree           *self,
                                          DzlTreeBuilder    *builder);
+DZL_AVAILABLE_IN_ALL
 DzlTreeNode   *dzl_tree_find_item       (DzlTree           *self,
                                          GObject           *item);
+DZL_AVAILABLE_IN_ALL
 DzlTreeNode   *dzl_tree_find_custom     (DzlTree           *self,
                                          GEqualFunc         equal_func,
                                          gpointer           key);
+DZL_AVAILABLE_IN_ALL
 DzlTreeNode   *dzl_tree_get_selected    (DzlTree           *self);
+DZL_AVAILABLE_IN_ALL
 void          dzl_tree_unselect_all     (DzlTree           *self);
+DZL_AVAILABLE_IN_ALL
 void          dzl_tree_rebuild          (DzlTree           *self);
+DZL_AVAILABLE_IN_ALL
 void          dzl_tree_set_root         (DzlTree           *self,
                                          DzlTreeNode       *node);
+DZL_AVAILABLE_IN_ALL
 DzlTreeNode   *dzl_tree_get_root        (DzlTree           *self);
+DZL_AVAILABLE_IN_ALL
 void          dzl_tree_set_show_icons   (DzlTree           *self,
                                          gboolean           show_icons);
+DZL_AVAILABLE_IN_ALL
 gboolean      dzl_tree_get_show_icons   (DzlTree           *self);
+DZL_AVAILABLE_IN_ALL
 void          dzl_tree_scroll_to_node   (DzlTree           *self,
                                          DzlTreeNode       *node);
+DZL_AVAILABLE_IN_ALL
 void          dzl_tree_expand_to_node   (DzlTree           *self,
                                          DzlTreeNode       *node);
+DZL_AVAILABLE_IN_ALL
 DzlTreeNode   *dzl_tree_find_child_node (DzlTree           *self,
                                          DzlTreeNode       *node,
                                          DzlTreeFindFunc    find_func,
                                          gpointer           user_data);
+DZL_AVAILABLE_IN_ALL
 void          dzl_tree_set_filter       (DzlTree           *self,
                                          DzlTreeFilterFunc  filter_func,
                                          gpointer           filter_data,
                                          GDestroyNotify     filter_data_destroy);
+DZL_AVAILABLE_IN_ALL
 GMenuModel   *dzl_tree_get_context_menu (DzlTree           *self);
+DZL_AVAILABLE_IN_ALL
 void          dzl_tree_set_context_menu (DzlTree           *self,
                                          GMenuModel        *context_menu);
 
diff --git a/src/util/dzl-cairo.h b/src/util/dzl-cairo.h
index 6fbbfd3..1afd7c2 100644
--- a/src/util/dzl-cairo.h
+++ b/src/util/dzl-cairo.h
@@ -21,9 +21,13 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
+DZL_AVAILABLE_IN_ALL
 cairo_region_t *dzl_cairo_region_create_from_clip_extents (cairo_t            *cr);
+DZL_AVAILABLE_IN_ALL
 void            dzl_cairo_rounded_rectangle               (cairo_t            *cr,
                                                            const GdkRectangle *rect,
                                                            gint                x_radius,
diff --git a/src/util/dzl-counter.h b/src/util/dzl-counter.h
index fac3992..498b937 100644
--- a/src/util/dzl-counter.h
+++ b/src/util/dzl-counter.h
@@ -24,6 +24,8 @@
 
 #include <glib-object.h>
 
+#include "dzl-version-macros.h"
+
 /*
  * History
  * =======
@@ -270,18 +272,28 @@ struct _DzlCounterValue
   gint64          padding [7];
 } __attribute__ ((aligned(8)));
 
+DZL_AVAILABLE_IN_ALL
 GType            dzl_counter_arena_get_type     (void);
+DZL_AVAILABLE_IN_ALL
 guint            dzl_get_current_cpu_call       (void);
+DZL_AVAILABLE_IN_ALL
 DzlCounterArena *dzl_counter_arena_get_default  (void);
+DZL_AVAILABLE_IN_ALL
 DzlCounterArena *dzl_counter_arena_new_for_pid  (GPid                   pid);
+DZL_AVAILABLE_IN_ALL
 DzlCounterArena *dzl_counter_arena_ref          (DzlCounterArena       *arena);
+DZL_AVAILABLE_IN_ALL
 void             dzl_counter_arena_unref        (DzlCounterArena       *arena);
+DZL_AVAILABLE_IN_ALL
 void             dzl_counter_arena_register     (DzlCounterArena       *arena,
                                                  DzlCounter            *counter);
+DZL_AVAILABLE_IN_ALL
 void             dzl_counter_arena_foreach      (DzlCounterArena       *arena,
                                                  DzlCounterForeachFunc  func,
                                                  gpointer               user_data);
+DZL_AVAILABLE_IN_ALL
 void             dzl_counter_reset              (DzlCounter            *counter);
+DZL_AVAILABLE_IN_ALL
 gint64           dzl_counter_get                (DzlCounter            *counter);
 
 G_END_DECLS
diff --git a/src/util/dzl-date-time.h b/src/util/dzl-date-time.h
index 2229003..c608e12 100644
--- a/src/util/dzl-date-time.h
+++ b/src/util/dzl-date-time.h
@@ -21,10 +21,15 @@
 
 #include <gio/gio.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
+DZL_AVAILABLE_IN_ALL
 gchar       *dzl_g_date_time_format_for_display  (GDateTime      *self);
+DZL_AVAILABLE_IN_ALL
 gchar       *dzl_g_time_span_to_label            (GTimeSpan       span);
+DZL_AVAILABLE_IN_ALL
 gboolean     dzl_g_time_span_to_label_mapping    (GBinding       *binding,
                                                   const GValue   *from_value,
                                                   GValue         *to_value,
diff --git a/src/util/dzl-dnd.h b/src/util/dzl-dnd.h
index 0ef7c9f..c171b98 100644
--- a/src/util/dzl-dnd.h
+++ b/src/util/dzl-dnd.h
@@ -21,8 +21,11 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
+DZL_AVAILABLE_IN_ALL
 gchar **dzl_dnd_get_uri_list (GtkSelectionData *selection_data);
 
 G_END_DECLS
diff --git a/src/util/dzl-file-manager.h b/src/util/dzl-file-manager.h
index b52af03..c8da6b5 100644
--- a/src/util/dzl-file-manager.h
+++ b/src/util/dzl-file-manager.h
@@ -21,8 +21,11 @@
 
 #include <gio/gio.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
+DZL_AVAILABLE_IN_ALL
 gboolean dzl_file_manager_show (GFile   *file,
                                 GError **error);
 
diff --git a/src/util/dzl-gdk.h b/src/util/dzl-gdk.h
index 19d839d..24dfcd7 100644
--- a/src/util/dzl-gdk.h
+++ b/src/util/dzl-gdk.h
@@ -21,10 +21,14 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
+DZL_AVAILABLE_IN_ALL
 GdkEventKey *dzl_gdk_synthesize_event_key    (GdkWindow *window,
                                               gunichar   ch);
+DZL_AVAILABLE_IN_ALL
 GdkEventKey *dzl_gdk_synthesize_event_keyval (GdkWindow *window,
                                               guint      keyval);
 
diff --git a/src/util/dzl-gtk.h b/src/util/dzl-gtk.h
index 4a4f485..cb21b4c 100644
--- a/src/util/dzl-gtk.h
+++ b/src/util/dzl-gtk.h
@@ -21,45 +21,60 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
+DZL_AVAILABLE_IN_ALL
 void          dzl_gtk_widget_action_set              (GtkWidget               *widget,
                                                       const gchar             *group,
                                                       const gchar             *name,
                                                       const gchar             *first_property,
                                                       ...) G_GNUC_NULL_TERMINATED;
+DZL_AVAILABLE_IN_ALL
 gboolean      dzl_gtk_widget_action                  (GtkWidget               *widget,
                                                       const gchar             *group,
                                                       const gchar             *name,
                                                       GVariant                *param);
+DZL_AVAILABLE_IN_ALL
 gboolean      dzl_gtk_widget_action_with_string      (GtkWidget               *widget,
                                                       const gchar             *group,
                                                       const gchar             *name,
                                                       const gchar             *param);
+DZL_AVAILABLE_IN_ALL
 void          dzl_gtk_widget_mux_action_groups       (GtkWidget               *widget,
                                                       GtkWidget               *from_widget,
                                                       const gchar             *mux_key);
+DZL_AVAILABLE_IN_ALL
 void          dzl_gtk_widget_hide_with_fade          (GtkWidget               *widget);
+DZL_AVAILABLE_IN_ALL
 void          dzl_gtk_widget_show_with_fade          (GtkWidget               *widget);
+DZL_AVAILABLE_IN_ALL
 void          dzl_gtk_widget_add_style_class         (GtkWidget               *widget,
                                                       const gchar             *class_name);
+DZL_AVAILABLE_IN_ALL
 void          dzl_gtk_widget_remove_style_class      (GtkWidget               *widget,
                                                       const gchar             *class_name);
+DZL_AVAILABLE_IN_ALL
 gpointer      dzl_gtk_widget_find_child_typed        (GtkWidget               *widget,
                                                       GType                    type);
+DZL_AVAILABLE_IN_ALL
 void          dzl_gtk_text_buffer_remove_tag         (GtkTextBuffer           *buffer,
                                                       GtkTextTag              *tag,
                                                       const GtkTextIter       *start,
                                                       const GtkTextIter       *end,
                                                       gboolean                 minimal_damage);
+DZL_AVAILABLE_IN_ALL
 void          dzl_gtk_list_store_insert_sorted       (GtkListStore            *store,
                                                       GtkTreeIter             *iter,
                                                       gconstpointer            key,
                                                       guint                    compare_column,
                                                       GCompareDataFunc         compare_func,
                                                       gpointer                 compare_data);
+DZL_AVAILABLE_IN_ALL
 GtkWidget    *dzl_gtk_widget_get_relative            (GtkWidget               *widget,
                                                       GType                    relative_type);
+DZL_AVAILABLE_IN_ALL
 gboolean      dzl_gtk_widget_is_ancestor_or_relative (GtkWidget               *widget,
                                                       GtkWidget               *ancestor);
 
diff --git a/src/util/dzl-heap.h b/src/util/dzl-heap.h
index 260594f..fa47550 100644
--- a/src/util/dzl-heap.h
+++ b/src/util/dzl-heap.h
@@ -21,6 +21,8 @@
 
 #include <glib-object.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_HEAP            (dzl_heap_get_type())
@@ -36,16 +38,23 @@ struct _DzlHeap
   gsize  len;
 };
 
+DZL_AVAILABLE_IN_ALL
 GType      dzl_heap_get_type      (void);
+DZL_AVAILABLE_IN_ALL
 DzlHeap   *dzl_heap_new           (guint           element_size,
                                    GCompareFunc    compare_func);
+DZL_AVAILABLE_IN_ALL
 DzlHeap   *dzl_heap_ref           (DzlHeap        *heap);
+DZL_AVAILABLE_IN_ALL
 void       dzl_heap_unref         (DzlHeap        *heap);
+DZL_AVAILABLE_IN_ALL
 void       dzl_heap_insert_vals   (DzlHeap        *heap,
                                    gconstpointer   data,
                                    guint           len);
+DZL_AVAILABLE_IN_ALL
 gboolean   dzl_heap_extract       (DzlHeap        *heap,
                                    gpointer        result);
+DZL_AVAILABLE_IN_ALL
 gboolean   dzl_heap_extract_index (DzlHeap        *heap,
                                    gsize           index_,
                                    gpointer        result);
diff --git a/src/util/dzl-pango.h b/src/util/dzl-pango.h
index 4e22220..8f28029 100644
--- a/src/util/dzl-pango.h
+++ b/src/util/dzl-pango.h
@@ -21,8 +21,11 @@
 
 #include <pango/pango.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
+DZL_AVAILABLE_IN_ALL
 gchar *dzl_pango_font_description_to_css (const PangoFontDescription *font_desc);
 
 G_END_DECLS
diff --git a/src/util/dzl-rgba.h b/src/util/dzl-rgba.h
index c1294b2..0bd3d1b 100644
--- a/src/util/dzl-rgba.h
+++ b/src/util/dzl-rgba.h
@@ -21,8 +21,11 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
+DZL_AVAILABLE_IN_ALL
 void dzl_rgba_shade (const GdkRGBA *rgba,
                      GdkRGBA       *dst,
                      gdouble        k);
diff --git a/src/util/dzl-ring.h b/src/util/dzl-ring.h
index 75fedf3..b6e31ea 100644
--- a/src/util/dzl-ring.h
+++ b/src/util/dzl-ring.h
@@ -21,6 +21,8 @@
 
 #include <glib-object.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 /**
@@ -80,17 +82,23 @@ typedef struct
   /*< private >*/
 } DzlRing;
 
+DZL_AVAILABLE_IN_ALL
 GType    dzl_ring_get_type    (void);
+DZL_AVAILABLE_IN_ALL
 DzlRing *dzl_ring_sized_new   (guint           element_size,
                                guint           reserved_size,
                                GDestroyNotify  element_destroy);
+DZL_AVAILABLE_IN_ALL
 guint    dzl_ring_append_vals (DzlRing         *ring,
                                gconstpointer   data,
                                guint           len);
+DZL_AVAILABLE_IN_ALL
 void     dzl_ring_foreach     (DzlRing         *ring,
                                GFunc           func,
                                gpointer        user_data);
+DZL_AVAILABLE_IN_ALL
 DzlRing *dzl_ring_ref         (DzlRing         *ring);
+DZL_AVAILABLE_IN_ALL
 void     dzl_ring_unref       (DzlRing         *ring);
 
 G_DEFINE_AUTOPTR_CLEANUP_FUNC (DzlRing, dzl_ring_unref)
diff --git a/src/util/dzl-variant.h b/src/util/dzl-variant.h
index 992650f..31f61b2 100644
--- a/src/util/dzl-variant.h
+++ b/src/util/dzl-variant.h
@@ -21,8 +21,11 @@
 
 #include <glib.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
+DZL_AVAILABLE_IN_ALL
 guint dzl_g_variant_hash (gconstpointer data);
 
 G_END_DECLS
diff --git a/src/widgets/dzl-bin.h b/src/widgets/dzl-bin.h
index e88ce45..94326c9 100644
--- a/src/widgets/dzl-bin.h
+++ b/src/widgets/dzl-bin.h
@@ -25,6 +25,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_BIN (dzl_bin_get_type())
@@ -36,6 +38,7 @@ struct _DzlBinClass
   GtkBinClass parent_class;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_bin_new (void);
 
 G_END_DECLS
diff --git a/src/widgets/dzl-bolding-label.h b/src/widgets/dzl-bolding-label.h
index 70a8591..70e1de7 100644
--- a/src/widgets/dzl-bolding-label.h
+++ b/src/widgets/dzl-bolding-label.h
@@ -21,14 +21,18 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_BOLDING_LABEL (dzl_bolding_label_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlBoldingLabel, dzl_bolding_label, DZL, BOLDING_LABEL, GtkLabel)
 
+DZL_AVAILABLE_IN_ALL
 void dzl_bolding_label_set_weight (DzlBoldingLabel *self,
                                    PangoWeight      weight);
+DZL_AVAILABLE_IN_ALL
 void dzl_bolding_label_set_bold   (DzlBoldingLabel *self,
                                    gboolean         bold);
 
diff --git a/src/widgets/dzl-box.h b/src/widgets/dzl-box.h
index 1abc2f2..def0da5 100644
--- a/src/widgets/dzl-box.h
+++ b/src/widgets/dzl-box.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_BOX (dzl_box_get_type())
@@ -32,10 +34,14 @@ struct _DzlBoxClass
   GtkBoxClass parent_class;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_box_new                   (void);
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_box_get_nth_child         (DzlBox    *self,
                                           guint      nth);
+DZL_AVAILABLE_IN_ALL
 gint       dzl_box_get_max_width_request (DzlBox    *self);
+DZL_AVAILABLE_IN_ALL
 void       dzl_box_set_max_width_request (DzlBox    *self,
                                           gint       max_width_request);
 
diff --git a/src/widgets/dzl-centering-bin.h b/src/widgets/dzl-centering-bin.h
index ed5652e..14c455a 100644
--- a/src/widgets/dzl-centering-bin.h
+++ b/src/widgets/dzl-centering-bin.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_CENTERING_BIN (dzl_centering_bin_get_type())
@@ -32,6 +34,7 @@ struct _DzlCenteringBinClass
   GtkBinClass parent;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_centering_bin_new (void);
 
 G_END_DECLS
diff --git a/src/widgets/dzl-column-layout.h b/src/widgets/dzl-column-layout.h
index 15e22f5..e62e683 100644
--- a/src/widgets/dzl-column-layout.h
+++ b/src/widgets/dzl-column-layout.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_COLUMN_LAYOUT (dzl_column_layout_get_type())
@@ -32,17 +34,26 @@ struct _DzlColumnLayoutClass
   GtkContainerClass parent;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_column_layout_new                (void);
+DZL_AVAILABLE_IN_ALL
 guint      dzl_column_layout_get_max_columns    (DzlColumnLayout *self);
+DZL_AVAILABLE_IN_ALL
 void       dzl_column_layout_set_max_columns    (DzlColumnLayout *self,
                                                  guint            max_columns);
+DZL_AVAILABLE_IN_ALL
 gint       dzl_column_layout_get_column_width   (DzlColumnLayout *self);
+DZL_AVAILABLE_IN_ALL
 void       dzl_column_layout_set_column_width   (DzlColumnLayout *self,
                                                  gint             column_width);
+DZL_AVAILABLE_IN_ALL
 gint       dzl_column_layout_get_column_spacing (DzlColumnLayout *self);
+DZL_AVAILABLE_IN_ALL
 void       dzl_column_layout_set_column_spacing (DzlColumnLayout *self,
                                                  gint             column_spacing);
+DZL_AVAILABLE_IN_ALL
 gint       dzl_column_layout_get_row_spacing    (DzlColumnLayout *self);
+DZL_AVAILABLE_IN_ALL
 void       dzl_column_layout_set_row_spacing    (DzlColumnLayout *self,
                                                  gint             row_spacing);
 
diff --git a/src/widgets/dzl-counters-window.h b/src/widgets/dzl-counters-window.h
index 67fc825..6706b86 100644
--- a/src/widgets/dzl-counters-window.h
+++ b/src/widgets/dzl-counters-window.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 #include "util/dzl-counter.h"
 
 G_BEGIN_DECLS
@@ -39,8 +41,11 @@ struct _DzlCountersWindowClass
   gpointer _reserved4;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget       *dzl_counters_window_new       (void);
+DZL_AVAILABLE_IN_ALL
 DzlCounterArena *dzl_counters_window_get_arena (DzlCountersWindow *self);
+DZL_AVAILABLE_IN_ALL
 void             dzl_counters_window_set_arena (DzlCountersWindow *self,
                                                 DzlCounterArena   *arena);
 
diff --git a/src/widgets/dzl-elastic-bin.h b/src/widgets/dzl-elastic-bin.h
index e85de76..0578235 100644
--- a/src/widgets/dzl-elastic-bin.h
+++ b/src/widgets/dzl-elastic-bin.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_ELASTIC_BIN (dzl_elastic_bin_get_type())
@@ -37,6 +39,7 @@ struct _DzlElasticBinClass
   gpointer _reserved4;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_elastic_bin_new (void);
 
 G_END_DECLS
diff --git a/src/widgets/dzl-empty-state.h b/src/widgets/dzl-empty-state.h
index d900103..84c1af9 100644
--- a/src/widgets/dzl-empty-state.h
+++ b/src/widgets/dzl-empty-state.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_EMPTY_STATE (dzl_empty_state_get_type())
@@ -32,16 +34,24 @@ struct _DzlEmptyStateClass
   GtkBinClass parent_class;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget   *dzl_empty_state_new           (void);
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_empty_state_get_icon_name (DzlEmptyState *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_empty_state_set_icon_name (DzlEmptyState *self,
                                             const gchar   *icon_name);
+DZL_AVAILABLE_IN_ALL
 void         dzl_empty_state_set_resource  (DzlEmptyState *self,
                                             const gchar   *resource);
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_empty_state_get_title     (DzlEmptyState *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_empty_state_set_title     (DzlEmptyState *self,
                                             const gchar   *title);
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_empty_state_get_subtitle  (DzlEmptyState *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_empty_state_set_subtitle  (DzlEmptyState *self,
                                             const gchar   *title);
 
diff --git a/src/widgets/dzl-entry-box.h b/src/widgets/dzl-entry-box.h
index 47501d5..30f6b37 100644
--- a/src/widgets/dzl-entry-box.h
+++ b/src/widgets/dzl-entry-box.h
@@ -21,12 +21,15 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_ENTRY_BOX (dzl_entry_box_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlEntryBox, dzl_entry_box, DZL, ENTRY_BOX, GtkBox)
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_entry_box_new (void);
 
 G_END_DECLS
diff --git a/src/widgets/dzl-file-chooser-entry.h b/src/widgets/dzl-file-chooser-entry.h
index 6f5bf30..6117dc8 100644
--- a/src/widgets/dzl-file-chooser-entry.h
+++ b/src/widgets/dzl-file-chooser-entry.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_FILE_CHOOSER_ENTRY (dzl_file_chooser_entry_get_type())
@@ -37,9 +39,12 @@ struct _DzlFileChooserEntryClass
   gpointer _reserved4;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_file_chooser_entry_new      (const gchar          *title,
                                             GtkFileChooserAction  action);
+DZL_AVAILABLE_IN_ALL
 GFile     *dzl_file_chooser_entry_get_file (DzlFileChooserEntry *self);
+DZL_AVAILABLE_IN_ALL
 void       dzl_file_chooser_entry_set_file (DzlFileChooserEntry *self,
                                             GFile               *file);
 
diff --git a/src/widgets/dzl-list-box.h b/src/widgets/dzl-list-box.h
index 41bec34..34de62b 100644
--- a/src/widgets/dzl-list-box.h
+++ b/src/widgets/dzl-list-box.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_LIST_BOX (dzl_list_box_get_type())
@@ -37,11 +39,16 @@ struct _DzlListBoxClass
   gpointer _reserved4;
 };
 
+DZL_AVAILABLE_IN_ALL
 DzlListBox  *dzl_list_box_new               (GType        row_type,
                                              const gchar *property_name);
+DZL_AVAILABLE_IN_ALL
 GType        dzl_list_box_get_row_type      (DzlListBox  *self);
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_list_box_get_property_name (DzlListBox  *self);
+DZL_AVAILABLE_IN_ALL
 GListModel  *dzl_list_box_get_model         (DzlListBox  *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_list_box_set_model         (DzlListBox  *self,
                                              GListModel  *model);
 
diff --git a/src/widgets/dzl-multi-paned.h b/src/widgets/dzl-multi-paned.h
index e1125a0..5a1d148 100644
--- a/src/widgets/dzl-multi-paned.h
+++ b/src/widgets/dzl-multi-paned.h
@@ -26,6 +26,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_MULTI_PANED (dzl_multi_paned_get_type())
@@ -51,8 +53,11 @@ struct _DzlMultiPanedClass
   gpointer _reserved8;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_multi_paned_new            (void);
+DZL_AVAILABLE_IN_ALL
 guint      dzl_multi_paned_get_n_children (DzlMultiPaned *self);
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_multi_paned_get_nth_child  (DzlMultiPaned *self,
                                            guint          nth);
 
diff --git a/src/widgets/dzl-pill-box.h b/src/widgets/dzl-pill-box.h
index 8a4e2d3..2f7c093 100644
--- a/src/widgets/dzl-pill-box.h
+++ b/src/widgets/dzl-pill-box.h
@@ -21,14 +21,19 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_PILL_BOX (dzl_pill_box_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlPillBox, dzl_pill_box, DZL, PILL_BOX, GtkEventBox)
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget   *dzl_pill_box_new       (const gchar *label);
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_pill_box_get_label (DzlPillBox  *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_pill_box_set_label (DzlPillBox  *self,
                                      const gchar *label);
 
diff --git a/src/widgets/dzl-priority-box.h b/src/widgets/dzl-priority-box.h
index d1ce33d..35bf14f 100644
--- a/src/widgets/dzl-priority-box.h
+++ b/src/widgets/dzl-priority-box.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_PRIORITY_BOX (dzl_priority_box_get_type())
@@ -37,6 +39,7 @@ struct _DzlPriorityBoxClass
   gpointer _reserved4;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_priority_box_new (void);
 
 G_END_DECLS
diff --git a/src/widgets/dzl-progress-button.h b/src/widgets/dzl-progress-button.h
index 22a1d1c..bf9afab 100644
--- a/src/widgets/dzl-progress-button.h
+++ b/src/widgets/dzl-progress-button.h
@@ -23,6 +23,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_PROGRESS_BUTTON (dzl_progress_button_get_type ())
@@ -39,11 +41,16 @@ struct _DzlProgressButtonClass
   gpointer _reserved4;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget      *dzl_progress_button_new               (void);
+DZL_AVAILABLE_IN_ALL
 guint      dzl_progress_button_get_progress      (DzlProgressButton *self);
+DZL_AVAILABLE_IN_ALL
 void       dzl_progress_button_set_progress         (DzlProgressButton *button,
                                                   guint              percentage);
+DZL_AVAILABLE_IN_ALL
 gboolean   dzl_progress_button_get_show_progress (DzlProgressButton *self);
+DZL_AVAILABLE_IN_ALL
 void       dzl_progress_button_set_show_progress (DzlProgressButton *button,
                                                                                                              
                                                                  gboolean           show_progress);
 
diff --git a/src/widgets/dzl-progress-icon.h b/src/widgets/dzl-progress-icon.h
index ef8e015..040b8e3 100644
--- a/src/widgets/dzl-progress-icon.h
+++ b/src/widgets/dzl-progress-icon.h
@@ -21,14 +21,19 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_PROGRESS_ICON (dzl_progress_icon_get_type())
 
 G_DECLARE_FINAL_TYPE (DzlProgressIcon, dzl_progress_icon, DZL, PROGRESS_ICON, GtkDrawingArea)
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_progress_icon_new          (void);
+DZL_AVAILABLE_IN_ALL
 gdouble    dzl_progress_icon_get_progress (DzlProgressIcon *self);
+DZL_AVAILABLE_IN_ALL
 void       dzl_progress_icon_set_progress (DzlProgressIcon *self,
                                            gdouble          progress);
 
diff --git a/src/widgets/dzl-progress-menu-button.h b/src/widgets/dzl-progress-menu-button.h
index 7419417..37985ba 100644
--- a/src/widgets/dzl-progress-menu-button.h
+++ b/src/widgets/dzl-progress-menu-button.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_PROGRESS_MENU_BUTTON (dzl_progress_menu_button_get_type())
@@ -37,13 +39,19 @@ struct _DzlProgressMenuButtonClass
   gpointer _reserved4;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_progress_menu_button_new               (void);
+DZL_AVAILABLE_IN_ALL
 gdouble    dzl_progress_menu_button_get_progress      (DzlProgressMenuButton *button);
+DZL_AVAILABLE_IN_ALL
 void       dzl_progress_menu_button_set_progress      (DzlProgressMenuButton *button,
                                                        gdouble                progress);
+DZL_AVAILABLE_IN_ALL
 gboolean   dzl_progress_menu_button_get_show_theatric (DzlProgressMenuButton *self);
+DZL_AVAILABLE_IN_ALL
 void       dzl_progress_menu_button_set_show_theatric (DzlProgressMenuButton *self,
                                                        gboolean               show_theatic);
+DZL_AVAILABLE_IN_ALL
 void       dzl_progress_menu_button_reset_theatrics   (DzlProgressMenuButton *self);
 
 G_END_DECLS
diff --git a/src/widgets/dzl-radio-box.h b/src/widgets/dzl-radio-box.h
index d1242ea..321a154 100644
--- a/src/widgets/dzl-radio-box.h
+++ b/src/widgets/dzl-radio-box.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_RADIO_BOX (dzl_radio_box_get_type())
@@ -37,11 +39,15 @@ struct _DzlRadioBoxClass
   gpointer _padding4;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget   *dzl_radio_box_new           (void);
+DZL_AVAILABLE_IN_ALL
 void         dzl_radio_box_add_item      (DzlRadioBox *self,
                                           const gchar *id,
                                           const gchar *text);
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_radio_box_get_active_id (DzlRadioBox *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_radio_box_set_active_id (DzlRadioBox *self,
                                           const gchar *id);
 
diff --git a/src/widgets/dzl-search-bar.h b/src/widgets/dzl-search-bar.h
index 72d79d6..0457a04 100644
--- a/src/widgets/dzl-search-bar.h
+++ b/src/widgets/dzl-search-bar.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_SEARCH_BAR (dzl_search_bar_get_type())
@@ -32,13 +34,19 @@ struct _DzlSearchBarClass
   GtkBinClass parent_class;
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_search_bar_new                     (void);
+DZL_AVAILABLE_IN_ALL
 gboolean   dzl_search_bar_get_search_mode_enabled (DzlSearchBar *self);
+DZL_AVAILABLE_IN_ALL
 void       dzl_search_bar_set_search_mode_enabled (DzlSearchBar *self,
                                                    gboolean      search_mode_enabled);
+DZL_AVAILABLE_IN_ALL
 gboolean   dzl_search_bar_get_show_close_button   (DzlSearchBar *self);
+DZL_AVAILABLE_IN_ALL
 void       dzl_search_bar_set_show_close_button   (DzlSearchBar *self,
                                                    gboolean      show_close_button);
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_search_bar_get_entry               (DzlSearchBar *self);
 
 G_END_DECLS
diff --git a/src/widgets/dzl-simple-label.h b/src/widgets/dzl-simple-label.h
index 82622c0..d724198 100644
--- a/src/widgets/dzl-simple-label.h
+++ b/src/widgets/dzl-simple-label.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 /*
@@ -34,14 +36,21 @@ G_BEGIN_DECLS
 
 G_DECLARE_FINAL_TYPE (DzlSimpleLabel, dzl_simple_label, DZL, SIMPLE_LABEL, GtkWidget)
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget   *dzl_simple_label_new             (const gchar    *label);
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_simple_label_get_label       (DzlSimpleLabel *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_simple_label_set_label       (DzlSimpleLabel *self,
                                                const gchar    *label);
+DZL_AVAILABLE_IN_ALL
 gint         dzl_simple_label_get_width_chars (DzlSimpleLabel *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_simple_label_set_width_chars (DzlSimpleLabel *self,
                                                gint            width_chars);
+DZL_AVAILABLE_IN_ALL
 gfloat       dzl_simple_label_get_xalign      (DzlSimpleLabel *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_simple_label_set_xalign      (DzlSimpleLabel *self,
                                                gfloat          xalign);
 
diff --git a/src/widgets/dzl-simple-popover.h b/src/widgets/dzl-simple-popover.h
index f4286a9..b426b84 100644
--- a/src/widgets/dzl-simple-popover.h
+++ b/src/widgets/dzl-simple-popover.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_SIMPLE_POPOVER (dzl_simple_popover_get_type())
@@ -68,20 +70,31 @@ struct _DzlSimplePopoverClass
   void (*changed) (DzlSimplePopover *self);
 };
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget   *dzl_simple_popover_new             (void);
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_simple_popover_get_text        (DzlSimplePopover *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_simple_popover_set_text        (DzlSimplePopover *self,
                                                  const gchar     *text);
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_simple_popover_get_message     (DzlSimplePopover *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_simple_popover_set_message     (DzlSimplePopover *self,
                                                  const gchar     *message);
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_simple_popover_get_title       (DzlSimplePopover *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_simple_popover_set_title       (DzlSimplePopover *self,
                                                  const gchar     *title);
+DZL_AVAILABLE_IN_ALL
 const gchar *dzl_simple_popover_get_button_text (DzlSimplePopover *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_simple_popover_set_button_text (DzlSimplePopover *self,
                                                  const gchar     *button_text);
+DZL_AVAILABLE_IN_ALL
 gboolean     dzl_simple_popover_get_ready       (DzlSimplePopover *self);
+DZL_AVAILABLE_IN_ALL
 void         dzl_simple_popover_set_ready       (DzlSimplePopover *self,
                                                  gboolean         ready);
 
diff --git a/src/widgets/dzl-slider.h b/src/widgets/dzl-slider.h
index c484d21..fe25146 100644
--- a/src/widgets/dzl-slider.h
+++ b/src/widgets/dzl-slider.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_SLIDER          (dzl_slider_get_type())
@@ -42,12 +44,17 @@ struct _DzlSliderClass
   GtkContainerClass parent_instance;
 };
 
+DZL_AVAILABLE_IN_ALL
 GType              dzl_slider_position_get_type (void);
+DZL_AVAILABLE_IN_ALL
 GtkWidget         *dzl_slider_new               (void);
+DZL_AVAILABLE_IN_ALL
 void               dzl_slider_add_slider        (DzlSlider         *self,
                                                  GtkWidget         *widget,
                                                  DzlSliderPosition  position);
+DZL_AVAILABLE_IN_ALL
 DzlSliderPosition  dzl_slider_get_position      (DzlSlider         *self);
+DZL_AVAILABLE_IN_ALL
 void               dzl_slider_set_position      (DzlSlider         *self,
                                                  DzlSliderPosition  position);
 
diff --git a/src/widgets/dzl-stack-list.h b/src/widgets/dzl-stack-list.h
index 1d42bca..5f5e6fa 100644
--- a/src/widgets/dzl-stack-list.h
+++ b/src/widgets/dzl-stack-list.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_STACK_LIST (dzl_stack_list_get_type())
@@ -49,16 +51,22 @@ struct _DzlStackListClass
 typedef GtkWidget *(*DzlStackListCreateWidgetFunc) (gpointer item,
                                                     gpointer user_data);
 
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_stack_list_new        (void);
+DZL_AVAILABLE_IN_ALL
 void       dzl_stack_list_push       (DzlStackList                  *self,
                                       GtkWidget                     *header,
                                       GListModel                    *model,
                                       DzlStackListCreateWidgetFunc   create_widget_func,
                                       gpointer                       user_data,
                                       GDestroyNotify                 user_data_free_func);
+DZL_AVAILABLE_IN_ALL
 void        dzl_stack_list_pop       (DzlStackList                  *self);
+DZL_AVAILABLE_IN_ALL
 GListModel *dzl_stack_list_get_model (DzlStackList                  *self);
+DZL_AVAILABLE_IN_ALL
 guint       dzl_stack_list_get_depth (DzlStackList                  *self);
+DZL_AVAILABLE_IN_ALL
 void        dzl_stack_list_clear     (DzlStackList                  *self);
 
 G_END_DECLS
diff --git a/src/widgets/dzl-three-grid.h b/src/widgets/dzl-three-grid.h
index 37cbb0c..2b2946c 100644
--- a/src/widgets/dzl-three-grid.h
+++ b/src/widgets/dzl-three-grid.h
@@ -21,6 +21,8 @@
 
 #include <gtk/gtk.h>
 
+#include "dzl-version-macros.h"
+
 G_BEGIN_DECLS
 
 #define DZL_TYPE_THREE_GRID        (dzl_three_grid_get_type())
@@ -49,7 +51,9 @@ typedef enum
   DZL_THREE_GRID_COLUMN_RIGHT
 } DzlThreeGridColumn;
 
+DZL_AVAILABLE_IN_ALL
 GType      dzl_three_grid_column_get_type (void);
+DZL_AVAILABLE_IN_ALL
 GtkWidget *dzl_three_grid_new             (void);
 
 G_END_DECLS


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]