diff --git a/docs/doxygen/Doxyfile b/docs/doxygen/Doxyfile
index 013ed19968..ab8eccfc05 100644
--- a/docs/doxygen/Doxyfile
+++ b/docs/doxygen/Doxyfile
@@ -47,42 +47,59 @@ SUBGROUPING = YES
# us to keep the headers readable and "implement" wxWidgets-specific commands.
# event aliases
-ALIASES = beginEventTable="\section events Events\n"
-ALIASES += event{1}="\li \b \1"
-ALIASES += event{2}="\li \b \1, \2"
+ALIASES = beginEventTable="\section class_events Events\n"
+ALIASES += event{1}="\li \b \1"
+ALIASES += event{2}="\li \b \1, \2"
ALIASES += endEventTable="\n"
# style aliases
-ALIASES += beginStyleTable="\section styles Styles\n"
-ALIASES += style{1}="\li \b \1"
+ALIASES += beginStyleTable="\section class_styles Styles\n"
+ALIASES += style{1}="\li \b \c \1"
ALIASES += endStyleTable="\n"
# extra style aliases
-ALIASES += beginExtraStyleTable="\section extrastyles Extra Styles\n"
+ALIASES += beginExtraStyleTable="\section class_extrastyles Extra Styles\n"
ALIASES += endExtraStyleTable="\n"
# misc aliases
-ALIASES += library{1}="\section lib Library\n \b \1"
-ALIASES += seealso="\section sa See also\n" # the default \sa command does not generate a \section!
-ALIASES += stdobjects="\section stdobj Predefined objects\n \b"
+ALIASES += library{1}="\section class_lib Library\n \ref \1"
+ALIASES += nolibrary="\section class_lib Library\n None; this class implementation is entirely header-based."
+ALIASES += stdobjects="\section class_stdobj Predefined objects\n \b"
+
+# IMPORTANT: the default \sa command does not generate a \section!
+ALIASES += seealso="\section class_sa See also\n"
+
+# IMPORTANT: the \headerfile command does not work everywhere we'd need it,
+# e.g. in the constants page we need to specify an header file
+# even if they're not inside a \class, \function or \struct command....
+ALIASES += header{1}="Include file:\n \verbatim #include <\1> @endverbatim"
# some formatting aliases
-ALIASES += true="\b true"
-ALIASES += false="\b false"
-ALIASES += NULL="\b NULL"
+# NOTE: using and tags is different from using \c \b because in the last case
+# \c gets applied to the first word following and \b to the second word following;
+# we want both bold and typetext attributes to be applied to the same word!
+ALIASES += true="true"
+ALIASES += false="false"
+ALIASES += NULL="NULL"
# these are useful for creation of tables
-ALIASES += row{2}=""
+ALIASES += beginTable=""
+ALIASES += beginInvisibleTable=""
+ALIASES += row{2}="\1 | \2 |
"
+ALIASES += row{3}="\1 | \2 \3 |
"
+ALIASES += row{4}="\1 | \2 \3 \4 |
"
+ALIASES += endTable="
"
-# NOTE: we could put aliases also for e.g. @wxDefaultSize, @wxDefaultPosition, @wxID_ANY, etc
+# NOTE: we could put aliases also for e.g. @wxDefaultSize, @wxDefaultPosition, @wxID_ANY,
+# @wxEmptyString, @wxNullIcon, etc etc
# NOTE: these are important as you can't write in the docs
# just #ifdef since the # character is used by Doxygen
# for explicit linking; use the following aliases instead!
-ALIASES += ifdef="\b \c \#ifdef"
-ALIASES += ifndef="\b \c \#ifndef"
-ALIASES += if="\b \c \#if" # NOTE: this overrides the Doxygen \if command
-ALIASES += endif="\b \c \#endif"
+ALIASES += ifdef="\#ifdef"
+ALIASES += ifndef="\#ifndef"
+ALIASES += if="\#if" # NOTE: this overrides the Doxygen \if command
+ALIASES += endif="\#endif"
#---------------------------------------------------------------------------
diff --git a/docs/doxygen/const_keycode.h b/docs/doxygen/const_keycode.h
index e6ccc6f3df..0cb2cbb188 100644
--- a/docs/doxygen/const_keycode.h
+++ b/docs/doxygen/const_keycode.h
@@ -11,9 +11,7 @@
@page keycodes Keycodes
- Include file:
-
- @verbatim #include @endverbatim
+ @header{wx/defs.h}
Keypresses are represented by an enumerated type, wxKeyCode. The possible
values are the ASCII character codes, plus the following:
diff --git a/docs/doxygen/const_keymod.h b/docs/doxygen/const_keymod.h
index 8246d5ec1e..15548fc61c 100644
--- a/docs/doxygen/const_keymod.h
+++ b/docs/doxygen/const_keymod.h
@@ -11,7 +11,7 @@
@page keymodifiers Key Modifiers
- Include file: @verbatim #include @endverbatim
+ @header{wx/defs.h}
The following key modifier constants are defined: