Merge branch 'wip/gbsneto/docs'

This commit is contained in:
Georges Basile Stavracas Neto
2017-04-12 15:17:37 -03:00
39 changed files with 5928 additions and 306 deletions
+6 -2
View File
@@ -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
+5 -3
View File
@@ -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:
+1
View File
@@ -9,6 +9,7 @@ olddir=`pwd`
cd $srcdir
mkdir -p m4
gtkdocize || exit 1
autoreconf --verbose --force --install || exit $?
intltoolize --force --copy --automake || exit $?
+16
View File
@@ -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
"
+1
View File
@@ -0,0 +1 @@
SUBDIRS = reference
+108
View File
@@ -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
+549
View File
@@ -0,0 +1,549 @@
<SECTION>
<FILE>css-code</FILE>
CSS_TEMPLATE
</SECTION>
<SECTION>
<FILE>e-cal-data-model</FILE>
<TITLE>ECalDataModel</TITLE>
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
<SUBSECTION Standard>
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
</SECTION>
<SECTION>
<FILE>e-cal-data-model-subscriber</FILE>
<TITLE>ECalDataModelSubscriber</TITLE>
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
<SUBSECTION Standard>
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
</SECTION>
<SECTION>
<FILE>gcal-application</FILE>
GCAL_TYPE_APPLICATION
gcal_application_new
gcal_application_get_manager
gcal_application_get_settings
gcal_application_set_uuid
gcal_application_set_initial_date
GcalApplication
</SECTION>
<SECTION>
<FILE>gcal-date-chooser</FILE>
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
</SECTION>
<SECTION>
<FILE>gcal-date-chooser-day</FILE>
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
</SECTION>
<SECTION>
<FILE>gcal-date-selector</FILE>
GCAL_TYPE_DATE_SELECTOR
gcal_date_selector_new
gcal_date_selector_get_date
gcal_date_selector_set_date
GcalDateSelector
</SECTION>
<SECTION>
<FILE>gcal-debug</FILE>
GCAL_ENABLE_TRACE
GCAL_LOG_LEVEL_TRACE
GCAL_TRACE_MSG
GCAL_PROBE
GCAL_TODO
GCAL_ENTRY
GCAL_EXIT
GCAL_GOTO
GCAL_RETURN
GCAL_BUG
</SECTION>
<SECTION>
<FILE>gcal-edit-dialog</FILE>
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
</SECTION>
<SECTION>
<FILE>gcal-enum-types</FILE>
<SUBSECTION Standard>
GCAL_WINDOW_VIEW_TYPE
gcal_window_view_type_get_type
</SECTION>
<SECTION>
<FILE>gcal-event</FILE>
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
</SECTION>
<SECTION>
<FILE>gcal-event-widget</FILE>
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
</SECTION>
<SECTION>
<FILE>gcal-log</FILE>
gcal_log_init
</SECTION>
<SECTION>
<FILE>gcal-manager</FILE>
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
</SECTION>
<SECTION>
<FILE>gcal-month-view</FILE>
GCAL_TYPE_MONTH_VIEW
gcal_month_view_set_first_weekday
gcal_month_view_set_use_24h_format
gcal_month_view_set_manager
GcalMonthView
</SECTION>
<SECTION>
<FILE>gcal-multi-choice</FILE>
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
</SECTION>
<SECTION>
<FILE>gcal-quick-add-popover</FILE>
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
</SECTION>
<SECTION>
<FILE>gcal-range-tree</FILE>
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
<SUBSECTION Standard>
GCAL_TYPE_RANGE_TREE
GcalRangeTree
gcal_range_tree_get_type
</SECTION>
<SECTION>
<FILE>gcal-resources</FILE>
calendar_get_resource
</SECTION>
<SECTION>
<FILE>gcal-search-view</FILE>
GCAL_TYPE_SEARCH_VIEW
gcal_search_view_set_time_format
gcal_search_view_search
gcal_search_view_new
gcal_search_view_connect
GcalSearchView
</SECTION>
<SECTION>
<FILE>gcal-shell-search-provider</FILE>
<TITLE>GcalShellSearchProvider</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-shell-search-provider-generated</FILE>
<TITLE>GcalShellSearchProvider2Skeleton</TITLE>
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
<SUBSECTION Standard>
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
</SECTION>
<SECTION>
<FILE>gcal-source-dialog</FILE>
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
</SECTION>
<SECTION>
<FILE>gcal-subscriber-view</FILE>
<TITLE>GcalSubscriberView</TITLE>
gcal_subscriber_view_get_child_by_uuid
<SUBSECTION Standard>
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
</SECTION>
<SECTION>
<FILE>gcal-subscriber-view-private</FILE>
GcalSubscriberViewPrivate
</SECTION>
<SECTION>
<FILE>gcal-time-selector</FILE>
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
</SECTION>
<SECTION>
<FILE>gcal-utils</FILE>
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
</SECTION>
<SECTION>
<FILE>gcal-view</FILE>
<TITLE>GcalView</TITLE>
GCAL_TYPE_VIEW
GcalViewInterface
gcal_view_set_date
gcal_view_get_date
gcal_view_clear_marks
gcal_view_get_children_by_uuid
GcalView
</SECTION>
<SECTION>
<FILE>gcal-week-grid</FILE>
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
</SECTION>
<SECTION>
<FILE>gcal-week-header</FILE>
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
</SECTION>
<SECTION>
<FILE>gcal-week-view</FILE>
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
</SECTION>
<SECTION>
<FILE>gcal-window</FILE>
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
</SECTION>
<SECTION>
<FILE>gcal-year-view</FILE>
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
</SECTION>
File diff suppressed because it is too large Load Diff
+84
View File
@@ -0,0 +1,84 @@
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
<!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
<!ENTITY % gtkdocentities SYSTEM "xml/gtkdocentities.ent">
%gtkdocentities;
]>
<book id="index">
<bookinfo>
<title>GNOME Calendar Reference Manual</title>
<releaseinfo>
For &package_string;.
The latest version of this documentation can be found on-line at
<ulink role="online-location" url="http://[SERVER]/&package_name;/index.html">http://[SERVER]/&package_name;/</ulink>.
</releaseinfo>
</bookinfo>
<chapter>
<title>Logging and Debugging</title>
<xi:include href="xml/gcal-debug.xml"/>
<xi:include href="xml/gcal-log.xml"/>
</chapter>
<chapter>
<title>Backend</title>
<xi:include href="xml/e-cal-data-model.xml"/>
<xi:include href="xml/e-cal-data-model-subscriber.xml"/>
<xi:include href="xml/gcal-enum-types.xml"/>
<xi:include href="xml/gcal-event.xml"/>
<xi:include href="xml/gcal-manager.xml"/>
<xi:include href="xml/gcal-range-tree.xml"/>
<xi:include href="xml/gcal-shell-search-provider.xml"/>
<xi:include href="xml/gcal-shell-search-provider-generated.xml"/>
<xi:include href="xml/gcal-utils.xml"/>
</chapter>
<chapter>
<title>Views</title>
<xi:include href="xml/gcal-month-view.xml"/>
<xi:include href="xml/gcal-search-view.xml"/>
<xi:include href="xml/gcal-subscriber-view.xml"/>
<xi:include href="xml/gcal-subscriber-view-private.xml"/>
<xi:include href="xml/gcal-utils.xml"/>
<xi:include href="xml/gcal-view.xml"/>
<xi:include href="xml/gcal-week-grid.xml"/>
<xi:include href="xml/gcal-week-header.xml"/>
<xi:include href="xml/gcal-week-view.xml"/>
<xi:include href="xml/gcal-year-view.xml"/>
</chapter>
<chapter>
<title>Edit dialog</title>
<xi:include href="xml/gcal-date-chooser.xml"/>
<xi:include href="xml/gcal-date-chooser-day.xml"/>
<xi:include href="xml/gcal-date-selector.xml"/>
<xi:include href="xml/gcal-edit-dialog.xml"/>
<xi:include href="xml/gcal-multi-choice.xml"/>
<xi:include href="xml/gcal-time-selector.xml"/>
</chapter>
<chapter>
<title>Main</title>
<xi:include href="xml/gcal-application.xml"/>
<xi:include href="xml/gcal-event-widget.xml"/>
<xi:include href="xml/gcal-quick-add-popover.xml"/>
<xi:include href="xml/gcal-source-dialog.xml"/>
<xi:include href="xml/gcal-window.xml"/>
</chapter>
<chapter id="object-tree">
<title>Object Hierarchy</title>
<xi:include href="xml/tree_index.sgml"/>
</chapter>
<index id="api-index-full">
<title>API Index</title>
<xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
</index>
<index id="deprecated-api-index" role="deprecated">
<title>Index of deprecated API</title>
<xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
</index>
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
</book>
+581
View File
@@ -0,0 +1,581 @@
<SECTION>
<FILE>css-code</FILE>
<TITLE>CSS Code</TITLE>
CSS_TEMPLATE
</SECTION>
<SECTION>
<FILE>e-cal-data-model</FILE>
<TITLE>ECalDataModel</TITLE>
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
<SUBSECTION Standard>
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
</SECTION>
<SECTION>
<FILE>e-cal-data-model-subscriber</FILE>
<TITLE>ECalDataModelSubscriber</TITLE>
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
<SUBSECTION Standard>
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
</SECTION>
<SECTION>
<FILE>gcal-application</FILE>
<TITLE>GcalApplication</TITLE>
GCAL_TYPE_APPLICATION
gcal_application_new
gcal_application_get_manager
gcal_application_get_settings
gcal_application_set_uuid
gcal_application_set_initial_date
GcalApplication
</SECTION>
<SECTION>
<FILE>gcal-date-chooser</FILE>
<TITLE>GcalDateChooser</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-date-chooser-day</FILE>
<TITLE>GcalDateChooserDay</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-date-selector</FILE>
<TITLE>GcalDateSelector</TITLE>
GCAL_TYPE_DATE_SELECTOR
gcal_date_selector_new
gcal_date_selector_get_date
gcal_date_selector_set_date
GcalDateSelector
</SECTION>
<SECTION>
<FILE>gcal-debug</FILE>
<TITLE>Debugging</TITLE>
GCAL_ENABLE_TRACE
GCAL_LOG_LEVEL_TRACE
GCAL_TRACE_MSG
GCAL_PROBE
GCAL_TODO
GCAL_ENTRY
GCAL_EXIT
GCAL_GOTO
GCAL_RETURN
GCAL_BUG
</SECTION>
<SECTION>
<FILE>gcal-edit-dialog</FILE>
<TITLE>GcalEditDialog</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-enum-types</FILE>
<TITLE>Enums</TITLE>
<SUBSECTION Standard>
GCAL_EDITABLE_PROPERTY
GCAL_WINDOW_VIEW_TYPE
event_editable_property_get_type
gcal_window_view_type_get_type
</SECTION>
<SECTION>
<FILE>gcal-event</FILE>
<TITLE>GcalEvent</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-event-widget</FILE>
<TITLE>GcalEventWidget</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-log</FILE>
<TITLE>Logging</TITLE>
gcal_log_init
</SECTION>
<SECTION>
<FILE>gcal-manager</FILE>
<TITLE>GcalManager</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-month-view</FILE>
<TITLE>GcalMonthView</TITLE>
GCAL_TYPE_MONTH_VIEW
gcal_month_view_set_first_weekday
gcal_month_view_set_use_24h_format
gcal_month_view_set_manager
GcalMonthView
</SECTION>
<SECTION>
<FILE>gcal-multi-choice</FILE>
<TITLE>GcalMultiChoice</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-quick-add-popover</FILE>
<TITLE>GcalQuickAddPopover</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-range-tree</FILE>
<TITLE>GcalRangeTree</TITLE>
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
<SUBSECTION Standard>
GCAL_TYPE_RANGE_TREE
GcalRangeTree
gcal_range_tree_get_type
</SECTION>
<SECTION>
<FILE>gcal-resources</FILE>
calendar_get_resource
</SECTION>
<SECTION>
<FILE>gcal-search-view</FILE>
<TITLE>GcalSearchView</TITLE>
GCAL_TYPE_SEARCH_VIEW
gcal_search_view_set_time_format
gcal_search_view_search
gcal_search_view_new
gcal_search_view_connect
GcalSearchView
</SECTION>
<SECTION>
<FILE>gcal-shell-search-provider</FILE>
<TITLE>GcalShellSearchProvider</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-shell-search-provider-generated</FILE>
<TITLE>GcalShellSearchProvider2Skeleton</TITLE>
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
<SUBSECTION Standard>
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
</SECTION>
<SECTION>
<FILE>gcal-source-dialog</FILE>
<TITLE>GcalSourceDialog</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-subscriber-view</FILE>
<TITLE>GcalSubscriberView</TITLE>
gcal_subscriber_view_get_child_by_uuid
<SUBSECTION Standard>
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
</SECTION>
<SECTION>
<FILE>gcal-subscriber-view-private</FILE>
<TITLE>GcalSubscriberViewPrivate</TITLE>
GcalSubscriberViewPrivate
</SECTION>
<SECTION>
<FILE>gcal-time-selector</FILE>
<TITLE>GcalTimeSelector</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-utils</FILE>
<TITLE>Utility functions</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-view</FILE>
<TITLE>GcalView</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-week-grid</FILE>
<TITLE>GcalWeekGrid</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-week-header</FILE>
<TITLE>GcalWeekHeader</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-week-view</FILE>
<TITLE>GcalWeekView</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-window</FILE>
<TITLE>GcalWindow</TITLE>
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
</SECTION>
<SECTION>
<FILE>gcal-year-view</FILE>
<TITLE>GcalYearView</TITLE>
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
</SECTION>
@@ -0,0 +1,4 @@
EventEditableProperty
GcalTranslateFunc
gcal_view_get_final_date
gcal_view_get_initial_date
@@ -0,0 +1,257 @@
60% symbol docs coverage.
324 symbols documented.
108 symbols incomplete.
216 not documented.
ALIGNED (<parameters>)
CSS_TEMPLATE
ECalDataModel::view-state-changed
ECalDataModel:expand-recurrences
ECalDataModel:timezone
ECalDataModelForeachFunc (<parameters>)
ECalDataModelViewState (<items>)
EThreadJobFunc (<parameters>)
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 (<items>)
GcalDateChooserDayOptionsCallback (<parameters>)
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 (<parameters>)
GcalQuickAddPopover
GcalSearchView
GcalShellSearchProvider
GcalShellSearchProviderClass (<items>)
GcalSourceDialog
GcalSubscriberView::event-activated
GcalSubscriberViewPrivate (<items>)
GcalTimeSelector
GcalTranslateFunc
GcalView
GcalViewInterface (<items>)
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 (<parameters>)
gcal_application_get_settings (<parameters>)
gcal_application_new
gcal_application_set_initial_date (<parameters>)
gcal_application_set_uuid (<parameters>)
gcal_clear_datetime (<parameters>)
gcal_date_chooser_day_get_date (<parameters>)
gcal_date_chooser_day_new
gcal_date_chooser_day_set_date (<parameters>)
gcal_date_chooser_day_set_options (<parameters>)
gcal_date_chooser_day_set_other_month (<parameters>)
gcal_date_chooser_day_set_selected (<parameters>)
gcal_date_chooser_get_date (<parameters>)
gcal_date_chooser_get_no_month_change (<parameters>)
gcal_date_chooser_get_show_day_names (<parameters>)
gcal_date_chooser_get_show_heading (<parameters>)
gcal_date_chooser_get_show_week_numbers (<parameters>)
gcal_date_chooser_invalidate_day_options (<parameters>)
gcal_date_chooser_new
gcal_date_chooser_set_date (<parameters>)
gcal_date_chooser_set_day_options_callback (<parameters>)
gcal_date_chooser_set_no_month_change (<parameters>)
gcal_date_chooser_set_show_day_names (<parameters>)
gcal_date_chooser_set_show_heading (<parameters>)
gcal_date_chooser_set_show_week_numbers (<parameters>)
gcal_date_selector_new
gcal_event_get_description (self)
gcal_event_set_summary (self)
gcal_event_widget_clone (<parameters>)
gcal_event_widget_compare_by_length (widget1, widget2)
gcal_event_widget_compare_by_start_date (<parameters>)
gcal_event_widget_get_has_reminders (<parameters>)
gcal_event_widget_get_read_only (<parameters>)
gcal_event_widget_new (<parameters>)
gcal_event_widget_set_date_start (date_start)
gcal_event_widget_set_has_reminders (<parameters>)
gcal_event_widget_set_read_only (<parameters>)
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 (<parameters>)
gcal_month_view_set_use_24h_format (view, use_24h)
gcal_multi_choice_get_value (<parameters>)
gcal_multi_choice_new
gcal_multi_choice_set_choices (<parameters>)
gcal_multi_choice_set_format_callback (<parameters>)
gcal_multi_choice_set_value (<parameters>)
gcal_quick_add_popover_new
gcal_search_view_new
gcal_search_view_search (<parameters>)
gcal_search_view_set_search
gcal_shell_search_provider_connect (<parameters>)
gcal_shell_search_provider_dbus_export (<parameters>)
gcal_shell_search_provider_dbus_unexport (<parameters>)
gcal_shell_search_provider_new
gcal_source_dialog_new
gcal_subscriber_view_get_child_by_uuid (<parameters>)
gcal_time_selector_get_time (<parameters>)
gcal_time_selector_new
gcal_time_selector_set_time (<parameters>)
gcal_time_selector_set_time_format (<parameters>)
gcal_view_get_date (<parameters>)
gcal_view_get_final_date
gcal_view_get_initial_date
gcal_view_set_date (<parameters>)
gcal_week_grid_add_event (<parameters>)
gcal_week_grid_clear_marks (<parameters>)
gcal_week_grid_get_children_by_uuid (<parameters>)
gcal_week_grid_remove_event (<parameters>)
gcal_week_grid_set_first_weekday (<parameters>)
gcal_week_grid_set_manager (<parameters>)
gcal_week_grid_set_use_24h_format (<parameters>)
gcal_week_header_add_event (<parameters>)
gcal_week_header_clear_marks (<parameters>)
gcal_week_header_get_children_by_uuid (<parameters>)
gcal_week_header_get_sidebar_size_group (<parameters>)
gcal_week_header_remove_event (<parameters>)
gcal_week_header_set_first_weekday (<parameters>)
gcal_week_header_set_manager (<parameters>)
gcal_week_header_set_use_24h_format (<parameters>)
gcal_week_view_set_first_weekday (view, day_nr)
gcal_week_view_set_manager (<parameters>)
gcal_week_view_set_use_24h_format (view, use_24h)
gcal_year_view_set_current_date (<parameters>)
gcal_year_view_set_first_weekday (<parameters>)
gcal_year_view_set_manager (<parameters>)
gcal_year_view_set_use_24h_format (<parameters>)
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
+18
View File
@@ -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)
+470
View File
@@ -0,0 +1,470 @@
<ARG>
<NAME>ECalDataModel::expand-recurrences</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Expand Recurrences</NICK>
<BLURB>(null)</BLURB>
<DEFAULT>FALSE</DEFAULT>
</ARG>
<ARG>
<NAME>ECalDataModel::timezone</NAME>
<TYPE>gpointer</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Time Zone</NICK>
<BLURB>(null)</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalDateChooser::date</NAME>
<TYPE>GDateTime*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Date</NICK>
<BLURB>The selected date.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalDateChooser::no-month-change</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>No Month Change</NICK>
<BLURB>If TRUE, the selected month cannot be changed.</BLURB>
<DEFAULT>FALSE</DEFAULT>
</ARG>
<ARG>
<NAME>GcalDateChooser::show-day-names</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Show Day Names</NICK>
<BLURB>If TRUE, day names are displayed.</BLURB>
<DEFAULT>TRUE</DEFAULT>
</ARG>
<ARG>
<NAME>GcalDateChooser::show-heading</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Show Heading</NICK>
<BLURB>If TRUE, a heading is displayed.</BLURB>
<DEFAULT>TRUE</DEFAULT>
</ARG>
<ARG>
<NAME>GcalDateChooser::show-week-numbers</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Show Week Numbers</NICK>
<BLURB>If TRUE, week numbers are displayed.</BLURB>
<DEFAULT>TRUE</DEFAULT>
</ARG>
<ARG>
<NAME>GcalDateSelector::date</NAME>
<TYPE>GDateTime*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Date of the selector</NICK>
<BLURB>The current date of the selector.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalEditDialog::event</NAME>
<TYPE>GcalEvent*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>event of the dialog</NICK>
<BLURB>The event being edited.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalEditDialog::manager</NAME>
<TYPE>GcalManager*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Manager of the dialog</NICK>
<BLURB>The manager of the dialog.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalEditDialog::writable</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Whether the current event can be edited</NICK>
<BLURB>Whether the current event can be edited or not.</BLURB>
<DEFAULT>TRUE</DEFAULT>
</ARG>
<ARG>
<NAME>GcalEvent::all-day</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>If event is all day</NICK>
<BLURB>Whether the event is all day or not.</BLURB>
<DEFAULT>FALSE</DEFAULT>
</ARG>
<ARG>
<NAME>GcalEvent::color</NAME>
<TYPE>GdkRGBA*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Color of the event</NICK>
<BLURB>The color of the event.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalEvent::component</NAME>
<TYPE>ECalComponent*</TYPE>
<RANGE></RANGE>
<FLAGS>rwX</FLAGS>
<NICK>Component</NICK>
<BLURB>The ECalComponent of the event.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalEvent::date-end</NAME>
<TYPE>GDateTime*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>End date of the event</NICK>
<BLURB>The end date of the event.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalEvent::date-start</NAME>
<TYPE>GDateTime*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Start date of the event</NICK>
<BLURB>The start date of the event.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalEvent::description</NAME>
<TYPE>gchar*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Description of the event</NICK>
<BLURB>The description of the event.</BLURB>
<DEFAULT>""</DEFAULT>
</ARG>
<ARG>
<NAME>GcalEvent::location</NAME>
<TYPE>gchar*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Location of the event</NICK>
<BLURB>The location of the event.</BLURB>
<DEFAULT>""</DEFAULT>
</ARG>
<ARG>
<NAME>GcalEvent::source</NAME>
<TYPE>ESource*</TYPE>
<RANGE></RANGE>
<FLAGS>rwx</FLAGS>
<NICK>ESource</NICK>
<BLURB>The ESource this event belongs to.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalEvent::summary</NAME>
<TYPE>gchar*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Summary of the event</NICK>
<BLURB>The summary of the event.</BLURB>
<DEFAULT>""</DEFAULT>
</ARG>
<ARG>
<NAME>GcalEvent::timezone</NAME>
<TYPE>GTimeZone*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Timezone of the event</NICK>
<BLURB>The timezone of the event.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalEvent::uid</NAME>
<TYPE>gchar*</TYPE>
<RANGE></RANGE>
<FLAGS>r</FLAGS>
<NICK>Identifier of the event</NICK>
<BLURB>The unique identifier of the event.</BLURB>
<DEFAULT>""</DEFAULT>
</ARG>
<ARG>
<NAME>GcalEventWidget::date-end</NAME>
<TYPE>GDateTime*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>End date</NICK>
<BLURB>The end date of the widget.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalEventWidget::date-start</NAME>
<TYPE>GDateTime*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Start date</NICK>
<BLURB>The start date of the widget.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalEventWidget::event</NAME>
<TYPE>GcalEvent*</TYPE>
<RANGE></RANGE>
<FLAGS>rwX</FLAGS>
<NICK>Event</NICK>
<BLURB>The event this widget represents.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalManager::default-calendar</NAME>
<TYPE>ESource*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Default calendar</NICK>
<BLURB>The default calendar.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalManager::loading</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>r</FLAGS>
<NICK>Loading</NICK>
<BLURB>Whether it's still loading or not.</BLURB>
<DEFAULT>TRUE</DEFAULT>
</ARG>
<ARG>
<NAME>GcalManager::settings</NAME>
<TYPE>GSettings*</TYPE>
<RANGE></RANGE>
<FLAGS>rwX</FLAGS>
<NICK>Application settings</NICK>
<BLURB>The settings of the application passed down from GcalApplication.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalMultiChoice::animate</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Animate</NICK>
<BLURB>Animate.</BLURB>
<DEFAULT>FALSE</DEFAULT>
</ARG>
<ARG>
<NAME>GcalMultiChoice::choices</NAME>
<TYPE>GStrv</TYPE>
<RANGE></RANGE>
<FLAGS>w</FLAGS>
<NICK>Choices</NICK>
<BLURB>Choices.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalMultiChoice::max-value</NAME>
<TYPE>gint</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Maximum Value</NICK>
<BLURB>Maximum Value.</BLURB>
<DEFAULT>0</DEFAULT>
</ARG>
<ARG>
<NAME>GcalMultiChoice::min-value</NAME>
<TYPE>gint</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Minimum Value</NICK>
<BLURB>Minimum Value.</BLURB>
<DEFAULT>0</DEFAULT>
</ARG>
<ARG>
<NAME>GcalMultiChoice::value</NAME>
<TYPE>gint</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Value</NICK>
<BLURB>Value.</BLURB>
<DEFAULT>0</DEFAULT>
</ARG>
<ARG>
<NAME>GcalMultiChoice::wrap</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Wrap</NICK>
<BLURB>Wrap.</BLURB>
<DEFAULT>FALSE</DEFAULT>
</ARG>
<ARG>
<NAME>GcalQuickAddPopover::date-end</NAME>
<TYPE>GDateTime*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>End date of the event</NICK>
<BLURB>The end date of the new event.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalQuickAddPopover::date-start</NAME>
<TYPE>GDateTime*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Start date of the event</NICK>
<BLURB>The start date of the new event.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalQuickAddPopover::manager</NAME>
<TYPE>GcalManager*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Manager of the application</NICK>
<BLURB>The singleton manager of the application.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalSearchView::active-date</NAME>
<TYPE>icaltimetype*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>The active date</NICK>
<BLURB>The active/selected date in the view.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalTimeSelector::time</NAME>
<TYPE>GDateTime*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Time of the selector</NICK>
<BLURB>The current time of the selector.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalView::active-date</NAME>
<TYPE>icaltimetype*</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>The active date</NICK>
<BLURB>The active/selecetd date in the view.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalWeekGrid::active-date</NAME>
<TYPE>icaltimetype*</TYPE>
<RANGE></RANGE>
<FLAGS>rwx</FLAGS>
<NICK>Date</NICK>
<BLURB>The active selected date.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalWeekHeader::active-date</NAME>
<TYPE>icaltimetype*</TYPE>
<RANGE></RANGE>
<FLAGS>rwx</FLAGS>
<NICK>Date</NICK>
<BLURB>The active selected date.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalWindow::active-date</NAME>
<TYPE>icaltimetype*</TYPE>
<RANGE></RANGE>
<FLAGS>rwx</FLAGS>
<NICK>Date</NICK>
<BLURB>The active/selected date.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalWindow::active-view</NAME>
<TYPE>GcalWindowViewType</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Active View</NICK>
<BLURB>The active view, eg: month, week, etc.</BLURB>
<DEFAULT>GCAL_WINDOW_VIEW_MONTH</DEFAULT>
</ARG>
<ARG>
<NAME>GcalWindow::manager</NAME>
<TYPE>GcalManager*</TYPE>
<RANGE></RANGE>
<FLAGS>rwX</FLAGS>
<NICK>The manager object</NICK>
<BLURB>A weak reference to the app manager object.</BLURB>
<DEFAULT></DEFAULT>
</ARG>
<ARG>
<NAME>GcalWindow::new-event-mode</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>New Event mode</NICK>
<BLURB>Whether the window is in new-event-mode or not.</BLURB>
<DEFAULT>FALSE</DEFAULT>
</ARG>
<ARG>
<NAME>GcalYearView::show-week-numbers</NAME>
<TYPE>gboolean</TYPE>
<RANGE></RANGE>
<FLAGS>rw</FLAGS>
<NICK>Show Week Numbers</NICK>
<BLURB>Show Week Numbers Column.</BLURB>
<DEFAULT>FALSE</DEFAULT>
</ARG>
+155
View File
@@ -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
+56
View File
@@ -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
@@ -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
+213
View File
@@ -0,0 +1,213 @@
<SIGNAL>
<NAME>ECalDataModel::view-state-changed</NAME>
<RETURNS>void</RETURNS>
<FLAGS>l</FLAGS>
ECalDataModel *ecaldatamodel
ECalClientView *arg1
guint arg2
guint arg3
gchar *arg4
GError *arg5
</SIGNAL>
<SIGNAL>
<NAME>GcalDateChooserDay::selected</NAME>
<RETURNS>void</RETURNS>
<FLAGS>f</FLAGS>
GcalDateChooserDay *gcaldatechooserday
</SIGNAL>
<SIGNAL>
<NAME>GcalDateChooser::day-selected</NAME>
<RETURNS>void</RETURNS>
<FLAGS>f</FLAGS>
GcalDateChooser *gcaldatechooser
</SIGNAL>
<SIGNAL>
<NAME>GcalDateChooser::month-changed</NAME>
<RETURNS>void</RETURNS>
<FLAGS>f</FLAGS>
GcalDateChooser *gcaldatechooser
</SIGNAL>
<SIGNAL>
<NAME>GcalEventWidget::activate</NAME>
<RETURNS>void</RETURNS>
<FLAGS>l</FLAGS>
GcalEventWidget *gcaleventwidget
</SIGNAL>
<SIGNAL>
<NAME>GcalManager::query-completed</NAME>
<RETURNS>void</RETURNS>
<FLAGS>l</FLAGS>
GcalManager *gcalmanager
</SIGNAL>
<SIGNAL>
<NAME>GcalManager::source-added</NAME>
<RETURNS>void</RETURNS>
<FLAGS>l</FLAGS>
GcalManager *gcalmanager
gpointer arg1
gboolean arg2
</SIGNAL>
<SIGNAL>
<NAME>GcalManager::source-changed</NAME>
<RETURNS>void</RETURNS>
<FLAGS>l</FLAGS>
GcalManager *gcalmanager
ESource *arg1
</SIGNAL>
<SIGNAL>
<NAME>GcalManager::source-enabled</NAME>
<RETURNS>void</RETURNS>
<FLAGS>l</FLAGS>
GcalManager *gcalmanager
ESource *arg1
gboolean arg2
</SIGNAL>
<SIGNAL>
<NAME>GcalManager::source-removed</NAME>
<RETURNS>void</RETURNS>
<FLAGS>l</FLAGS>
GcalManager *gcalmanager
gpointer arg1
</SIGNAL>
<SIGNAL>
<NAME>GcalMultiChoice::wrapped</NAME>
<RETURNS>void</RETURNS>
<FLAGS>l</FLAGS>
GcalMultiChoice *gcalmultichoice
</SIGNAL>
<SIGNAL>
<NAME>GcalQuickAddPopover::edit-event</NAME>
<RETURNS>void</RETURNS>
<FLAGS>l</FLAGS>
GcalQuickAddPopover *gcalquickaddpopover
GcalEvent *arg1
</SIGNAL>
<SIGNAL>
<NAME>GcalSearchView::event-activated</NAME>
<RETURNS>void</RETURNS>
<FLAGS>l</FLAGS>
GcalSearchView *gcalsearchview
icaltimetype *arg1
</SIGNAL>
<SIGNAL>
<NAME>GcalShellSearchProvider2::handle-activate-result</NAME>
<RETURNS>gboolean</RETURNS>
<FLAGS>l</FLAGS>
GcalShellSearchProvider2 *gcalshellsearchprovider2
GDBusMethodInvocation *arg1
gchar *arg2
GStrv arg3
guint arg4
</SIGNAL>
<SIGNAL>
<NAME>GcalShellSearchProvider2::handle-get-initial-result-set</NAME>
<RETURNS>gboolean</RETURNS>
<FLAGS>l</FLAGS>
GcalShellSearchProvider2 *gcalshellsearchprovider2
GDBusMethodInvocation *arg1
GStrv arg2
</SIGNAL>
<SIGNAL>
<NAME>GcalShellSearchProvider2::handle-get-result-metas</NAME>
<RETURNS>gboolean</RETURNS>
<FLAGS>l</FLAGS>
GcalShellSearchProvider2 *gcalshellsearchprovider2
GDBusMethodInvocation *arg1
GStrv arg2
</SIGNAL>
<SIGNAL>
<NAME>GcalShellSearchProvider2::handle-get-subsearch-result-set</NAME>
<RETURNS>gboolean</RETURNS>
<FLAGS>l</FLAGS>
GcalShellSearchProvider2 *gcalshellsearchprovider2
GDBusMethodInvocation *arg1
GStrv arg2
GStrv arg3
</SIGNAL>
<SIGNAL>
<NAME>GcalShellSearchProvider2::handle-launch-search</NAME>
<RETURNS>gboolean</RETURNS>
<FLAGS>l</FLAGS>
GcalShellSearchProvider2 *gcalshellsearchprovider2
GDBusMethodInvocation *arg1
GStrv arg2
guint arg3
</SIGNAL>
<SIGNAL>
<NAME>GcalSubscriberView::event-activated</NAME>
<RETURNS>void</RETURNS>
<FLAGS>l</FLAGS>
GcalSubscriberView *gcalsubscriberview
GcalEventWidget *arg1
</SIGNAL>
<SIGNAL>
<NAME>GcalView::create-event</NAME>
<RETURNS>void</RETURNS>
<FLAGS>l</FLAGS>
GcalView *gcalview
gpointer arg1
gpointer arg2
gdouble arg3
gdouble arg4
</SIGNAL>
<SIGNAL>
<NAME>GcalView::create-event-detailed</NAME>
<RETURNS>void</RETURNS>
<FLAGS>l</FLAGS>
GcalView *gcalview
gpointer arg1
gpointer arg2
</SIGNAL>
<SIGNAL>
<NAME>GcalWeekGrid::event-activated</NAME>
<RETURNS>void</RETURNS>
<FLAGS>f</FLAGS>
GcalWeekGrid *gcalweekgrid
GcalEventWidget *arg1
</SIGNAL>
<SIGNAL>
<NAME>GcalWeekHeader::event-activated</NAME>
<RETURNS>void</RETURNS>
<FLAGS>f</FLAGS>
GcalWeekHeader *gcalweekheader
GcalEventWidget *arg1
</SIGNAL>
<SIGNAL>
<NAME>GcalWeekView::event-activated</NAME>
<RETURNS>void</RETURNS>
<FLAGS>f</FLAGS>
GcalWeekView *gcalweekview
GcalEventWidget *arg1
</SIGNAL>
<SIGNAL>
<NAME>GcalYearView::event-activated</NAME>
<RETURNS>void</RETURNS>
<FLAGS>l</FLAGS>
GcalYearView *gcalyearview
GcalEventWidget *arg1
</SIGNAL>
+30
View File
@@ -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
Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

