[gnome-todo/wip/gbsneto/documentation: 4/5] docs: add documentation



commit 04c1aec91e71bed07f06dbd0a4fd2f84e6dd1dd6
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Mon Apr 25 21:28:23 2016 -0300

    docs: add documentation
    
    Adds the Gtk-doc plumbing to the project tree and
    generate the initial documentation files.

 Makefile.am                            |    7 +-
 autogen.sh                             |    1 +
 configure.ac                           |   18 +++
 doc/Makefile.am                        |    3 +
 doc/reference/Makefile.am              |  128 ++++++++++++++++++++
 doc/reference/gnome-todo-docs.sgml     |   47 ++++++++
 doc/reference/gnome-todo-sections.txt  |  198 ++++++++++++++++++++++++++++++++
 doc/reference/gnome-todo.types         |   10 ++
 doc/reference/version.xml.in           |    1 +
 src/Makefile.am                        |   82 +++++++++++++
 10 files changed, 493 insertions(+), 2 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index fa7745f..2d4066b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,8 +2,8 @@ include $(top_srcdir)/common.am
 
 ACLOCAL_AMFLAGS = --install -I m4 ${ACLOCAL_FLAGS}
 
-SUBDIRS = plugins src data po
-DIST_SUBDIRS = src data plugins po
+SUBDIRS = plugins src data po doc
+DIST_SUBDIRS = $(SUBDIRS)
 
 INTLTOOL_FILES = \
        intltool-extract.in \
@@ -25,6 +25,7 @@ DISTCLEANFILES = \
 
 DISTCHECK_CONFIGURE_FLAGS = \
        --enable-appstream-util \
+       --disable-gtk-doc \
        --enable-introspection
 
 # Remove doc directory on uninstall
@@ -38,6 +39,8 @@ GITIGNOREFILES = \
        build-aux \
        config \
        config.h.in \
+       gtk-doc.m4 \
+       gtk-doc.make \
        m4 \
        src/.deps \
        src/Makefile \
diff --git a/autogen.sh b/autogen.sh
index d841196..08e886a 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -24,6 +24,7 @@ fi
 set -x
 aclocal --install || exit $?
 intltoolize --force --copy --automake || exit $?
+gtkdocize || exit 1
 autoreconf --verbose --force --install -Wno-portability || exit $?
 
 cd $olddir
diff --git a/configure.ac b/configure.ac
index 6ac8414..acd7192 100644
--- a/configure.ac
+++ b/configure.ac
@@ -93,6 +93,20 @@ GNOME_TODO_ADD_PLUGIN([score], [Score], [yes])
 GNOME_TODO_ADD_PLUGIN([today-panel], [Today Panel], [yes])
 GNOME_TODO_ADD_PLUGIN([unscheduled-panel], [Unscheduled Tasks Panel], [yes])
 
