summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid King <davidk@openismus.com>2010-04-23 12:09:46 +0200
committerDavid King <davidk@openismus.com>2010-04-23 12:44:33 +0200
commita35d1d92bda4a1fbbd23ed9221a6d729cef7dc33 (patch)
tree6aac975d37de7308c71be766cf448e04e3fd6e0e
parent2b18c258df94ca4c9fe2fae6eeac76c7cbc8b8fc (diff)
downloadsigc++-a35d1d92bda4a1fbbd23ed9221a6d729cef7dc33.tar.gz
Add main page to Doxygen documentation
* docs/Makefile.am: Parse sigc++/sigc++.h for documentation. * sigc++/sigc++.h: Add main page to Doxygen documentation.
-rw-r--r--ChangeLog7
-rw-r--r--docs/Makefile.am3
-rw-r--r--sigc++/sigc++.h54
3 files changed, 62 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 800f884..e38f353 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2010-04-23 David King <davidk@openismus.com>
+ Add main page to Doxygen documentation
+
+ * docs/Makefile.am: Parse sigc++/sigc++.h for documentation.
+ * sigc++/sigc++.h: Add main page to Doxygen documentation.
+
+2010-04-23 David King <davidk@openismus.com>
+
Fix the functors Doxygen group in the m4 files
* sigc++/functors/macros/functor_trait.h.m4:
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 34517da..aec4527 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -26,7 +26,8 @@ book_name = libsigc++-$(SIGCXX_API_VERSION)
libsigc_h = $(sigc_public_h) $(sigc_built_h)
vp_select = $(or $(wildcard $(top_builddir)/sigc++/$(file)),$(top_srcdir)/sigc++/$(file))
vp_search = $(foreach file,$(libsigc_h),$(vp_select))
-doc_input = $(if $(srcdir:.=),$(vp_search),$(addprefix $(top_builddir)/sigc++/,$(libsigc_h)))
+doc_input = $(if $(srcdir:.=),$(vp_search),$(addprefix $(top_builddir)/sigc++/,$(libsigc_h))) \
+ $(top_srcdir)/sigc++/sigc++.h
include $(top_srcdir)/build/doc-reference.am
diff --git a/sigc++/sigc++.h b/sigc++/sigc++.h
index 90a9e6d..df63375 100644
--- a/sigc++/sigc++.h
+++ b/sigc++/sigc++.h
@@ -20,6 +20,59 @@
#ifndef SIGCXX_SIGCXX_H
#define SIGCXX_SIGCXX_H
+/** @mainpage libsigc++ Reference Manual
+ *
+ * @section description Description
+ *
+ * libsigc++ implements a typesafe callback system for standard C++. It allows
+ * you to define signals and to connect those signals to any callback function,
+ * either a global or a member function, regardless of whether it is static or
+ * virtual. It also contains adaptor classes for connection of dissimilar
+ * callbacks and has an ease of use unmatched by other C++ callback libraries.
+ *
+ * For instance, see @ref adaptors "Adaptors", @ref sigcfunctors "Functors",
+ * @ref lambdas "Lambdas", @ref signal "Signals" and @ref slot "Slots".
+ *
+ * See also the libsigc++ website: http://libsigc.sourceforge.net/
+ *
+ * @section features Features
+ *
+ * - Compile time typesafe callbacks (faster than run time checks)
+ * - Typesafety violations report line number correctly with template names (no
+ * tracing template failures into headers)
+ * - No compiler extensions or meta compilers required
+ * - Proper handling of dynamic objects and signals (deleted objects will not
+ * cause seg faults)
+ * - Extendable API at any level: signal, slot, connection and trackable
+ * - Extensions do not require alteration of basic components
+ * - User definable accumulators
+ * - A variety of adaptors to change the callback signature: bind, hide,
+ * retype, compose and lambda call groups
+ *
+ * @section basics Basic usage
+ *
+ * Include the libsigc++ header:
+ * @code
+ * #include <sigc++/sigc++.h>
+ * @endcode
+ * This includes every header installed by libsigc++, so can slow down
+ * compilation, but suffices for this simple example. Assuming that your
+ * program source file is @c program.cc, compile it with:
+ * @code
+ * g++ program.cc -o program `pkg-config --cflags --libs sigc++-2.0`
+ * @endcode
+ * Alternatively, if using autoconf, use the following in @c configure.ac:
+ * @code
+ * PKG_CHECK_MODULES([LIBSIGCXX], [sigc++-2.0])
+ * @endcode
+ * Then use the generated @c LIBSIGCXX_CFLAGS and @c LIBSIGCXX_LIBS variables
+ * in the project @c Makefile.am files. For example:
+ * @code
+ * program_CPPFLAGS = $(LIBSIGCXX_CFLAGS)
+ * program_LDADD = $(LIBSIGCXX_LIBS)
+ * @endcode
+ */
+
#include <sigc++/signal.h>
#include <sigc++/connection.h>
#include <sigc++/trackable.h>
@@ -27,4 +80,3 @@
#include <sigc++/functors/functors.h>
#endif /* SIGCXX_SIGCXX_H */
-