+1
View File
@@ -0,0 +1 @@
@VERSION@
+17
View File
@@ -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)
+133
View File
@@ -21,6 +21,18 @@
#include <glib.h>
/**
* 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__)
+74
View File
@@ -29,6 +29,17 @@
#include <libecal/libecal.h>
#include <glib/gi18n.h>
/**
* 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)
{
+57 -3
View File
@@ -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:
* |[<!-- language="C" -->
* 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 '<source id>:<event id>:<recurrency id>'.
* consists of '[source id]:[event id]:[recurrency id]'.
* If there's no recurrency assigned, the last field is
* ignored.
*
+6
View File
@@ -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
+259 -49
View File
@@ -25,6 +25,17 @@
#include <libedataserverui/libedataserverui.h>
/**
* 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);
}
+91 -217
View File
@@ -26,6 +26,19 @@
#include <goa/goa.h>
#include <libedataserverui/libedataserverui.h>
/**
* 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 <b>%s</b> 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,
+9
View File
@@ -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,
+219 -19
View File
@@ -36,6 +36,12 @@
#include <string.h>
#include <math.h>
/**
* 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)
{
+11 -13
View File
@@ -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,
+85
View File
@@ -39,6 +39,48 @@
#include <libecal/libecal.h>
#include <libical/icaltime.h>
/**
* 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 popover](gcal-window_agendas.png)
*
* 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)
+33
View File
@@ -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,
+11
View File
@@ -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,