#############################################################################
#---------------------------------------------------------------------------
-# Project related configuration options
+# Project Options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = NO
+REPEAT_BRIEF = YES
ABBREVIATE_BRIEF =
ALWAYS_DETAILED_SEC = YES
INLINE_INHERITED_MEMB = NO
-FULL_PATH_NAMES = NO
-STRIP_FROM_PATH =
-STRIP_FROM_INC_PATH =
+FULL_PATH_NAMES = YES
+STRIP_FROM_PATH = "$(WXWIDGETS)/"
+STRIP_FROM_INC_PATH = "$(WXWIDGETS)/include/" \
+ "$(WXWIDGETS)/interface/"
SHORT_NAMES = NO
-JAVADOC_AUTOBRIEF = NO
+JAVADOC_AUTOBRIEF = YES
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP = YES
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 4
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
+OPTIMIZE_FOR_FORTRAN = NO
+OPTIMIZE_OUTPUT_VHDL = NO
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
+SIP_SUPPORT = NO
+IDL_PROPERTY_SUPPORT = NO
DISTRIBUTE_GROUP_DOC = YES
SUBGROUPING = YES
+TYPEDEF_HIDES_STRUCT = NO
+SYMBOL_CACHE_SIZE = 0
+
+# This is the most important part of the wxWidgets Doxyfile; aliases allow
+# us to keep the headers readable and "implement" wxWidgets-specific commands:
#---------------------------------------------------------------------------
-# Aliases
+# Aliases - for use when documenting C++ classes
#---------------------------------------------------------------------------
-# This is the most important part of the wxWidgets Doxyfile; aliases allow
-# us to keep the headers readable and "implement" wxWidgets-specific commands.
+# aliases to be used by classes which emit wxEvents (e.g. wxWindow, wxTextCtrl, etc):
+ALIASES = beginEventEmissionTable="\n<h2>Events emitted by this class</h2><p>Event macros for events emitted by this class:</p><div>"
+ALIASES += beginEventEmissionTable{1}="\n<h2>Events emitted by this class</h2><p>The following event handler macros redirect the events to member function handlers '<b>func</b>' with prototypes like: <div class='eventHandler'><span>void handlerFuncName(\1& event)</span></div></p>Event macros for events emitted by this class:<div>"
+ALIASES += beginEventEmissionTable{2}="\n<h2>Events emitted by this class</h2><p>The following event handler macros redirect the events to member function handlers '<b>func</b>' with prototypes like: <div class='eventHandler'><span>void handlerFuncName(\1& event)</span> or <span>void handlerFuncName(\2& event)</span></div></p>Event macros for events emitted by this class:<div>"
-# event aliases
-ALIASES = beginEventTable{1}="\n<span class='events'>Events:</span><p>The following event handler macros redirect the events to member function handlers '<b>func</b>' with prototypes like: <div class='eventHandler'><span>void handlerFuncName(\1& event)</span></div></p><br>Event macros:<div>"
+# aliases to be used in wxEvent-derived classes:
+ALIASES += beginEventTable{1}="\n<h2>Events using this class</h2><p>The following event handler macros redirect the events to member function handlers '<b>func</b>' with prototypes like: <div class='eventHandler'><span>void handlerFuncName(\1& event)</span></div></p>Event macros:<div>"
+ALIASES += beginEventTable{2}="\n<h2>Events using this class</h2><p>The following event handler macros redirect the events to member function handlers '<b>func</b>' with prototypes like: <div class='eventHandler'><span>void handlerFuncName(\1& event)</span> or <span>void handlerFuncName(\2& event)</span></div></p>Event macros:<div>"
+
+# common event aliases:
ALIASES += event{1}="</div>\li <span class='event'>\1</span>:<div class='eventDesc'>"
ALIASES += event{2}="</div>\li <span class='event'>\1, \2</span>:<div class='eventDesc'>"
ALIASES += event{3}="</div>\li <span class='event'>\1, \2, \3</span>:<div class='eventDesc'>"
ALIASES += endEventTable="</div>\n"
# style aliases
-ALIASES += beginStyleTable="\n<span class='styles'>Styles:</span><div>"
+ALIASES += beginStyleTable="\n<h2>Styles</h2><p>This class supports the following styles:</p><div>"
ALIASES += style{1}="</div>\li <span class='style'>\1</span>:<div class='styleDesc'>"
ALIASES += endStyleTable="</div>\n"
# extra style aliases
-ALIASES += beginExtraStyleTable="\n<span class='styles'>Extra styles:</span><div>"
+ALIASES += beginExtraStyleTable="\n<hr><h2>Extra styles</h2><p>This class supports the following extra styles:</p><div>"
ALIASES += endExtraStyleTable="</div>\n"
# flag aliases
ALIASES += flag{1}="</div>\li <span class='flag'>\1</span>:<div class='flagDesc'>"
ALIASES += endFlagTable="</div>\n"
+# creates appearance section: this should be used for all main GUI controls
+ALIASES += appearance{1}="\htmlonly <br><div><span class='appearance'>Appearance:</span><br><table class='appearance'><tr><td><img src='wxmsw/\1' alt='wxMSW appearance' class='appearance'></td><td><img src='wxgtk/\1' alt='wxGTK appearance' class='appearance'></td><td><img src='wxmac/\1' alt='wxMac appearance' class='appearance'></td></tr><tr><td>wxMSW appearance</td><td>wxGTK appearance</td><td>wxMac appearance</td></tr></table></div> \endhtmlonly"
+
+# aliases for the creation of "named member groups"
+# USAGE: the first argument must not contain spaces and be a unique identifier
+# of the member group for the class being documented;
+# the second argument is the member group name and can contain spaces
+# See wxString as an usage example.
+# NOTE: no warnings are given for wrong member group names so be careful and check
+# the doxygen output to verify that there are no typos
+ALIASES += member_group_name{2}="<a name='\1'></a> \name \2"
+ALIASES += ref_member_group{2}="<a href='#\1' class='el'>\2</a>"
+
+
+#---------------------------------------------------------------------------
+# Aliases - for use when documenting any C++ entity
+#---------------------------------------------------------------------------
+
# aliases for additional wx-specific infos
ALIASES += category{1}="\ingroup group_class_\1 \n<div><span class='category'>Category:</span> <span class='category_text'>\ref group_class_\1</span></div>"
ALIASES += category{2}="\ingroup group_class_\1 group_class_\2 \n<div><span class='category'>Category:</span> <span class='category_text'>\ref group_class_\1, \ref group_class_\2</span></div>"
-ALIASES += library{1}="<div><span class='lib'>Library:</span> <span class='lib_text'>\ref page_libs_\1</span></div>"
-ALIASES += nolibrary="<div><span class='lib'>Library:</span> <span class='lib_text'>None; this class implementation is entirely header-based.</span></div>"
+ALIASES += category{3}="\ingroup group_class_\1 group_class_\2 group_class_\3 \n<div><span class='category'>Category:</span> <span class='category_text'>\ref group_class_\1, \ref group_class_\2, \ref group_class_\3</span></div>"
+ALIASES += library{1}="<h2></h2><div><span class='lib'>Library:</span> <span class='lib_text'>\ref page_libs_\1</span></div>"
+ALIASES += nolibrary="<h2></h2><div><span class='lib'>Library:</span> <span class='lib_text'>None; this class implementation is entirely header-based.</span></div>"
ALIASES += stdobjects="<span class='stdobj'>Predefined objects/pointers:</span>"
# native implementation infos:
ALIASES += onlyfor{3}="<div><span class='avail'>Availability:</span> only available for the \ref page_port_\1, \ref page_port_\2, \ref page_port_\3 ports.</div> \xmlonly <onlyfor>\1,\2,\3</onlyfor> \endxmlonly"
ALIASES += onlyfor{4}="<div><span class='avail'>Availability:</span> only available for the \ref page_port_\1, \ref page_port_\2, \ref page_port_\3, \ref page_port_\4 ports.</div> \xmlonly <onlyfor>\1,\2,\3,\4</onlyfor> \endxmlonly"
-# creates appearance section: this should be used for all main GUI controls
-ALIASES += appearance{1}="@htmlonly <br><div><span class='appearance'>Appearance:</span><br><table class='appearance'><tr><td><img src='wxmsw/\1' alt='wxMSW appearance' class='appearance'></td><td><img src='wxgtk/\1' alt='wxGTK appearance' class='appearance'></td><td><img src='wxmac/\1' alt='wxMac appearance' class='appearance'></td></tr><tr><td>wxMSW appearance</td><td>wxGTK appearance</td><td>wxMac appearance</td></tr></table></div> @endhtmlonly"
-
-# 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:
+# Use this in grouped global functions, and macros since they
+# wouldn't otherwise indicate what header they are defined in.
ALIASES += header{1}="Include file:\n \verbatim #include <\1> \endverbatim"
-# IMPORTANT: inside a \class, we want to specify the header file only once
-# and not twice as the \headerfile command requires:
-ALIASES += wxheader{1}="\headerfile \1 wx/\1"
-
# some formatting aliases
ALIASES += true="<span class='literal'>true</span>"
ALIASES += false="<span class='literal'>false</span>"
ALIASES += NULL="<span class='literal'>NULL</span>"
+ALIASES += NUL="<span class='literal'>NUL</span>"
# NOTE: these are important as you can't write in the docs
# just #ifdef since the # character is used by Doxygen
ALIASES += endif_="<span class='literal'>\#endif</span>"
# table aliases for 2 and 3 column tables
-ALIASES += beginTable="<center><table class='doctable' border='1' cellspacing='0' cellpadding='3'>"
-ALIASES += beginInvisibleTable="<center><table class='doctable' border='0' cellspacing='0' cellpadding='4'>"
+ALIASES += beginTable="<table class='doctable' border='1' cellspacing='0' cellpadding='3'>"
+ALIASES += beginInvisibleTable="<table class='doctable' border='0' cellspacing='0' cellpadding='4'>"
ALIASES += row2col{2}="<tr><td>\1</td> <td>\2</td></tr>"
ALIASES += row2col{3}="<tr><td>\1</td> <td>\2,\3</td></tr>"
ALIASES += row2col{4}="<tr><td>\1</td> <td>\2,\3,\4</td></tr>"
ALIASES += row3col{8}="<tr><td>\1</td> <td>\2</td> <td>\3,\4,\5,\6,\7,\8</td></tr>"
ALIASES += row3col{9}="<tr><td>\1</td> <td>\2</td> <td>\3,\4,\5,\6,\7,\8,\9</td></tr>"
ALIASES += row3col{10}="<tr><td>\1</td> <td>\2</td> <td>\3,\4,\5,\6,\7,\8,\9,\10</td></tr>"
-ALIASES += endTable="</table></center>"
+ALIASES += hdr3col{3}="<tr><th>\1</th> <th>\2</th> <th>\3</th></tr>"
+ALIASES += endTable="</table>"
# definition list aliases
# a definition list currently is rendered as 2-column table but it may use as
ALIASES += itemdef{9}="<tr><td><span class='itemdef'>\1</span></td> <td>\2,\3,\4,\5,\6,\7,\8,\9</td></tr>"
ALIASES += itemdef{10}="<tr><td><span class='itemdef'>\1</span></td> <td>\2,\3,\4,\5,\6,\7,\8,\9,\10</td></tr>"
ALIASES += endDefList="</table>"
+ALIASES += stock{3}="<tr><td><span class='itemdef'>\1</span></td> <td> @image html gtk-\2.png\n</td><td>\3</td></tr>"
+
+#---------------------------------------------------------------------------
+# Aliases - for use when documenting wxPerl/wxPython-specific parts
+#---------------------------------------------------------------------------
# See ENABLED_SECTIONS configuration key for more info about these:
ALIASES += beginWxPerlOnly="\if WXPERL_MANUAL <b>wxPerl Note:</b> "
ALIASES += leftCurly="{"
ALIASES += rightCurly="}"
+#---------------------------------------------------------------------------
+# Aliases - for use when documenting samples
+#---------------------------------------------------------------------------
+
+# For indicating the a directory containing a sample
+ALIASES += sampledir{1}="\verbatim Location: samples/\1\endverbatim"
+
+# For refering to the corresponding sample in a class document or a overview
+# Usually placed in the queue of @see
+ALIASES += sample{1}="\ref page_samples_\1"
+
+# For generating a general description for a sample
+# \1 could be a class or an overview or a descriptive sentence
+# Shall be replaced by manual written description soon
+ALIASES += sampleabout{1}="This sample demonstrates \1."
+
+# For indicating the necessary condition of a sample or a class
+# \1 is the wxUSE_XXX macro
+ALIASES += buildwith{1}="<b>Build Note:</b> You may need to build the wxWidgets library with <tt>\1</tt> being set to 1 to be able to make it work, please read comments in @c <wx/setup_inc.h> for more info."
+ALIASES += buildwith{2}="<b>Build Note:</b> You may need to build the wxWidgets library with <tt>\1</tt> and <tt>\2</tt> being set to 1 to be able to make it work, please read comments in @c <wx/setup_inc.h> for more info."
#---------------------------------------------------------------------------
-# Build related configuration options
+# Build Options
#---------------------------------------------------------------------------
+
EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO
EXTRACT_STATIC = YES
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
-SORT_BRIEF_DOCS = NO # don't set it to YES! see http://bugzilla.gnome.org/show_bug.cgi?id=312655
+SORT_BRIEF_DOCS = NO # Don't set to YES, it renders our named groups out of order.
+SORT_GROUP_NAMES = YES
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
ENABLED_SECTIONS = WXPERL_MANUAL WXPYTHON_MANUAL
MAX_INITIALIZER_LINES = 30
-SHOW_USED_FILES = YES
+SHOW_USED_FILES = NO
SHOW_DIRECTORIES = YES
-#SHOW_FILES = NO # Doxygen 1.5.6+
+SHOW_FILES = YES
+SHOW_NAMESPACES = NO
FILE_VERSION_FILTER =
+LAYOUT_FILE = DoxygenLayout.xml
#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
+# Warning and Progress Message Options
#---------------------------------------------------------------------------
+
QUIET = YES
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_LOGFILE = doxygen.log
#---------------------------------------------------------------------------
-# configuration options related to the input files
+# Input File Options
#---------------------------------------------------------------------------
+
INPUT = ./mainpages ./groups ./overviews ../../interface
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.h *.txt
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
-# configuration options related to source browsing
+# Source Browsing Options
#---------------------------------------------------------------------------
+
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
VERBATIM_HEADERS = NO
#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
+# Alphabetical Class Index Options
#---------------------------------------------------------------------------
+
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX = wx
HTML_FOOTER = htmlfooter.inc
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = NO # Only change in format output configs
HTML_DYNAMIC_SECTIONS = YES
+GENERATE_DOCSET = NO # Only change in format output configs
+DOCSET_FEEDNAME = "wxWidgets"
+DOCSET_BUNDLE_ID = org.wxwidgets.doxygen
+GENERATE_HTMLHELP = NO # Only change in format output configs
CHM_FILE = ..\wx.chm # NOTE: Windows style separator needed
HHC_LOCATION = hhc.exe # Don't modify, see Doxyfile_chm for info
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
+GENERATE_QHP = NO
+QCH_FILE =
+QHP_NAMESPACE = org.wxwidgets.doxygen
+QHP_VIRTUAL_FOLDER = doc
+QHG_LOCATION =
DISABLE_INDEX = NO
-ENUM_VALUES_PER_LINE = 4
-GENERATE_TREEVIEW = NO
+ENUM_VALUES_PER_LINE = 1
+GENERATE_TREEVIEW = NONE
TREEVIEW_WIDTH = 250
+FORMULA_FONTSIZE = 10
#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
+# LaTeX Output Options
#---------------------------------------------------------------------------
+
GENERATE_LATEX = NO # Only change in format output configs
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
-# configuration options related to the RTF output
+# RTF Output Options
#---------------------------------------------------------------------------
+
GENERATE_RTF = NO # Only change in format output configs
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
-# configuration options related to the man page output
+# Man Page Output Options
#---------------------------------------------------------------------------
+
GENERATE_MAN = NO # Only change in format output configs
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
-# configuration options related to the XML output
+# XML Output Options
#---------------------------------------------------------------------------
+
GENERATE_XML = NO # Only change in format output configs
XML_OUTPUT = xml
XML_SCHEMA =
XML_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
+# AutoGen Definitions Output Options
#---------------------------------------------------------------------------
+
GENERATE_AUTOGEN_DEF = NO # Only change in format output configs
#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
+# Perl Module Output Options
#---------------------------------------------------------------------------
+
GENERATE_PERLMOD = NO # Only change in format output configs
PERLMOD_LATEX = YES
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
+# Preprocessor Options
#---------------------------------------------------------------------------
+
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
-# Configuration::additions related to external references
+# Additions Related to External References
#---------------------------------------------------------------------------
+
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
+# dot Tool Options
#---------------------------------------------------------------------------
+
CLASS_DIAGRAMS = YES
MSCGEN_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = YES
-CLASS_GRAPH = NO
+DOT_FONTNAME = FreeSans
+DOT_FONTSIZE = 10
+DOT_FONTPATH =
+CLASS_GRAPH = YES
COLLABORATION_GRAPH = NO
GROUP_GRAPHS = NO
UML_LOOK = NO
GRAPHICAL_HIERARCHY = NO
DIRECTORY_GRAPH = NO
DOT_IMAGE_FORMAT = png
-DOT_PATH =
DOTFILE_DIRS =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 1000
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
+# instead of setting a value for DOT_PATH it's easier and more portable to
+# put your dot utility in the PATH; if you are on a Unix system this is usually
+# done automatically; if you're on Windows you'll need to install GraphViz tools
+# and then manually add it to the PATH environment variable
+DOT_PATH =
+
#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
+# Search Engine Options
#---------------------------------------------------------------------------
+
SEARCHENGINE = NO