diff --git a/.gitignore b/.gitignore
index 10efba54..62bc73a8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -87,9 +87,13 @@ data/org.gnome.Calendar.search-provider.ini.in
data/org.gnome.Calendar.service
data/appdata/org.gnome.Calendar.appdata.xml
src/gcal-debug.h
-tags
+tags*
src/tags
src/views/tags
src/views/.dirstamp
*.goutputstream*
-tags*
+gtk-doc.make
+doc/reference/xml
+doc/reference/html
+doc/reference/*.stamp
+doc/reference/version.xml
diff --git a/Makefile.am b/Makefile.am
index f99b9829..17cbfd7d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,5 @@
-SUBDIRS = src data po
-DIST_SUBDIRS = src data po
+SUBDIRS = src data po doc
+DIST_SUBDIRS = src data po doc
INTLTOOL_FILES = \
intltool-extract.in \
@@ -21,7 +21,9 @@ DISTCLEANFILES = \
intltool-update \
po/.intltool-merge-cache
-DISTCHECK_CONFIGURE_FLAGS = --enable-appstream-util
+DISTCHECK_CONFIGURE_FLAGS = \
+ --enable-appstream-util \
+ --disable-gtk-doc
# Remove doc directory on uninstall
uninstall-local:
diff --git a/autogen.sh b/autogen.sh
index 96b5d8d5..5d7e02fd 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -9,6 +9,7 @@ olddir=`pwd`
cd $srcdir
mkdir -p m4
+gtkdocize || exit 1
autoreconf --verbose --force --install || exit $?
intltoolize --force --copy --automake || exit $?
diff --git a/configure.ac b/configure.ac
index cb8ad351..92dc0c80 100644
--- a/configure.ac
+++ b/configure.ac
@@ -123,6 +123,18 @@ AC_SUBST(DEBUG_CFLAGS)
BUGREPORT_URL=calendar_bugreport_url
AC_SUBST(BUGREPORT_URL)
+dnl ================================================================
+dnl Documentation
+dnl ================================================================
+GTK_DOC_CHECK([1.14],[--flavour no-tmpl])
+AM_CONDITIONAL(ENABLE_GTK_DOC, test "x$enable_gtk_doc" = "xyes")
+AC_ARG_ENABLE(doc-cross-references,
+ AS_HELP_STRING([--disable-doc-cross-references],
+ [cross reference symbols from other libraries @<:@default=yes@:>@]),
+ enable_doc_cross_references=$enableval,
+ enable_doc_cross_references=yes)
+AM_CONDITIONAL(ENABLE_DOC_CROSS_REFERENCES, test x$enable_doc_cross_references != xno)
+
dnl ================================================================
dnl Misc
dnl ================================================================
@@ -163,6 +175,9 @@ AC_CONFIG_FILES([
data/org.gnome.Calendar.desktop.in
data/org.gnome.Calendar.search-provider.ini.in
data/icons/Makefile
+ doc/Makefile
+ doc/reference/Makefile
+ doc/reference/version.xml
po/Makefile.in
])
@@ -181,6 +196,7 @@ echo "
Development options
Enable Debug ..................... ${enable_debug}
Enable Tracing ................... ${enable_tracing}
+ Enable Documentation ............. ${enable_gtk_doc}
Now type 'make' to build $PACKAGE
"
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 00000000..f3ddc22d
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = reference
diff --git a/doc/reference/Makefile.am b/doc/reference/Makefile.am
new file mode 100644
index 00000000..74373178
--- /dev/null
+++ b/doc/reference/Makefile.am
@@ -0,0 +1,108 @@
+## Process this file with automake to produce Makefile.in
+
+# see /gtk-doc/examples/Makefile.am
+
+# We require automake 1.6 at least.
+AUTOMAKE_OPTIONS = 1.6
+
+# The name of the module, e.g. 'glib'.
+DOC_MODULE=gnome-calendar
+
+# The top-level SGML file. You can change this if you want to.
+DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
+
+# The directory containing the source code. Relative to $(srcdir).
+# gtk-doc will search all .c & .h files beneath here for inline comments
+# documenting the functions and macros.
+DOC_SOURCE_DIR=$(top_srcdir)/src
+
+# Extra options to pass to gtkdoc-scangobj. Not normally needed.
+SCANGOBJ_OPTIONS=
+
+# Extra options to supply to gtkdoc-scan.
+# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
+SCAN_OPTIONS=--rebuild-types
+
+# Extra options to supply to gtkdoc-mkdb.
+MKDB_OPTIONS=--sgml-mode --output-format=xml
+
+# Extra options to supply to gtkdoc-mktmpl
+# e.g. MKTMPL_OPTIONS=--only-section-tmpl
+MKTMPL_OPTIONS=
+
+if ENABLE_DOC_CROSS_REFERENCES
+# Extra options to supply to gtkdoc-fixref. Not normally needed.
+# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
+FIXXREF_OPTIONS = \
+ --extra-dir=$(GTK_PREFIX)/share/gtk-doc/html/evolution-data-server \
+ --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/glib \
+ --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gobject \
+ --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gio \
+ --extra-dir=$(GTK_PREFIX)/share/gtk-doc/html/gdk \
+ --extra-dir=$(GTK_PREFIX)/share/gtk-doc/html/gtk
+endif
+
+# Used for dependencies. The docs will be rebuilt if any of these change.
+HFILE_GLOB = \
+ $(top_srcdir)/src/gcal*.h \
+ $(top_srcdir)/src/*/gcal-*.h \
+ $(NULL)
+CFILE_GLOB = \
+ $(top_srcdir)/src/gcal*.c \
+ $(top_srcdir)/src/*/gcal-*.c \
+ $(NULL)
+
+# Header files to ignore when scanning.
+IGNORE_HFILES = $(NULL)
+
+# Images to copy into HTML directory.
+HTML_IMAGES = \
+ images/gcal-edit-dialog.png \
+ images/gcal-event-widget.png \
+ images/gcal-source-dialog.png \
+ images/gcal-window.png \
+ images/gcal-window_agendas.png \
+ $(NULL)
+
+# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
+# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
+content_files = version.xml
+
+# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
+# These files must be listed here *and* in content_files
+# e.g. expand_content_files=running.sgml
+expand_content_files=
+
+# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
+# Only needed if you are using gtkdoc-scangobj to dynamically query widget
+# signals and properties.
+GTKDOC_CFLAGS = \
+ -I$(top_srcdir)/src \
+ -I$(top_builddir)/src \
+ $(CALENDAR_CFLAGS)
+
+GTKDOC_LIBS = \
+ $(CALENDAR_LIBS) \
+ $(top_builddir)/src/libgcal.la
+
+# This includes the standard gtk-doc make rules, copied by gtkdocize.
+include $(top_srcdir)/gtk-doc.make
+
+# Other files to distribute
+EXTRA_DIST += version.xml.in
+
+
+if ENABLE_GTK_DOC
+
+TESTS_ENVIRONMENT = \
+ SRCDIR=$(abs_srcdir) \
+ BUILDDIR=$(abs_builddir) \
+ DOC_MODULE=$(DOC_MODULE) \
+ DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE)
+
+check-local: $(GTKDOC_CHECK)
+ @$(TESTS_ENVIRONMENT) ./$(GTKDOC_CHECK)
+
+endif
+
+-include $(top_srcdir)/git.mk
diff --git a/doc/reference/gnome-calendar-decl-list.txt b/doc/reference/gnome-calendar-decl-list.txt
new file mode 100644
index 00000000..bdf45148
--- /dev/null
+++ b/doc/reference/gnome-calendar-decl-list.txt
@@ -0,0 +1,549 @@
+
+css-code
+CSS_TEMPLATE
+
+
+
+e-cal-data-model
+ECalDataModel
+ECalDataModelViewState
+EThreadJobFunc
+e_cal_data_model_new
+e_cal_data_model_new_clone
+e_cal_data_model_submit_thread_job
+e_cal_data_model_get_disposing
+e_cal_data_model_set_disposing
+e_cal_data_model_get_expand_recurrences
+e_cal_data_model_set_expand_recurrences
+e_cal_data_model_get_timezone
+e_cal_data_model_set_timezone
+e_cal_data_model_set_filter
+e_cal_data_model_dup_filter
+e_cal_data_model_add_client
+e_cal_data_model_remove_client
+e_cal_data_model_ref_client
+e_cal_data_model_get_clients
+e_cal_data_model_get_components
+ECalDataModelForeachFunc
+e_cal_data_model_foreach_component
+e_cal_data_model_subscribe
+e_cal_data_model_unsubscribe
+e_cal_data_model_get_subscriber_range
+e_cal_data_model_freeze_views_update
+e_cal_data_model_thaw_views_update
+e_cal_data_model_is_views_update_frozen
+
+ECalDataModel
+ECalDataModelClass
+ECalDataModelPrivate
+E_CAL_DATA_MODEL
+E_CAL_DATA_MODEL_CLASS
+E_CAL_DATA_MODEL_GET_CLASS
+E_IS_CAL_DATA_MODEL
+E_IS_CAL_DATA_MODEL_CLASS
+E_TYPE_CAL_DATA_MODEL
+e_cal_data_model_get_type
+
+
+
+e-cal-data-model-subscriber
+ECalDataModelSubscriber
+e_cal_data_model_subscriber_component_added
+e_cal_data_model_subscriber_component_modified
+e_cal_data_model_subscriber_component_removed
+e_cal_data_model_subscriber_freeze
+e_cal_data_model_subscriber_thaw
+
+ECalDataModelSubscriber
+ECalDataModelSubscriberInterface
+E_CAL_DATA_MODEL_SUBSCRIBER
+E_CAL_DATA_MODEL_SUBSCRIBER_GET_INTERFACE
+E_CAL_DATA_MODEL_SUBSCRIBER_INTERFACE
+E_IS_CAL_DATA_MODEL_SUBSCRIBER
+E_IS_CAL_DATA_MODEL_SUBSCRIBER_INTERFACE
+E_TYPE_CAL_DATA_MODEL_SUBSCRIBER
+e_cal_data_model_subscriber_get_type
+
+
+
+gcal-application
+GCAL_TYPE_APPLICATION
+gcal_application_new
+gcal_application_get_manager
+gcal_application_get_settings
+gcal_application_set_uuid
+gcal_application_set_initial_date
+GcalApplication
+
+
+
+gcal-date-chooser
+GcalDateChooserDayOptions
+GCAL_TYPE_DATE_CHOOSER
+GcalDateChooserDayOptionsCallback
+gcal_date_chooser_new
+gcal_date_chooser_get_date
+gcal_date_chooser_set_date
+gcal_date_chooser_set_day_options_callback
+gcal_date_chooser_invalidate_day_options
+gcal_date_chooser_get_no_month_change
+gcal_date_chooser_set_no_month_change
+gcal_date_chooser_get_show_heading
+gcal_date_chooser_set_show_heading
+gcal_date_chooser_get_show_day_names
+gcal_date_chooser_set_show_day_names
+gcal_date_chooser_get_show_week_numbers
+gcal_date_chooser_set_show_week_numbers
+GcalDateChooser
+
+
+
+gcal-date-chooser-day
+GCAL_TYPE_DATE_CHOOSER_DAY
+gcal_date_chooser_day_new
+gcal_date_chooser_day_get_date
+gcal_date_chooser_day_set_date
+gcal_date_chooser_day_set_other_month
+gcal_date_chooser_day_set_selected
+gcal_date_chooser_day_set_options
+GcalDateChooserDay
+
+
+
+gcal-date-selector
+GCAL_TYPE_DATE_SELECTOR
+gcal_date_selector_new
+gcal_date_selector_get_date
+gcal_date_selector_set_date
+GcalDateSelector
+
+
+
+gcal-debug
+GCAL_ENABLE_TRACE
+GCAL_LOG_LEVEL_TRACE
+GCAL_TRACE_MSG
+GCAL_PROBE
+GCAL_TODO
+GCAL_ENTRY
+GCAL_EXIT
+GCAL_GOTO
+GCAL_RETURN
+GCAL_BUG
+
+
+
+gcal-edit-dialog
+GCAL_RESPONSE_DELETE_EVENT
+GCAL_RESPONSE_SAVE_EVENT
+GCAL_RESPONSE_CREATE_EVENT
+GCAL_TYPE_EDIT_DIALOG
+gcal_edit_dialog_new
+gcal_edit_dialog_set_event_is_new
+gcal_edit_dialog_get_event
+gcal_edit_dialog_set_event
+gcal_edit_dialog_set_manager
+gcal_edit_dialog_set_time_format
+gcal_edit_dialog_get_date_end
+gcal_edit_dialog_get_date_start
+GcalEditDialog
+
+
+
+gcal-enum-types
+
+GCAL_WINDOW_VIEW_TYPE
+gcal_window_view_type_get_type
+
+
+
+gcal-event
+GcalEventError
+GCAL_EVENT_ERROR
+GCAL_TYPE_EVENT
+gcal_event_error_quark
+gcal_event_new
+gcal_event_get_all_day
+gcal_event_set_all_day
+gcal_event_get_color
+gcal_event_set_color
+gcal_event_get_component
+gcal_event_get_date_end
+gcal_event_set_date_end
+gcal_event_get_date_start
+gcal_event_set_date_start
+gcal_event_get_description
+gcal_event_set_description
+gcal_event_has_alarms
+gcal_event_get_alarms
+gcal_event_add_alarm
+gcal_event_remove_alarm
+gcal_event_get_location
+gcal_event_set_location
+gcal_event_get_source
+gcal_event_set_source
+gcal_event_get_summary
+gcal_event_set_summary
+gcal_event_get_timezone
+gcal_event_set_timezone
+gcal_event_get_uid
+gcal_event_is_multiday
+gcal_event_compare
+gcal_event_compare_with_current
+GcalEvent
+
+
+
+gcal-event-widget
+GCAL_TYPE_EVENT_WIDGET
+gcal_event_widget_new
+gcal_event_widget_get_event
+gcal_event_widget_get_date_start
+gcal_event_widget_set_date_start
+gcal_event_widget_get_date_end
+gcal_event_widget_set_date_end
+gcal_event_widget_set_read_only
+gcal_event_widget_get_read_only
+gcal_event_widget_set_has_reminders
+gcal_event_widget_get_has_reminders
+gcal_event_widget_clone
+gcal_event_widget_equal
+gcal_event_widget_compare_by_length
+gcal_event_widget_compare_by_start_date
+GcalEventWidget
+
+
+
+gcal-log
+gcal_log_init
+
+
+
+gcal-manager
+GCAL_TYPE_MANAGER
+gcal_manager_new_with_settings
+gcal_manager_get_source
+gcal_manager_get_sources
+gcal_manager_get_sources_connected
+gcal_manager_get_default_source
+gcal_manager_set_default_source
+gcal_manager_get_system_timezone
+gcal_manager_set_subscriber
+gcal_manager_set_search_subscriber
+gcal_manager_set_query
+gcal_manager_query_client_data
+gcal_manager_refresh
+gcal_manager_is_client_writable
+gcal_manager_create_event
+gcal_manager_update_event
+gcal_manager_remove_event
+gcal_manager_move_event_to_source
+gcal_manager_add_source
+gcal_manager_enable_source
+gcal_manager_disable_source
+gcal_manager_save_source
+gcal_manager_get_events
+gcal_manager_get_loading
+gcal_manager_get_goa_client
+gcal_manager_get_event_from_shell_search
+gcal_manager_setup_shell_search
+gcal_manager_set_shell_search_query
+gcal_manager_set_shell_search_subscriber
+gcal_manager_shell_search_done
+gcal_manager_get_shell_search_events
+GcalManager
+
+
+
+gcal-month-view
+GCAL_TYPE_MONTH_VIEW
+gcal_month_view_set_first_weekday
+gcal_month_view_set_use_24h_format
+gcal_month_view_set_manager
+GcalMonthView
+
+
+
+gcal-multi-choice
+GCAL_TYPE_MULTI_CHOICE
+gcal_multi_choice_new
+gcal_multi_choice_get_value
+gcal_multi_choice_set_value
+gcal_multi_choice_set_choices
+GcalMultiChoiceFormatCallback
+gcal_multi_choice_set_format_callback
+GcalMultiChoice
+
+
+
+gcal-quick-add-popover
+GCAL_TYPE_QUICK_ADD_POPOVER
+gcal_quick_add_popover_new
+gcal_quick_add_popover_set_manager
+gcal_quick_add_popover_get_date_start
+gcal_quick_add_popover_set_date_start
+gcal_quick_add_popover_get_date_end
+gcal_quick_add_popover_set_date_end
+GcalQuickAddPopover
+
+
+
+gcal-range-tree
+GcalRangeTraverseFunc
+gcal_range_tree_new
+gcal_range_tree_copy
+gcal_range_tree_ref
+gcal_range_tree_unref
+gcal_range_tree_add_range
+gcal_range_tree_remove_range
+gcal_range_tree_traverse
+gcal_range_tree_get_data_at_range
+gcal_range_tree_count_entries_at_range
+
+GCAL_TYPE_RANGE_TREE
+GcalRangeTree
+gcal_range_tree_get_type
+
+
+
+gcal-resources
+calendar_get_resource
+
+
+
+gcal-search-view
+GCAL_TYPE_SEARCH_VIEW
+gcal_search_view_set_time_format
+gcal_search_view_search
+gcal_search_view_new
+gcal_search_view_connect
+GcalSearchView
+
+
+
+gcal-shell-search-provider
+GcalShellSearchProvider
+GCAL_TYPE_SHELL_SEARCH_PROVIDER
+GcalShellSearchProviderClass
+gcal_shell_search_provider_new
+gcal_shell_search_provider_dbus_export
+gcal_shell_search_provider_dbus_unexport
+gcal_shell_search_provider_connect
+GcalShellSearchProvider
+
+
+
+gcal-shell-search-provider-generated
+GcalShellSearchProvider2Skeleton
+gcal_shell_search_provider2_interface_info
+gcal_shell_search_provider2_override_properties
+gcal_shell_search_provider2_complete_get_initial_result_set
+gcal_shell_search_provider2_complete_get_subsearch_result_set
+gcal_shell_search_provider2_complete_get_result_metas
+gcal_shell_search_provider2_complete_activate_result
+gcal_shell_search_provider2_complete_launch_search
+gcal_shell_search_provider2_call_get_initial_result_set
+gcal_shell_search_provider2_call_get_initial_result_set_finish
+gcal_shell_search_provider2_call_get_initial_result_set_sync
+gcal_shell_search_provider2_call_get_subsearch_result_set
+gcal_shell_search_provider2_call_get_subsearch_result_set_finish
+gcal_shell_search_provider2_call_get_subsearch_result_set_sync
+gcal_shell_search_provider2_call_get_result_metas
+gcal_shell_search_provider2_call_get_result_metas_finish
+gcal_shell_search_provider2_call_get_result_metas_sync
+gcal_shell_search_provider2_call_activate_result
+gcal_shell_search_provider2_call_activate_result_finish
+gcal_shell_search_provider2_call_activate_result_sync
+gcal_shell_search_provider2_call_launch_search
+gcal_shell_search_provider2_call_launch_search_finish
+gcal_shell_search_provider2_call_launch_search_sync
+gcal_shell_search_provider2_proxy_new
+gcal_shell_search_provider2_proxy_new_finish
+gcal_shell_search_provider2_proxy_new_sync
+gcal_shell_search_provider2_proxy_new_for_bus
+gcal_shell_search_provider2_proxy_new_for_bus_finish
+gcal_shell_search_provider2_proxy_new_for_bus_sync
+gcal_shell_search_provider2_skeleton_new
+
+GCAL_IS_SHELL_SEARCH_PROVIDER2
+GCAL_IS_SHELL_SEARCH_PROVIDER2_PROXY
+GCAL_IS_SHELL_SEARCH_PROVIDER2_PROXY_CLASS
+GCAL_IS_SHELL_SEARCH_PROVIDER2_SKELETON
+GCAL_IS_SHELL_SEARCH_PROVIDER2_SKELETON_CLASS
+GCAL_SHELL_SEARCH_PROVIDER2
+GCAL_SHELL_SEARCH_PROVIDER2_GET_IFACE
+GCAL_SHELL_SEARCH_PROVIDER2_PROXY
+GCAL_SHELL_SEARCH_PROVIDER2_PROXY_CLASS
+GCAL_SHELL_SEARCH_PROVIDER2_PROXY_GET_CLASS
+GCAL_SHELL_SEARCH_PROVIDER2_SKELETON
+GCAL_SHELL_SEARCH_PROVIDER2_SKELETON_CLASS
+GCAL_SHELL_SEARCH_PROVIDER2_SKELETON_GET_CLASS
+GCAL_TYPE_SHELL_SEARCH_PROVIDER2
+GCAL_TYPE_SHELL_SEARCH_PROVIDER2_PROXY
+GCAL_TYPE_SHELL_SEARCH_PROVIDER2_SKELETON
+GcalShellSearchProvider2
+GcalShellSearchProvider2Iface
+GcalShellSearchProvider2Proxy
+GcalShellSearchProvider2ProxyClass
+GcalShellSearchProvider2ProxyPrivate
+GcalShellSearchProvider2Skeleton
+GcalShellSearchProvider2SkeletonClass
+GcalShellSearchProvider2SkeletonPrivate
+gcal_shell_search_provider2_get_type
+gcal_shell_search_provider2_proxy_get_type
+gcal_shell_search_provider2_skeleton_get_type
+
+
+
+gcal-source-dialog
+GCAL_RESPONSE_REMOVE_SOURCE
+GCAL_TYPE_SOURCE_DIALOG
+GcalSourceDialogMode
+gcal_source_dialog_new
+gcal_source_dialog_set_manager
+gcal_source_dialog_set_mode
+gcal_source_dialog_set_source
+GcalSourceDialog
+
+
+
+gcal-subscriber-view
+GcalSubscriberView
+gcal_subscriber_view_get_child_by_uuid
+
+GCAL_IS_SUBSCRIBER_VIEW
+GCAL_IS_SUBSCRIBER_VIEW_CLASS
+GCAL_SUBSCRIBER_VIEW
+GCAL_SUBSCRIBER_VIEW_CLASS
+GCAL_SUBSCRIBER_VIEW_GET_CLASS
+GCAL_TYPE_SUBSCRIBER_VIEW
+GcalSubscriberView
+GcalSubscriberViewClass
+GcalSubscriberViewPrivate
+gcal_subscriber_view_get_type
+
+
+
+gcal-subscriber-view-private
+GcalSubscriberViewPrivate
+
+
+
+gcal-time-selector
+GCAL_TYPE_TIME_SELECTOR
+gcal_time_selector_new
+gcal_time_selector_set_time_format
+gcal_time_selector_get_time
+gcal_time_selector_set_time
+GcalTimeSelector
+
+
+
+gcal-utils
+ICAL_TIME_TYPE
+ALIGNED
+MINUTES_PER_DAY
+MAX_MINUTES
+gcal_clear_datetime
+GcalWindowViewType
+icaltime_get_type
+datetime_compare_date
+datetime_to_icaltime
+datetime_is_date
+icaltime_to_datetime
+gcal_dup_icaltime
+gcal_get_weekday
+gcal_get_month_name
+gcal_get_surface_from_color
+get_circle_surface_from_color
+get_color_name_from_source
+get_desc_from_component
+get_uuid_from_component
+get_first_weekday
+build_component_from_details
+icaltime_compare_date
+icaltime_compare_with_current
+get_start_of_week
+get_end_of_week
+is_clock_format_24h
+e_strftime_fix_am_pm
+e_utf8_strftime_fix_am_pm
+fix_popover_menu_icons
+uri_get_fields
+get_source_parent_name_color
+format_utc_offset
+get_alarm_trigger_minutes
+should_change_date_for_scroll
+is_source_enabled
+
+
+
+gcal-view
+GcalView
+GCAL_TYPE_VIEW
+GcalViewInterface
+gcal_view_set_date
+gcal_view_get_date
+gcal_view_clear_marks
+gcal_view_get_children_by_uuid
+GcalView
+
+
+
+gcal-week-grid
+GCAL_TYPE_WEEK_GRID
+gcal_week_grid_set_manager
+gcal_week_grid_set_first_weekday
+gcal_week_grid_set_use_24h_format
+gcal_week_grid_add_event
+gcal_week_grid_remove_event
+gcal_week_grid_get_children_by_uuid
+gcal_week_grid_clear_marks
+GcalWeekGrid
+
+
+
+gcal-week-header
+GCAL_TYPE_WEEK_HEADER
+gcal_week_header_set_manager
+gcal_week_header_set_first_weekday
+gcal_week_header_set_use_24h_format
+gcal_week_header_add_event
+gcal_week_header_remove_event
+gcal_week_header_get_children_by_uuid
+gcal_week_header_get_sidebar_size_group
+gcal_week_header_clear_marks
+GcalWeekHeader
+
+
+
+gcal-week-view
+GCAL_TYPE_WEEK_VIEW
+gcal_week_view_new
+gcal_week_view_set_manager
+gcal_week_view_set_first_weekday
+gcal_week_view_set_use_24h_format
+GcalWeekView
+
+
+
+gcal-window
+GCAL_TYPE_WINDOW
+gcal_window_new_with_view_and_date
+gcal_window_new_event
+gcal_window_set_search_mode
+gcal_window_set_search_query
+gcal_window_open_event_by_uuid
+GcalWindow
+
+
+
+gcal-year-view
+GCAL_TYPE_YEAR_VIEW
+gcal_year_view_set_manager
+gcal_year_view_set_first_weekday
+gcal_year_view_set_use_24h_format
+gcal_year_view_set_current_date
+GcalYearView
+
+
diff --git a/doc/reference/gnome-calendar-decl.txt b/doc/reference/gnome-calendar-decl.txt
new file mode 100644
index 00000000..17db1202
--- /dev/null
+++ b/doc/reference/gnome-calendar-decl.txt
@@ -0,0 +1,2349 @@
+
+GCAL_TYPE_QUICK_ADD_POPOVER
+#define GCAL_TYPE_QUICK_ADD_POPOVER (gcal_quick_add_popover_get_type())
+
+
+gcal_quick_add_popover_new
+GtkWidget *
+void
+
+
+gcal_quick_add_popover_set_manager
+void
+GcalQuickAddPopover *self, GcalManager *manager
+
+
+gcal_quick_add_popover_get_date_start
+GDateTime *
+GcalQuickAddPopover *self
+
+
+gcal_quick_add_popover_set_date_start
+void
+GcalQuickAddPopover *self, GDateTime *dt
+
+
+gcal_quick_add_popover_get_date_end
+GDateTime *
+GcalQuickAddPopover *self
+
+
+gcal_quick_add_popover_set_date_end
+void
+GcalQuickAddPopover *self, GDateTime *dt
+
+
+GcalQuickAddPopover
+
+
+CSS_TEMPLATE
+#define CSS_TEMPLATE \
+".color-%1$d {"\
+" background-color: %2$s"\
+"}"\
+".color-%1$d.slanted {"\
+" background-color: transparent;"\
+" background-image: linear-gradient(100deg, /* left edge */"\
+" alpha(%2$s, 0) 5px,"\
+" %2$s 6px,"\
+" %2$s 9px,"\
+" alpha(%2$s, 0) 10px,"\
+" alpha(%2$s, 0) 16px,"\
+" %2$s 17px),"\
+" linear-gradient(280deg, /* right edge */"\
+" alpha(%2$s, 0) 5px,"\
+" %2$s 6px,"\
+" %2$s 9px,"\
+" alpha(%2$s, 0) 10px,"\
+" alpha(%2$s, 0) 16px,"\
+" %2$s 17px),"\
+" linear-gradient(100deg, /* left edge shadow */"\
+" transparent 5px,"\
+" @event_shadow_color 6px,"\
+" @event_shadow_color 9px,"\
+" transparent 10px,"\
+" transparent 16px,"\
+" @event_shadow_color 17px),"\
+" linear-gradient(280deg, /* right edge shadow*/"\
+" transparent 5px,"\
+" @event_shadow_color 6px,"\
+" @event_shadow_color 9px,"\
+" transparent 10px,"\
+" transparent 16px,"\
+" @event_shadow_color 17px);"\
+" border-bottom: 1px solid transparent; /* for the shadow displacement */"\
+" background-size: 50%% 100%%, 50%% 100%%, 50%% 100%%, 50%% 100%%;"\
+" background-position: left bottom, right bottom, left bottom, right bottom;"\
+" background-repeat: no-repeat;"\
+" background-origin: padding-box, padding-box, border-box, border-box;"\
+" background-clip: padding-box, padding-box, border-box, border-box;"\
+" padding-left: 24px;"\
+" padding-right: 24px;"\
+" padding-top: 3px;"\
+" padding-bottom: 4px;"\
+" border-radius: 0;"\
+"}"\
+".color-%1$d.slanted:backdrop {"\
+" background-image: linear-gradient(100deg, /* left edge */"\
+" alpha(%2$s, 0) 5px,"\
+" %2$s 6px,"\
+" %2$s 9px,"\
+" alpha(%2$s, 0) 10px,"\
+" alpha(%2$s, 0) 16px,"\
+" %2$s 17px),"\
+" linear-gradient(280deg, /* right edge */"\
+" alpha(%2$s, 0) 5px,"\
+" %2$s 6px,"\
+" %2$s 9px,"\
+" alpha(%2$s, 0) 10px,"\
+" alpha(%2$s, 0) 16px,"\
+" %2$s 17px);"\
+"}"\
+".color-%1$d.slanted:dir(rtl) {"\
+" background-image: linear-gradient(80deg, /* left edge */"\
+" alpha(%2$s, 0) 5px,"\
+" %2$s 6px,"\
+" %2$s 9px,"\
+" alpha(%2$s, 0) 10px,"\
+" alpha(%2$s, 0) 16px,"\
+" %2$s 17px),"\
+" linear-gradient(260deg, /* right edge */"\
+" alpha(%2$s, 0) 5px,"\
+" %2$s 6px,"\
+" %2$s 9px,"\
+" alpha(%2$s, 0) 10px,"\
+" alpha(%2$s, 0) 16px,"\
+" %2$s 17px),"\
+" linear-gradient(80deg, /* left edge shadow */"\
+" transparent 5px,"\
+" @event_shadow_color 6px,"\
+" @event_shadow_color 9px,"\
+" transparent 10px,"\
+" transparent 16px,"\
+" @event_shadow_color 17px),"\
+" linear-gradient(260deg, /* right edge shadow*/"\
+" transparent 5px,"\
+" @event_shadow_color 6px,"\
+" @event_shadow_color 9px,"\
+" transparent 10px,"\
+" transparent 16px,"\
+" @event_shadow_color 17px);"\
+"}"\
+".color-%1$d.slanted:dir(rtl):backdrop {"\
+" background-image: linear-gradient(80deg, /* left edge */"\
+" alpha(%2$s, 0) 5px,"\
+" %2$s 6px,"\
+" %2$s 9px,"\
+" alpha(%2$s, 0) 10px,"\
+" alpha(%2$s, 0) 16px,"\
+" %2$s 17px),"\
+" linear-gradient(260deg, /* right edge */"\
+" alpha(%2$s, 0) 5px,"\
+" %2$s 6px,"\
+" %2$s 9px,"\
+" alpha(%2$s, 0) 10px,"\
+" alpha(%2$s, 0) 16px,"\
+" %2$s 17px);"\
+"}"\
+".color-%1$d.slanted-start {"\
+" background-color: transparent;"\
+" background-image: linear-gradient(100deg, /* left edge */"\
+" alpha(%2$s, 0) 5px,"\
+" %2$s 6px,"\
+" %2$s 9px,"\
+" alpha(%2$s, 0) 10px,"\
+" alpha(%2$s, 0) 16px,"\
+" %2$s 17px),"\
+" linear-gradient(100deg, /* left edge shadow */"\
+" transparent 5px,"\
+" @event_shadow_color 6px,"\
+" @event_shadow_color 9px,"\
+" transparent 10px,"\
+" transparent 16px,"\
+" @event_shadow_color 17px);"\
+" border-bottom: 1px solid transparent; /* for the shadow displacement */"\
+" background-position: left bottom, left bottom;"\
+" background-size: 100%% 100%%, 100%% 100%%;"\
+" background-origin: padding-box, border-box;"\
+" background-clip: padding-box, border-box;"\
+" border-radius: 0 2px 2px 0;"\
+" padding-right: 4px;"\
+" padding-left: 24px;"\
+" padding-top: 3px;"\
+" padding-bottom: 4px;"\
+"}"\
+".color-%1$d.slanted-start:backdrop {"\
+" background-image: linear-gradient(100deg, /* left edge */"\
+" alpha(%2$s, 0) 5px,"\
+" %2$s 6px,"\
+" %2$s 9px,"\
+" alpha(%2$s, 0) 10px,"\
+" alpha(%2$s, 0) 16px,"\
+" %2$s 17px);"\
+"}"\
+".color-%1$d.slanted-start:dir(rtl) {"\
+" background-image: linear-gradient(260deg, /* right edge */"\
+" alpha(%2$s, 0) 5px,"\
+" %2$s 6px,"\
+" %2$s 9px,"\
+" alpha(%2$s, 0) 10px,"\
+" alpha(%2$s, 0) 16px,"\
+" %2$s 17px),"\
+" linear-gradient(260deg, /* right edge shadow */"\
+" transparent 5px,"\
+" @event_shadow_color 6px,"\
+" @event_shadow_color 9px,"\
+" transparent 10px,"\
+" transparent 16px,"\
+" @event_shadow_color 17px);"\
+" border-bottom: 1px solid transparent; /* for the shadow displacement */"\
+" background-position: right bottom, right bottom;"\
+" border-radius: 2px 0 0 2px;"\
+" padding-right: 24px;"\
+" padding-left: 4px;"\
+"}"\
+".color-%1$d.slanted-start:dir(rtl):backdrop {"\
+" background-image: linear-gradient(260deg, /* right edge */"\
+" alpha(%2$s, 0) 5px,"\
+" %2$s 6px,"\
+" %2$s 9px,"\
+" alpha(%2$s, 0) 10px,"\
+" alpha(%2$s, 0) 16px,"\
+" %2$s 17px);"\
+"}"\
+".color-%1$d.slanted-end {"\
+" background-color: transparent;"\
+" background-image: linear-gradient(280deg, /* right edge */"\
+" alpha(%2$s, 0) 5px,"\
+" %2$s 6px,"\
+" %2$s 9px,"\
+" alpha(%2$s, 0) 10px,"\
+" alpha(%2$s, 0) 16px,"\
+" %2$s 17px),"\
+" linear-gradient(280deg, /* right edge shadow */"\
+" transparent 5px,"\
+" @event_shadow_color 6px,"\
+" @event_shadow_color 9px,"\
+" transparent 10px,"\
+" transparent 16px,"\
+" @event_shadow_color 17px);"\
+" border-bottom: 1px solid transparent; /* for the shadow displacement */"\
+" background-position: right bottom, right bottom;"\
+" background-size: 100%% 100%%, 100%% 100%%;"\
+" background-origin: padding-box, border-box;"\
+" background-clip: padding-box, border-box;"\
+" border-radius: 2px 0 0 2px;"\
+" padding-right: 24px;"\
+" padding-left: 4px;"\
+" padding-top: 3px;"\
+" padding-bottom: 4px;"\
+"}"\
+".color-%1$d.slanted-end:backdrop {"\
+" background-image: linear-gradient(280deg, /* right edge */"\
+" alpha(%2$s, 0) 5px,"\
+" %2$s 6px,"\
+" %2$s 9px,"\
+" alpha(%2$s, 0) 10px,"\
+" alpha(%2$s, 0) 16px,"\
+" %2$s 17px);"\
+"}"\
+".color-%1$d.slanted-end:dir(rtl) {"\
+" background-image: linear-gradient(80deg, /* left edge */"\
+" alpha(%2$s, 0) 5px,"\
+" %2$s 6px,"\
+" %2$s 9px,"\
+" alpha(%2$s, 0) 10px,"\
+" alpha(%2$s, 0) 16px,"\
+" %2$s 17px),"\
+" linear-gradient(80deg, /* left edge shadow */"\
+" transparent 5px,"\
+" @event_shadow_color 6px,"\
+" @event_shadow_color 9px,"\
+" transparent 10px,"\
+" transparent 16px,"\
+" @event_shadow_color 17px);"\
+" background-position: left bottom, left bottom;"\
+" border-radius: 0 2px 2px 0;"\
+" padding-right: 4px;"\
+" padding-left: 24px;"\
+"}"\
+".color-%1$d.slanted-end:dir(rtl):backdrop {"\
+" background-image: linear-gradient(80deg, /* left edge */"\
+" alpha(%2$s, 0) 5px,"\
+" %2$s 6px,"\
+" %2$s 9px,"\
+" alpha(%2$s, 0) 10px,"\
+" alpha(%2$s, 0) 16px,"\
+" %2$s 17px);"\
+"}"
+
+
+GcalEventError
+typedef enum
+{
+ GCAL_EVENT_ERROR_INVALID_START_DATE
+} GcalEventError;
+
+
+GCAL_EVENT_ERROR
+#define GCAL_EVENT_ERROR gcal_event_error_quark ()
+
+
+GCAL_TYPE_EVENT
+#define GCAL_TYPE_EVENT (gcal_event_get_type())
+
+
+gcal_event_error_quark
+GQuark
+void
+
+
+gcal_event_new
+GcalEvent *
+ESource *source, ECalComponent *component, GError **error
+
+
+gcal_event_get_all_day
+gboolean
+GcalEvent *self
+
+
+gcal_event_set_all_day
+void
+GcalEvent *self, gboolean all_day
+
+
+gcal_event_get_color
+GdkRGBA *
+GcalEvent *self
+
+
+gcal_event_set_color
+void
+GcalEvent *self, GdkRGBA *color
+
+
+gcal_event_get_component
+ECalComponent *
+GcalEvent *self
+
+
+gcal_event_get_date_end
+GDateTime *
+GcalEvent *self
+
+
+gcal_event_set_date_end
+void
+GcalEvent *self, GDateTime *dt
+
+
+gcal_event_get_date_start
+GDateTime *
+GcalEvent *self
+
+
+gcal_event_set_date_start
+void
+GcalEvent *self, GDateTime *dt
+
+
+gcal_event_get_description
+const gchar *
+GcalEvent *self
+
+
+gcal_event_set_description
+void
+GcalEvent *self, const gchar *description
+
+
+gcal_event_has_alarms
+gboolean
+GcalEvent *self
+
+
+gcal_event_get_alarms
+GList *
+GcalEvent *self
+
+
+gcal_event_add_alarm
+void
+GcalEvent *self, guint type, gboolean has_sound
+
+
+gcal_event_remove_alarm
+void
+GcalEvent *self, guint type
+
+
+gcal_event_get_location
+const gchar *
+GcalEvent *self
+
+
+gcal_event_set_location
+void
+GcalEvent *self, const gchar *location
+
+
+gcal_event_get_source
+ESource *
+GcalEvent *self
+
+
+gcal_event_set_source
+void
+GcalEvent *self, ESource *source
+
+
+gcal_event_get_summary
+const gchar *
+GcalEvent *self
+
+
+gcal_event_set_summary
+void
+GcalEvent *self, const gchar *summary
+
+
+gcal_event_get_timezone
+GTimeZone *
+GcalEvent *self
+
+
+gcal_event_set_timezone
+void
+GcalEvent *self, GTimeZone *timezone
+
+
+gcal_event_get_uid
+const gchar *
+GcalEvent *self
+
+
+gcal_event_is_multiday
+gboolean
+GcalEvent *self
+
+
+gcal_event_compare
+gint
+GcalEvent *event1, GcalEvent *event2
+
+
+gcal_event_compare_with_current
+gint
+GcalEvent *event1, GcalEvent *event2, time_t *current_time
+
+
+GcalEvent
+
+
+GCAL_TYPE_DATE_SELECTOR
+#define GCAL_TYPE_DATE_SELECTOR (gcal_date_selector_get_type ())
+
+
+gcal_date_selector_new
+GtkWidget *
+void
+
+
+gcal_date_selector_get_date
+GDateTime *
+GcalDateSelector *selector
+
+
+gcal_date_selector_set_date
+void
+GcalDateSelector *selector, GDateTime *date
+
+
+GcalDateSelector
+
+
+GCAL_TYPE_TIME_SELECTOR
+#define GCAL_TYPE_TIME_SELECTOR (gcal_time_selector_get_type ())
+
+
+gcal_time_selector_new
+GtkWidget *
+void
+
+
+gcal_time_selector_set_time_format
+void
+GcalTimeSelector *selector, gboolean format_24h
+
+
+gcal_time_selector_get_time
+GDateTime *
+GcalTimeSelector *selector
+
+
+gcal_time_selector_set_time
+void
+GcalTimeSelector *selector, GDateTime *time
+
+
+GcalTimeSelector
+
+
+GcalDateChooserDayOptions
+typedef enum
+{
+ GCAL_DATE_CHOOSER_DAY_NONE = 1 << 0,
+ GCAL_DATE_CHOOSER_DAY_WEEKEND = 1 << 1,
+ GCAL_DATE_CHOOSER_DAY_HOLIDAY = 1 << 2,
+ GCAL_DATE_CHOOSER_DAY_MARKED = 1 << 3
+} GcalDateChooserDayOptions;
+
+
+GCAL_TYPE_DATE_CHOOSER
+#define GCAL_TYPE_DATE_CHOOSER (gcal_date_chooser_get_type ())
+
+
+GcalDateChooserDayOptionsCallback
+GcalDateChooserDayOptions
+GcalDateChooser *self,
+ GDateTime *date,
+ gpointer user_data
+
+
+gcal_date_chooser_new
+GtkWidget *
+void
+
+
+gcal_date_chooser_get_date
+GDateTime *
+GcalDateChooser *self
+
+
+gcal_date_chooser_set_date
+void
+GcalDateChooser *self, GDateTime *date
+
+
+gcal_date_chooser_set_day_options_callback
+void
+GcalDateChooser *self, GcalDateChooserDayOptionsCallback callback, gpointer data, GDestroyNotify destroy
+
+
+gcal_date_chooser_invalidate_day_options
+void
+GcalDateChooser *self
+
+
+gcal_date_chooser_get_no_month_change
+gboolean
+GcalDateChooser *self
+
+
+gcal_date_chooser_set_no_month_change
+void
+GcalDateChooser *self, gboolean setting
+
+
+gcal_date_chooser_get_show_heading
+gboolean
+GcalDateChooser *self
+
+
+gcal_date_chooser_set_show_heading
+void
+GcalDateChooser *self, gboolean setting
+
+
+gcal_date_chooser_get_show_day_names
+gboolean
+GcalDateChooser *self
+
+
+gcal_date_chooser_set_show_day_names
+void
+GcalDateChooser *self, gboolean setting
+
+
+gcal_date_chooser_get_show_week_numbers
+gboolean
+GcalDateChooser *self
+
+
+gcal_date_chooser_set_show_week_numbers
+void
+GcalDateChooser *self, gboolean setting
+
+
+GcalDateChooser
+
+
+GCAL_TYPE_SUBSCRIBER_VIEW
+#define GCAL_TYPE_SUBSCRIBER_VIEW (gcal_subscriber_view_get_type ())
+
+
+GCAL_SUBSCRIBER_VIEW
+#define GCAL_SUBSCRIBER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GCAL_TYPE_SUBSCRIBER_VIEW, GcalSubscriberView))
+
+
+GCAL_SUBSCRIBER_VIEW_CLASS
+#define GCAL_SUBSCRIBER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GCAL_TYPE_SUBSCRIBER_VIEW, GcalSubscriberViewClass))
+
+
+GCAL_IS_SUBSCRIBER_VIEW
+#define GCAL_IS_SUBSCRIBER_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GCAL_TYPE_SUBSCRIBER_VIEW))
+
+
+GCAL_IS_SUBSCRIBER_VIEW_CLASS
+#define GCAL_IS_SUBSCRIBER_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GCAL_TYPE_SUBSCRIBER_VIEW))
+
+
+GCAL_SUBSCRIBER_VIEW_GET_CLASS
+#define GCAL_SUBSCRIBER_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GCAL_TYPE_SUBSCRIBER_VIEW, GcalSubscriberViewClass))
+
+
+GcalSubscriberView
+struct _GcalSubscriberView
+{
+ GtkContainer parent;
+
+ GcalSubscriberViewPrivate *priv;
+};
+
+
+GcalSubscriberViewClass
+struct _GcalSubscriberViewClass
+{
+ GtkContainerClass parent_class;
+
+ /*< signals >*/
+ void (*event_activated) (GcalSubscriberView *subscriber_view, GcalEventWidget *event_widget);
+
+ /*< public >*/
+ guint (*get_child_cell) (GcalSubscriberView *subscriber_view, GcalEventWidget *child);
+ void (*clear_state) (GcalSubscriberView *subscriber_view);
+
+ /* gcal-view replacements */
+ GtkWidget* (*get_child_by_uuid) (GcalSubscriberView *subscriber_view, const gchar *uuid);
+};
+
+
+gcal_subscriber_view_get_type
+GType
+void
+
+
+gcal_subscriber_view_get_child_by_uuid
+GtkWidget *
+GcalSubscriberView *subscriber_view, const gchar *uuid
+
+
+GcalSubscriberViewPrivate
+
+
+GCAL_TYPE_APPLICATION
+#define GCAL_TYPE_APPLICATION (gcal_application_get_type ())
+
+
+gcal_application_new
+GcalApplication *
+void
+
+
+gcal_application_get_manager
+GcalManager *
+GcalApplication *self
+
+
+gcal_application_get_settings
+GSettings *
+GcalApplication *self
+
+
+gcal_application_set_uuid
+void
+GcalApplication *self, const gchar *app_uuid
+
+
+gcal_application_set_initial_date
+void
+GcalApplication *self, GDateTime *initial_date
+
+
+GcalApplication
+
+
+GCAL_TYPE_SHELL_SEARCH_PROVIDER
+#define GCAL_TYPE_SHELL_SEARCH_PROVIDER (gcal_shell_search_provider_get_type())
+
+
+GcalShellSearchProviderClass
+struct _GcalShellSearchProviderClass
+{
+ GObjectClass parent;
+};
+
+
+gcal_shell_search_provider_new
+GcalShellSearchProvider *
+void
+
+
+gcal_shell_search_provider_dbus_export
+gboolean
+GcalShellSearchProvider *search_provider, GDBusConnection *connection, const gchar *object_path, GError **error
+
+
+gcal_shell_search_provider_dbus_unexport
+void
+GcalShellSearchProvider *search_provider, GDBusConnection *connection, const gchar *object_path
+
+
+gcal_shell_search_provider_connect
+void
+GcalShellSearchProvider *search_provider, GcalManager *manager
+
+
+GcalShellSearchProvider
+
+
+GCAL_TYPE_WINDOW
+#define GCAL_TYPE_WINDOW (gcal_window_get_type ())
+
+
+gcal_window_new_with_view_and_date
+GtkWidget *
+GcalApplication *app, GcalWindowViewType view_type, icaltimetype *date
+
+
+gcal_window_new_event
+void
+GcalWindow *self
+
+
+gcal_window_set_search_mode
+void
+GcalWindow *self, gboolean enabled
+
+
+gcal_window_set_search_query
+void
+GcalWindow *self, const gchar *query
+
+
+gcal_window_open_event_by_uuid
+void
+GcalWindow *self, const gchar *uuid
+
+
+GcalWindow
+
+
+calendar_get_resource
+GResource *
+void
+
+
+GCAL_TYPE_VIEW
+#define GCAL_TYPE_VIEW (gcal_view_get_type ())
+
+
+GcalViewInterface
+struct _GcalViewInterface
+{
+ GTypeInterface parent;
+
+ /* signals */
+ void (*create_event) (GcalView *view,
+ icaltimetype *start_span,
+ icaltimetype *end_span,
+ gdouble x,
+ gdouble y);
+ void (*create_event_detailed) (GcalView *view,
+ icaltimetype *start_span,
+ icaltimetype *end_span);
+
+ /* Marks related API */
+ void (*clear_marks) (GcalView *view);
+
+ GList* (*get_children_by_uuid) (GcalView *view,
+ const gchar *uuid);
+};
+
+
+gcal_view_set_date
+void
+GcalView *view, icaltimetype *date
+
+
+gcal_view_get_date
+icaltimetype *
+GcalView *view
+
+
+gcal_view_clear_marks
+void
+GcalView *view
+
+
+gcal_view_get_children_by_uuid
+GList *
+GcalView *view, const gchar *uuid
+
+
+GcalView
+
+
+E_TYPE_CAL_DATA_MODEL
+#define E_TYPE_CAL_DATA_MODEL \
+ (e_cal_data_model_get_type ())
+
+
+E_CAL_DATA_MODEL
+#define E_CAL_DATA_MODEL(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST \
+ ((obj), E_TYPE_CAL_DATA_MODEL, ECalDataModel))
+
+
+E_CAL_DATA_MODEL_CLASS
+#define E_CAL_DATA_MODEL_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_CAST \
+ ((cls), E_TYPE_CAL_DATA_MODEL, ECalDataModelClass))
+
+
+E_IS_CAL_DATA_MODEL
+#define E_IS_CAL_DATA_MODEL(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE \
+ ((obj), E_TYPE_CAL_DATA_MODEL))
+
+
+E_IS_CAL_DATA_MODEL_CLASS
+#define E_IS_CAL_DATA_MODEL_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_TYPE \
+ ((cls), E_TYPE_CAL_DATA_MODEL))
+
+
+E_CAL_DATA_MODEL_GET_CLASS
+#define E_CAL_DATA_MODEL_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS \
+ ((obj), E_TYPE_CAL_DATA_MODEL, ECalDataModelClass))
+
+
+ECalDataModelViewState
+typedef enum {
+ E_CAL_DATA_MODEL_VIEW_STATE_START,
+ E_CAL_DATA_MODEL_VIEW_STATE_PROGRESS,
+ E_CAL_DATA_MODEL_VIEW_STATE_COMPLETE,
+ E_CAL_DATA_MODEL_VIEW_STATE_STOP
+} ECalDataModelViewState;
+
+
+ECalDataModel
+struct _ECalDataModel {
+ GObject parent;
+ ECalDataModelPrivate *priv;
+};
+
+
+ECalDataModelClass
+struct _ECalDataModelClass {
+ GObjectClass parent_class;
+
+ /* Signals */
+ void (* view_state_changed) (ECalDataModel *data_model,
+ ECalClientView *view,
+ ECalDataModelViewState state,
+ guint percent,
+ const gchar *message,
+ const GError *error);
+};
+
+
+EThreadJobFunc
+void
+gpointer user_data,
+ GCancellable *cancellable,
+ GError **error
+
+
+e_cal_data_model_get_type
+GType
+void
+
+
+e_cal_data_model_new
+ECalDataModel *
+ECalDataModelSubmitThreadJobFunc func
+
+
+e_cal_data_model_new_clone
+ECalDataModel *
+ECalDataModel *src_data_model
+
+
+e_cal_data_model_submit_thread_job
+GCancellable *
+ECalDataModel *data_model, EThreadJobFunc func, gpointer user_data, GDestroyNotify free_user_data
+
+
+e_cal_data_model_get_disposing
+gboolean
+ECalDataModel *data_model
+
+
+e_cal_data_model_set_disposing
+void
+ECalDataModel *data_model, gboolean disposing
+
+
+e_cal_data_model_get_expand_recurrences
+gboolean
+ECalDataModel *data_model
+
+
+e_cal_data_model_set_expand_recurrences
+void
+ECalDataModel *data_model, gboolean expand_recurrences
+
+
+e_cal_data_model_get_timezone
+icaltimezone *
+ECalDataModel *data_model
+
+
+e_cal_data_model_set_timezone
+void
+ECalDataModel *data_model, icaltimezone *zone
+
+
+e_cal_data_model_set_filter
+void
+ECalDataModel *data_model, const gchar *sexp
+
+
+e_cal_data_model_dup_filter
+gchar *
+ECalDataModel *data_model
+
+
+e_cal_data_model_add_client
+void
+ECalDataModel *data_model, ECalClient *client
+
+
+e_cal_data_model_remove_client
+void
+ECalDataModel *data_model, const gchar *uid
+
+
+e_cal_data_model_ref_client
+ECalClient *
+ECalDataModel *data_model, const gchar *uid
+
+
+e_cal_data_model_get_clients
+GList *
+ECalDataModel *data_model
+
+
+e_cal_data_model_get_components
+GSList *
+ECalDataModel *data_model, time_t in_range_start, time_t in_range_end
+
+
+ECalDataModelForeachFunc
+gboolean
+ECalDataModel *data_model,
+ ECalClient *client,
+ const ECalComponentId *id,
+ ECalComponent *comp,
+ time_t instance_start,
+ time_t instance_end,
+ gpointer user_data
+
+
+e_cal_data_model_foreach_component
+gboolean
+ECalDataModel *data_model, time_t in_range_start, time_t in_range_end, ECalDataModelForeachFunc func, gpointer user_data
+
+
+e_cal_data_model_subscribe
+void
+ECalDataModel *data_model, ECalDataModelSubscriber *subscriber, time_t range_start, time_t range_end
+
+
+e_cal_data_model_unsubscribe
+void
+ECalDataModel *data_model, ECalDataModelSubscriber *subscriber
+
+
+e_cal_data_model_get_subscriber_range
+gboolean
+ECalDataModel *data_model, ECalDataModelSubscriber *subscriber, time_t *range_start, time_t *range_end
+
+
+e_cal_data_model_freeze_views_update
+void
+ECalDataModel *data_model
+
+
+e_cal_data_model_thaw_views_update
+void
+ECalDataModel *data_model
+
+
+e_cal_data_model_is_views_update_frozen
+gboolean
+ECalDataModel *data_model
+
+
+ECalDataModelPrivate
+
+
+GCAL_WINDOW_VIEW_TYPE
+#define GCAL_WINDOW_VIEW_TYPE (gcal_window_view_type_get_type())
+
+
+gcal_window_view_type_get_type
+GType
+void
+
+
+gcal_log_init
+void
+void
+
+
+ICAL_TIME_TYPE
+#define ICAL_TIME_TYPE (icaltime_get_type ())
+
+
+ALIGNED
+#define ALIGNED(x) (round (x) + 0.5)
+
+
+MINUTES_PER_DAY
+#define MINUTES_PER_DAY 1440
+
+
+MAX_MINUTES
+#define MAX_MINUTES (7 * MINUTES_PER_DAY)
+
+
+gcal_clear_datetime
+#define gcal_clear_datetime(dt) g_clear_pointer (dt, g_date_time_unref)
+
+
+GcalWindowViewType
+typedef enum
+{
+ GCAL_WINDOW_VIEW_DAY,
+ GCAL_WINDOW_VIEW_WEEK,
+ GCAL_WINDOW_VIEW_MONTH,
+ GCAL_WINDOW_VIEW_YEAR,
+ GCAL_WINDOW_VIEW_LIST,
+ GCAL_WINDOW_VIEW_SEARCH,
+} GcalWindowViewType;
+
+
+icaltime_get_type
+GType
+void
+
+
+datetime_compare_date
+gint
+GDateTime *dt1, GDateTime *dt2
+
+
+datetime_to_icaltime
+icaltimetype *
+GDateTime *dt
+
+
+datetime_is_date
+gboolean
+GDateTime *dt
+
+
+icaltime_to_datetime
+GDateTime *
+const icaltimetype *date
+
+
+gcal_dup_icaltime
+icaltimetype *
+const icaltimetype *date
+
+
+gcal_get_weekday
+gchar *
+gint i
+
+
+gcal_get_month_name
+gchar *
+gint i
+
+
+gcal_get_surface_from_color
+cairo_surface_t *
+GdkRGBA *color, gint size
+
+
+get_circle_surface_from_color
+cairo_surface_t *
+GdkRGBA *color, gint size
+
+
+get_color_name_from_source
+void
+ESource *source, GdkRGBA *out_color
+
+
+get_desc_from_component
+gchar *
+ECalComponent *component, const gchar *joint_char
+
+
+get_uuid_from_component
+gchar *
+ESource *source, ECalComponent *component
+
+
+get_first_weekday
+gint
+void
+
+
+build_component_from_details
+ECalComponent *
+const gchar *summary, GDateTime *initial_date, GDateTime *final_date
+
+
+icaltime_compare_date
+gint
+const icaltimetype *date1, const icaltimetype *date2
+
+
+icaltime_compare_with_current
+gint
+const icaltimetype *date1, const icaltimetype *date2, time_t *current_time_t
+
+
+get_start_of_week
+GDateTime *
+icaltimetype *date
+
+
+get_end_of_week
+GDateTime *
+icaltimetype *date
+
+
+is_clock_format_24h
+gboolean
+void
+
+
+e_strftime_fix_am_pm
+gsize
+gchar *str, gsize max, const gchar *fmt, const struct tm *tm
+
+
+e_utf8_strftime_fix_am_pm
+gsize
+gchar *str, gsize max, const gchar *fmt, const struct tm *tm
+
+
+fix_popover_menu_icons
+void
+GtkPopover *popover
+
+
+uri_get_fields
+gboolean
+const gchar *uri, gchar **schema, gchar **host, gchar **path
+
+
+get_source_parent_name_color
+void
+GcalManager *manager, ESource *source, gchar **name, gchar **color
+
+
+format_utc_offset
+gchar *
+gint64 offset
+
+
+get_alarm_trigger_minutes
+gint
+GcalEvent *event, ECalComponentAlarm *alarm
+
+
+should_change_date_for_scroll
+gboolean
+gdouble *scroll_value, GdkEventScroll *scroll_event
+
+
+is_source_enabled
+gboolean
+ESource *source
+
+
+E_TYPE_CAL_DATA_MODEL_SUBSCRIBER
+#define E_TYPE_CAL_DATA_MODEL_SUBSCRIBER \
+ (e_cal_data_model_subscriber_get_type ())
+
+
+E_CAL_DATA_MODEL_SUBSCRIBER
+#define E_CAL_DATA_MODEL_SUBSCRIBER(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST \
+ ((obj), E_TYPE_CAL_DATA_MODEL_SUBSCRIBER, ECalDataModelSubscriber))
+
+
+E_CAL_DATA_MODEL_SUBSCRIBER_INTERFACE
+#define E_CAL_DATA_MODEL_SUBSCRIBER_INTERFACE(cls) \
+ (G_TYPE_CHECK_CLASS_CAST \
+ ((cls), E_TYPE_CAL_DATA_MODEL_SUBSCRIBER, ECalDataModelSubscriberInterface))
+
+
+E_IS_CAL_DATA_MODEL_SUBSCRIBER
+#define E_IS_CAL_DATA_MODEL_SUBSCRIBER(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE \
+ ((obj), E_TYPE_CAL_DATA_MODEL_SUBSCRIBER))
+
+
+E_IS_CAL_DATA_MODEL_SUBSCRIBER_INTERFACE
+#define E_IS_CAL_DATA_MODEL_SUBSCRIBER_INTERFACE(cls) \
+ (G_TYPE_CHECK_CLASS_TYPE \
+ ((cls), E_TYPE_CAL_DATA_MODEL_SUBSCRIBER))
+
+
+E_CAL_DATA_MODEL_SUBSCRIBER_GET_INTERFACE
+#define E_CAL_DATA_MODEL_SUBSCRIBER_GET_INTERFACE(obj) \
+ (G_TYPE_INSTANCE_GET_INTERFACE \
+ ((obj), E_TYPE_CAL_DATA_MODEL_SUBSCRIBER, ECalDataModelSubscriberInterface))
+
+
+ECalDataModelSubscriberInterface
+struct _ECalDataModelSubscriberInterface {
+ GTypeInterface parent_interface;
+
+ void (*component_added) (ECalDataModelSubscriber *subscriber,
+ ECalClient *client,
+ ECalComponent *comp);
+ void (*component_modified) (ECalDataModelSubscriber *subscriber,
+ ECalClient *client,
+ ECalComponent *comp);
+ void (*component_removed) (ECalDataModelSubscriber *subscriber,
+ ECalClient *client,
+ const gchar *uid,
+ const gchar *rid);
+ void (*freeze) (ECalDataModelSubscriber *subscriber);
+ void (*thaw) (ECalDataModelSubscriber *subscriber);
+};
+
+
+e_cal_data_model_subscriber_get_type
+GType
+void
+
+
+e_cal_data_model_subscriber_component_added
+void
+ECalDataModelSubscriber *subscriber, ECalClient *client, ECalComponent *comp
+
+
+e_cal_data_model_subscriber_component_modified
+void
+ECalDataModelSubscriber *subscriber, ECalClient *client, ECalComponent *comp
+
+
+e_cal_data_model_subscriber_component_removed
+void
+ECalDataModelSubscriber *subscriber, ECalClient *client, const gchar *uid, const gchar *rid
+
+
+e_cal_data_model_subscriber_freeze
+void
+ECalDataModelSubscriber *subscriber
+
+
+e_cal_data_model_subscriber_thaw
+void
+ECalDataModelSubscriber *subscriber
+
+
+ECalDataModelSubscriber
+
+
+GCAL_TYPE_MANAGER
+#define GCAL_TYPE_MANAGER (gcal_manager_get_type ())
+
+
+gcal_manager_new_with_settings
+GcalManager *
+GSettings *settings
+
+
+gcal_manager_get_source
+ESource *
+GcalManager *manager, const gchar *uid
+
+
+gcal_manager_get_sources
+GList *
+GcalManager *manager
+
+
+gcal_manager_get_sources_connected
+GList *
+GcalManager *manager
+
+
+gcal_manager_get_default_source
+ESource *
+GcalManager *manager
+
+
+gcal_manager_set_default_source
+void
+GcalManager *manager, ESource *source
+
+
+gcal_manager_get_system_timezone
+icaltimezone *
+GcalManager *manager
+
+
+gcal_manager_set_subscriber
+void
+GcalManager *manager, ECalDataModelSubscriber *subscriber, time_t range_start, time_t range_end
+
+
+gcal_manager_set_search_subscriber
+void
+GcalManager *manager, ECalDataModelSubscriber *subscriber, time_t range_start, time_t range_end
+
+
+gcal_manager_set_query
+void
+GcalManager *self, const gchar *query
+
+
+gcal_manager_query_client_data
+gchar *
+GcalManager *manager, ESource *source, const gchar *field
+
+
+gcal_manager_refresh
+void
+GcalManager *manager
+
+
+gcal_manager_is_client_writable
+gboolean
+GcalManager *manager, ESource *source
+
+
+gcal_manager_create_event
+void
+GcalManager *manager, GcalEvent *event
+
+
+gcal_manager_update_event
+void
+GcalManager *manager, GcalEvent *event
+
+
+gcal_manager_remove_event
+void
+GcalManager *manager, GcalEvent *event
+
+
+gcal_manager_move_event_to_source
+void
+GcalManager *manager, GcalEvent *event, ESource *dest
+
+
+gcal_manager_add_source
+gchar *
+GcalManager *manager, const gchar *name, const gchar *backend, const gchar *color
+
+
+gcal_manager_enable_source
+void
+GcalManager *manager, ESource *source
+
+
+gcal_manager_disable_source
+void
+GcalManager *manager, ESource *source
+
+
+gcal_manager_save_source
+void
+GcalManager *manager, ESource *source
+
+
+gcal_manager_get_events
+GList *
+GcalManager *manager, icaltimetype *range_start, icaltimetype *range_end
+
+
+gcal_manager_get_loading
+gboolean
+GcalManager *self
+
+
+gcal_manager_get_goa_client
+GoaClient *
+GcalManager *manager
+
+
+gcal_manager_get_event_from_shell_search
+GcalEvent *
+GcalManager *manager, const gchar *uuid
+
+
+gcal_manager_setup_shell_search
+void
+GcalManager *self, ECalDataModelSubscriber *subscriber
+
+
+gcal_manager_set_shell_search_query
+void
+GcalManager *manager, const gchar *query
+
+
+gcal_manager_set_shell_search_subscriber
+void
+GcalManager *manager, ECalDataModelSubscriber *subscriber, time_t range_start, time_t range_end
+
+
+gcal_manager_shell_search_done
+gboolean
+GcalManager *manager
+
+
+gcal_manager_get_shell_search_events
+GList *
+GcalManager *manager
+
+
+GcalManager
+
+
+GCAL_TYPE_SHELL_SEARCH_PROVIDER2
+#define GCAL_TYPE_SHELL_SEARCH_PROVIDER2 (gcal_shell_search_provider2_get_type ())
+
+
+GCAL_SHELL_SEARCH_PROVIDER2
+#define GCAL_SHELL_SEARCH_PROVIDER2(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GCAL_TYPE_SHELL_SEARCH_PROVIDER2, GcalShellSearchProvider2))
+
+
+GCAL_IS_SHELL_SEARCH_PROVIDER2
+#define GCAL_IS_SHELL_SEARCH_PROVIDER2(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GCAL_TYPE_SHELL_SEARCH_PROVIDER2))
+
+
+GCAL_SHELL_SEARCH_PROVIDER2_GET_IFACE
+#define GCAL_SHELL_SEARCH_PROVIDER2_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GCAL_TYPE_SHELL_SEARCH_PROVIDER2, GcalShellSearchProvider2Iface))
+
+
+GcalShellSearchProvider2Iface
+struct _GcalShellSearchProvider2Iface
+{
+ GTypeInterface parent_iface;
+
+ gboolean (*handle_activate_result) (
+ GcalShellSearchProvider2 *object,
+ GDBusMethodInvocation *invocation,
+ const gchar *arg_Result,
+ const gchar *const *arg_Terms,
+ guint arg_Timestamp);
+
+ gboolean (*handle_get_initial_result_set) (
+ GcalShellSearchProvider2 *object,
+ GDBusMethodInvocation *invocation,
+ const gchar *const *arg_Terms);
+
+ gboolean (*handle_get_result_metas) (
+ GcalShellSearchProvider2 *object,
+ GDBusMethodInvocation *invocation,
+ const gchar *const *arg_Results);
+
+ gboolean (*handle_get_subsearch_result_set) (
+ GcalShellSearchProvider2 *object,
+ GDBusMethodInvocation *invocation,
+ const gchar *const *arg_PreviousResults,
+ const gchar *const *arg_Terms);
+
+ gboolean (*handle_launch_search) (
+ GcalShellSearchProvider2 *object,
+ GDBusMethodInvocation *invocation,
+ const gchar *const *arg_Terms,
+ guint arg_Timestamp);
+
+};
+
+
+gcal_shell_search_provider2_get_type
+GType
+void
+
+
+gcal_shell_search_provider2_interface_info
+GDBusInterfaceInfo *
+void
+
+
+gcal_shell_search_provider2_override_properties
+guint
+GObjectClass *klass, guint property_id_begin
+
+
+gcal_shell_search_provider2_complete_get_initial_result_set
+void
+ GcalShellSearchProvider2 *object, GDBusMethodInvocation *invocation, const gchar *const *Results
+
+
+gcal_shell_search_provider2_complete_get_subsearch_result_set
+void
+ GcalShellSearchProvider2 *object, GDBusMethodInvocation *invocation, const gchar *const *Results
+
+
+gcal_shell_search_provider2_complete_get_result_metas
+void
+ GcalShellSearchProvider2 *object, GDBusMethodInvocation *invocation, GVariant *Metas
+
+
+gcal_shell_search_provider2_complete_activate_result
+void
+ GcalShellSearchProvider2 *object, GDBusMethodInvocation *invocation
+
+
+gcal_shell_search_provider2_complete_launch_search
+void
+ GcalShellSearchProvider2 *object, GDBusMethodInvocation *invocation
+
+
+gcal_shell_search_provider2_call_get_initial_result_set
+void
+ GcalShellSearchProvider2 *proxy, const gchar *const *arg_Terms, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data
+
+
+gcal_shell_search_provider2_call_get_initial_result_set_finish
+gboolean
+ GcalShellSearchProvider2 *proxy, gchar ***out_Results, GAsyncResult *res, GError **error
+
+
+gcal_shell_search_provider2_call_get_initial_result_set_sync
+gboolean
+ GcalShellSearchProvider2 *proxy, const gchar *const *arg_Terms, gchar ***out_Results, GCancellable *cancellable, GError **error
+
+
+gcal_shell_search_provider2_call_get_subsearch_result_set
+void
+ GcalShellSearchProvider2 *proxy, const gchar *const *arg_PreviousResults, const gchar *const *arg_Terms, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data
+
+
+gcal_shell_search_provider2_call_get_subsearch_result_set_finish
+gboolean
+ GcalShellSearchProvider2 *proxy, gchar ***out_Results, GAsyncResult *res, GError **error
+
+
+gcal_shell_search_provider2_call_get_subsearch_result_set_sync
+gboolean
+ GcalShellSearchProvider2 *proxy, const gchar *const *arg_PreviousResults, const gchar *const *arg_Terms, gchar ***out_Results, GCancellable *cancellable, GError **error
+
+
+gcal_shell_search_provider2_call_get_result_metas
+void
+ GcalShellSearchProvider2 *proxy, const gchar *const *arg_Results, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data
+
+
+gcal_shell_search_provider2_call_get_result_metas_finish
+gboolean
+ GcalShellSearchProvider2 *proxy, GVariant **out_Metas, GAsyncResult *res, GError **error
+
+
+gcal_shell_search_provider2_call_get_result_metas_sync
+gboolean
+ GcalShellSearchProvider2 *proxy, const gchar *const *arg_Results, GVariant **out_Metas, GCancellable *cancellable, GError **error
+
+
+gcal_shell_search_provider2_call_activate_result
+void
+ GcalShellSearchProvider2 *proxy, const gchar *arg_Result, const gchar *const *arg_Terms, guint arg_Timestamp, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data
+
+
+gcal_shell_search_provider2_call_activate_result_finish
+gboolean
+ GcalShellSearchProvider2 *proxy, GAsyncResult *res, GError **error
+
+
+gcal_shell_search_provider2_call_activate_result_sync
+gboolean
+ GcalShellSearchProvider2 *proxy, const gchar *arg_Result, const gchar *const *arg_Terms, guint arg_Timestamp, GCancellable *cancellable, GError **error
+
+
+gcal_shell_search_provider2_call_launch_search
+void
+ GcalShellSearchProvider2 *proxy, const gchar *const *arg_Terms, guint arg_Timestamp, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data
+
+
+gcal_shell_search_provider2_call_launch_search_finish
+gboolean
+ GcalShellSearchProvider2 *proxy, GAsyncResult *res, GError **error
+
+
+gcal_shell_search_provider2_call_launch_search_sync
+gboolean
+ GcalShellSearchProvider2 *proxy, const gchar *const *arg_Terms, guint arg_Timestamp, GCancellable *cancellable, GError **error
+
+
+GCAL_TYPE_SHELL_SEARCH_PROVIDER2_PROXY
+#define GCAL_TYPE_SHELL_SEARCH_PROVIDER2_PROXY (gcal_shell_search_provider2_proxy_get_type ())
+
+
+GCAL_SHELL_SEARCH_PROVIDER2_PROXY
+#define GCAL_SHELL_SEARCH_PROVIDER2_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GCAL_TYPE_SHELL_SEARCH_PROVIDER2_PROXY, GcalShellSearchProvider2Proxy))
+
+
+GCAL_SHELL_SEARCH_PROVIDER2_PROXY_CLASS
+#define GCAL_SHELL_SEARCH_PROVIDER2_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GCAL_TYPE_SHELL_SEARCH_PROVIDER2_PROXY, GcalShellSearchProvider2ProxyClass))
+
+
+GCAL_SHELL_SEARCH_PROVIDER2_PROXY_GET_CLASS
+#define GCAL_SHELL_SEARCH_PROVIDER2_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GCAL_TYPE_SHELL_SEARCH_PROVIDER2_PROXY, GcalShellSearchProvider2ProxyClass))
+
+
+GCAL_IS_SHELL_SEARCH_PROVIDER2_PROXY
+#define GCAL_IS_SHELL_SEARCH_PROVIDER2_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GCAL_TYPE_SHELL_SEARCH_PROVIDER2_PROXY))
+
+
+GCAL_IS_SHELL_SEARCH_PROVIDER2_PROXY_CLASS
+#define GCAL_IS_SHELL_SEARCH_PROVIDER2_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GCAL_TYPE_SHELL_SEARCH_PROVIDER2_PROXY))
+
+
+GcalShellSearchProvider2Proxy
+struct _GcalShellSearchProvider2Proxy
+{
+ /*< private >*/
+ GDBusProxy parent_instance;
+ GcalShellSearchProvider2ProxyPrivate *priv;
+};
+
+
+GcalShellSearchProvider2ProxyClass
+struct _GcalShellSearchProvider2ProxyClass
+{
+ GDBusProxyClass parent_class;
+};
+
+
+gcal_shell_search_provider2_proxy_get_type
+GType
+void
+
+
+gcal_shell_search_provider2_proxy_new
+void
+ GDBusConnection *connection, GDBusProxyFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data
+
+
+gcal_shell_search_provider2_proxy_new_finish
+GcalShellSearchProvider2 *
+ GAsyncResult *res, GError **error
+
+
+gcal_shell_search_provider2_proxy_new_sync
+GcalShellSearchProvider2 *
+ GDBusConnection *connection, GDBusProxyFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GError **error
+
+
+gcal_shell_search_provider2_proxy_new_for_bus
+void
+ GBusType bus_type, GDBusProxyFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data
+
+
+gcal_shell_search_provider2_proxy_new_for_bus_finish
+GcalShellSearchProvider2 *
+ GAsyncResult *res, GError **error
+
+
+gcal_shell_search_provider2_proxy_new_for_bus_sync
+GcalShellSearchProvider2 *
+ GBusType bus_type, GDBusProxyFlags flags, const gchar *name, const gchar *object_path, GCancellable *cancellable, GError **error
+
+
+GCAL_TYPE_SHELL_SEARCH_PROVIDER2_SKELETON
+#define GCAL_TYPE_SHELL_SEARCH_PROVIDER2_SKELETON (gcal_shell_search_provider2_skeleton_get_type ())
+
+
+GCAL_SHELL_SEARCH_PROVIDER2_SKELETON
+#define GCAL_SHELL_SEARCH_PROVIDER2_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GCAL_TYPE_SHELL_SEARCH_PROVIDER2_SKELETON, GcalShellSearchProvider2Skeleton))
+
+
+GCAL_SHELL_SEARCH_PROVIDER2_SKELETON_CLASS
+#define GCAL_SHELL_SEARCH_PROVIDER2_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GCAL_TYPE_SHELL_SEARCH_PROVIDER2_SKELETON, GcalShellSearchProvider2SkeletonClass))
+
+
+GCAL_SHELL_SEARCH_PROVIDER2_SKELETON_GET_CLASS
+#define GCAL_SHELL_SEARCH_PROVIDER2_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GCAL_TYPE_SHELL_SEARCH_PROVIDER2_SKELETON, GcalShellSearchProvider2SkeletonClass))
+
+
+GCAL_IS_SHELL_SEARCH_PROVIDER2_SKELETON
+#define GCAL_IS_SHELL_SEARCH_PROVIDER2_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GCAL_TYPE_SHELL_SEARCH_PROVIDER2_SKELETON))
+
+
+GCAL_IS_SHELL_SEARCH_PROVIDER2_SKELETON_CLASS
+#define GCAL_IS_SHELL_SEARCH_PROVIDER2_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GCAL_TYPE_SHELL_SEARCH_PROVIDER2_SKELETON))
+
+
+GcalShellSearchProvider2Skeleton
+struct _GcalShellSearchProvider2Skeleton
+{
+ /*< private >*/
+ GDBusInterfaceSkeleton parent_instance;
+ GcalShellSearchProvider2SkeletonPrivate *priv;
+};
+
+
+GcalShellSearchProvider2SkeletonClass
+struct _GcalShellSearchProvider2SkeletonClass
+{
+ GDBusInterfaceSkeletonClass parent_class;
+};
+
+
+gcal_shell_search_provider2_skeleton_get_type
+GType
+void
+
+
+gcal_shell_search_provider2_skeleton_new
+GcalShellSearchProvider2 *
+void
+
+
+GcalShellSearchProvider2
+
+
+GcalShellSearchProvider2ProxyPrivate
+
+
+GcalShellSearchProvider2SkeletonPrivate
+
+
+GCAL_ENABLE_TRACE
+# define GCAL_ENABLE_TRACE 1
+
+
+GCAL_LOG_LEVEL_TRACE
+# define GCAL_LOG_LEVEL_TRACE ((GLogLevelFlags)(1 << G_LOG_LEVEL_USER_SHIFT))
+
+
+GCAL_TRACE_MSG
+# define GCAL_TRACE_MSG(fmt, ...) \
+ g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, " MSG: %s():%d: " fmt, \
+ G_STRFUNC, __LINE__, ##__VA_ARGS__)
+
+
+GCAL_PROBE
+# define GCAL_PROBE \
+ g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, "PROBE: %s():%d", \
+ G_STRFUNC, __LINE__)
+
+
+GCAL_TODO
+# define GCAL_TODO(_msg) \
+ g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, " TODO: %s():%d: %s", \
+ G_STRFUNC, __LINE__, _msg)
+
+
+GCAL_ENTRY
+# define GCAL_ENTRY \
+ g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, "ENTRY: %s():%d", \
+ G_STRFUNC, __LINE__)
+
+
+GCAL_EXIT
+# define GCAL_EXIT \
+ G_STMT_START { \
+ g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, " EXIT: %s():%d", \
+ G_STRFUNC, __LINE__); \
+ return; \
+ } G_STMT_END
+
+
+GCAL_GOTO
+# define GCAL_GOTO(_l) \
+ G_STMT_START { \
+ g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, " GOTO: %s():%d ("#_l")",\
+ G_STRFUNC, __LINE__); \
+ goto _l; \
+ } G_STMT_END
+
+
+GCAL_RETURN
+# define GCAL_RETURN(_r) \
+ G_STMT_START { \
+ g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, " EXIT: %s():%d ", \
+ G_STRFUNC, __LINE__); \
+ return _r; \
+ } G_STMT_END
+
+
+GCAL_BUG
+#define GCAL_BUG(Component, Description, ...) \
+ _GCAL_BUG(Component, Description, __FILE__, __LINE__, G_STRFUNC, ##__VA_ARGS__)
+
+
+GCAL_RESPONSE_DELETE_EVENT
+#define GCAL_RESPONSE_DELETE_EVENT 2
+
+
+GCAL_RESPONSE_SAVE_EVENT
+#define GCAL_RESPONSE_SAVE_EVENT 4
+
+
+GCAL_RESPONSE_CREATE_EVENT
+#define GCAL_RESPONSE_CREATE_EVENT 6
+
+
+GCAL_TYPE_EDIT_DIALOG
+#define GCAL_TYPE_EDIT_DIALOG (gcal_edit_dialog_get_type ())
+
+
+gcal_edit_dialog_new
+GtkWidget *
+void
+
+
+gcal_edit_dialog_set_event_is_new
+void
+GcalEditDialog *dialog, gboolean event_is_new
+
+
+gcal_edit_dialog_get_event
+GcalEvent *
+GcalEditDialog *dialog
+
+
+gcal_edit_dialog_set_event
+void
+GcalEditDialog *dialog, GcalEvent *event
+
+
+gcal_edit_dialog_set_manager
+void
+GcalEditDialog *dialog, GcalManager *manager
+
+
+gcal_edit_dialog_set_time_format
+void
+GcalEditDialog *dialog, gboolean use_24h_format
+
+
+gcal_edit_dialog_get_date_end
+GDateTime *
+GcalEditDialog *dialog
+
+
+gcal_edit_dialog_get_date_start
+GDateTime *
+GcalEditDialog *dialog
+
+
+GcalEditDialog
+
+
+GCAL_TYPE_MULTI_CHOICE
+#define GCAL_TYPE_MULTI_CHOICE (gcal_multi_choice_get_type())
+
+
+gcal_multi_choice_new
+GtkWidget *
+void
+
+
+gcal_multi_choice_get_value
+gint
+GcalMultiChoice *self
+
+
+gcal_multi_choice_set_value
+void
+GcalMultiChoice *self, gint value
+
+
+gcal_multi_choice_set_choices
+void
+GcalMultiChoice *self, const gchar **selfs
+
+
+GcalMultiChoiceFormatCallback
+gchar *
+GcalMultiChoice *self,
+ gint value,
+ gpointer user_data
+
+
+gcal_multi_choice_set_format_callback
+void
+GcalMultiChoice *self, GcalMultiChoiceFormatCallback callback, gpointer user_data, GDestroyNotify notify
+
+
+GcalMultiChoice
+
+
+GCAL_TYPE_DATE_CHOOSER_DAY
+#define GCAL_TYPE_DATE_CHOOSER_DAY (gcal_date_chooser_day_get_type())
+
+
+gcal_date_chooser_day_new
+GtkWidget *
+void
+
+
+gcal_date_chooser_day_get_date
+GDateTime *
+GcalDateChooserDay *day
+
+
+gcal_date_chooser_day_set_date
+void
+GcalDateChooserDay *day, GDateTime *date
+
+
+gcal_date_chooser_day_set_other_month
+void
+GcalDateChooserDay *day, gboolean other_month
+
+
+gcal_date_chooser_day_set_selected
+void
+GcalDateChooserDay *day, gboolean selected
+
+
+gcal_date_chooser_day_set_options
+void
+GcalDateChooserDay *day, GcalDateChooserDayOptions options
+
+
+GcalDateChooserDay
+
+
+GCAL_TYPE_EVENT_WIDGET
+#define GCAL_TYPE_EVENT_WIDGET (gcal_event_widget_get_type ())
+
+
+gcal_event_widget_new
+GtkWidget *
+GcalEvent *event
+
+
+gcal_event_widget_get_event
+GcalEvent *
+GcalEventWidget *self
+
+
+gcal_event_widget_get_date_start
+GDateTime *
+GcalEventWidget *self
+
+
+gcal_event_widget_set_date_start
+void
+GcalEventWidget *self, GDateTime *date_start
+
+
+gcal_event_widget_get_date_end
+GDateTime *
+GcalEventWidget *self
+
+
+gcal_event_widget_set_date_end
+void
+GcalEventWidget *self, GDateTime *date_end
+
+
+gcal_event_widget_set_read_only
+void
+GcalEventWidget *event, gboolean read_only
+
+
+gcal_event_widget_get_read_only
+gboolean
+GcalEventWidget *event
+
+
+gcal_event_widget_set_has_reminders
+void
+GcalEventWidget *event, gboolean has_reminders
+
+
+gcal_event_widget_get_has_reminders
+gboolean
+GcalEventWidget *event
+
+
+gcal_event_widget_clone
+GtkWidget *
+GcalEventWidget *widget
+
+
+gcal_event_widget_equal
+gboolean
+GcalEventWidget *widget1, GcalEventWidget *widget2
+
+
+gcal_event_widget_compare_by_length
+gint
+GcalEventWidget *widget1, GcalEventWidget *widget2
+
+
+gcal_event_widget_compare_by_start_date
+gint
+GcalEventWidget *widget1, GcalEventWidget *widget2
+
+
+GcalEventWidget
+
+
+GcalSubscriberViewPrivate
+struct _GcalSubscriberViewPrivate
+{
+ /**
+ * Hash to keep children widgets (all of them, parent widgets and its parts if there's any),
+ * uuid as key and a list of all the instances of the event as value. Here, the first widget on the list is
+ * the master, and the rest are the parts. Note: that the master is a part itself, the first one
+ */
+ GHashTable *children;
+
+ /**
+ * Hash containig single-cell events, day of the month, on month-view, month of the year on year-view as key and
+ * a list of the events that belongs to this cell
+ */
+ GHashTable *single_cell_children;
+
+ /**
+ * An organizaed list containig multiday events
+ * This one contains only parents events, to find out its parts @children will be used
+ */
+ GList *multi_cell_children;
+
+ /**
+ * Hash containing cells that who has overflow per list of hidden widgets.
+ */
+ GHashTable *overflow_cells;
+ /**
+ * Set containing the master widgets hidden for delete;
+ */
+ GHashTable *hidden_as_overflow;
+
+ /* state flags */
+ gboolean children_changed;
+};
+
+
+GCAL_TYPE_SEARCH_VIEW
+#define GCAL_TYPE_SEARCH_VIEW (gcal_search_view_get_type ())
+
+
+gcal_search_view_set_time_format
+void
+GcalSearchView *view, gboolean format_24h
+
+
+gcal_search_view_search
+void
+GcalSearchView *view, const gchar *field, const gchar *query
+
+
+gcal_search_view_new
+GtkWidget *
+void
+
+
+gcal_search_view_connect
+void
+GcalSearchView *search_view, GcalManager *manager
+
+
+GcalSearchView
+
+
+GCAL_RESPONSE_REMOVE_SOURCE
+#define GCAL_RESPONSE_REMOVE_SOURCE 2
+
+
+GCAL_TYPE_SOURCE_DIALOG
+#define GCAL_TYPE_SOURCE_DIALOG (gcal_source_dialog_get_type())
+
+
+GcalSourceDialogMode
+typedef enum
+{
+ GCAL_SOURCE_DIALOG_MODE_CREATE,
+ GCAL_SOURCE_DIALOG_MODE_CREATE_WEB,
+ GCAL_SOURCE_DIALOG_MODE_EDIT,
+ GCAL_SOURCE_DIALOG_MODE_NORMAL
+} GcalSourceDialogMode;
+
+
+gcal_source_dialog_new
+GtkWidget *
+void
+
+
+gcal_source_dialog_set_manager
+void
+GcalSourceDialog *dialog, GcalManager *manager
+
+
+gcal_source_dialog_set_mode
+void
+GcalSourceDialog *dialog, GcalSourceDialogMode mode
+
+
+gcal_source_dialog_set_source
+void
+GcalSourceDialog *dialog, ESource *source
+
+
+GcalSourceDialog
+
+
+GCAL_TYPE_YEAR_VIEW
+#define GCAL_TYPE_YEAR_VIEW (gcal_year_view_get_type())
+
+
+gcal_year_view_set_manager
+void
+GcalYearView *year_view, GcalManager *manager
+
+
+gcal_year_view_set_first_weekday
+void
+GcalYearView *year_view, gint nr_day
+
+
+gcal_year_view_set_use_24h_format
+void
+GcalYearView *year_view, gboolean use_24h_format
+
+
+gcal_year_view_set_current_date
+void
+GcalYearView *year_view, icaltimetype *current_date
+
+
+GcalYearView
+
+
+GCAL_TYPE_WEEK_VIEW
+#define GCAL_TYPE_WEEK_VIEW (gcal_week_view_get_type ())
+
+
+gcal_week_view_new
+GtkWidget *
+void
+
+
+gcal_week_view_set_manager
+void
+GcalWeekView *self, GcalManager *manager
+
+
+gcal_week_view_set_first_weekday
+void
+GcalWeekView *self, gint day_nr
+
+
+gcal_week_view_set_use_24h_format
+void
+GcalWeekView *self, gboolean use_24h
+
+
+GcalWeekView
+
+
+GCAL_TYPE_WEEK_GRID
+#define GCAL_TYPE_WEEK_GRID (gcal_week_grid_get_type())
+
+
+gcal_week_grid_set_manager
+void
+GcalWeekGrid *week_grid, GcalManager *manager
+
+
+gcal_week_grid_set_first_weekday
+void
+GcalWeekGrid *week_grid, gint nr_day
+
+
+gcal_week_grid_set_use_24h_format
+void
+GcalWeekGrid *week_grid, gboolean use_24h_format
+
+
+gcal_week_grid_add_event
+void
+GcalWeekGrid *self, GcalEvent *event
+
+
+gcal_week_grid_remove_event
+void
+GcalWeekGrid *self, const gchar *uid
+
+
+gcal_week_grid_get_children_by_uuid
+GList *
+GcalWeekGrid *self, const gchar *uid
+
+
+gcal_week_grid_clear_marks
+void
+GcalWeekGrid *self
+
+
+GcalWeekGrid
+
+
+GCAL_TYPE_MONTH_VIEW
+#define GCAL_TYPE_MONTH_VIEW (gcal_month_view_get_type ())
+
+
+gcal_month_view_set_first_weekday
+void
+GcalMonthView *self, gint day_nr
+
+
+gcal_month_view_set_use_24h_format
+void
+GcalMonthView *self, gboolean use_24h
+
+
+gcal_month_view_set_manager
+void
+GcalMonthView *self , GcalManager *manager
+
+
+GcalMonthView
+
+
+GCAL_TYPE_WEEK_HEADER
+#define GCAL_TYPE_WEEK_HEADER (gcal_week_header_get_type())
+
+
+gcal_week_header_set_manager
+void
+GcalWeekHeader *self, GcalManager *manager
+
+
+gcal_week_header_set_first_weekday
+void
+GcalWeekHeader *self, gint nr_day
+
+
+gcal_week_header_set_use_24h_format
+void
+GcalWeekHeader *self, gboolean use_24h_format
+
+
+gcal_week_header_add_event
+void
+GcalWeekHeader *self, GcalEvent *event
+
+
+gcal_week_header_remove_event
+void
+GcalWeekHeader *self, const gchar *uuid
+
+
+gcal_week_header_get_children_by_uuid
+GList *
+GcalWeekHeader *self, const gchar *uuid
+
+
+gcal_week_header_get_sidebar_size_group
+GtkSizeGroup *
+GcalWeekHeader *self
+
+
+gcal_week_header_clear_marks
+void
+GcalWeekHeader *self
+
+
+GcalWeekHeader
+
+
+GCAL_TYPE_RANGE_TREE
+#define GCAL_TYPE_RANGE_TREE (gcal_range_tree_get_type())
+
+
+GcalRangeTraverseFunc
+gboolean
+guint16 start,
+ guint16 end,
+ gpointer data,
+ gpointer user_data
+
+
+gcal_range_tree_get_type
+GType
+void
+
+
+gcal_range_tree_new
+GcalRangeTree *
+void
+
+
+gcal_range_tree_copy
+GcalRangeTree *
+GcalRangeTree *self
+
+
+gcal_range_tree_ref
+GcalRangeTree *
+GcalRangeTree *self
+
+
+gcal_range_tree_unref
+void
+GcalRangeTree *self
+
+
+gcal_range_tree_add_range
+void
+GcalRangeTree *self, guint16 start, guint16 end, gpointer data
+
+
+gcal_range_tree_remove_range
+void
+GcalRangeTree *self, guint16 start, guint16 end, gpointer data
+
+
+gcal_range_tree_traverse
+void
+GcalRangeTree *self, GTraverseType type, GcalRangeTraverseFunc func, gpointer user_data
+
+
+gcal_range_tree_get_data_at_range
+GPtrArray *
+GcalRangeTree *self, guint16 start, guint16 end
+
+
+gcal_range_tree_count_entries_at_range
+guint64
+GcalRangeTree *self, guint16 start, guint16 end
+
+
+GcalRangeTree
+
diff --git a/doc/reference/gnome-calendar-docs.sgml b/doc/reference/gnome-calendar-docs.sgml
new file mode 100644
index 00000000..672815aa
--- /dev/null
+++ b/doc/reference/gnome-calendar-docs.sgml
@@ -0,0 +1,84 @@
+
+
+
+ %gtkdocentities;
+]>
+
+
+ GNOME Calendar Reference Manual
+
+ For &package_string;.
+ The latest version of this documentation can be found on-line at
+ http://[SERVER]/&package_name;/.
+
+
+
+
+ Logging and Debugging
+
+
+
+
+
+ Backend
+
+
+
+
+
+
+
+
+
+
+
+
+ Views
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Edit dialog
+
+
+
+
+
+
+
+
+
+ Main
+
+
+
+
+
+
+
+
+ Object Hierarchy
+
+
+
+ API Index
+
+
+
+ Index of deprecated API
+
+
+
+
diff --git a/doc/reference/gnome-calendar-overrides.txt b/doc/reference/gnome-calendar-overrides.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/doc/reference/gnome-calendar-sections.txt b/doc/reference/gnome-calendar-sections.txt
new file mode 100644
index 00000000..ed99d871
--- /dev/null
+++ b/doc/reference/gnome-calendar-sections.txt
@@ -0,0 +1,581 @@
+
+css-code
+CSS Code
+CSS_TEMPLATE
+
+
+
+e-cal-data-model
+ECalDataModel
+ECalDataModelViewState
+EThreadJobFunc
+e_cal_data_model_new
+e_cal_data_model_new_clone
+e_cal_data_model_submit_thread_job
+e_cal_data_model_get_disposing
+e_cal_data_model_set_disposing
+e_cal_data_model_get_expand_recurrences
+e_cal_data_model_set_expand_recurrences
+e_cal_data_model_get_timezone
+e_cal_data_model_set_timezone
+e_cal_data_model_set_filter
+e_cal_data_model_dup_filter
+e_cal_data_model_add_client
+e_cal_data_model_remove_client
+e_cal_data_model_ref_client
+e_cal_data_model_get_clients
+e_cal_data_model_get_components
+ECalDataModelForeachFunc
+e_cal_data_model_foreach_component
+e_cal_data_model_subscribe
+e_cal_data_model_unsubscribe
+e_cal_data_model_get_subscriber_range
+e_cal_data_model_freeze_views_update
+e_cal_data_model_thaw_views_update
+e_cal_data_model_is_views_update_frozen
+
+ECalDataModel
+ECalDataModelClass
+ECalDataModelPrivate
+E_CAL_DATA_MODEL
+E_CAL_DATA_MODEL_CLASS
+E_CAL_DATA_MODEL_GET_CLASS
+E_IS_CAL_DATA_MODEL
+E_IS_CAL_DATA_MODEL_CLASS
+E_TYPE_CAL_DATA_MODEL
+e_cal_data_model_get_type
+
+
+
+e-cal-data-model-subscriber
+ECalDataModelSubscriber
+e_cal_data_model_subscriber_component_added
+e_cal_data_model_subscriber_component_modified
+e_cal_data_model_subscriber_component_removed
+e_cal_data_model_subscriber_freeze
+e_cal_data_model_subscriber_thaw
+
+ECalDataModelSubscriber
+ECalDataModelSubscriberInterface
+E_CAL_DATA_MODEL_SUBSCRIBER
+E_CAL_DATA_MODEL_SUBSCRIBER_GET_INTERFACE
+E_CAL_DATA_MODEL_SUBSCRIBER_INTERFACE
+E_IS_CAL_DATA_MODEL_SUBSCRIBER
+E_IS_CAL_DATA_MODEL_SUBSCRIBER_INTERFACE
+E_TYPE_CAL_DATA_MODEL_SUBSCRIBER
+e_cal_data_model_subscriber_get_type
+
+
+
+gcal-application
+GcalApplication
+GCAL_TYPE_APPLICATION
+gcal_application_new
+gcal_application_get_manager
+gcal_application_get_settings
+gcal_application_set_uuid
+gcal_application_set_initial_date
+GcalApplication
+
+
+
+gcal-date-chooser
+GcalDateChooser
+GcalDateChooserDayOptions
+GCAL_TYPE_DATE_CHOOSER
+GcalDateChooserDayOptionsCallback
+gcal_date_chooser_new
+gcal_date_chooser_get_date
+gcal_date_chooser_set_date
+gcal_date_chooser_set_day_options_callback
+gcal_date_chooser_invalidate_day_options
+gcal_date_chooser_get_no_month_change
+gcal_date_chooser_set_no_month_change
+gcal_date_chooser_get_show_heading
+gcal_date_chooser_set_show_heading
+gcal_date_chooser_get_show_day_names
+gcal_date_chooser_set_show_day_names
+gcal_date_chooser_get_show_week_numbers
+gcal_date_chooser_set_show_week_numbers
+GcalDateChooser
+
+
+
+gcal-date-chooser-day
+GcalDateChooserDay
+GCAL_TYPE_DATE_CHOOSER_DAY
+gcal_date_chooser_day_new
+gcal_date_chooser_day_get_date
+gcal_date_chooser_day_set_date
+gcal_date_chooser_day_set_other_month
+gcal_date_chooser_day_set_selected
+gcal_date_chooser_day_set_options
+GcalDateChooserDay
+
+
+
+gcal-date-selector
+GcalDateSelector
+GCAL_TYPE_DATE_SELECTOR
+gcal_date_selector_new
+gcal_date_selector_get_date
+gcal_date_selector_set_date
+GcalDateSelector
+
+
+
+gcal-debug
+Debugging
+GCAL_ENABLE_TRACE
+GCAL_LOG_LEVEL_TRACE
+GCAL_TRACE_MSG
+GCAL_PROBE
+GCAL_TODO
+GCAL_ENTRY
+GCAL_EXIT
+GCAL_GOTO
+GCAL_RETURN
+GCAL_BUG
+
+
+
+gcal-edit-dialog
+GcalEditDialog
+GCAL_RESPONSE_DELETE_EVENT
+GCAL_RESPONSE_SAVE_EVENT
+GCAL_RESPONSE_CREATE_EVENT
+GCAL_TYPE_EDIT_DIALOG
+gcal_edit_dialog_new
+gcal_edit_dialog_set_event_is_new
+gcal_edit_dialog_get_event
+gcal_edit_dialog_set_event
+gcal_edit_dialog_set_manager
+gcal_edit_dialog_set_time_format
+gcal_edit_dialog_get_date_end
+gcal_edit_dialog_get_date_start
+GcalEditDialog
+
+
+
+gcal-enum-types
+Enums
+
+GCAL_EDITABLE_PROPERTY
+GCAL_WINDOW_VIEW_TYPE
+event_editable_property_get_type
+gcal_window_view_type_get_type
+
+
+
+gcal-event
+GcalEvent
+GcalEventError
+GCAL_EVENT_ERROR
+GCAL_TYPE_EVENT
+gcal_event_error_quark
+gcal_event_new
+gcal_event_get_all_day
+gcal_event_set_all_day
+gcal_event_get_color
+gcal_event_set_color
+gcal_event_get_component
+gcal_event_get_date_end
+gcal_event_set_date_end
+gcal_event_get_date_start
+gcal_event_set_date_start
+gcal_event_get_description
+gcal_event_set_description
+gcal_event_has_alarms
+gcal_event_get_alarms
+gcal_event_add_alarm
+gcal_event_remove_alarm
+gcal_event_get_location
+gcal_event_set_location
+gcal_event_get_source
+gcal_event_set_source
+gcal_event_get_summary
+gcal_event_set_summary
+gcal_event_get_timezone
+gcal_event_set_timezone
+gcal_event_get_uid
+gcal_event_is_multiday
+gcal_event_compare
+gcal_event_compare_with_current
+GcalEvent
+
+
+
+gcal-event-widget
+GcalEventWidget
+GCAL_TYPE_EVENT_WIDGET
+gcal_event_widget_new
+gcal_event_widget_get_event
+gcal_event_widget_get_date_start
+gcal_event_widget_set_date_start
+gcal_event_widget_get_date_end
+gcal_event_widget_set_date_end
+gcal_event_widget_set_read_only
+gcal_event_widget_get_read_only
+gcal_event_widget_set_has_reminders
+gcal_event_widget_get_has_reminders
+gcal_event_widget_clone
+gcal_event_widget_equal
+gcal_event_widget_compare_by_length
+gcal_event_widget_compare_by_start_date
+GcalEventWidget
+
+
+
+gcal-log
+Logging
+gcal_log_init
+
+
+
+gcal-manager
+GcalManager
+GCAL_TYPE_MANAGER
+gcal_manager_new_with_settings
+gcal_manager_get_source
+gcal_manager_get_sources
+gcal_manager_get_sources_connected
+gcal_manager_get_default_source
+gcal_manager_set_default_source
+gcal_manager_get_system_timezone
+gcal_manager_set_subscriber
+gcal_manager_set_search_subscriber
+gcal_manager_set_query
+gcal_manager_query_client_data
+gcal_manager_refresh
+gcal_manager_is_client_writable
+gcal_manager_create_event
+gcal_manager_update_event
+gcal_manager_remove_event
+gcal_manager_move_event_to_source
+gcal_manager_add_source
+gcal_manager_enable_source
+gcal_manager_disable_source
+gcal_manager_save_source
+gcal_manager_get_events
+gcal_manager_get_loading
+gcal_manager_get_goa_client
+gcal_manager_get_event_from_shell_search
+gcal_manager_setup_shell_search
+gcal_manager_set_shell_search_query
+gcal_manager_set_shell_search_subscriber
+gcal_manager_shell_search_done
+gcal_manager_get_shell_search_events
+GcalManager
+
+
+
+gcal-month-view
+GcalMonthView
+GCAL_TYPE_MONTH_VIEW
+gcal_month_view_set_first_weekday
+gcal_month_view_set_use_24h_format
+gcal_month_view_set_manager
+GcalMonthView
+
+
+
+gcal-multi-choice
+GcalMultiChoice
+GCAL_TYPE_MULTI_CHOICE
+gcal_multi_choice_new
+gcal_multi_choice_get_value
+gcal_multi_choice_set_value
+gcal_multi_choice_set_choices
+GcalMultiChoiceFormatCallback
+gcal_multi_choice_set_format_callback
+GcalMultiChoice
+
+
+
+gcal-quick-add-popover
+GcalQuickAddPopover
+GCAL_TYPE_QUICK_ADD_POPOVER
+gcal_quick_add_popover_new
+gcal_quick_add_popover_set_manager
+gcal_quick_add_popover_get_date_start
+gcal_quick_add_popover_set_date_start
+gcal_quick_add_popover_get_date_end
+gcal_quick_add_popover_set_date_end
+GcalQuickAddPopover
+
+
+
+gcal-range-tree
+GcalRangeTree
+GcalRangeTraverseFunc
+gcal_range_tree_new
+gcal_range_tree_copy
+gcal_range_tree_ref
+gcal_range_tree_unref
+gcal_range_tree_add_range
+gcal_range_tree_remove_range
+gcal_range_tree_traverse
+gcal_range_tree_get_data_at_range
+gcal_range_tree_count_entries_at_range
+
+GCAL_TYPE_RANGE_TREE
+GcalRangeTree
+gcal_range_tree_get_type
+
+
+
+gcal-resources
+calendar_get_resource
+
+
+
+gcal-search-view
+GcalSearchView
+GCAL_TYPE_SEARCH_VIEW
+gcal_search_view_set_time_format
+gcal_search_view_search
+gcal_search_view_new
+gcal_search_view_connect
+GcalSearchView
+
+
+
+gcal-shell-search-provider
+GcalShellSearchProvider
+GCAL_TYPE_SHELL_SEARCH_PROVIDER
+GcalShellSearchProviderClass
+gcal_shell_search_provider_new
+gcal_shell_search_provider_dbus_export
+gcal_shell_search_provider_dbus_unexport
+gcal_shell_search_provider_connect
+GcalShellSearchProvider
+
+
+
+gcal-shell-search-provider-generated
+GcalShellSearchProvider2Skeleton
+gcal_shell_search_provider2_interface_info
+gcal_shell_search_provider2_override_properties
+gcal_shell_search_provider2_complete_get_initial_result_set
+gcal_shell_search_provider2_complete_get_subsearch_result_set
+gcal_shell_search_provider2_complete_get_result_metas
+gcal_shell_search_provider2_complete_activate_result
+gcal_shell_search_provider2_complete_launch_search
+gcal_shell_search_provider2_call_get_initial_result_set
+gcal_shell_search_provider2_call_get_initial_result_set_finish
+gcal_shell_search_provider2_call_get_initial_result_set_sync
+gcal_shell_search_provider2_call_get_subsearch_result_set
+gcal_shell_search_provider2_call_get_subsearch_result_set_finish
+gcal_shell_search_provider2_call_get_subsearch_result_set_sync
+gcal_shell_search_provider2_call_get_result_metas
+gcal_shell_search_provider2_call_get_result_metas_finish
+gcal_shell_search_provider2_call_get_result_metas_sync
+gcal_shell_search_provider2_call_activate_result
+gcal_shell_search_provider2_call_activate_result_finish
+gcal_shell_search_provider2_call_activate_result_sync
+gcal_shell_search_provider2_call_launch_search
+gcal_shell_search_provider2_call_launch_search_finish
+gcal_shell_search_provider2_call_launch_search_sync
+gcal_shell_search_provider2_proxy_new
+gcal_shell_search_provider2_proxy_new_finish
+gcal_shell_search_provider2_proxy_new_sync
+gcal_shell_search_provider2_proxy_new_for_bus
+gcal_shell_search_provider2_proxy_new_for_bus_finish
+gcal_shell_search_provider2_proxy_new_for_bus_sync
+gcal_shell_search_provider2_skeleton_new
+
+GCAL_IS_SHELL_SEARCH_PROVIDER2
+GCAL_IS_SHELL_SEARCH_PROVIDER2_PROXY
+GCAL_IS_SHELL_SEARCH_PROVIDER2_PROXY_CLASS
+GCAL_IS_SHELL_SEARCH_PROVIDER2_SKELETON
+GCAL_IS_SHELL_SEARCH_PROVIDER2_SKELETON_CLASS
+GCAL_SHELL_SEARCH_PROVIDER2
+GCAL_SHELL_SEARCH_PROVIDER2_GET_IFACE
+GCAL_SHELL_SEARCH_PROVIDER2_PROXY
+GCAL_SHELL_SEARCH_PROVIDER2_PROXY_CLASS
+GCAL_SHELL_SEARCH_PROVIDER2_PROXY_GET_CLASS
+GCAL_SHELL_SEARCH_PROVIDER2_SKELETON
+GCAL_SHELL_SEARCH_PROVIDER2_SKELETON_CLASS
+GCAL_SHELL_SEARCH_PROVIDER2_SKELETON_GET_CLASS
+GCAL_TYPE_SHELL_SEARCH_PROVIDER2
+GCAL_TYPE_SHELL_SEARCH_PROVIDER2_PROXY
+GCAL_TYPE_SHELL_SEARCH_PROVIDER2_SKELETON
+GcalShellSearchProvider2
+GcalShellSearchProvider2Iface
+GcalShellSearchProvider2Proxy
+GcalShellSearchProvider2ProxyClass
+GcalShellSearchProvider2ProxyPrivate
+GcalShellSearchProvider2Skeleton
+GcalShellSearchProvider2SkeletonClass
+GcalShellSearchProvider2SkeletonPrivate
+gcal_shell_search_provider2_get_type
+gcal_shell_search_provider2_proxy_get_type
+gcal_shell_search_provider2_skeleton_get_type
+
+
+
+gcal-source-dialog
+GcalSourceDialog
+GCAL_RESPONSE_REMOVE_SOURCE
+GCAL_TYPE_SOURCE_DIALOG
+GcalSourceDialogMode
+gcal_source_dialog_new
+gcal_source_dialog_set_manager
+gcal_source_dialog_set_mode
+gcal_source_dialog_set_source
+GcalSourceDialog
+
+
+
+gcal-subscriber-view
+GcalSubscriberView
+gcal_subscriber_view_get_child_by_uuid
+
+GCAL_IS_SUBSCRIBER_VIEW
+GCAL_IS_SUBSCRIBER_VIEW_CLASS
+GCAL_SUBSCRIBER_VIEW
+GCAL_SUBSCRIBER_VIEW_CLASS
+GCAL_SUBSCRIBER_VIEW_GET_CLASS
+GCAL_TYPE_SUBSCRIBER_VIEW
+GcalSubscriberView
+GcalSubscriberViewClass
+GcalSubscriberViewPrivate
+gcal_subscriber_view_get_type
+
+
+
+gcal-subscriber-view-private
+GcalSubscriberViewPrivate
+GcalSubscriberViewPrivate
+
+
+
+gcal-time-selector
+GcalTimeSelector
+GCAL_TYPE_TIME_SELECTOR
+gcal_time_selector_new
+gcal_time_selector_set_time_format
+gcal_time_selector_get_time
+gcal_time_selector_set_time
+GcalTimeSelector
+
+
+
+gcal-utils
+Utility functions
+ICAL_TIME_TYPE
+ALIGNED
+MINUTES_PER_DAY
+MAX_MINUTES
+gcal_clear_datetime
+GcalWindowViewType
+EventEditableProperty
+GcalTranslateFunc
+icaltime_get_type
+datetime_compare_date
+datetime_to_icaltime
+datetime_is_date
+icaltime_to_datetime
+gcal_dup_icaltime
+gcal_get_weekday
+gcal_get_month_name
+gcal_get_surface_from_color
+get_circle_surface_from_color
+get_color_name_from_source
+get_desc_from_component
+get_uuid_from_component
+get_first_weekday
+build_component_from_details
+icaltime_compare_date
+icaltime_compare_with_current
+get_start_of_week
+get_end_of_week
+is_clock_format_24h
+e_strftime_fix_am_pm
+e_utf8_strftime_fix_am_pm
+fix_popover_menu_icons
+uri_get_fields
+get_source_parent_name_color
+format_utc_offset
+get_alarm_trigger_minutes
+should_change_date_for_scroll
+is_source_enabled
+
+
+
+gcal-view
+GcalView
+GCAL_TYPE_VIEW
+GcalViewInterface
+gcal_view_set_date
+gcal_view_get_date
+gcal_view_get_initial_date
+gcal_view_get_final_date
+gcal_view_clear_marks
+gcal_view_get_children_by_uuid
+GcalView
+
+
+
+gcal-week-grid
+GcalWeekGrid
+GCAL_TYPE_WEEK_GRID
+gcal_week_grid_set_manager
+gcal_week_grid_set_first_weekday
+gcal_week_grid_set_use_24h_format
+gcal_week_grid_add_event
+gcal_week_grid_remove_event
+gcal_week_grid_get_children_by_uuid
+gcal_week_grid_clear_marks
+GcalWeekGrid
+
+
+
+gcal-week-header
+GcalWeekHeader
+GCAL_TYPE_WEEK_HEADER
+gcal_week_header_set_manager
+gcal_week_header_set_first_weekday
+gcal_week_header_set_use_24h_format
+gcal_week_header_add_event
+gcal_week_header_remove_event
+gcal_week_header_get_children_by_uuid
+gcal_week_header_get_sidebar_size_group
+gcal_week_header_clear_marks
+GcalWeekHeader
+
+
+
+gcal-week-view
+GcalWeekView
+GCAL_TYPE_WEEK_VIEW
+gcal_week_view_new
+gcal_week_view_set_manager
+gcal_week_view_set_first_weekday
+gcal_week_view_set_use_24h_format
+GcalWeekView
+
+
+
+gcal-window
+GcalWindow
+GCAL_TYPE_WINDOW
+gcal_window_new_with_view_and_date
+gcal_window_new_event
+gcal_window_set_search_mode
+gcal_window_set_search_query
+gcal_window_open_event_by_uuid
+GcalWindow
+
+
+
+gcal-year-view
+GcalYearView
+GCAL_TYPE_YEAR_VIEW
+gcal_year_view_set_manager
+gcal_year_view_set_first_weekday
+gcal_year_view_set_use_24h_format
+gcal_year_view_set_current_date
+GcalYearView
+
+
diff --git a/doc/reference/gnome-calendar-undeclared.txt b/doc/reference/gnome-calendar-undeclared.txt
new file mode 100644
index 00000000..2b4034e9
--- /dev/null
+++ b/doc/reference/gnome-calendar-undeclared.txt
@@ -0,0 +1,4 @@
+EventEditableProperty
+GcalTranslateFunc
+gcal_view_get_final_date
+gcal_view_get_initial_date
diff --git a/doc/reference/gnome-calendar-undocumented.txt b/doc/reference/gnome-calendar-undocumented.txt
new file mode 100644
index 00000000..e6ad0f52
--- /dev/null
+++ b/doc/reference/gnome-calendar-undocumented.txt
@@ -0,0 +1,257 @@
+60% symbol docs coverage.
+324 symbols documented.
+108 symbols incomplete.
+216 not documented.
+
+
+ALIGNED ()
+CSS_TEMPLATE
+ECalDataModel::view-state-changed
+ECalDataModel:expand-recurrences
+ECalDataModel:timezone
+ECalDataModelForeachFunc ()
+ECalDataModelViewState ()
+EThreadJobFunc ()
+EventEditableProperty
+GCAL_ENABLE_TRACE
+GCAL_EVENT_ERROR
+GCAL_LOG_LEVEL_TRACE
+GCAL_RESPONSE_CREATE_EVENT
+GCAL_RESPONSE_DELETE_EVENT
+GCAL_RESPONSE_REMOVE_SOURCE
+GCAL_RESPONSE_SAVE_EVENT
+GCAL_TYPE_APPLICATION
+GCAL_TYPE_DATE_CHOOSER
+GCAL_TYPE_DATE_CHOOSER_DAY
+GCAL_TYPE_DATE_SELECTOR
+GCAL_TYPE_EDIT_DIALOG
+GCAL_TYPE_EVENT
+GCAL_TYPE_EVENT_WIDGET
+GCAL_TYPE_MANAGER
+GCAL_TYPE_MONTH_VIEW
+GCAL_TYPE_MULTI_CHOICE
+GCAL_TYPE_QUICK_ADD_POPOVER
+GCAL_TYPE_SEARCH_VIEW
+GCAL_TYPE_SHELL_SEARCH_PROVIDER
+GCAL_TYPE_SOURCE_DIALOG
+GCAL_TYPE_TIME_SELECTOR
+GCAL_TYPE_VIEW
+GCAL_TYPE_WEEK_GRID
+GCAL_TYPE_WEEK_HEADER
+GCAL_TYPE_WEEK_VIEW
+GCAL_TYPE_WINDOW
+GCAL_TYPE_YEAR_VIEW
+GcalApplication
+GcalDateChooser
+GcalDateChooser::day-selected
+GcalDateChooser::month-changed
+GcalDateChooserDay
+GcalDateChooserDay::selected
+GcalDateChooserDayOptions ()
+GcalDateChooserDayOptionsCallback ()
+GcalDateSelector
+GcalEditDialog
+GcalEvent
+GcalEventWidget
+GcalEventWidget::activate
+GcalManager
+GcalManager::query-completed
+GcalManager::source-added
+GcalManager::source-changed
+GcalManager::source-enabled
+GcalManager::source-removed
+GcalMonthView
+GcalMultiChoice
+GcalMultiChoice::wrapped
+GcalMultiChoiceFormatCallback ()
+GcalQuickAddPopover
+GcalSearchView
+GcalShellSearchProvider
+GcalShellSearchProviderClass ()
+GcalSourceDialog
+GcalSubscriberView::event-activated
+GcalSubscriberViewPrivate ()
+GcalTimeSelector
+GcalTranslateFunc
+GcalView
+GcalViewInterface ()
+GcalWeekGrid
+GcalWeekGrid::event-activated
+GcalWeekHeader
+GcalWeekHeader::event-activated
+GcalWeekView
+GcalWeekView::event-activated
+GcalWindow
+GcalYearView
+GcalYearView::event-activated
+ICAL_TIME_TYPE
+MAX_MINUTES
+MINUTES_PER_DAY
+_GCAL_BUG
+build_component_from_details (summary, initial_date, final_date)
+calendar_get_resource
+e_cal_data_model_remove_client (data_model)
+e_cal_data_model_subscriber_component_added (comp)
+e_strftime_fix_am_pm (str, tm, fmt, max)
+e_utf8_strftime_fix_am_pm (fmt, max, str, tm)
+fix_popover_menu_icons (popover)
+free_row_data (Returns)
+gcal_application_get_manager ()
+gcal_application_get_settings ()
+gcal_application_new
+gcal_application_set_initial_date ()
+gcal_application_set_uuid ()
+gcal_clear_datetime ()
+gcal_date_chooser_day_get_date ()
+gcal_date_chooser_day_new
+gcal_date_chooser_day_set_date ()
+gcal_date_chooser_day_set_options ()
+gcal_date_chooser_day_set_other_month ()
+gcal_date_chooser_day_set_selected ()
+gcal_date_chooser_get_date ()
+gcal_date_chooser_get_no_month_change ()
+gcal_date_chooser_get_show_day_names ()
+gcal_date_chooser_get_show_heading ()
+gcal_date_chooser_get_show_week_numbers ()
+gcal_date_chooser_invalidate_day_options ()
+gcal_date_chooser_new
+gcal_date_chooser_set_date ()
+gcal_date_chooser_set_day_options_callback ()
+gcal_date_chooser_set_no_month_change ()
+gcal_date_chooser_set_show_day_names ()
+gcal_date_chooser_set_show_heading ()
+gcal_date_chooser_set_show_week_numbers ()
+gcal_date_selector_new
+gcal_event_get_description (self)
+gcal_event_set_summary (self)
+gcal_event_widget_clone ()
+gcal_event_widget_compare_by_length (widget1, widget2)
+gcal_event_widget_compare_by_start_date ()
+gcal_event_widget_get_has_reminders ()
+gcal_event_widget_get_read_only ()
+gcal_event_widget_new ()
+gcal_event_widget_set_date_start (date_start)
+gcal_event_widget_set_has_reminders ()
+gcal_event_widget_set_read_only ()
+gcal_log_init
+gcal_manager_add_source (backend, name)
+gcal_manager_get_default_source
+gcal_manager_get_events (range_end, range_start)
+gcal_manager_get_goa_client (manager)
+gcal_manager_get_shell_search_events (manager)
+gcal_manager_query_client_data (field, source, manager)
+gcal_manager_set_search_subscriber (manager)
+gcal_manager_set_shell_search_subscriber (manager)
+gcal_manager_set_subscriber (manager)
+gcal_manager_setup_shell_search (self)
+gcal_manager_shell_search_done (manager)
+gcal_month_view_motion_notify_event (widget, event, Returns)
+gcal_month_view_set_first_weekday (self)
+gcal_month_view_set_manager ()
+gcal_month_view_set_use_24h_format (view, use_24h)
+gcal_multi_choice_get_value ()
+gcal_multi_choice_new
+gcal_multi_choice_set_choices ()
+gcal_multi_choice_set_format_callback ()
+gcal_multi_choice_set_value ()
+gcal_quick_add_popover_new
+gcal_search_view_new
+gcal_search_view_search ()
+gcal_search_view_set_search
+gcal_shell_search_provider_connect ()
+gcal_shell_search_provider_dbus_export ()
+gcal_shell_search_provider_dbus_unexport ()
+gcal_shell_search_provider_new
+gcal_source_dialog_new
+gcal_subscriber_view_get_child_by_uuid ()
+gcal_time_selector_get_time ()
+gcal_time_selector_new
+gcal_time_selector_set_time ()
+gcal_time_selector_set_time_format ()
+gcal_view_get_date ()
+gcal_view_get_final_date
+gcal_view_get_initial_date
+gcal_view_set_date ()
+gcal_week_grid_add_event ()
+gcal_week_grid_clear_marks ()
+gcal_week_grid_get_children_by_uuid ()
+gcal_week_grid_remove_event ()
+gcal_week_grid_set_first_weekday ()
+gcal_week_grid_set_manager ()
+gcal_week_grid_set_use_24h_format ()
+gcal_week_header_add_event ()
+gcal_week_header_clear_marks ()
+gcal_week_header_get_children_by_uuid ()
+gcal_week_header_get_sidebar_size_group ()
+gcal_week_header_remove_event ()
+gcal_week_header_set_first_weekday ()
+gcal_week_header_set_manager ()
+gcal_week_header_set_use_24h_format ()
+gcal_week_view_set_first_weekday (view, day_nr)
+gcal_week_view_set_manager ()
+gcal_week_view_set_use_24h_format (view, use_24h)
+gcal_year_view_set_current_date ()
+gcal_year_view_set_first_weekday ()
+gcal_year_view_set_manager ()
+gcal_year_view_set_use_24h_format ()
+hide_notification (Returns)
+icaltime_get_type
+notification_child_revealed_changed (Returns)
+open_event (Returns)
+remove_button_clicked (Returns)
+remove_source (Returns)
+undo_remove_action (Returns)
+update_view (Returns)
+view_changed (object, pspec, user_data)
+
+css-code:Long_Description
+css-code:Short_Description
+e-cal-data-model-subscriber:Long_Description
+e-cal-data-model-subscriber:Short_Description
+e-cal-data-model:Long_Description
+e-cal-data-model:Short_Description
+gcal-application:Long_Description
+gcal-application:Short_Description
+gcal-date-chooser-day:Long_Description
+gcal-date-chooser-day:Short_Description
+gcal-date-chooser:Long_Description
+gcal-date-chooser:Short_Description
+gcal-date-selector:Long_Description
+gcal-date-selector:Short_Description
+gcal-enum-types:Long_Description
+gcal-enum-types:Short_Description
+gcal-event-widget:Long_Description
+gcal-event-widget:Short_Description
+gcal-log:Long_Description
+gcal-log:Short_Description
+gcal-month-view:Long_Description
+gcal-month-view:Short_Description
+gcal-multi-choice:Long_Description
+gcal-multi-choice:Short_Description
+gcal-quick-add-popover:Long_Description
+gcal-quick-add-popover:Short_Description
+gcal-resources:Long_Description
+gcal-resources:Short_Description
+gcal-search-view:Long_Description
+gcal-search-view:Short_Description
+gcal-shell-search-provider-generated:Long_Description
+gcal-shell-search-provider-generated:Short_Description
+gcal-shell-search-provider:Long_Description
+gcal-shell-search-provider:Short_Description
+gcal-subscriber-view-private:Long_Description
+gcal-subscriber-view-private:Short_Description
+gcal-subscriber-view:Long_Description
+gcal-subscriber-view:Short_Description
+gcal-time-selector:Long_Description
+gcal-time-selector:Short_Description
+gcal-utils:Long_Description
+gcal-view:Long_Description
+gcal-view:Short_Description
+gcal-week-grid:Long_Description
+gcal-week-grid:Short_Description
+gcal-week-header:Long_Description
+gcal-week-header:Short_Description
+gcal-week-view:Long_Description
+gcal-week-view:Short_Description
+gcal-year-view:Long_Description
+gcal-year-view:Short_Description
diff --git a/doc/reference/gnome-calendar-unused.txt b/doc/reference/gnome-calendar-unused.txt
new file mode 100644
index 00000000..b3ac4899
--- /dev/null
+++ b/doc/reference/gnome-calendar-unused.txt
@@ -0,0 +1,18 @@
+e_cal_data_model_submit_thread_job(description, alert_ident, alert_arg_0)
+e_cal_data_model_subscriber_component_added(icalcomp)
+fix_popover_menu_icons(window)
+gcal_event_set_summary(event)
+gcal_event_widget_set_date_start(date_end)
+gcal_manager_add_source(base_uri, relative_uri)
+gcal_manager_get_events(start_date, end_date)
+gcal_manager_get_goa_client(self)
+gcal_manager_get_shell_search_events(self)
+gcal_manager_set_search_subscriber(self)
+gcal_manager_set_shell_search_subscriber(self)
+gcal_manager_set_subscriber(self)
+gcal_manager_setup_shell_search(manager)
+gcal_manager_shell_search_done(self)
+gcal_month_view_set_first_weekday(view)
+gcal_month_view_set_use_24h_format(view)
+gcal_week_view_set_first_weekday(view)
+gcal_week_view_set_use_24h_format(view)
diff --git a/doc/reference/gnome-calendar.args b/doc/reference/gnome-calendar.args
new file mode 100644
index 00000000..b1128cf0
--- /dev/null
+++ b/doc/reference/gnome-calendar.args
@@ -0,0 +1,470 @@
+
+ECalDataModel::expand-recurrences
+gboolean
+
+rw
+Expand Recurrences
+(null)
+FALSE
+
+
+
+ECalDataModel::timezone
+gpointer
+
+rw
+Time Zone
+(null)
+
+
+
+
+GcalDateChooser::date
+GDateTime*
+
+rw
+Date
+The selected date.
+
+
+
+
+GcalDateChooser::no-month-change
+gboolean
+
+rw
+No Month Change
+If TRUE, the selected month cannot be changed.
+FALSE
+
+
+
+GcalDateChooser::show-day-names
+gboolean
+
+rw
+Show Day Names
+If TRUE, day names are displayed.
+TRUE
+
+
+
+GcalDateChooser::show-heading
+gboolean
+
+rw
+Show Heading
+If TRUE, a heading is displayed.
+TRUE
+
+
+
+GcalDateChooser::show-week-numbers
+gboolean
+
+rw
+Show Week Numbers
+If TRUE, week numbers are displayed.
+TRUE
+
+
+
+GcalDateSelector::date
+GDateTime*
+
+rw
+Date of the selector
+The current date of the selector.
+
+
+
+
+GcalEditDialog::event
+GcalEvent*
+
+rw
+event of the dialog
+The event being edited.
+
+
+
+
+GcalEditDialog::manager
+GcalManager*
+
+rw
+Manager of the dialog
+The manager of the dialog.
+
+
+
+
+GcalEditDialog::writable
+gboolean
+
+rw
+Whether the current event can be edited
+Whether the current event can be edited or not.
+TRUE
+
+
+
+GcalEvent::all-day
+gboolean
+
+rw
+If event is all day
+Whether the event is all day or not.
+FALSE
+
+
+
+GcalEvent::color
+GdkRGBA*
+
+rw
+Color of the event
+The color of the event.
+
+
+
+
+GcalEvent::component
+ECalComponent*
+
+rwX
+Component
+The ECalComponent of the event.
+
+
+
+
+GcalEvent::date-end
+GDateTime*
+
+rw
+End date of the event
+The end date of the event.
+
+
+
+
+GcalEvent::date-start
+GDateTime*
+
+rw
+Start date of the event
+The start date of the event.
+
+
+
+
+GcalEvent::description
+gchar*
+
+rw
+Description of the event
+The description of the event.
+""
+
+
+
+GcalEvent::location
+gchar*
+
+rw
+Location of the event
+The location of the event.
+""
+
+
+
+GcalEvent::source
+ESource*
+
+rwx
+ESource
+The ESource this event belongs to.
+
+
+
+
+GcalEvent::summary
+gchar*
+
+rw
+Summary of the event
+The summary of the event.
+""
+
+
+
+GcalEvent::timezone
+GTimeZone*
+
+rw
+Timezone of the event
+The timezone of the event.
+
+
+
+
+GcalEvent::uid
+gchar*
+
+r
+Identifier of the event
+The unique identifier of the event.
+""
+
+
+
+GcalEventWidget::date-end
+GDateTime*
+
+rw
+End date
+The end date of the widget.
+
+
+
+
+GcalEventWidget::date-start
+GDateTime*
+
+rw
+Start date
+The start date of the widget.
+
+
+
+
+GcalEventWidget::event
+GcalEvent*
+
+rwX
+Event
+The event this widget represents.
+
+
+
+
+GcalManager::default-calendar
+ESource*
+
+rw
+Default calendar
+The default calendar.
+
+
+
+
+GcalManager::loading
+gboolean
+
+r
+Loading
+Whether it's still loading or not.
+TRUE
+
+
+
+GcalManager::settings
+GSettings*
+
+rwX
+Application settings
+The settings of the application passed down from GcalApplication.
+
+
+
+
+GcalMultiChoice::animate
+gboolean
+
+rw
+Animate
+Animate.
+FALSE
+
+
+
+GcalMultiChoice::choices
+GStrv
+
+w
+Choices
+Choices.
+
+
+
+
+GcalMultiChoice::max-value
+gint
+
+rw
+Maximum Value
+Maximum Value.
+0
+
+
+
+GcalMultiChoice::min-value
+gint
+
+rw
+Minimum Value
+Minimum Value.
+0
+
+
+
+GcalMultiChoice::value
+gint
+
+rw
+Value
+Value.
+0
+
+
+
+GcalMultiChoice::wrap
+gboolean
+
+rw
+Wrap
+Wrap.
+FALSE
+
+
+
+GcalQuickAddPopover::date-end
+GDateTime*
+
+rw
+End date of the event
+The end date of the new event.
+
+
+
+
+GcalQuickAddPopover::date-start
+GDateTime*
+
+rw
+Start date of the event
+The start date of the new event.
+
+
+
+
+GcalQuickAddPopover::manager
+GcalManager*
+
+rw
+Manager of the application
+The singleton manager of the application.
+
+
+
+
+GcalSearchView::active-date
+icaltimetype*
+
+rw
+The active date
+The active/selected date in the view.
+
+
+
+
+GcalTimeSelector::time
+GDateTime*
+
+rw
+Time of the selector
+The current time of the selector.
+
+
+
+
+GcalView::active-date
+icaltimetype*
+
+rw
+The active date
+The active/selecetd date in the view.
+
+
+
+
+GcalWeekGrid::active-date
+icaltimetype*
+
+rwx
+Date
+The active selected date.
+
+
+
+
+GcalWeekHeader::active-date
+icaltimetype*
+
+rwx
+Date
+The active selected date.
+
+
+
+
+GcalWindow::active-date
+icaltimetype*
+
+rwx
+Date
+The active/selected date.
+
+
+
+
+GcalWindow::active-view
+GcalWindowViewType
+
+rw
+Active View
+The active view, eg: month, week, etc.
+GCAL_WINDOW_VIEW_MONTH
+
+
+
+GcalWindow::manager
+GcalManager*
+
+rwX
+The manager object
+A weak reference to the app manager object.
+
+
+
+
+GcalWindow::new-event-mode
+gboolean
+
+rw
+New Event mode
+Whether the window is in new-event-mode or not.
+FALSE
+
+
+
+GcalYearView::show-week-numbers
+gboolean
+
+rw
+Show Week Numbers
+Show Week Numbers Column.
+FALSE
+
+
diff --git a/doc/reference/gnome-calendar.hierarchy b/doc/reference/gnome-calendar.hierarchy
new file mode 100644
index 00000000..bc548aba
--- /dev/null
+++ b/doc/reference/gnome-calendar.hierarchy
@@ -0,0 +1,155 @@
+GObject
+ ECalDataModel
+ GApplication
+ GtkApplication
+ GcalApplication
+ GInitiallyUnowned
+ GtkWidget
+ GtkContainer
+ GtkBin
+ GcalDateChooserDay
+ GcalDateChooser
+ GtkWindow
+ GtkDialog
+ GcalEditDialog
+ GcalSourceDialog
+ GtkApplicationWindow
+ GcalWindow
+ GtkPopover
+ GcalQuickAddPopover
+ GcalSearchView
+ GtkButton
+ GtkToggleButton
+ GtkMenuButton
+ GcalTimeSelector
+ GcalSubscriberView
+ GcalMonthView
+ GtkBox
+ GcalMultiChoice
+ GcalWeekView
+ GcalYearView
+ GcalWeekGrid
+ GtkGrid
+ GcalWeekHeader
+ GtkMenuShell
+ GtkMenu
+ GtkEntry
+ GcalDateSelector
+ GcalEventWidget
+ GcalEvent
+ GcalManager
+ GDBusProxy
+ GcalShellSearchProvider2Proxy
+ GDBusInterfaceSkeleton
+ GcalShellSearchProvider2Skeleton
+ GcalShellSearchProvider
+ ECalClientView
+ GApplicationCommandLine
+ GMenuModel
+ AtkObject
+ GtkAccessible
+ GtkWidgetAccessible
+ GtkContainerAccessible
+ GtkWindowAccessible
+ GtkPopoverAccessible
+ GtkButtonAccessible
+ GtkToggleButtonAccessible
+ GtkMenuButtonAccessible
+ GtkEntryAccessible
+ GtkStyle
+ GdkWindow
+ GdkDragContext
+ GtkTooltip
+ GdkScreen
+ GdkDisplayManager
+ GdkDisplay
+ GtkEntryBuffer
+ GdkPixbuf
+ GtkEntryCompletion
+ GZlibDecompressor
+ GFileInfo
+ ECalComponent
+ ESource
+ GSettings
+ GDBusMethodInvocation
+ GDBusConnection
+ ESourceExtension
+ ESourceLocal
+ GtkAction
+GInterface
+ GTypePlugin
+ ECalDataModelSubscriber
+ GActionGroup
+ GActionMap
+ AtkImplementorIface
+ GtkBuildable
+ GtkEditable
+ GtkCellEditable
+ GInitable
+ GtkOrientable
+ GcalView
+ GcalShellSearchProvider2
+ GDBusInterface
+ GAsyncInitable
+ GtkActionable
+ GtkActivatable
+ AtkComponent
+ GIcon
+ GLoadableIcon
+ GtkCellLayout
+ AtkEditableText
+ AtkText
+ AtkAction
+ AtkWindow
+ GConverter
+ GProxyResolver
+ AtkImage
+GBoxed
+ GValueArray
+ GcalRangeTree
+ icaltimetype
+ GError
+ GVariantDict
+ GdkRectangle
+ CairoRectangleInt
+ CairoContext
+ GdkEvent
+ GtkSelectionData
+ GtkRequisition
+ GtkBorder
+ GdkColor
+ GDateTime
+ PangoAttrList
+ PangoTabArray
+ GdkRGBA
+ GTimeZone
+ GStrv
+ GDBusInterfaceInfo
+GEnum
+ GcalWindowViewType
+ GtkAlign
+ GtkStateType
+ GtkTextDirection
+ GtkDirectionType
+ GtkDragResult
+ GtkWidgetHelpType
+ GtkResizeMode
+ GtkShadowType
+ GtkImageType
+ GtkInputPurpose
+ GtkMovementStep
+ GtkDeleteType
+ GtkEntryIconPosition
+ GtkWindowType
+ GtkWindowPosition
+ GdkWindowTypeHint
+ GdkGravity
+ GZlibCompressorFormat
+ GtkOrientation
+ GtkBaselinePosition
+ GtkPackType
+ GtkPositionType
+ GtkPopoverConstraint
+ GBusType
+ GtkReliefStyle
+ GtkArrowType
diff --git a/doc/reference/gnome-calendar.interfaces b/doc/reference/gnome-calendar.interfaces
new file mode 100644
index 00000000..c36201ea
--- /dev/null
+++ b/doc/reference/gnome-calendar.interfaces
@@ -0,0 +1,56 @@
+GApplication GActionGroup GActionMap
+GtkApplication GActionGroup GActionMap
+GcalApplication GActionGroup GActionMap
+GtkWidget AtkImplementorIface GtkBuildable
+GtkContainer AtkImplementorIface GtkBuildable
+GtkBin AtkImplementorIface GtkBuildable
+GcalDateChooserDay AtkImplementorIface GtkBuildable
+GcalDateChooser AtkImplementorIface GtkBuildable
+GtkWindow AtkImplementorIface GtkBuildable
+GtkDialog AtkImplementorIface GtkBuildable
+GcalEditDialog AtkImplementorIface GtkBuildable
+GcalSourceDialog AtkImplementorIface GtkBuildable
+GtkApplicationWindow AtkImplementorIface GtkBuildable GActionGroup GActionMap
+GcalWindow AtkImplementorIface GtkBuildable GActionGroup GActionMap
+GtkPopover AtkImplementorIface GtkBuildable
+GcalQuickAddPopover AtkImplementorIface GtkBuildable
+GcalSearchView AtkImplementorIface GtkBuildable ECalDataModelSubscriber
+GtkButton AtkImplementorIface GtkBuildable GtkActionable GtkActivatable
+GtkToggleButton AtkImplementorIface GtkBuildable GtkActionable GtkActivatable
+GtkMenuButton AtkImplementorIface GtkBuildable GtkActionable GtkActivatable
+GcalTimeSelector AtkImplementorIface GtkBuildable GtkActionable GtkActivatable
+GcalSubscriberView AtkImplementorIface GtkBuildable ECalDataModelSubscriber
+GcalMonthView AtkImplementorIface GtkBuildable ECalDataModelSubscriber GcalView
+GtkBox AtkImplementorIface GtkBuildable GtkOrientable
+GcalMultiChoice AtkImplementorIface GtkBuildable GtkOrientable
+GcalWeekView AtkImplementorIface GtkBuildable GtkOrientable GcalView ECalDataModelSubscriber
+GcalYearView AtkImplementorIface GtkBuildable GtkOrientable GcalView ECalDataModelSubscriber
+GcalWeekGrid AtkImplementorIface GtkBuildable
+GtkGrid AtkImplementorIface GtkBuildable GtkOrientable
+GcalWeekHeader AtkImplementorIface GtkBuildable GtkOrientable
+GtkMenuShell AtkImplementorIface GtkBuildable
+GtkMenu AtkImplementorIface GtkBuildable
+GtkEntry AtkImplementorIface GtkBuildable GtkEditable GtkCellEditable
+GcalDateSelector AtkImplementorIface GtkBuildable GtkEditable GtkCellEditable
+GcalEventWidget AtkImplementorIface GtkBuildable GtkOrientable
+GcalEvent GInitable
+GDBusProxy GDBusInterface GInitable GAsyncInitable
+GcalShellSearchProvider2Proxy GDBusInterface GInitable GAsyncInitable GcalShellSearchProvider2
+GDBusInterfaceSkeleton GDBusInterface
+GcalShellSearchProvider2Skeleton GDBusInterface GcalShellSearchProvider2
+GcalShellSearchProvider ECalDataModelSubscriber
+ECalClientView GInitable
+GtkWidgetAccessible AtkComponent
+GtkContainerAccessible AtkComponent
+GtkWindowAccessible AtkComponent AtkWindow
+GtkPopoverAccessible AtkComponent
+GtkButtonAccessible AtkComponent AtkAction AtkImage
+GtkToggleButtonAccessible AtkComponent AtkAction AtkImage
+GtkMenuButtonAccessible AtkComponent AtkAction AtkImage
+GtkEntryAccessible AtkComponent AtkEditableText AtkText AtkAction
+GdkPixbuf GIcon GLoadableIcon
+GtkEntryCompletion GtkCellLayout GtkBuildable
+GZlibDecompressor GConverter
+ESource GInitable GProxyResolver
+GDBusConnection GInitable GAsyncInitable
+GtkAction GtkBuildable
diff --git a/doc/reference/gnome-calendar.prerequisites b/doc/reference/gnome-calendar.prerequisites
new file mode 100644
index 00000000..c2795797
--- /dev/null
+++ b/doc/reference/gnome-calendar.prerequisites
@@ -0,0 +1,19 @@
+ECalDataModelSubscriber GObject
+GActionGroup GObject
+GActionMap GObject
+GtkBuildable GObject
+GtkCellEditable GtkWidget
+GInitable GObject
+GtkOrientable GObject
+GcalView GtkWidget
+GcalShellSearchProvider2 GObject
+GDBusInterface GObject
+GAsyncInitable GObject
+GtkActionable GtkWidget
+GtkActivatable GObject
+GIcon GObject
+GLoadableIcon GIcon GObject
+GtkCellLayout GObject
+AtkWindow AtkObject
+GConverter GObject
+GProxyResolver GObject
diff --git a/doc/reference/gnome-calendar.signals b/doc/reference/gnome-calendar.signals
new file mode 100644
index 00000000..4626300f
--- /dev/null
+++ b/doc/reference/gnome-calendar.signals
@@ -0,0 +1,213 @@
+
+ECalDataModel::view-state-changed
+void
+l
+ECalDataModel *ecaldatamodel
+ECalClientView *arg1
+guint arg2
+guint arg3
+gchar *arg4
+GError *arg5
+
+
+
+GcalDateChooserDay::selected
+void
+f
+GcalDateChooserDay *gcaldatechooserday
+
+
+
+GcalDateChooser::day-selected
+void
+f
+GcalDateChooser *gcaldatechooser
+
+
+
+GcalDateChooser::month-changed
+void
+f
+GcalDateChooser *gcaldatechooser
+
+
+
+GcalEventWidget::activate
+void
+l
+GcalEventWidget *gcaleventwidget
+
+
+
+GcalManager::query-completed
+void
+l
+GcalManager *gcalmanager
+
+
+
+GcalManager::source-added
+void
+l
+GcalManager *gcalmanager
+gpointer arg1
+gboolean arg2
+
+
+
+GcalManager::source-changed
+void
+l
+GcalManager *gcalmanager
+ESource *arg1
+
+
+
+GcalManager::source-enabled
+void
+l
+GcalManager *gcalmanager
+ESource *arg1
+gboolean arg2
+
+
+
+GcalManager::source-removed
+void
+l
+GcalManager *gcalmanager
+gpointer arg1
+
+
+
+GcalMultiChoice::wrapped
+void
+l
+GcalMultiChoice *gcalmultichoice
+
+
+
+GcalQuickAddPopover::edit-event
+void
+l
+GcalQuickAddPopover *gcalquickaddpopover
+GcalEvent *arg1
+
+
+
+GcalSearchView::event-activated
+void
+l
+GcalSearchView *gcalsearchview
+icaltimetype *arg1
+
+
+
+GcalShellSearchProvider2::handle-activate-result
+gboolean
+l
+GcalShellSearchProvider2 *gcalshellsearchprovider2
+GDBusMethodInvocation *arg1
+gchar *arg2
+GStrv arg3
+guint arg4
+
+
+
+GcalShellSearchProvider2::handle-get-initial-result-set
+gboolean
+l
+GcalShellSearchProvider2 *gcalshellsearchprovider2
+GDBusMethodInvocation *arg1
+GStrv arg2
+
+
+
+GcalShellSearchProvider2::handle-get-result-metas
+gboolean
+l
+GcalShellSearchProvider2 *gcalshellsearchprovider2
+GDBusMethodInvocation *arg1
+GStrv arg2
+
+
+
+GcalShellSearchProvider2::handle-get-subsearch-result-set
+gboolean
+l
+GcalShellSearchProvider2 *gcalshellsearchprovider2
+GDBusMethodInvocation *arg1
+GStrv arg2
+GStrv arg3
+
+
+
+GcalShellSearchProvider2::handle-launch-search
+gboolean
+l
+GcalShellSearchProvider2 *gcalshellsearchprovider2
+GDBusMethodInvocation *arg1
+GStrv arg2
+guint arg3
+
+
+
+GcalSubscriberView::event-activated
+void
+l
+GcalSubscriberView *gcalsubscriberview
+GcalEventWidget *arg1
+
+
+
+GcalView::create-event
+void
+l
+GcalView *gcalview
+gpointer arg1
+gpointer arg2
+gdouble arg3
+gdouble arg4
+
+
+
+GcalView::create-event-detailed
+void
+l
+GcalView *gcalview
+gpointer arg1
+gpointer arg2
+
+
+
+GcalWeekGrid::event-activated
+void
+f
+GcalWeekGrid *gcalweekgrid
+GcalEventWidget *arg1
+
+
+
+GcalWeekHeader::event-activated
+void
+f
+GcalWeekHeader *gcalweekheader
+GcalEventWidget *arg1
+
+
+
+GcalWeekView::event-activated
+void
+f
+GcalWeekView *gcalweekview
+GcalEventWidget *arg1
+
+
+
+GcalYearView::event-activated
+void
+l
+GcalYearView *gcalyearview
+GcalEventWidget *arg1
+
+
diff --git a/doc/reference/gnome-calendar.types b/doc/reference/gnome-calendar.types
new file mode 100644
index 00000000..954780f2
--- /dev/null
+++ b/doc/reference/gnome-calendar.types
@@ -0,0 +1,30 @@
+e_cal_data_model_get_type
+e_cal_data_model_subscriber_get_type
+gcal_application_get_type
+gcal_date_chooser_day_get_type
+gcal_date_chooser_get_type
+gcal_date_selector_get_type
+gcal_edit_dialog_get_type
+gcal_event_get_type
+gcal_event_widget_get_type
+gcal_manager_get_type
+gcal_month_view_get_type
+gcal_multi_choice_get_type
+gcal_quick_add_popover_get_type
+gcal_range_tree_get_type
+gcal_search_view_get_type
+gcal_shell_search_provider2_get_type
+gcal_shell_search_provider2_proxy_get_type
+gcal_shell_search_provider2_skeleton_get_type
+gcal_shell_search_provider_get_type
+gcal_source_dialog_get_type
+gcal_subscriber_view_get_type
+gcal_time_selector_get_type
+gcal_view_get_type
+gcal_week_grid_get_type
+gcal_week_header_get_type
+gcal_week_view_get_type
+gcal_window_get_type
+gcal_window_view_type_get_type
+gcal_year_view_get_type
+icaltime_get_type
diff --git a/doc/reference/images/gcal-edit-dialog.png b/doc/reference/images/gcal-edit-dialog.png
new file mode 100644
index 00000000..ea40de20
Binary files /dev/null and b/doc/reference/images/gcal-edit-dialog.png differ
diff --git a/doc/reference/images/gcal-event-widget.png b/doc/reference/images/gcal-event-widget.png
new file mode 100644
index 00000000..431ed87a
Binary files /dev/null and b/doc/reference/images/gcal-event-widget.png differ
diff --git a/doc/reference/images/gcal-source-dialog.png b/doc/reference/images/gcal-source-dialog.png
new file mode 100644
index 00000000..7a630987
Binary files /dev/null and b/doc/reference/images/gcal-source-dialog.png differ
diff --git a/doc/reference/images/gcal-window.png b/doc/reference/images/gcal-window.png
new file mode 100644
index 00000000..d7d2c535
Binary files /dev/null and b/doc/reference/images/gcal-window.png differ
diff --git a/doc/reference/images/gcal-window_agendas.png b/doc/reference/images/gcal-window_agendas.png
new file mode 100644
index 00000000..b7a3bb0e
Binary files /dev/null and b/doc/reference/images/gcal-window_agendas.png differ
diff --git a/doc/reference/version.xml.in b/doc/reference/version.xml.in
new file mode 100644
index 00000000..d78bda93
--- /dev/null
+++ b/doc/reference/version.xml.in
@@ -0,0 +1 @@
+@VERSION@
diff --git a/src/Makefile.am b/src/Makefile.am
index 270e7035..567aec65 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -125,5 +125,22 @@ EXTRA_DIST = \
gcal-enum-types.h.template \
gcal-enum-types.c.template
+
+#---------------------------------------------
+# Library for GTK-Doc
+#---------------------------------------------
+noinst_LTLIBRARIES = libgcal.la
+
+libgcal_la_SOURCES = $(gnome_calendar_SOURCES)
+
+libgcal_la_CFLAGS = \
+ $(CALENDAR_CFLAGS) \
+ $(CALENDAR_WARN_CFLAGS)
+
+libgcal_la_LDFLAGS = \
+ -Wl,--export-dynamic \
+ -lm
+
+
dist-hook:
cd $(distdir); rm -f $(BUILT_SOURCES)
diff --git a/src/gcal-debug.h.in b/src/gcal-debug.h.in
index bc2d1eb8..199624cc 100644
--- a/src/gcal-debug.h.in
+++ b/src/gcal-debug.h.in
@@ -21,6 +21,18 @@
#include
+/**
+ * SECTION:gcal-debug
+ * @short_description: Debugging macros
+ * @title:Debugging
+ * @stability:stable
+ *
+ * Macros used for tracing and debugging code. These
+ * are only valid when Calendar is compiled with tracing
+ * suppoer (pass `--enable-tracing` to the configure
+ * script to do that).
+ */
+
G_BEGIN_DECLS
#ifndef GCAL_ENABLE_TRACE
@@ -38,46 +50,158 @@ G_BEGIN_DECLS
#endif
#ifdef GCAL_ENABLE_TRACE
+
+/**
+ * GCAL_TRACE_MSG:
+ * @fmt: printf-like format of the message
+ * @...: arguments for @fmt
+ *
+ * Prints a trace message.
+ */
# define GCAL_TRACE_MSG(fmt, ...) \
g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, " MSG: %s():%d: " fmt, \
G_STRFUNC, __LINE__, ##__VA_ARGS__)
+
+/**
+ * GCAL_PROBE:
+ *
+ * Prints a probing message. Put this macro in the code when
+ * you want to check the program reaches a certain section
+ * of code.
+ */
# define GCAL_PROBE \
g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, "PROBE: %s():%d", \
G_STRFUNC, __LINE__)
+
+/**
+ * GCAL_TODO:
+ * @_msg: the message to print
+ *
+ * Prints a TODO message.
+ */
# define GCAL_TODO(_msg) \
g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, " TODO: %s():%d: %s", \
G_STRFUNC, __LINE__, _msg)
+
+/**
+ * GCAL_ENTRY:
+ *
+ * Prints an entry message. This shouldn't be used in
+ * critical functions. Place this at the beggining of
+ * the function, before any assertion.
+ */
# define GCAL_ENTRY \
g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, "ENTRY: %s():%d", \
G_STRFUNC, __LINE__)
+
+/**
+ * GCAL_EXIT:
+ *
+ * Prints an exit message. This shouldn't be used in
+ * critical functions. Place this at the end of
+ * the function, after any relevant code. If the
+ * function returns something, use GCAL_RETURN()
+ * instead.
+ */
# define GCAL_EXIT \
G_STMT_START { \
g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, " EXIT: %s():%d", \
G_STRFUNC, __LINE__); \
return; \
} G_STMT_END
+
+/**
+ * GCAL_GOTO:
+ * @_l: goto tag
+ *
+ * Logs a goto jump.
+ */
# define GCAL_GOTO(_l) \
G_STMT_START { \
g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, " GOTO: %s():%d ("#_l")",\
G_STRFUNC, __LINE__); \
goto _l; \
} G_STMT_END
+
+/**
+ * GCAL_RETURN:
+ * @_r: the return value.
+ *
+ * Prints an exit message, and returns @_r. See #GCAL_EXIT.
+ */
# define GCAL_RETURN(_r) \
G_STMT_START { \
g_log(G_LOG_DOMAIN, GCAL_LOG_LEVEL_TRACE, " EXIT: %s():%d ", \
G_STRFUNC, __LINE__); \
return _r; \
} G_STMT_END
+
#else
+
+/**
+ * GCAL_TODO:
+ * @_msg: the message to print
+ *
+ * Prints a TODO message.
+ */
# define GCAL_TODO(_msg)
+
+/**
+ * GCAL_PROBE:
+ *
+ * Prints a probing message.
+ */
# define GCAL_PROBE
+
+/**
+ * GCAL_TRACE_MSG:
+ * @fmt: printf-like format of the message
+ * @...: arguments for @fmt
+ *
+ * Prints a trace message.
+ */
# define GCAL_TRACE_MSG(fmt, ...)
+
+/**
+ * GCAL_ENTRY:
+ *
+ * Prints a probing message. This shouldn't be used in
+ * critical functions. Place this at the beggining of
+ * the function, before any assertion.
+ */
# define GCAL_ENTRY
+
+/**
+ * GCAL_GOTO:
+ * @_l: goto tag
+ *
+ * Logs a goto jump.
+ */
# define GCAL_GOTO(_l) goto _l
+
+/**
+ * GCAL_EXIT:
+ *
+ * Prints an exit message. This shouldn't be used in
+ * critical functions. Place this at the end of
+ * the function, after any relevant code. If the
+ * function returns somethin, use GCAL_RETURN()
+ * instead.
+ */
# define GCAL_EXIT return
+
+/**
+ * GCAL_RETURN:
+ * @_r: the return value.
+ *
+ * Prints an exit message, and returns @_r. See #GCAL_EXIT.
+ */
# define GCAL_RETURN(_r) return _r
#endif
+/**
+ * _GCAL_BUG: (skip)
+ */
#define _GCAL_BUG(Component, Description, File, Line, Func, ...) \
G_STMT_START { \
g_printerr ("-----------------------------------------------------------------\n"); \
@@ -91,6 +215,15 @@ G_BEGIN_DECLS
g_printerr (Description"\n", ##__VA_ARGS__); \
g_printerr ("-----------------------------------------------------------------\n"); \
} G_STMT_END
+
+/**
+ * GCAL_BUG:
+ * @Component: the component
+ * @Description: the description
+ * @...: extra arguments
+ *
+ * Logs a bug-friendly message.
+ */
#define GCAL_BUG(Component, Description, ...) \
_GCAL_BUG(Component, Description, __FILE__, __LINE__, G_STRFUNC, ##__VA_ARGS__)
diff --git a/src/gcal-edit-dialog.c b/src/gcal-edit-dialog.c
index 59fc74a4..f54ebf1a 100644
--- a/src/gcal-edit-dialog.c
+++ b/src/gcal-edit-dialog.c
@@ -29,6 +29,17 @@
#include
#include
+/**
+ * SECTION:gcal-edit-dialog
+ * @short_description: Event editor dialog
+ * @title:GcalEditDialog
+ * @image:gcal-edit-dialog.png
+ *
+ * #GcalEditDialog is the event editor dialog of GNOME Calendar. It
+ * allows the user to change the various aspects of the events, as
+ * well as managing alarms.
+ */
+
struct _GcalEditDialog
{
GtkDialog parent;
@@ -766,6 +777,7 @@ get_row_for_alarm_trigger_minutes (GcalEditDialog *self,
return NULL;
}
+
static void
remove_button_clicked (GtkButton *button,
GtkWidget *row)
@@ -1019,12 +1031,27 @@ add_alarm_button_clicked (GtkWidget *button,
}
/* Public API */
+
+/**
+ * gcal_edit_dialog_new:
+ *
+ * Creates a new #GcalEditDialog
+ *
+ * Returns: (transfer full): a #GcalEditDialog
+ */
GtkWidget*
gcal_edit_dialog_new (void)
{
return g_object_new (GCAL_TYPE_EDIT_DIALOG, NULL);
}
+/**
+ * gcal_edit_dialog_set_time_format:
+ * @dialog: a #GcalDialog
+ * @use_24h_format: %TRUE to use 24h format, %FALSE otherwise
+ *
+ * Sets the time format to be used by @dialog.
+ */
void
gcal_edit_dialog_set_time_format (GcalEditDialog *dialog,
gboolean use_24h_format)
@@ -1037,6 +1064,14 @@ gcal_edit_dialog_set_time_format (GcalEditDialog *dialog,
gcal_time_selector_set_time_format (GCAL_TIME_SELECTOR (dialog->end_time_selector), dialog->format_24h);
}
+/**
+ * gcal_edit_dialog_set_event_is_new:
+ * @dialog: a #GcalDialog
+ * @event_is_new: %TRUE if the event is new, %FALSE otherwise
+ *
+ * Sets whether the currently edited event is a new event, or not.
+ * The @dialog will adapt it's UI elements to reflect that.
+ */
void
gcal_edit_dialog_set_event_is_new (GcalEditDialog *dialog,
gboolean event_is_new)
@@ -1046,6 +1081,14 @@ gcal_edit_dialog_set_event_is_new (GcalEditDialog *dialog,
gtk_widget_set_visible (dialog->delete_button, !event_is_new);
}
+/**
+ * gcal_edit_dialog_get_event:
+ * @dialog: a #GcalDialog
+ *
+ * Retrieves the current event being edited by the @dialog.
+ *
+ * Returns: (transfer none)(nullable): a #GcalEvent
+ */
GcalEvent*
gcal_edit_dialog_get_event (GcalEditDialog *dialog)
{
@@ -1054,6 +1097,14 @@ gcal_edit_dialog_get_event (GcalEditDialog *dialog)
return dialog->event;
}
+/**
+ * gcal_edit_dialog_set_event:
+ * @dialog: a #GcalDialog
+ * @event: (nullable): a #GcalEvent
+ *
+ * Sets the event of the @dialog. When @event is
+ * %NULL, the current event information is unset.
+ */
void
gcal_edit_dialog_set_event (GcalEditDialog *dialog,
GcalEvent *event)
@@ -1164,6 +1215,13 @@ out:
GCAL_EXIT;
}
+/**
+ * gcal_edit_dialog_set_manager:
+ * @dialog: a #GcalEditDialog
+ * @manager: a #GcalManager
+ *
+ * Sets the #GcalManager instance of the @dialog.
+ */
void
gcal_edit_dialog_set_manager (GcalEditDialog *dialog,
GcalManager *manager)
@@ -1220,6 +1278,14 @@ return_datetime_for_widgets (GcalEditDialog *dialog,
return retval;
}
+/**
+ * gcal_edit_dialog_get_date_start:
+ * @dialog: a #GcalEditDialog
+ *
+ * Retrieves the start date of the edit dialog.
+ *
+ * Returns: (transfer full): a #GDateTime
+ */
GDateTime*
gcal_edit_dialog_get_date_start (GcalEditDialog *dialog)
{
@@ -1231,6 +1297,14 @@ gcal_edit_dialog_get_date_start (GcalEditDialog *dialog)
GCAL_TIME_SELECTOR (dialog->start_time_selector));
}
+/**
+ * gcal_edit_dialog_get_date_end:
+ * @dialog: a #GcalEditDialog
+ *
+ * Retrieves the end date of the edit dialog.
+ *
+ * Returns: (transfer full): a #GDateTime
+ */
GDateTime*
gcal_edit_dialog_get_date_end (GcalEditDialog *dialog)
{
diff --git a/src/gcal-event.c b/src/gcal-event.c
index b6dfb9d2..907bb96c 100644
--- a/src/gcal-event.c
+++ b/src/gcal-event.c
@@ -23,6 +23,58 @@
#define LIBICAL_TZID_PREFIX "/freeassociation.sourceforge.net/"
+/**
+ * SECTION:gcal-event
+ * @short_description: A class that represents an event
+ * @title:GcalEvent
+ * @stability:unstable
+ * @see_also:GcalEventWidget,GcalManager
+ *
+ * The #GcalEvent class represents an appointment, with
+ * various functions to modify it. All the changes are
+ * transient. To persistently store the changes, you
+ * need to call gcal_manager_update_event().
+ *
+ * Although the #ECalComponent may have no end date. In this
+ * case, gcal_event_get_date_end() returns the same date that
+ * gcal_event_get_date_start().
+ *
+ * #GcalEvent implements #GInitable, and creating it possibly
+ * can generate an error. At the moment, the only error that
+ * can be generate is #GCAL_EVENT_ERROR_INVALID_START_DATE.
+ *
+ * ## Timezones
+ *
+ * When a #GcalEvent is created, the timezone is parsed from
+ * the #ECalComponent. The start and end dates can possibly
+ * have different timezones, e.g. when the user is traveling
+ * across timezones and the departure time is in a different
+ * timezone of the arrival time.
+ *
+ * For the sake of sanity, gcal_event_get_timezone() returns
+ * the timezone of the start date. If you need to precisely
+ * check the timezones of the start and end dates, you have
+ * to use g_date_time_get_timezone_identifier().
+ *
+ * ## Example:
+ * |[
+ * GcalEvent *event;
+ * GError *error;
+ *
+ * error = NULL;
+ * event = gcal_event_new (source, component, &error);
+ *
+ * if (error)
+ * {
+ * g_warning ("Error creating event: %s", error->message);
+ * g_clear_error (&error);
+ * return;
+ * }
+ *
+ * ...
+ * ]|
+ */
+
struct _GcalEvent
{
GObject parent;
@@ -739,7 +791,7 @@ gcal_event_get_color (GcalEvent *self)
* @color: a #GdkRGBA
*
* Sets the color of the event, which is passed to the
- * parent @ESource.
+ * parent #ESource.
*/
void
gcal_event_set_color (GcalEvent *self,
@@ -797,7 +849,9 @@ gcal_event_set_all_day (GcalEvent *self,
* gcal_event_get_date_end:
* @self: a #GcalEvent
*
- * Retrieves the end date of @self.
+ * Retrieves the end date of @self. If the component doesn't
+ * have an end date, then the returned date is the same of
+ * gcal_event_get_date_start().
*
* Returns: (transfer none): a #GDateTime.
*/
@@ -1337,7 +1391,7 @@ gcal_event_set_timezone (GcalEvent *self,
* @self: a #GcalEvent
*
* Retrieves the unique identifier of the event. The UID
- * consists of '::'.
+ * consists of '[source id]:[event id]:[recurrency id]'.
* If there's no recurrency assigned, the last field is
* ignored.
*
diff --git a/src/gcal-event.h b/src/gcal-event.h
index ce21b22d..3fe6d96d 100644
--- a/src/gcal-event.h
+++ b/src/gcal-event.h
@@ -26,6 +26,12 @@
G_BEGIN_DECLS
+/**
+ * GcalEventError:
+ * @GCAL_EVENT_ERROR_INVALID_START_DATE: indicated an invalid start date
+ *
+ * Errors that #GcalEvent can generate.
+ */
typedef enum
{
GCAL_EVENT_ERROR_INVALID_START_DATE
diff --git a/src/gcal-manager.c b/src/gcal-manager.c
index f63235b7..91587b1d 100644
--- a/src/gcal-manager.c
+++ b/src/gcal-manager.c
@@ -25,6 +25,17 @@
#include
+/**
+ * SECTION:gcal-manager
+ * @short_description: The backend of GNOME Calendar
+ * @title:GcalManager
+ * @stability:unstable
+ *
+ * #GcalManager is the backend of GNOME Calendar. It sets everything
+ * up, connects to the Online Accounts daemon, and manages the events
+ * and calendars.
+ */
+
typedef struct
{
GcalEvent *event;
@@ -479,7 +490,7 @@ on_event_created (GObject *source_object,
/**
* on_component_updated:
- * @source_object: {@link ECalClient} source
+ * @source_object: #ECalClient source
* @result: result of the operation
* @user_data: manager instance
*
@@ -510,9 +521,9 @@ on_event_updated (GObject *source_object,
/**
* on_event_removed:
- * @source_object: {@link ECalClient} source
+ * @source_object: #ECalClient source
* @result: result of the operation
- * @user_data: an {@link ECalComponent}
+ * @user_data: an #ECalComponent
*
* Called when an component is removed. Currently, it only checks for
* error, but a more sophisticated implementation will come in no time.*
@@ -1076,12 +1087,12 @@ gcal_manager_init (GcalManager *self)
/* Public API */
/**
* gcal_manager_new_with_settings:
- * @settings:
+ * @settings: a #GSettings
*
- * Since: 0.0.1
- * Return value: the new #GcalManager
- * Returns: (transfer full):
- **/
+ * Creates a new #GcalManager with @settings.
+ *
+ * Returns: (transfer full): a newly created #GcalManager
+ */
GcalManager*
gcal_manager_new_with_settings (GSettings *settings)
{
@@ -1092,29 +1103,32 @@ gcal_manager_new_with_settings (GSettings *settings)
/**
* gcal_manager_get_source:
- * @manager:
+ * @manager: a #GcalManager
+ * @uid: the unique identifier of the source
*
* Retrieve a source according to it's UID. The source
* is referenced for thread-safety and must be unreferenced
* after user.
*
- * Returns: (Transfer full) an {@link ESource}, or NULL.
- **/
+ * Returns: (nullable)(transfer full): an #ESource, or %NULL.
+ */
ESource*
gcal_manager_get_source (GcalManager *manager,
const gchar *uid)
{
+ g_return_val_if_fail (GCAL_IS_MANAGER (manager), NULL);
+
return e_source_registry_ref_source (manager->source_registry, uid);
}
/**
* gcal_manager_get_sources:
- * @manager:
+ * @manager: a #GcalManager
*
* Retrieve a list of the enabled sources used in the application.
*
- * Returns: (Transfer full) a {@link GList} object to be freed with g_list_free()
- **/
+ * Returns: (nullable)(transfer container)(content-type ESource): a #GList
+ */
GList*
gcal_manager_get_sources (GcalManager *manager)
{
@@ -1124,6 +1138,8 @@ gcal_manager_get_sources (GcalManager *manager)
GCAL_ENTRY;
+ g_return_val_if_fail (GCAL_IS_MANAGER (manager), NULL);
+
g_hash_table_iter_init (&iter, manager->clients);
while (g_hash_table_iter_next (&iter, &key, &value))
@@ -1141,50 +1157,75 @@ gcal_manager_get_sources (GcalManager *manager)
/**
* gcal_manager_get_sources_connected:
- * @manager:
+ * @manager: a #GcalManager
*
- * Returns a {@link GList} with every source connected on the app, whether they are enabled or not.
+ * Returns a #GList with every source connected on the app,
+ * whether they are enabled or not.
*
- * Returns: (Transfer full) a {@link GList} object to be freed with g_list_free()
- **/
+ * Returns: (nullable)(transfer container)(content-type ESource): a #GList
+ */
GList*
gcal_manager_get_sources_connected (GcalManager *manager)
{
+ g_return_val_if_fail (GCAL_IS_MANAGER (manager), NULL);
+
return g_hash_table_get_keys (manager->clients);
}
/**
* gcal_manager_get_default_source:
- * @manager: App singleton {@link GcalManager} instance
+ * @manager: a #GcalManager
*
- * Returns: (Transfer full): an {@link ESource} object. Free with g_object_unref().
- **/
+ * Returns: (transfer full): an #ESource object. Free
+ * with g_object_unref().
+ */
ESource*
gcal_manager_get_default_source (GcalManager *manager)
{
+ g_return_val_if_fail (GCAL_IS_MANAGER (manager), NULL);
+
return e_source_registry_ref_default_calendar (manager->source_registry);
}
/**
* gcal_manager_set_default_source:
- * @manager: App singleton {@link GcalManager} instance
+ * @manager: a #GcalManager
* @source: the new default source.
*
- * Returns:
- **/
+ * Sets the default calendar.
+ */
void
gcal_manager_set_default_source (GcalManager *manager,
ESource *source)
{
+ g_return_if_fail (GCAL_IS_MANAGER (manager));
+
e_source_registry_set_default_calendar (manager->source_registry, source);
}
+/**
+ * gcal_manager_get_system_timezone:
+ * @manager: a #GcalManager
+ *
+ * Retireves the default timezone.
+ *
+ * Returns: (transfer none): the default timezone
+ */
icaltimezone*
gcal_manager_get_system_timezone (GcalManager *manager)
{
+ g_return_val_if_fail (GCAL_IS_MANAGER (manager), NULL);
+
return manager->system_timezone;
}
+/**
+ * gcal_manager_setup_shell_search:
+ * @manager: a #GcalManager
+ * @subscriber: an #ECalDataModelSubscriber
+ *
+ * Sets up the GNOME Shell search subscriber.
+ */
void
gcal_manager_setup_shell_search (GcalManager *self,
ECalDataModelSubscriber *subscriber)
@@ -1213,13 +1254,15 @@ gcal_manager_setup_shell_search (GcalManager *self,
* @query: query string (an s-exp)
*
* Set the query terms of the #ECalDataModel used in the shell search
- **/
+ */
void
gcal_manager_set_shell_search_query (GcalManager *manager,
const gchar *query)
{
GCAL_ENTRY;
+ g_return_if_fail (GCAL_IS_MANAGER (manager));
+
manager->search_view_data->passed_start = FALSE;
manager->search_view_data->search_done = FALSE;
manager->search_view_data->sources_left = g_hash_table_size (manager->clients);
@@ -1231,6 +1274,15 @@ gcal_manager_set_shell_search_query (GcalManager *manager,
e_cal_data_model_set_filter (manager->shell_search_data_model, query);
}
+/**
+ * gcal_manager_set_shell_search_subscriber:
+ * @self: a #GcalManager
+ * @subscriber: the #ECalDataModelSubscriber to subscribe
+ * @range_start: the start of the range
+ * @range_end: the end of the range
+ *
+ * Subscribe @subscriber to the shell data modal at the given range.
+ */
void
gcal_manager_set_shell_search_subscriber (GcalManager *manager,
ECalDataModelSubscriber *subscriber,
@@ -1244,12 +1296,30 @@ gcal_manager_set_shell_search_subscriber (GcalManager *manager,
GCAL_EXIT;
}
+/**
+ * gcal_manager_shell_search_done:
+ * @self: a #GcalManager
+ *
+ * Retrieves whether the search at @manager is done or not.
+ *
+ * Returns: %TRUE if the search is finished.
+ */
gboolean
gcal_manager_shell_search_done (GcalManager *manager)
{
+ g_return_val_if_fail (GCAL_IS_MANAGER (manager), FALSE);
+
return manager->search_view_data->search_done;
}
+/**
+ * gcal_manager_get_shell_search_events:
+ * @self: a #GcalManager
+ *
+ * Retrieves all the events available for GNOME Shell search.
+ *
+ * Returns: (nullable)(transfer full)(content-type GcalEvent): a #GList
+ */
GList*
gcal_manager_get_shell_search_events (GcalManager *manager)
{
@@ -1272,6 +1342,16 @@ gcal_manager_get_shell_search_events (GcalManager *manager)
GCAL_RETURN (list);
}
+/**
+ * gcal_manager_set_subscriber:
+ * @self: a #GcalManager
+ * @subscriber: a #ECalDataModelSubscriber
+ * @range_start: the start of the range
+ * @range_end: the end of the range
+ *
+ * Sets the @subscriber to show events between @range_start
+ * and @range_end.
+ */
void
gcal_manager_set_subscriber (GcalManager *manager,
ECalDataModelSubscriber *subscriber,
@@ -1280,6 +1360,8 @@ gcal_manager_set_subscriber (GcalManager *manager,
{
GCAL_ENTRY;
+ g_return_if_fail (GCAL_IS_MANAGER (manager));
+
e_cal_data_model_subscribe (manager->e_data_model,
subscriber,
range_start,
@@ -1288,6 +1370,16 @@ gcal_manager_set_subscriber (GcalManager *manager,
GCAL_EXIT;
}
+/**
+ * gcal_manager_set_search_subscriber:
+ * @self: a #GcalManager
+ * @subscriber: a #ECalDataModelSubscriber
+ * @range_start: the start of the range
+ * @range_end: the end of the range
+ *
+ * Sets the @subscriber to show events between @range_start
+ * and @range_end.
+ */
void
gcal_manager_set_search_subscriber (GcalManager *manager,
ECalDataModelSubscriber *subscriber,
@@ -1296,6 +1388,8 @@ gcal_manager_set_search_subscriber (GcalManager *manager,
{
GCAL_ENTRY;
+ g_return_if_fail (GCAL_IS_MANAGER (manager));
+
e_cal_data_model_subscribe (manager->search_data_model,
subscriber,
range_start,
@@ -1311,8 +1405,7 @@ gcal_manager_set_search_subscriber (GcalManager *manager,
*
* Set the query terms of the #ECalDataModel or clear it if %NULL is
* passed
- *
- **/
+ */
void
gcal_manager_set_query (GcalManager *self,
const gchar *query)
@@ -1330,10 +1423,10 @@ gcal_manager_set_query (GcalManager *self,
/**
* gcal_manager_query_client_data:
*
- * Queries for a specific data field of
- * the {@link ECalClient}.
+ * Queries for a specific data field of the #ECalClient
*
- * Returns: (Transfer none) a string representing the retrieved value, or NULL.
+ * Returns: (nullable)(transfer none): a string representing
+ * the retrieved value.
*/
gchar*
gcal_manager_query_client_data (GcalManager *manager,
@@ -1345,6 +1438,8 @@ gcal_manager_query_client_data (GcalManager *manager,
GCAL_ENTRY;
+ g_return_val_if_fail (GCAL_IS_MANAGER (manager), NULL);
+
unit = g_hash_table_lookup (manager->clients, source);
if (!unit)
@@ -1365,10 +1460,8 @@ gcal_manager_query_client_data (GcalManager *manager,
* Add a new calendar by its URI.
* The calendar is enabled by default
*
- * Return value: The UID of calendar's source, NULL in other case
- * Returns: (transfer full):
- *
- * Since: 0.0.1
+ * Returns: (nullable)(transfer full): unique identifier of calendar's source, or
+ * %NULL.
*/
gchar*
gcal_manager_add_source (GcalManager *manager,
@@ -1382,6 +1475,8 @@ gcal_manager_add_source (GcalManager *manager,
GCAL_ENTRY;
+ g_return_val_if_fail (GCAL_IS_MANAGER (manager), NULL);
+
source = e_source_new (NULL, NULL, NULL);
extension = E_SOURCE_CALENDAR (e_source_get_extension (source, E_SOURCE_EXTENSION_CALENDAR));
@@ -1427,6 +1522,9 @@ gcal_manager_enable_source (GcalManager *manager,
GCAL_ENTRY;
+ g_return_if_fail (GCAL_IS_MANAGER (manager));
+ g_return_if_fail (E_IS_SOURCE (source));
+
unit = g_hash_table_lookup (manager->clients, source);
selectable = e_source_get_extension (source, E_SOURCE_EXTENSION_CALENDAR);
@@ -1469,6 +1567,9 @@ gcal_manager_disable_source (GcalManager *manager,
GCAL_ENTRY;
+ g_return_if_fail (GCAL_IS_MANAGER (manager));
+ g_return_if_fail (E_IS_SOURCE (source));
+
unit = g_hash_table_lookup (manager->clients, source);
selectable = e_source_get_extension (source, E_SOURCE_EXTENSION_CALENDAR);
@@ -1511,6 +1612,9 @@ gcal_manager_save_source (GcalManager *manager,
GCAL_ENTRY;
+ g_return_if_fail (GCAL_IS_MANAGER (manager));
+ g_return_if_fail (E_IS_SOURCE (source));
+
e_source_registry_commit_source_sync (manager->source_registry, source, NULL, &error);
if (error)
@@ -1523,6 +1627,13 @@ gcal_manager_save_source (GcalManager *manager,
GCAL_EXIT;
}
+/**
+ * gcal_manager_refresh:
+ * @manager: a #GcalManager
+ *
+ * Forces a full refresh and synchronization of all available
+ * calendars.
+ */
void
gcal_manager_refresh (GcalManager *manager)
{
@@ -1531,6 +1642,8 @@ gcal_manager_refresh (GcalManager *manager)
GCAL_ENTRY;
+ g_return_if_fail (GCAL_IS_MANAGER (manager));
+
clients = g_hash_table_get_values (manager->clients);
/* refresh clients */
@@ -1552,6 +1665,15 @@ gcal_manager_refresh (GcalManager *manager)
GCAL_EXIT;
}
+/**
+ * gcal_manager_is_client_writable:
+ * @manager: a #GcalManager
+ * @source: an #ESource
+ *
+ * Retrieves whether @source is writable.
+ *
+ * Returns: %TRUE if @source is writable, %FALSE otherwise.
+ */
gboolean
gcal_manager_is_client_writable (GcalManager *manager,
ESource *source)
@@ -1568,9 +1690,16 @@ gcal_manager_is_client_writable (GcalManager *manager,
GCAL_RETURN (unit->connected && !e_client_is_readonly (E_CLIENT (unit->client)));
}
+/**
+ * gcal_manager_create_event:
+ * @manager: a #GcalManager
+ * @event: a #GcalEvent
+ *
+ * Creates @event.
+ */
void
-gcal_manager_create_event (GcalManager *manager,
- GcalEvent *event)
+gcal_manager_create_event (GcalManager *manager,
+ GcalEvent *event)
{
GcalManagerUnit *unit;
icalcomponent *new_event_icalcomp;
@@ -1580,6 +1709,9 @@ gcal_manager_create_event (GcalManager *manager,
GCAL_ENTRY;
+ g_return_if_fail (GCAL_IS_MANAGER (manager));
+ g_return_if_fail (GCAL_IS_EVENT (event));
+
source = gcal_event_get_source (event);
component = gcal_event_get_component (event);
unit = g_hash_table_lookup (manager->clients, source);
@@ -1599,6 +1731,13 @@ gcal_manager_create_event (GcalManager *manager,
GCAL_EXIT;
}
+/**
+ * gcal_manager_update_event:
+ * @manager: a #GcalManager
+ * @event: a #GcalEvent
+ *
+ * Saves all changes made to @event persistently.
+ */
void
gcal_manager_update_event (GcalManager *manager,
GcalEvent *event)
@@ -1608,6 +1747,9 @@ gcal_manager_update_event (GcalManager *manager,
GCAL_ENTRY;
+ g_return_if_fail (GCAL_IS_MANAGER (manager));
+ g_return_if_fail (GCAL_IS_EVENT (event));
+
unit = g_hash_table_lookup (manager->clients, gcal_event_get_source (event));
component = gcal_event_get_component (event);
@@ -1628,9 +1770,16 @@ gcal_manager_update_event (GcalManager *manager,
GCAL_EXIT;
}
+/**
+ * gcal_manager_remove_event:
+ * @manager: a #GcalManager
+ * @event: a #GcalEvent
+ *
+ * Deletes @event.
+ */
void
-gcal_manager_remove_event (GcalManager *manager,
- GcalEvent *event)
+gcal_manager_remove_event (GcalManager *manager,
+ GcalEvent *event)
{
GcalManagerUnit *unit;
ECalComponentId *id;
@@ -1638,6 +1787,9 @@ gcal_manager_remove_event (GcalManager *manager,
GCAL_ENTRY;
+ g_return_if_fail (GCAL_IS_MANAGER (manager));
+ g_return_if_fail (GCAL_IS_EVENT (event));
+
component = gcal_event_get_component (event);
unit = g_hash_table_lookup (manager->clients, gcal_event_get_source (event));
id = e_cal_component_get_id (component);
@@ -1662,6 +1814,16 @@ gcal_manager_remove_event (GcalManager *manager,
GCAL_EXIT;
}
+/**
+ * gcal_manager_move_event_to_source:
+ * @manager: a #GcalManager
+ * @event: a #GcalEvent
+ * @dest: the destination calendar
+ *
+ * Moves @event to @dest calendar. This is a fail-safe operation:
+ * worst case, the user will have two duplicated events, and we
+ * guarantee to never loose any data.
+ */
void
gcal_manager_move_event_to_source (GcalManager *manager,
GcalEvent *event,
@@ -1677,6 +1839,8 @@ gcal_manager_move_event_to_source (GcalManager *manager,
GCAL_ENTRY;
g_return_if_fail (GCAL_IS_MANAGER (manager));
+ g_return_if_fail (GCAL_IS_EVENT (event));
+ g_return_if_fail (E_IS_SOURCE (dest));
error = NULL;
@@ -1732,11 +1896,15 @@ gcal_manager_move_event_to_source (GcalManager *manager,
/**
* gcal_manager_get_events:
+ * @manager: a #GcalManager
+ * @start_date: the start of the dete range
+ * @end_date: the end of the dete range
*
- * Returns a list with {@link GcalEvent} objects owned by the caller, the list and the objects.
- * The components inside the list are owned by the caller as well. So, don't ref the component.
+ * Returns a list with #GcalEvent objects owned by the caller,
+ * the list and the objects. The components inside the list are
+ * owned by the caller as well.
*
- * Returns: An {@link GList} object
+ * Returns: (nullable)(transfer full)(content-type GcalEvent):a #GList
*/
GList*
gcal_manager_get_events (GcalManager *manager,
@@ -1748,14 +1916,30 @@ gcal_manager_get_events (GcalManager *manager,
GCAL_ENTRY;
+ g_return_val_if_fail (GCAL_IS_MANAGER (manager), NULL);
+
range_start = icaltime_as_timet_with_zone (*start_date, manager->system_timezone);
range_end = icaltime_as_timet_with_zone (*end_date, manager->system_timezone);
- e_cal_data_model_foreach_component (manager->e_data_model, range_start, range_end, gather_events, &list);
+ e_cal_data_model_foreach_component (manager->e_data_model,
+ range_start,
+ range_end,
+ gather_events,
+ &list);
GCAL_RETURN (list);
}
+/**
+ * gcal_manager_get_loading:
+ * @self: a #GcalManager
+ *
+ * Retrieves whether @self is still loading or not. Loading is
+ * complete when the Online Accounts client is retrieved, and all
+ * the calendars are loaded.
+ *
+ * Returns: %TRUE if manager is still loading; %FALSE otherwise
+ */
gboolean
gcal_manager_get_loading (GcalManager *self)
{
@@ -1764,6 +1948,15 @@ gcal_manager_get_loading (GcalManager *self)
return !self->goa_client_ready || self->sources_at_launch > 0;
}
+/**
+ * gcal_manager_get_event_from_shell_search:
+ * @manager: a #GcalManager
+ * @uuid: the unique identier of the event
+ *
+ * Retrieves the #GcalEvent with @uuid.
+ *
+ * Returns: (nullable)(transfer full): a #GcalEvent
+ */
GcalEvent*
gcal_manager_get_event_from_shell_search (GcalManager *manager,
const gchar *uuid)
@@ -1774,12 +1967,21 @@ gcal_manager_get_event_from_shell_search (GcalManager *manager,
GCAL_ENTRY;
+ g_return_val_if_fail (GCAL_IS_MANAGER (manager), NULL);
+
list = NULL;
new_event = NULL;
- e_cal_data_model_get_subscriber_range (manager->shell_search_data_model, manager->search_view_data->subscriber,
- &range_start, &range_end);
- e_cal_data_model_foreach_component (manager->shell_search_data_model, range_start, range_end, gather_events, &list);
+ e_cal_data_model_get_subscriber_range (manager->shell_search_data_model,
+ manager->search_view_data->subscriber,
+ &range_start,
+ &range_end);
+
+ e_cal_data_model_foreach_component (manager->shell_search_data_model,
+ range_start,
+ range_end,
+ gather_events,
+ &list);
for (l = list; l != NULL; l = g_list_next (l))
{
@@ -1799,12 +2001,20 @@ gcal_manager_get_event_from_shell_search (GcalManager *manager,
GCAL_RETURN (new_event);
}
+/**
+ * gcal_manager_get_goa_client:
+ * @self: a #GcalManager
+ *
+ * Retrieves the #GoaClient connected by @self.
+ *
+ * Returns: (transfer none): a #GoaClient
+ */
GoaClient*
-gcal_manager_get_goa_client (GcalManager *manager)
+gcal_manager_get_goa_client (GcalManager *self)
{
- g_return_val_if_fail (GCAL_IS_MANAGER (manager), FALSE);
-
GCAL_ENTRY;
- GCAL_RETURN (manager->goa_client);
+ g_return_val_if_fail (GCAL_IS_MANAGER (self), NULL);
+
+ GCAL_RETURN (self->goa_client);
}
diff --git a/src/gcal-source-dialog.c b/src/gcal-source-dialog.c
index 42759e51..dfd30a44 100644
--- a/src/gcal-source-dialog.c
+++ b/src/gcal-source-dialog.c
@@ -26,6 +26,19 @@
#include
#include
+/**
+ * SECTION:gcal-source-dialog
+ * @short_description: Dialog to manage calendars
+ * @title:GcalSourceDialog
+ * @stability:unstable
+ * @image:gcal-source-dialog.png
+ *
+ * #GcalSourceDialog is the calendar management widget of GNOME
+ * Calendar. With it, users can create calendars from local files,
+ * local calendars or even import calendars from the Web or their
+ * online accounts.
+ */
+
struct _GcalSourceDialog
{
GtkDialog parent;
@@ -239,7 +252,7 @@ add_button_clicked (GtkWidget *button,
if (self->source != NULL)
{
- // Commit the new source
+ /* Commit the new source */
gcal_manager_save_source (self->manager, self->source);
self->source = NULL;
@@ -251,14 +264,14 @@ add_button_clicked (GtkWidget *button,
{
GList *l;
- // Commit each new remote source
+ /* Commit each new remote source */
for (l = self->remote_sources; l != NULL; l = l->next)
gcal_manager_save_source (self->manager, l->data);
g_list_free (self->remote_sources);
self->remote_sources = NULL;
- // Go back to overview
+ /* Go back to overview */
gcal_source_dialog_set_mode (GCAL_SOURCE_DIALOG (user_data), GCAL_SOURCE_DIALOG_MODE_NORMAL);
}
}
@@ -311,16 +324,6 @@ add_source (GcalManager *manager,
g_list_free (children);
}
-/**
- * action_widget_activated:
- * @widget: the button which emited the signal.
- * @user_data: a {@link GcalSourceDialog} instance.
- *
- * Emit a response when action buttons
- * are clicked.
- *
- * Returns:
- */
static void
action_widget_activated (GtkWidget *widget,
gpointer user_data)
@@ -333,13 +336,6 @@ action_widget_activated (GtkWidget *widget,
gtk_dialog_response (GTK_DIALOG (user_data), response);
}
-/**
- * back_button_clicked:
- *
- * Returns to the previous page.
- *
- * Returns:
- */
static void
back_button_clicked (GtkButton *button,
gpointer user_data)
@@ -348,10 +344,10 @@ back_button_clicked (GtkButton *button,
if (gtk_stack_get_visible_child (GTK_STACK (self->stack)) == self->edit_grid)
{
- // Save the source before leaving
+ /* Save the source before leaving */
gcal_manager_save_source (self->manager, self->source);
- // Release the source ref we acquired
+ /* Release the source ref we acquired */
g_clear_object (&self->source);
}
@@ -370,11 +366,11 @@ calendar_listbox_sort_func (GtkListBoxRow *row1,
self = GCAL_SOURCE_DIALOG (user_data);
- // first source
+ /* first source */
source1 = g_object_get_data (G_OBJECT (row1), "source");
is_goa1 = is_goa_source (GCAL_SOURCE_DIALOG (user_data), source1);
- // second source
+ /* second source */
source2 = g_object_get_data (G_OBJECT (row2), "source");
is_goa2 = is_goa_source (GCAL_SOURCE_DIALOG (user_data), source2);
@@ -383,13 +379,13 @@ calendar_listbox_sort_func (GtkListBoxRow *row1,
gchar *parent_name1 = NULL;
gchar *parent_name2 = NULL;
- // Retrieve parent names
+ /* Retrieve parent names */
get_source_parent_name_color (self->manager, source1, &parent_name1, NULL);
get_source_parent_name_color (self->manager, source2, &parent_name2, NULL);
retval = g_strcmp0 (parent_name1, parent_name2);
- // If they have the same parent names, compare by the source display names
+ /* If they have the same parent names, compare by the source display names */
if (retval == 0)
retval = g_strcmp0 (e_source_get_display_name (source1), e_source_get_display_name (source2));
@@ -398,7 +394,7 @@ calendar_listbox_sort_func (GtkListBoxRow *row1,
}
else
{
- // If one is a GOA account and the other isn't, make the GOA one go first
+ /* If one is a GOA account and the other isn't, make the GOA one go first */
retval = is_goa1 ? -1 : 1;
}
@@ -424,10 +420,10 @@ cancel_button_clicked (GtkWidget *button,
{
GcalSourceDialog *self = GCAL_SOURCE_DIALOG (user_data);
- // Destroy the ongoing created source
+ /* Destroy the ongoing created source */
g_clear_object (&self->source);
- // Cleanup detected remote sources that weren't added
+ /* Cleanup detected remote sources that weren't added */
if (self->remote_sources != NULL)
{
g_list_free_full (self->remote_sources, g_object_unref);
@@ -437,13 +433,6 @@ cancel_button_clicked (GtkWidget *button,
gcal_source_dialog_set_mode (GCAL_SOURCE_DIALOG (user_data), GCAL_SOURCE_DIALOG_MODE_NORMAL);
}
-/**
- * clear_pages:
- *
- * Clear local and web pages.
- *
- * Returns:
- */
static void
clear_pages (GcalSourceDialog *dialog)
{
@@ -452,7 +441,7 @@ clear_pages (GcalSourceDialog *dialog)
gtk_entry_set_text (GTK_ENTRY (dialog->calendar_address_entry), "");
gtk_widget_set_sensitive (dialog->add_button, FALSE);
- // Remove discovered web sources (if any)
+ /* Remove discovered web sources (if any) */
list = gtk_container_get_children (GTK_CONTAINER (dialog->web_sources_listbox));
g_list_free_full (list, (GDestroyNotify) gtk_widget_destroy);
@@ -500,15 +489,6 @@ default_check_toggled (GObject *object,
gcal_manager_set_default_source (self->manager, self->old_default_source);
}
-
-/**
- * description_label_link_activated:
- *
- * Show GNOME Control Center when
- * the label's link is pressed.
- *
- * Returns:
- */
static gboolean
description_label_link_activated (GtkWidget *widget,
gchar *uri,
@@ -520,12 +500,6 @@ description_label_link_activated (GtkWidget *widget,
return TRUE;
}
-/**
- * display_header_func:
- *
- * Shows a separator before each row.
- *
- */
static void
display_header_func (GtkListBoxRow *row,
GtkListBoxRow *before,
@@ -540,14 +514,6 @@ display_header_func (GtkListBoxRow *row,
}
}
-/**
- * is_goa_source:
- *
- * Checks whether the source comes from
- * a online account.
- *
- * Returns: %TRUE if the source came from a GOA account
- */
static gboolean
is_goa_source (GcalSourceDialog *dialog,
ESource *source)
@@ -599,14 +565,6 @@ invalidate_calendar_listbox_sort (GObject *source,
gtk_list_box_invalidate_sort (GTK_LIST_BOX (user_data));
}
-/**
- * make_row_from_source:
- *
- * Create a GtkListBoxRow for a given
- * ESource.
- *
- * Returns: (transfer full) the new row
- */
static GtkWidget*
make_row_from_source (GcalSourceDialog *dialog,
ESource *source)
@@ -658,17 +616,6 @@ make_row_from_source (GcalSourceDialog *dialog,
return row;
}
-/**
- * name_entry_text_changed:
- *
- * Callend when the name entry's text
- * is edited. It changes the source's
- * display name, but wait's for the
- * calendar's ::response signal to
- * commit these changes.
- *
- * Returns:
- */
static void
name_entry_text_changed (GObject *object,
GParamSpec *pspec,
@@ -677,6 +624,14 @@ name_entry_text_changed (GObject *object,
GcalSourceDialog *self = GCAL_SOURCE_DIALOG (user_data);
gboolean valid = gtk_entry_get_text_length (GTK_ENTRY (object)) > 0;
+ /*
+ * Callend when the name entry's text
+ * is edited. It changes the source's
+ * display name, but wait's for the
+ * calendar's ::response signal to
+ * commit these changes.
+ */
+
gtk_widget_set_sensitive (self->back_button, valid);
gtk_widget_set_sensitive (self->add_button, valid);
@@ -695,13 +650,6 @@ spawn_goa_with_args (const gchar *action,
NULL, NULL, NULL, NULL);
}
-/**
- * online_accounts_listbox_row_activated:
- *
- * Selects the online account, or add one.
- *
- * Returns:
- */
static void
online_accounts_listbox_row_activated (GtkListBox *box,
GtkListBoxRow *row,
@@ -736,14 +684,6 @@ online_accounts_listbox_row_activated (GtkListBox *box,
}
}
-/**
- * response_signal:
- *
- * Save the source when the dialog
- * is close.
- *
- * Returns:
- */
static void
response_signal (GtkDialog *dialog,
gint response_id,
@@ -751,19 +691,19 @@ response_signal (GtkDialog *dialog,
{
GcalSourceDialog *self = GCAL_SOURCE_DIALOG (dialog);
- /* save the source */
+ /* Save the source */
if (self->mode == GCAL_SOURCE_DIALOG_MODE_EDIT && self->source != NULL)
{
gcal_manager_save_source (self->manager, self->source);
g_clear_object (&self->source);
}
- /* commit the new source; save the current page's source */
+ /* Commit the new source; save the current page's source */
if (self->mode == GCAL_SOURCE_DIALOG_MODE_NORMAL && response_id == GTK_RESPONSE_APPLY && self->remote_sources != NULL)
{
GList *l;
- // Commit each new remote source
+ /* Commit each new remote source */
for (l = self->remote_sources; l != NULL; l = l->next)
gcal_manager_save_source (self->manager, l->data);
@@ -800,7 +740,7 @@ is_remote_source (ESource *source)
auth = e_source_get_extension (source, E_SOURCE_EXTENSION_AUTHENTICATION);
- // No host is set, it's not a remote source
+ /* No host is set, it's not a remote source */
if (e_source_authentication_get_host (auth) == NULL)
return FALSE;
}
@@ -811,7 +751,7 @@ is_remote_source (ESource *source)
webdav = e_source_get_extension (source, E_SOURCE_EXTENSION_WEBDAV_BACKEND);
- // No resource path specified, not a remote source
+ /* No resource path specified, not a remote source */
if (e_source_webdav_get_resource_path (webdav) == NULL)
return FALSE;
}
@@ -876,7 +816,7 @@ stack_visible_child_name_changed (GObject *object,
get_source_parent_name_color (self->manager, self->source, &parent_name, NULL);
- // update headerbar buttons
+ /* update headerbar buttons */
gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (self->headerbar), !creation_mode);
gtk_widget_set_visible (self->calendar_visible_check, !creation_mode);
gtk_widget_set_visible (self->back_button, !creation_mode);
@@ -885,7 +825,7 @@ stack_visible_child_name_changed (GObject *object,
gtk_widget_set_visible (self->account_box, is_goa);
gtk_widget_set_visible (self->calendar_url_button, !is_goa && (is_file || is_remote));
- // If it's a file, set the file path
+ /* If it's a file, set the file path */
if (is_file)
{
ESourceLocal *local;
@@ -902,7 +842,7 @@ stack_visible_child_name_changed (GObject *object,
g_free (uri);
}
- // If it's remote, build the uri
+ /* If it's remote, build the uri */
if (is_remote)
{
ESourceAuthentication *auth;
@@ -940,7 +880,7 @@ stack_visible_child_name_changed (GObject *object,
/* entry */
gtk_entry_set_text (GTK_ENTRY (self->name_entry), e_source_get_display_name (self->source));
- // enabled check
+ /* enabled check */
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->calendar_visible_check),
is_source_enabled (self->source));
@@ -968,14 +908,6 @@ stack_visible_child_name_changed (GObject *object,
}
}
-/**
- * calendar_file_selected:
- *
- * Opens a file selector dialog and
- * parse the resulting selection.
- *
- * Returns:
- */
static void
calendar_file_selected (GtkFileChooser *button,
gpointer user_data)
@@ -1007,23 +939,13 @@ calendar_file_selected (GtkFileChooser *button,
/* update the source properties */
e_source_set_display_name (source, g_file_get_basename (file));
- // Jump to the edit page
+ /* Jump to the edit page */
gcal_source_dialog_set_source (GCAL_SOURCE_DIALOG (user_data), source);
gcal_source_dialog_set_mode (GCAL_SOURCE_DIALOG (user_data), GCAL_SOURCE_DIALOG_MODE_CREATE);
gtk_widget_set_sensitive (self->add_button, TRUE);
}
-/**
- * calendar_listbox_row_activated:
- *
- * Edits the selected calendar for the
- * 'Calendars' listbox or goes to the
- * calendar selection for the Online
- * Accounts listbox.
- *
- * Returns:
- */
static void
calendar_listbox_row_activated (GtkListBox *box,
GtkListBoxRow *row,
@@ -1046,13 +968,6 @@ calendar_listbox_row_activated (GtkListBox *box,
}
}
-/**
- * pulse_web_entry:
- *
- * Update the url's entry with a pulse fraction.
- *
- * Returns: FALSE
- */
static gboolean
pulse_web_entry (GcalSourceDialog *dialog)
{
@@ -1063,14 +978,6 @@ pulse_web_entry (GcalSourceDialog *dialog)
return FALSE;
}
-/**
- * url_entry_text_changed:
- *
- * Performs a validation of the URL
- * 1 second after the user inputs.
- *
- * Returns:
- */
static void
url_entry_text_changed (GObject *object,
GParamSpec *pspec,
@@ -1098,7 +1005,7 @@ url_entry_text_changed (GObject *object,
if (g_utf8_strlen (text, -1) != 0)
{
- // Remove any previous unreleased resource
+ /* Remove any previous unreleased resource */
if (self->validate_url_resource_id != 0)
g_source_remove (self->validate_url_resource_id);
@@ -1117,14 +1024,6 @@ url_entry_text_changed (GObject *object,
}
}
-/**
- * online_accounts_settings_button_clicked:
- *
- * Spawns the GNOME Control Center app
- * with Online Accounts openned.
- *
- * Returns:
- */
static void
online_accounts_settings_button_clicked (GtkWidget *button,
gpointer user_data)
@@ -1141,7 +1040,7 @@ on_file_activated (GSimpleAction *action,
GtkFileFilter *filter;
gint response;
- // Dialog
+ /* Dialog */
dialog = gtk_file_chooser_dialog_new (_("Select a calendar file"),
GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (user_data))),
GTK_FILE_CHOOSER_ACTION_SAVE,
@@ -1151,7 +1050,7 @@ on_file_activated (GSimpleAction *action,
g_signal_connect (dialog, "file-activated", G_CALLBACK (calendar_file_selected), user_data);
- // File filter
+ /* File filter */
filter = gtk_file_filter_new ();
gtk_file_filter_set_name (filter, _("Calendar files"));
gtk_file_filter_add_mime_type (filter, "text/calendar");
@@ -1166,14 +1065,6 @@ on_file_activated (GSimpleAction *action,
gtk_widget_destroy (dialog);
}
-/**
- * on_local_activated:
- *
- * Creates a new local calendar, and let
- * the user adjust the settings after.
- *
- * Returns:
- */
static void
on_local_activated (GSimpleAction *action,
GVariant *param,
@@ -1197,21 +1088,13 @@ on_local_activated (GSimpleAction *action,
/* update the source properties */
e_source_set_display_name (source, _("Unnamed Calendar"));
- // Jump to the edit page
+ /* Jump to the edit page */
gcal_source_dialog_set_source (GCAL_SOURCE_DIALOG (user_data), source);
gcal_source_dialog_set_mode (GCAL_SOURCE_DIALOG (user_data), GCAL_SOURCE_DIALOG_MODE_CREATE);
gtk_widget_set_sensitive (self->add_button, TRUE);
}
-/**
- * on_web_activated:
- *
- * Redirect to the web calendar creation
- * page
- *
- * Returns:
- */
static void
on_web_activated (GSimpleAction *action,
GVariant *param,
@@ -1229,14 +1112,6 @@ calendar_address_activated (GtkEntry *entry,
validate_url_cb (GCAL_SOURCE_DIALOG (user_data));
}
-/**
- * validate_url_cb:
- *
- * Query the given URL for possible
- * calendar data.
- *
- * Returns:FALSE
- */
static gboolean
validate_url_cb (GcalSourceDialog *dialog)
{
@@ -1260,15 +1135,15 @@ validate_url_cb (GcalSourceDialog *dialog)
dialog->remote_sources = NULL;
}
- // Remove previous results
+ /* Remove previous results */
g_list_free_full (gtk_container_get_children (GTK_CONTAINER (dialog->web_sources_listbox)),
(GDestroyNotify) gtk_widget_destroy);
gtk_revealer_set_reveal_child (GTK_REVEALER (dialog->web_sources_revealer), FALSE);
- // Clear the entry icon
+ /* Clear the entry icon */
gtk_entry_set_icon_from_icon_name (GTK_ENTRY (dialog->calendar_address_entry), GTK_ENTRY_ICON_SECONDARY, NULL);
- // Get the hostname and file path from the server
+ /* Get the hostname and file path from the server */
uri_valid = uri_get_fields (gtk_entry_get_text (GTK_ENTRY (dialog->calendar_address_entry)), NULL, &host, &path);
g_debug ("[source-dialog] host: '%s', path: '%s'", host, path);
@@ -1286,11 +1161,11 @@ validate_url_cb (GcalSourceDialog *dialog)
ext = e_source_get_extension (source, E_SOURCE_EXTENSION_CALENDAR);
e_source_backend_set_backend_name (E_SOURCE_BACKEND (ext), "webcal");
- // Authentication
+ /* Authentication */
auth = e_source_get_extension (source, E_SOURCE_EXTENSION_AUTHENTICATION);
e_source_authentication_set_host (auth, host);
- // Webdav
+ /* Webdav */
webdav = e_source_get_extension (source, E_SOURCE_EXTENSION_WEBDAV_BACKEND);
e_source_webdav_set_resource_path (webdav, path);
@@ -1301,17 +1176,17 @@ validate_url_cb (GcalSourceDialog *dialog)
*/
if (g_str_has_suffix (path, ".ics"))
{
- // Set the private source so it saves at closing
+ /* Set the private source so it saves at closing */
dialog->remote_sources = g_list_append (dialog->remote_sources, source);
- // Update buttons
+ /* Update buttons */
gtk_widget_set_sensitive (dialog->add_button, source != NULL);
}
else
{
ENamedParameters *credentials;
- // Pulse the entry while it performs the check
+ /* Pulse the entry while it performs the check */
dialog->calendar_address_id = g_timeout_add (ENTRY_PROGRESS_TIMEOUT, (GSourceFunc) pulse_web_entry, dialog);
/*
@@ -1325,7 +1200,7 @@ validate_url_cb (GcalSourceDialog *dialog)
{
g_debug ("[source-dialog] Trying to connect without credentials...");
- // NULL credentials
+ /* NULL credentials */
e_named_parameters_set (credentials, E_SOURCE_CREDENTIAL_USERNAME, NULL);
e_named_parameters_set (credentials, E_SOURCE_CREDENTIAL_PASSWORD, NULL);
@@ -1349,7 +1224,7 @@ validate_url_cb (GcalSourceDialog *dialog)
*/
if (response == GTK_RESPONSE_OK)
{
- // User inputted credentials
+ /* User inputted credentials */
e_named_parameters_set (credentials, E_SOURCE_CREDENTIAL_USERNAME, user);
e_named_parameters_set (credentials, E_SOURCE_CREDENTIAL_PASSWORD, password);
@@ -1398,13 +1273,13 @@ prompt_credentials (GcalSourceDialog *dialog,
{
gint response;
- // Cleanup last credentials
+ /* Cleanup last credentials */
gtk_entry_set_text (GTK_ENTRY (dialog->credentials_password_entry), "");
gtk_entry_set_text (GTK_ENTRY (dialog->credentials_user_entry), "");
gtk_widget_grab_focus (dialog->credentials_user_entry);
- // Show the dialog, then destroy it
+ /* Show the dialog, then destroy it */
response = gtk_dialog_run (GTK_DIALOG (dialog->credentials_dialog));
if (response == GTK_RESPONSE_OK)
@@ -1435,7 +1310,7 @@ duplicate_source (ESource *source)
ext = e_source_get_extension (new_source, E_SOURCE_EXTENSION_CALENDAR);
e_source_backend_set_backend_name (E_SOURCE_BACKEND (ext), "local");
- // Copy Authentication data
+ /* Copy Authentication data */
if (e_source_has_extension (source, E_SOURCE_EXTENSION_AUTHENTICATION))
{
ESourceAuthentication *new_auth, *parent_auth;
@@ -1450,7 +1325,7 @@ duplicate_source (ESource *source)
e_source_authentication_set_proxy_uid (new_auth, e_source_authentication_get_proxy_uid (parent_auth));
}
- // Copy Webdav data
+ /* Copy Webdav data */
if (e_source_has_extension (source, E_SOURCE_EXTENSION_WEBDAV_BACKEND))
{
ESourceWebdav *new_webdav, *parent_webdav;
@@ -1507,7 +1382,7 @@ discover_sources_cb (GObject *source,
self = GCAL_SOURCE_DIALOG (user_data);
error = NULL;
- // Stop the pulsing entry
+ /* Stop the pulsing entry */
if (self->calendar_address_id != 0)
{
gtk_entry_set_progress_fraction (GTK_ENTRY (self->calendar_address_entry), 0);
@@ -1518,7 +1393,7 @@ discover_sources_cb (GObject *source,
if (!e_webdav_discover_sources_finish (E_SOURCE (source), result, NULL, NULL, &discovered_sources, &user_addresses,
&error))
{
- // Don't add an source with errors
+ /* Don't add an source with errors */
gtk_widget_set_sensitive (self->add_button, FALSE);
/*
@@ -1543,15 +1418,15 @@ discover_sources_cb (GObject *source,
return;
}
- // Add a success icon to the entry
+ /* Add a success icon to the entry */
gtk_entry_set_icon_from_icon_name (GTK_ENTRY (self->calendar_address_entry), GTK_ENTRY_ICON_SECONDARY,
"emblem-ok-symbolic");
- // Remove previous results
+ /* Remove previous results */
g_list_free_full (gtk_container_get_children (GTK_CONTAINER (self->web_sources_listbox)),
(GDestroyNotify) gtk_widget_destroy);
- // Show the list of calendars
+ /* Show the list of calendars */
gtk_revealer_set_reveal_child (GTK_REVEALER (self->web_sources_revealer), TRUE);
gtk_widget_show (self->web_sources_revealer);
@@ -1563,7 +1438,7 @@ discover_sources_cb (GObject *source,
src = aux->data;
- // Get the new resource path from the uri
+ /* Get the new resource path from the uri */
uri_valid = uri_get_fields (src->href, NULL, NULL, &resource_path);
if (uri_valid)
@@ -1606,7 +1481,7 @@ discover_sources_cb (GObject *source,
g_free (resource_path);
}
- // Free things up
+ /* Free things up */
e_webdav_discover_free_discovered_sources (discovered_sources);
g_slist_free_full (user_addresses, g_free);
}
@@ -1671,7 +1546,7 @@ notification_child_revealed_changed (GtkWidget *notification,
if (!e_source_get_removable (self->removed_source))
return;
- // Enable the source again to remove it's name from disabled list
+ /* Enable the source again to remove it's name from disabled list */
gcal_manager_enable_source (self->manager, self->removed_source);
e_source_remove_sync (self->removed_source, NULL, &error);
@@ -1712,7 +1587,7 @@ undo_remove_action (GtkButton *button,
/* if there's any set source, unremove it */
if (self->removed_source != NULL)
{
- // Enable the source before adding it again
+ /* Enable the source before adding it again */
gcal_manager_enable_source (self->manager, self->removed_source);
add_source (self->manager,
@@ -1726,7 +1601,7 @@ undo_remove_action (GtkButton *button,
*/
self->removed_source = NULL;
- // Hide notification
+ /* Hide notification */
gtk_revealer_set_reveal_child (GTK_REVEALER (self->notification), FALSE);
}
}
@@ -1788,7 +1663,7 @@ remove_button_clicked (GtkWidget *button,
gtk_revealer_set_reveal_child (GTK_REVEALER (self->notification), TRUE);
- // Remove the listbox entry (if any)
+ /* Remove the listbox entry (if any) */
for (l = children; l != NULL; l = l->next)
{
if (g_object_get_data (l->data, "source") == self->removed_source)
@@ -1798,17 +1673,17 @@ remove_button_clicked (GtkWidget *button,
}
}
- // Update notification label
+ /* Update notification label */
str = g_markup_printf_escaped (_("Calendar %s removed"), e_source_get_display_name (self->removed_source));
gtk_label_set_markup (GTK_LABEL (self->notification_label), str);
- // Remove old notifications
+ /* Remove old notifications */
if (self->notification_timeout_id != 0)
g_source_remove (self->notification_timeout_id);
self->notification_timeout_id = g_timeout_add_seconds (5, hide_notification_scheduled, user_data);
- // Disable the source, so it gets hidden
+ /* Disable the source, so it gets hidden */
gcal_manager_disable_source (self->manager, self->removed_source);
g_list_free (children);
@@ -1840,7 +1715,7 @@ gcal_source_dialog_constructed (GObject *object)
g_object_set_data (G_OBJECT (self->remove_button), "response", GINT_TO_POINTER (GCAL_RESPONSE_REMOVE_SOURCE));
- // Setup listbox header functions
+ /* Setup listbox header functions */
gtk_list_box_set_header_func (GTK_LIST_BOX (self->calendars_listbox), display_header_func, NULL, NULL);
gtk_list_box_set_sort_func (GTK_LIST_BOX (self->calendars_listbox), (GtkListBoxSortFunc) calendar_listbox_sort_func,
object, NULL);
@@ -1849,13 +1724,13 @@ gcal_source_dialog_constructed (GObject *object)
gtk_list_box_set_sort_func (GTK_LIST_BOX (self->online_accounts_listbox), (GtkListBoxSortFunc) online_accounts_listbox_sort_func,
object, NULL);
- // Action group
+ /* Action group */
self->action_group = g_simple_action_group_new ();
gtk_widget_insert_action_group (GTK_WIDGET (object), "source", G_ACTION_GROUP (self->action_group));
g_action_map_add_action_entries (G_ACTION_MAP (self->action_group), actions, G_N_ELEMENTS (actions), object);
- // Load the "Add" button menu
+ /* Load the "Add" button menu */
builder = gtk_builder_new_from_resource ("/org/gnome/calendar/gtk/menus.ui");
menu = G_MENU_MODEL (gtk_builder_get_object (builder, "add-source-menu"));
@@ -2186,11 +2061,11 @@ loading_changed_cb (GcalSourceDialog *dialog)
/**
* gcal_source_dialog_set_manager:
+ * @dialog: a #GcalSourceDialog
+ * @manager: a #GcalManager
*
- * Setup the {@link GcalManager} singleton
+ * Setup the #GcalManager singleton
* instance of the application.
- *
- * Returns:
*/
void
gcal_source_dialog_set_manager (GcalSourceDialog *dialog,
@@ -2221,13 +2096,12 @@ gcal_source_dialog_set_manager (GcalSourceDialog *dialog,
/**
* gcal_source_dialog_set_mode:
+ * @dialog: a #GcalSourceDialog
+ * @mode: a #GcalSourceDialogMode
*
- * Set the source dialog mode. Creation
- * mode means that a new calendar will
- * be created, while edit mode means a
- * calendar will be edited.
- *
- * Returns:
+ * Set the source dialog mode. Creation mode means that a new
+ * calendar will be created, while edit mode means a calendar
+ * will be edited.
*/
void
gcal_source_dialog_set_mode (GcalSourceDialog *dialog,
@@ -2237,7 +2111,7 @@ gcal_source_dialog_set_mode (GcalSourceDialog *dialog,
dialog->mode = mode;
- // Cleanup old data
+ /* Cleanup old data */
clear_pages (dialog);
switch (mode)
@@ -2258,7 +2132,7 @@ gcal_source_dialog_set_mode (GcalSourceDialog *dialog,
break;
case GCAL_SOURCE_DIALOG_MODE_EDIT:
- // Bind title
+ /* Bind title */
if (dialog->title_bind == NULL)
{
dialog->title_bind = g_object_bind_property (dialog->name_entry, "text", dialog->headerbar, "title",
@@ -2287,10 +2161,10 @@ gcal_source_dialog_set_mode (GcalSourceDialog *dialog,
/**
* gcal_source_dialog_set_source:
+ * @dialog: a #GcalSourceDialog
+ * @source: an #ESource
*
* Sets the source to be edited by the user.
- *
- * Returns:
*/
void
gcal_source_dialog_set_source (GcalSourceDialog *dialog,
diff --git a/src/gcal-source-dialog.h b/src/gcal-source-dialog.h
index 4daf640f..11aec38f 100644
--- a/src/gcal-source-dialog.h
+++ b/src/gcal-source-dialog.h
@@ -35,6 +35,15 @@ G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (GcalSourceDialog, gcal_source_dialog, GCAL, SOURCE_DIALOG, GtkDialog)
+/**
+ * GcalSourceDialogMode:
+ * @GCAL_SOURCE_DIALOG_MODE_CREATE: creating a new calendar
+ * @GCAL_SOURCE_DIALOG_MODE_CREATE_WEB: creating a new web-based calendar
+ * @GCAL_SOURCE_DIALOG_MODE_EDIT: editing an existing calendar
+ * @GCAL_SOURCE_DIALOG_MODE_NORMAL: showing the list of calendars and online accounts
+ *
+ * The current action of the #GcalSourceDialog
+ */
typedef enum
{
GCAL_SOURCE_DIALOG_MODE_CREATE,
diff --git a/src/gcal-utils.c b/src/gcal-utils.c
index 5a9dfb36..d0646b11 100644
--- a/src/gcal-utils.c
+++ b/src/gcal-utils.c
@@ -36,6 +36,12 @@
#include
#include
+/**
+ * SECTION:gcal-utils
+ * @short_description: Utility functions
+ * @title:Utility functions
+ */
+
static const gint
ab_day[7] =
{
@@ -69,6 +75,16 @@ month_item[12] =
G_DEFINE_BOXED_TYPE (icaltimetype, icaltime, gcal_dup_icaltime, g_free)
+/**
+ * datetime_compare_date:
+ * @dt1: (nullable): a #GDateTime
+ * @dt2: (nullable): a #GDateTime
+ *
+ * Compares the dates of @dt1 and @dt2. The times are
+ * ignored.
+ *
+ * Returns: negative, 0 or positive
+ */
gint
datetime_compare_date (GDateTime *dt1,
GDateTime *dt2)
@@ -92,6 +108,14 @@ datetime_compare_date (GDateTime *dt1,
return 0;
}
+/**
+ * datetime_to_icaltime:
+ * @dt: a #GDateTime
+ *
+ * Converts the #GDateTime's @dt to an #icaltimetype.
+ *
+ * Returns: (transfer full): a #icaltimetype.
+ */
icaltimetype*
datetime_to_icaltime (GDateTime *dt)
{
@@ -115,6 +139,15 @@ datetime_to_icaltime (GDateTime *dt)
return idt;
}
+/**
+ * icaltime_to_datetime:
+ * @date: an #icaltimetype
+ *
+ * Converts the #icaltimetype's @date to a #GDateTime. The
+ * timezone is preserved.
+ *
+ * Returns: (transfer full): a #GDateTime.
+ */
GDateTime*
icaltime_to_datetime (const icaltimetype *date)
{
@@ -135,6 +168,17 @@ icaltime_to_datetime (const icaltimetype *date)
return dt;
}
+/**
+ * datetime_is_date:
+ * @dt: a #GDateTime
+ *
+ * Checks if @dt represents a date. A pure date
+ * has the values of hour, minutes and seconds set
+ * to 0.
+ *
+ * Returns: %TRUE if @dt is a date, %FALSE if it's a
+ * timed datetime.
+ */
gboolean
datetime_is_date (GDateTime *dt)
{
@@ -143,6 +187,14 @@ datetime_is_date (GDateTime *dt)
g_date_time_get_seconds (dt) == 0;
}
+/**
+ * gcal_dup_icaltime:
+ * @date: an #icaltimetype
+ *
+ * Creates an exact copy of @date.
+ *
+ * Returns: (transfer full): an #icaltimetype
+ */
icaltimetype*
gcal_dup_icaltime (const icaltimetype *date)
{
@@ -166,12 +218,28 @@ gcal_dup_icaltime (const icaltimetype *date)
return new_date;
}
+/**
+ * gcal_get_weekday:
+ * @i: the weekday index
+ *
+ * Retrieves the weekday name.
+ *
+ * Returns: (transfer full): the weekday name
+ */
gchar*
gcal_get_weekday (gint i)
{
return nl_langinfo (ab_day[i]);
}
+/**
+ * gcal_get_month_name:
+ * @i: the month index
+ *
+ * Retrieves the month name.
+ *
+ * Returns: (transfer full): the month name
+ */
gchar*
gcal_get_month_name (gint i)
{
@@ -179,14 +247,15 @@ gcal_get_month_name (gint i)
}
/**
- * gcal_get_pixbuf_from_color:
- * @color:
- * @size:
+ * gcal_get_surface_from_color:
+ * @color: a #GdkRGBA
+ * @size: the size of the surface
*
- * Create a pixbuf of a simple {@link GdkRGBA} color.
+ * Creates a squared surface filled with @color. The
+ * surface is always @size x @size.
*
- * Returns: (Transfer full): An instance of {@link GdkPixbuf} to be freed with g_object_unref()
- **/
+ * Returns: (transfer full): a #cairo_surface_t
+ */
cairo_surface_t*
gcal_get_surface_from_color (GdkRGBA *color,
gint size)
@@ -210,6 +279,16 @@ gcal_get_surface_from_color (GdkRGBA *color,
return surface;
}
+/**
+ * get_circle_surface_from_color:
+ * @color: a #GdkRGBA
+ * @size: the size of the surface
+ *
+ * Creates a circular surface filled with @color. The
+ * surface is always @size x @size.
+ *
+ * Returns: (transfer full): a #cairo_surface_t
+ */
cairo_surface_t*
get_circle_surface_from_color (GdkRGBA *color,
gint size)
@@ -232,8 +311,16 @@ get_circle_surface_from_color (GdkRGBA *color,
return surface;
}
+/**
+ * get_color_name_from_source:
+ * @source: an #ESource
+ * @out_color: return value for the color
+ *
+ * Utility function to retrieve the color from @source.
+ */
void
-get_color_name_from_source (ESource *source, GdkRGBA *out_color)
+get_color_name_from_source (ESource *source,
+ GdkRGBA *out_color)
{
ESourceSelectable *extension = E_SOURCE_SELECTABLE (e_source_get_extension (source, E_SOURCE_EXTENSION_CALENDAR));
@@ -244,13 +331,15 @@ get_color_name_from_source (ESource *source, GdkRGBA *out_color)
/**
* get_desc_from_component:
- * @component:
+ * @component: an #ECalComponent
+ * @joint_char: the character to use when merging event comments
*
* Utility method to handle the extraction of the description from an
* #ECalComponent. This cycle through the list of #ECalComponentText
* and concatenate each string into one.
*
- * Returns: (Transfer full) a new allocated string with the description
+ * Returns: (nullable)(transfer full) a new allocated string with the
+ * description
**/
gchar*
get_desc_from_component (ECalComponent *component,
@@ -387,7 +476,7 @@ get_first_weekday (void)
*
* Create a component with the provided details
*
- * Returns: (Transfer full): an {@link ECalComponent} object
+ * Returns: (transfer full): an {@link ECalComponent} object
**/
ECalComponent*
build_component_from_details (const gchar *summary,
@@ -459,12 +548,15 @@ build_component_from_details (const gchar *summary,
/**
* icaltime_compare_date:
- * @date1:
- * @date2:
+ * @date1: an #icaltimetype
+ * @date2: an #icaltimetype
*
- * Compare date parts of {@link icaltimetype} objects. Return negative value, 0 or positive value
- * accordingly if date1 is before, same day of after date2.
- * As a bonus it returns the amount of days passed between two days on the same year.
+ * Compare date parts of #icaltimetype objects. Returns negative value,
+ * 0 or positive value accordingly if @date1 is before, same day of
+ * after date2.
+ *
+ * As a bonus it returns the amount of days passed between two days on the
+ * same year.
*
* Returns: negative, 0 or positive
**/
@@ -484,6 +576,18 @@ icaltime_compare_date (const icaltimetype *date1,
time_day_of_year (date2->day, date2->month - 1, date2->year);
}
+/**
+ * icaltime_compare_with_current:
+ * @date1: an #icaltimetype
+ * @date2: an #icaltimetype
+ * @current_time_t: the current time
+ *
+ * Compares @date1 and @date2 against the current time. Dates
+ * closer to the current date are sorted before.
+ *
+ * Returns: negative if @date1 comes after @date2, 0 if they're
+ * equal, positive otherwise
+ */
gint
icaltime_compare_with_current (const icaltimetype *date1,
const icaltimetype *date2,
@@ -517,6 +621,17 @@ icaltime_compare_with_current (const icaltimetype *date1,
return result;
}
+/**
+ * get_start_of_week:
+ * @date: an #icaltimetype
+ *
+ * Retrieves the start of the week that @date
+ * falls in. This function already takes the
+ * first weekday into account.
+ *
+ * Returns: (transfer full): a #GDateTime with
+ * the start of the week.
+ */
GDateTime*
get_start_of_week (icaltimetype *date)
{
@@ -541,6 +656,17 @@ get_start_of_week (icaltimetype *date)
return dt;
}
+/**
+ * get_end_of_week:
+ * @date: an #icaltimetype
+ *
+ * Retrieves the end of the week that @date
+ * falls in. This function already takes the
+ * first weekday into account.
+ *
+ * Returns: (transfer full): a #GDateTime with
+ * the end of the week.
+ */
GDateTime*
get_end_of_week (icaltimetype *date)
{
@@ -554,6 +680,15 @@ get_end_of_week (icaltimetype *date)
return week_end;
}
+/**
+ * is_clock_format_24h:
+ *
+ * Retrieves whether the current clock format is
+ * 12h or 24h based.
+ *
+ * Returns: %TRUE if the clock format is 24h, %FALSE
+ * otherwise.
+ */
gboolean
is_clock_format_24h (void)
{
@@ -568,7 +703,10 @@ is_clock_format_24h (void)
return g_strcmp0 (clock_format, "24h") == 0;
}
-/* Function to do a last minute fixup of the AM/PM stuff if the locale
+/**
+ * e_strftime_fix_am_pm:
+ *
+ * Function to do a last minute fixup of the AM/PM stuff if the locale
* and gettext haven't done it right. Most English speaking countries
* except the USA use the 24 hour clock (UK, Australia etc). However
* since they are English nobody bothers to write a language
@@ -584,7 +722,6 @@ is_clock_format_24h (void)
* TODO: Actually remove the '%p' from the fixed up string so that
* there isn't a stray space.
*/
-
gsize
e_strftime_fix_am_pm (gchar *str,
gsize max,
@@ -627,6 +764,14 @@ e_strftime_fix_am_pm (gchar *str,
return (ret);
}
+/**
+ * e_utf8_strftime_fix_am_pm:
+ *
+ * Stolen from Evolution codebase. Selects the
+ * correct time format.
+ *
+ * Returns: the size of the string
+ */
gsize
e_utf8_strftime_fix_am_pm (gchar *str,
gsize max,
@@ -748,9 +893,12 @@ fix_popover_menu_icons (GtkPopover *popover)
/**
* uri_get_fields:
+ * @uri: the URI
+ * @schema: (nullable): return location for the schema of the URI
+ * @host: (nullable): return location for the host of the URI
+ * @path: (nullable): return location for the resource path
*
- * Split the given URI into the
- * fields.
+ * Split the given URI into the fields.
*
* Returns: #TRUE if @uri could be parsed, #FALSE otherwise
*/
@@ -809,6 +957,16 @@ uri_get_fields (const gchar *uri,
return valid;
}
+/**
+ * get_source_parent_name_color:
+ * @manager: a #GcalManager
+ * @source: an #ESource
+ * @name: (nullable): return location for the name
+ * @color: (nullable): return location for the color
+ *
+ * Retrieves the name and the color of the #ESource that is
+ * parent of @source.
+ */
void
get_source_parent_name_color (GcalManager *manager,
ESource *source,
@@ -834,6 +992,16 @@ get_source_parent_name_color (GcalManager *manager,
}
}
+/**
+ * format_utc_offset:
+ * @offset: an UTC offset
+ *
+ * Formats the UTC offset to a string that GTimeZone can
+ * parse. E.g. "-0300" or "+0530".
+ *
+ * Returns: (transfer full): a string representing the
+ * offset
+ */
gchar*
format_utc_offset (gint64 offset)
{
@@ -859,6 +1027,17 @@ format_utc_offset (gint64 offset)
return g_strdup_printf ("%s%02i%02i", sign, hours, minutes);
}
+/**
+ * get_alarm_trigger_minutes:
+ * @event: a #GcalEvent
+ * @alarm: a #ECalComponentAlarm
+ *
+ * Calculates the number of minutes before @event's
+ * start time that the alarm should be triggered.
+ *
+ * Returns: the number of minutes before the event
+ * start that @alarm will be triggered.
+ */
gint
get_alarm_trigger_minutes (GcalEvent *event,
ECalComponentAlarm *alarm)
@@ -891,6 +1070,18 @@ get_alarm_trigger_minutes (GcalEvent *event,
return diff;
}
+/**
+ * should_change_date_for_scroll:
+ * @scroll_value: the current scroll value
+ * @scroll_event: the #GdkEventScroll that is being parsed
+ *
+ * Utility function to check if the date should change based
+ * on the scroll. The date is changed when the user scrolls
+ * too much on touchpad, or performs a rotation of the scroll
+ * button in a mouse.
+ *
+ * Returns: %TRUE if the date should change, %FALSE otherwise.
+ */
gboolean
should_change_date_for_scroll (gdouble *scroll_value,
GdkEventScroll *scroll_event)
@@ -925,6 +1116,15 @@ should_change_date_for_scroll (gdouble *scroll_value,
return FALSE;
}
+/**
+ * is_source_enabled:
+ * @source: an #ESource
+ *
+ * Retrieves whether the @source is enabled or not.
+ * Disabled sources don't show their events.
+ *
+ * Returns: %TRUE if @source is enabled, %FALSE otherwise.
+ */
gboolean
is_source_enabled (ESource *source)
{
diff --git a/src/gcal-utils.h b/src/gcal-utils.h
index 2f65a8b6..90345ace 100644
--- a/src/gcal-utils.h
+++ b/src/gcal-utils.h
@@ -33,6 +33,17 @@
#define gcal_clear_datetime(dt) g_clear_pointer (dt, g_date_time_unref)
+/**
+ * GcalWindowViewType:
+ * @GCAL_WINDOW_VIEW_DAY: Day view (not implemented)
+ * @GCAL_WINDOW_VIEW_WEEK: Week view
+ * @GCAL_WINDOW_VIEW_MONTH: Month view
+ * @GCAL_WINDOW_VIEW_YEAR: Year view
+ * @GCAL_WINDOW_VIEW_LIST: List (not implemented)
+ * @GCAL_WINDOW_VIEW_SEARCH: Search view (partially implemented)
+ *
+ * Enum with the available views.
+ */
typedef enum
{
GCAL_WINDOW_VIEW_DAY,
@@ -43,19 +54,6 @@ typedef enum
GCAL_WINDOW_VIEW_SEARCH,
} GcalWindowViewType;
-typedef enum
-{
- EVENT_SUMMARY = 0,
- EVENT_START_DATE,
- EVENT_END_DATE,
- EVENT_LOCATION,
- EVENT_DESCRIPTION,
- EVENT_SOURCE,
-} EventEditableProperty;
-
-typedef
-const gchar* (*GcalTranslateFunc) (GtkWidget *source_widget);
-
GType icaltime_get_type (void) G_GNUC_CONST;
gint datetime_compare_date (GDateTime *dt1,
diff --git a/src/gcal-window.c b/src/gcal-window.c
index 066f742c..662d3d8e 100644
--- a/src/gcal-window.c
+++ b/src/gcal-window.c
@@ -39,6 +39,48 @@
#include
#include
+/**
+ * SECTION:gcal-window
+ * @short_description: Main window of GNOME Calendar
+ * @title:GcalWindow
+ * @stability:unstable
+ * @image:gcal-window.png
+ *
+ * #GcalWindow is the main window of GNOME Calendar, and contains
+ * the views, the source dialog, the edit dialog, and manages the
+ * calendar toggler popover menu.
+ *
+ * Besides that, #GcalWindow is also responsible for #GcalQuickAddPopover,
+ * and it responds to the #GcalView:create-event signal by positioning
+ * the quick add popover at the requested position.
+ *
+ * ## Calendar popover
+ *
+ * 
+ *
+ * The calendar popover enables/disables the selected calendars.
+ * This is simply an UI for gcal_manager_enable_source() and
+ * gcal_manager_disable_source().
+ *
+ * The calendar popover also contains a button to open the source
+ * dialog.
+ *
+ * ## Edit dialog
+ *
+ * When an event is clicked, the views send the `event-activated`
+ * signal. #GcalWindow responds to this signal opening #GcalEditDialog
+ * with the clicked event.
+ *
+ * When #GcalEditDialog sends a response, #GcalWindow reacts by
+ * either propagating to gcal_manager_update_event(), or hiding
+ * the delete event widgets from the views.
+ *
+ * ## Source dialog
+ *
+ * The interaction with the source dialog is almost none. #GcalWindow
+ * just shows and hides it.
+ */
+
typedef struct
{
gint x;
@@ -1572,6 +1614,17 @@ gcal_window_init (GcalWindow *self)
}
/* Public API */
+/**
+ * gcal_window_new_with_view_and_date:
+ * @app: a #GcalApplication
+ * @view_type: a #GcalWindowViewType
+ * @date: the active date
+ *
+ * Creates a #GcalWindow, positions it at @date and shows
+ * @view_type view by default.
+ *
+ * Returns: (transfer full): a #GcalWindow
+ */
GtkWidget*
gcal_window_new_with_view_and_date (GcalApplication *app,
GcalWindowViewType view_type,
@@ -1609,6 +1662,12 @@ gcal_window_new_with_view_and_date (GcalApplication *app,
}
/* new-event interaction: first variant */
+/**
+ * gcal_window_new_event:
+ * @self: a #GcalWindow
+ *
+ * Makes #GcalWindow create a new event.
+ */
void
gcal_window_new_event (GcalWindow *self)
{
@@ -1640,6 +1699,15 @@ gcal_window_new_event (GcalWindow *self)
create_event_detailed_cb (NULL, start_date, end_date, self);
}
+/**
+ * gcal_window_set_search_mode:
+ * @self: a #GcalWindow
+ * @enabled: whether the search mode is enabled or not
+ *
+ * Sets whether #GcalWindow is in search mode. This is used by
+ * #GcalShellSearchProvider to respond to the user clicking on
+ * GNOME Calendar icon at the search.
+ */
void
gcal_window_set_search_mode (GcalWindow *self,
gboolean enabled)
@@ -1650,6 +1718,15 @@ gcal_window_set_search_mode (GcalWindow *self,
gtk_search_bar_set_search_mode (GTK_SEARCH_BAR (self->search_bar), enabled);
}
+/**
+ * gcal_window_set_search_query:
+ * @self: a #GcalWindow
+ * @query: sets the search query of @self
+ *
+ * Sets the search query of the search. #GcalWindow only
+ * propagates this to the search bar, which ends up
+ * triggering the search.
+ */
void
gcal_window_set_search_query (GcalWindow *self,
const gchar *query)
@@ -1659,6 +1736,14 @@ gcal_window_set_search_query (GcalWindow *self,
gtk_entry_set_text (GTK_ENTRY (self->search_entry), query);
}
+/**
+ * gcal_window_open_event_by_uuid:
+ * @self: a #GcalWindow
+ * @uuid: the unique identifier of the event to be opened
+ *
+ * Tells @self to open the event with @uuid. When it fails to
+ * open the event, it waits for 2 seconds before trying again.
+ */
void
gcal_window_open_event_by_uuid (GcalWindow *self,
const gchar *uuid)
diff --git a/src/views/gcal-range-tree.c b/src/views/gcal-range-tree.c
index 7fb5b9c7..7bab24c5 100644
--- a/src/views/gcal-range-tree.c
+++ b/src/views/gcal-range-tree.c
@@ -20,6 +20,28 @@
#include "gcal-range-tree.h"
+/**
+ * SECTION:gcal-range-tree
+ * @short_description: Augmented AVL tree to handle ranges
+ * @title:GcalRangeTree
+ * @stability:stable
+ *
+ * #GcalRangeTree is an augmented AVL tree implemented to be
+ * able to handle ranges rather than point values. This tree
+ * is used by @GcalWeekGrid to store events according to their
+ * start and end minutes, and thus all the data structure was
+ * optimized to handle a limited subset of values.
+ *
+ * In the future, we may need to extend support for broader
+ * range values, and move away from guint16 in function params.
+ *
+ * # Ranges
+ *
+ * Conforming to the overall standard of iCal and Calendar,
+ * the start of a range is inclusive but the end of the range
+ * is always exclusive.
+ */
+
typedef struct _Node
{
struct _Node *left;
@@ -587,6 +609,17 @@ gcal_range_tree_get_data_at_range (GcalRangeTree *self,
return data;
}
+/**
+ * gcal_range_tree_count_entries_at_range:
+ * @self: a #GcalRangeTree
+ * @start: start of the range
+ * @end: end of the range
+ *
+ * Counts the number of entries available in the given
+ * range.
+ *
+ * Returns: the number of entries in the given range
+ */
guint64
gcal_range_tree_count_entries_at_range (GcalRangeTree *self,
guint16 start,
diff --git a/src/views/gcal-range-tree.h b/src/views/gcal-range-tree.h
index 3f8b75d5..a9b2d473 100644
--- a/src/views/gcal-range-tree.h
+++ b/src/views/gcal-range-tree.h
@@ -27,6 +27,17 @@ G_BEGIN_DECLS
typedef struct _GcalRangeTree GcalRangeTree;
+/**
+ * GcalRangeTraverseFunc:
+ * @start: start of range of the entry
+ * @end: end of range of the entry
+ * @data: (nullable): the data of the entry
+ * @user_data: (closure): user data passed to the function
+ *
+ * Function type to be called when traversing a #GcalRangeTree.
+ *
+ * Returns: %TRUE to stop traversing, %FALSE to continue traversing
+ */
typedef gboolean (*GcalRangeTraverseFunc) (guint16 start,
guint16 end,
gpointer data,