+
+dnl ***********************************************************************
+dnl Support for gtk-doc Documentation Engine
+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)
+
+
 AC_CONFIG_FILES([
       Makefile
       src/Makefile
@@ -100,6 +114,9 @@ AC_CONFIG_FILES([
       data/icons/Makefile
       data/gnome-todo.pc
       data/org.gnome.Todo.desktop.in
+      doc/Makefile
+      doc/reference/Makefile
+      doc/reference/version.xml
       plugins/Makefile
       po/Makefile.in
 ])
@@ -116,6 +133,7 @@ echo "
         compiler:      ${CC}
        global flags:  ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
         release:       ${ax_is_release}
+        documentation: ${enable_gtk_doc}
 
     Plugins:
         Score ................... ${enable_score_plugin}
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 0000000..034926c
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,3 @@
+SUBDIRS = reference
+
+-include $(top_srcdir)/git.mk
diff --git a/doc/reference/Makefile.am b/doc/reference/Makefile.am
new file mode 100644
index 0000000..8c25c5f
--- /dev/null
+++ b/doc/reference/Makefile.am
@@ -0,0 +1,128 @@
+## 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-todo
+
+# 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=$(GLIB_PREFIX)/share/gtk-doc/html/glib              \
+       --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html/gmodule           \
+       --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/gtk                \
+       --extra-dir=$(GTK_PREFIX)/share/gtk-doc/html/gtksourceview-3.0
+endif
+
+# Used for dependencies. The docs will be rebuilt if any of these change.
+HFILE_GLOB = \
+       $(top_srcdir)/src/gtd*.h \
+       $(top_srcdir)/src/*/gtd-*.h \
+       $(NULL)
+CFILE_GLOB = \
+       $(top_srcdir)/src/gtd*.c \
+       $(top_srcdir)/src/*/gtd-*.c \
+       $(NULL)
+
+# Header files to ignore when scanning.
+IGNORE_HFILES = \
+       gtd-application.h \
+       gtd-arrow-frame.h \
+       gtd-edit-pane.h \
+       gtd-enum-types.h \
+       gtd-initial-setup-window.h \
+       gtd-list-selector.h \
+       gtd-list-selector-grid.h \
+       gtd-list-selector-grid-item.h \
+       gtd-list-selector-item.h \
+       gtd-list-selector-list.h \
+       gtd-list-selector-list-item.h \
+       gtd-list-selector-panel.h \
+       gtd-manager-protected.h \
+       gtd-notification-widget.h \
+       gtd-plugin-dialog.h \
+       gtd-plugin-dialog-row.h \
+       gtd-plugin-manager.h \
+       gtd-provider-dialog.h \
+       gtd-provider-popover.h \
+       gtd-provider-row.h \
+       gtd-provider-selector.h \
+       gtd-resources.h \
+       gtd-task-row.h \
+       gtd-types.h
+
+# Images to copy into HTML directory.
+HTML_IMAGES =
+
+# 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 \
+       $(GNOME_TODO_CFLAGS)
+
+GTKDOC_LIBS = \
+       $(GNOME_TODO_LIBS) \
+       $(top_builddir)/src/libgtd.la
+
+# This includes the standard gtk-doc make rules, copied by gtkdocize.
+include $(top_srcdir)/gtk-doc.make
+
+# Other files to distribute
+EXTRA_DIST += \
+       version.xml.in
+
+
+if ENABLE_GTK_DOC
+
+TESTS_ENVIRONMENT = \
+       SRCDIR=$(abs_srcdir)                            \
+       BUILDDIR=$(abs_builddir)                        \
+       DOC_MODULE=$(DOC_MODULE)                        \
+       DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE)
+
+check-local: $(GTKDOC_CHECK)
+       @$(TESTS_ENVIRONMENT) ./$(GTKDOC_CHECK)
+
+endif
+
+-include $(top_srcdir)/git.mk
diff --git a/doc/reference/gnome-todo-docs.sgml b/doc/reference/gnome-todo-docs.sgml
new file mode 100644
index 0000000..c7fd190
--- /dev/null
+++ b/doc/reference/gnome-todo-docs.sgml
@@ -0,0 +1,47 @@
+<?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 To Do - Reference Manual</title>
+    <releaseinfo>
+      Reference manual for GNOME To Do.
+      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>Objects</title>
+        <xi:include href="xml/gtd-activatable.xml"/>
+    <xi:include href="xml/gtd-enums.xml"/>
+    <xi:include href="xml/gtd-manager.xml"/>
+    <xi:include href="xml/gtd-notification.xml"/>
+    <xi:include href="xml/gtd-object.xml"/>
+    <xi:include href="xml/gtd-panel.xml"/>
+    <xi:include href="xml/gtd-provider.xml"/>
+    <xi:include href="xml/gtd-task.xml"/>
+    <xi:include href="xml/gtd-task-list.xml"/>
+    <xi:include href="xml/gtd-task-list-view.xml"/>
+    <xi:include href="xml/gtd-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>
diff --git a/doc/reference/gnome-todo-overrides.txt b/doc/reference/gnome-todo-overrides.txt
new file mode 100644
index 0000000..e69de29
diff --git a/doc/reference/gnome-todo-sections.txt b/doc/reference/gnome-todo-sections.txt
new file mode 100644
index 0000000..2f74916
--- /dev/null
+++ b/doc/reference/gnome-todo-sections.txt
@@ -0,0 +1,198 @@
+<SECTION>
+<FILE>gtd-activatable</FILE>
+<TITLE>GtdActivatable</TITLE>
+GTD_TYPE_ACTIVATABLE
+GtdActivatableInterface
+gtd_activatable_activate
+gtd_activatable_deactivate
+gtd_activatable_get_header_widgets
+gtd_activatable_get_preferences_panel
+gtd_activatable_get_panels
+gtd_activatable_get_providers
+GtdActivatable
+</SECTION>
+
+<SECTION>
+<FILE>gtd-enums</FILE>
+<TITLE>Enums</TITLE>
+GtdWindowMode
+GtdListSelectorViewType
+</SECTION>
+
+<SECTION>
+<FILE>gtd-manager</FILE>
+<TITLE>GtdManager</TITLE>
+GTD_TYPE_MANAGER
+gtd_manager_new
+gtd_manager_get_default
+gtd_manager_get_task_lists
+gtd_manager_get_providers
+gtd_manager_get_panels
+gtd_manager_create_task_list
+gtd_manager_remove_task_list
+gtd_manager_save_task_list
+gtd_manager_create_task
+gtd_manager_remove_task
+gtd_manager_update_task
+gtd_manager_get_default_provider
+gtd_manager_set_default_provider
+gtd_manager_get_settings
+gtd_manager_get_is_first_run
+gtd_manager_set_is_first_run
+gtd_manager_emit_error_message
+GtdManager
+</SECTION>
+
+<SECTION>
+<FILE>gtd-notification</FILE>
+<TITLE>GtdNotification</TITLE>
+GTD_TYPE_NOTIFICATION
+GtdNotificationActionFunc
+gtd_notification_new
+gtd_notification_execute_primary_action
+gtd_notification_execute_secondary_action
+gtd_notification_start
+gtd_notification_stop
+gtd_notification_set_primary_action
+gtd_notification_set_secondary_action
+gtd_notification_get_text
+gtd_notification_set_text
+gtd_notification_get_timeout
+gtd_notification_set_timeout
+GtdNotification
+</SECTION>
+
+<SECTION>
+<FILE>gtd-object</FILE>
+<TITLE>GtdObject</TITLE>
+GTD_TYPE_OBJECT
+GtdObjectClass
+gtd_object_new
+gtd_object_get_uid
+gtd_object_set_uid
+gtd_object_get_ready
+gtd_object_set_ready
+GtdObject
+</SECTION>
+
+<SECTION>
+<FILE>gtd-panel</FILE>
+<TITLE>GtdPanel</TITLE>
+GTD_TYPE_PANEL
+GtdPanelInterface
+gtd_panel_get_panel_name
+gtd_panel_get_panel_title
+gtd_panel_get_header_widgets
+gtd_panel_get_menu
+GtdPanel
+</SECTION>
+
+<SECTION>
+<FILE>gtd-provider</FILE>
+<TITLE>GtdProvider</TITLE>
+GTD_TYPE_PROVIDER
+GtdProviderInterface
+gtd_provider_get_id
+gtd_provider_get_name
+gtd_provider_get_description
+gtd_provider_get_enabled
+gtd_provider_get_icon
+gtd_provider_get_edit_panel
+gtd_provider_create_task
+gtd_provider_update_task
+gtd_provider_remove_task
+gtd_provider_create_task_list
+gtd_provider_update_task_list
+gtd_provider_remove_task_list
+gtd_provider_get_task_lists
+gtd_provider_get_default_task_list
+GtdProvider
+</SECTION>
+
+<SECTION>
+<FILE>gtd-task</FILE>
+<TITLE>GtdTask</TITLE>
+GTD_TYPE_TASK
+GtdTaskClass
+gtd_task_new
+gtd_task_get_complete
+gtd_task_set_complete
+gtd_task_get_component
+gtd_task_get_creation_date
+gtd_task_get_description
+gtd_task_set_description
+gtd_task_get_due_date
+gtd_task_set_due_date
+gtd_task_get_list
+gtd_task_set_list
+gtd_task_get_priority
+gtd_task_set_priority
+gtd_task_get_title
+gtd_task_set_title
+gtd_task_abort
+gtd_task_save
+gtd_task_compare
+GtdTask
+</SECTION>
+
+<SECTION>
+<FILE>gtd-task-list</FILE>
+<TITLE>GtdTaskList</TITLE>
+GTD_TYPE_TASK_LIST
+GtdTaskListClass
+gtd_task_list_new
+gtd_task_list_get_color
+gtd_task_list_set_color
+gtd_task_list_is_removable
+gtd_task_list_set_is_removable
+gtd_task_list_get_name
+gtd_task_list_set_name
+gtd_task_list_get_provider
+gtd_task_list_set_provider
+gtd_task_list_get_tasks
+gtd_task_list_save_task
+gtd_task_list_remove_task
+gtd_task_list_contains
+GtdTaskList
+</SECTION>
+
+<SECTION>
+<FILE>gtd-task-list-view</FILE>
+<TITLE>GtdTaskListView</TITLE>
+GTD_TYPE_TASK_LIST_VIEW
+GtdTaskListViewHeaderFunc
+GtdTaskListViewSortFunc
+gtd_task_list_view_new
+gtd_task_list_view_get_list
+gtd_task_list_view_set_list
+gtd_task_list_view_get_task_list
+gtd_task_list_view_set_task_list
+gtd_task_list_view_get_show_list_name
+gtd_task_list_view_set_show_list_name
+gtd_task_list_view_get_show_completed
+gtd_task_list_view_set_show_completed
+gtd_task_list_view_set_header_func
+gtd_task_list_view_set_sort_func
+gtd_task_list_view_get_show_new_task_row
+gtd_task_list_view_set_show_new_task_row
+gtd_task_list_view_get_default_date
+gtd_task_list_view_set_default_date
+gtd_task_list_view_get_color
+gtd_task_list_view_set_color
+GtdTaskListView
+</SECTION>
+
+<SECTION>
+<FILE>gtd-window</FILE>
+<TITLE>GtdWindow</TITLE>
+GTD_TYPE_WINDOW
+gtd_window_new
+gtd_window_get_manager
+gtd_window_notify
+gtd_window_cancel_notification
+gtd_window_get_mode
+gtd_window_set_mode
+gtd_window_set_custom_title
+GtdWindow
+</SECTION>
+
diff --git a/doc/reference/gnome-todo.types b/doc/reference/gnome-todo.types
new file mode 100644
index 0000000..68ec538
--- /dev/null
+++ b/doc/reference/gnome-todo.types
@@ -0,0 +1,10 @@
+gtd_activatable_get_type
+gtd_manager_get_type
+gtd_notification_get_type
+gtd_object_get_type
+gtd_panel_get_type
+gtd_provider_get_type
+gtd_task_get_type
+gtd_task_list_get_type
+gtd_task_list_view_get_type
+gtd_window_get_type
diff --git a/doc/reference/version.xml.in b/doc/reference/version.xml.in
new file mode 100644
index 0000000..d78bda9
--- /dev/null
+++ b/doc/reference/version.xml.in
@@ -0,0 +1 @@
+@VERSION@
diff --git a/src/Makefile.am b/src/Makefile.am
index 5908ef2..bfa8ef7 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -160,6 +160,88 @@ EXTRA_DIST = \
 
 
 #==================================
+# Private library for documentation
+#==================================
+if ENABLE_GTK_DOC
+
+noinst_LTLIBRARIES = libgtd.la
+
+libgtd_la_SOURCES = \
+       engine/gtd-manager.c \
+       engine/gtd-manager.h \
+       engine/gtd-manager-protected.h \
+       engine/gtd-plugin-manager.c \
+       engine/gtd-plugin-manager.h \
+       interfaces/gtd-activatable.c \
+       interfaces/gtd-activatable.h \
+       interfaces/gtd-panel.c \
+       interfaces/gtd-panel.h \
+       interfaces/gtd-provider.c \
+       interfaces/gtd-provider.h \
+       notification/gtd-notification.c \
+       notification/gtd-notification.h \
+       notification/gtd-notification-widget.c \
+       notification/gtd-notification-widget.h \
+       provider/gtd-provider-popover.c \
+       provider/gtd-provider-popover.h \
+       provider/gtd-provider-row.c \
+       provider/gtd-provider-row.h \
+       provider/gtd-provider-selector.c \
+       provider/gtd-provider-selector.h \
+       views/gtd-list-selector.c \
+       views/gtd-list-selector.h \
+       views/gtd-list-selector-grid.c \
+       views/gtd-list-selector-grid.h \
+       views/gtd-list-selector-grid-item.c \
+       views/gtd-list-selector-grid-item.h \
+       views/gtd-list-selector-item.c \
+       views/gtd-list-selector-item.h \
+       views/gtd-list-selector-list.c \
+       views/gtd-list-selector-list.h \
+       views/gtd-list-selector-list-item.c \
+       views/gtd-list-selector-list-item.h \
+       views/gtd-list-selector-panel.c \
+       views/gtd-list-selector-panel.h \
+       gtd-application.c \
+       gtd-application.h \
+       gtd-arrow-frame.c \
+       gtd-arrow-frame.h \
+       gtd-edit-pane.c \
+       gtd-edit-pane.h \
+       gtd-enum-types.c \
+       gtd-enum-types.h \
+       gtd-enums.h \
+       gtd-initial-setup-window.c \
+       gtd-initial-setup-window.h \
+       gtd-object.c \
+       gtd-object.h \
+       gtd-plugin-dialog.c \
+       gtd-plugin-dialog.h \
+       gtd-plugin-dialog-row.c \
+       gtd-plugin-dialog-row.h \
+       gtd-task.c \
+       gtd-task.h \
+       gtd-task-list.c \
+       gtd-task-list.h \
+       gtd-task-list-view.c \
+       gtd-task-list-view.h \
+       gtd-task-row.c \
+       gtd-task-row.h \
+       gtd-types.h \
+       gtd-window.c \
+       gtd-window.h
+
+libgtd_la_CFLAGS = \
+       $(GNOME_TODO_CFLAGS) \
+       $(GNOME_TODO_WARN_CFLAGS)
+
+libgtd_la_LDFLAGS = \
+       -Wl,--export-dynamic
+
+endif
+
+
+#==================================
 # GObject introspection
 #==================================
 if HAVE_INTROSPECTION


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