/* dzl-preferences.h * * Copyright (C) 2015-2017 Christian Hergert * * 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 . */ #ifndef DZL_PREFERENCES_H #define DZL_PREFERENCES_H #include #include "dzl-version-macros.h" G_BEGIN_DECLS #define DZL_TYPE_PREFERENCES (dzl_preferences_get_type()) DZL_AVAILABLE_IN_ALL G_DECLARE_INTERFACE (DzlPreferences, dzl_preferences, DZL, PREFERENCES, GObject) struct _DzlPreferencesInterface { GTypeInterface parent_interface; void (*set_page) (DzlPreferences *self, const gchar *page_name, GHashTable *map); void (*add_page) (DzlPreferences *self, const gchar *page_name, const gchar *title, gint priority); void (*add_group) (DzlPreferences *self, const gchar *page_name, const gchar *group_name, const gchar *title, gint priority); void (*add_list_group) (DzlPreferences *self, const gchar *page_name, const gchar *group_name, const gchar *title, GtkSelectionMode mode, gint priority); guint (*add_radio) (DzlPreferences *self, const gchar *page_name, const gchar *group_name, const gchar *schema_id, const gchar *key, const gchar *path, const gchar *variant_string, const gchar *title, const gchar *subtitle, const gchar *keywords, gint priority); guint (*add_font_button) (DzlPreferences *self, const gchar *page_name, const gchar *group_name, const gchar *schema_id, const gchar *key, const gchar *title, const gchar *keywords, gint priority); guint (*add_switch) (DzlPreferences *self, const gchar *page_name, const gchar *group_name, const gchar *schema_id, const gchar *key, const gchar *path, const gchar *variant_string, const gchar *title, const gchar *subtitle, const gchar *keywords, gint priority); guint (*add_spin_button) (DzlPreferences *self, const gchar *page_name, const gchar *group_name, const gchar *schema_id, const gchar *key, const gchar *path, const gchar *title, const gchar *subtitle, const gchar *keywords, gint priority); guint (*add_file_chooser) (DzlPreferences *self, const gchar *page_name, const gchar *group_name, const gchar *schema_id, const gchar *key, const gchar *path, const gchar *title, const gchar *subtitle, GtkFileChooserAction action, const gchar *keywords, gint priority); guint (*add_custom) (DzlPreferences *self, const gchar *page_name, const gchar *group_name, GtkWidget *widget, const gchar *keywords, gint priority); gboolean (*remove_id) (DzlPreferences *self, guint widget_id); GtkWidget *(*get_widget) (DzlPreferences *self, 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, const gchar *schema_id, const gchar *key, const gchar *path, const gchar *variant_string, const gchar *title, 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, const gchar *schema_id, const gchar *key, const gchar *path, const gchar *variant_string, const gchar *title, 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, const gchar *schema_id, const gchar *key, const gchar *path, const gchar *title, 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, const gchar *schema_id, const gchar *key, 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, const gchar *schema_id, const gchar *key, const gchar *path, const gchar *title, const gchar *subtitle, 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); G_END_DECLS #endif /* DZL_PREFERENCES_H */