Skip to content
This repository
Browse code

Adapting the HUD Demo to the slightly changed directory structure.

  • Loading branch information...
commit 4c9eba6705fdbdf306ca5ce2b7a8d9ba16b731e0 1 parent 059cf87
authored October 20, 2009
1  .gitattributes
... ...
@@ -0,0 +1 @@
  1
+*.pbxproj -crlf -diff -merge
17  .gitignore
... ...
@@ -0,0 +1,17 @@
  1
+# xcode noise
  2
+build/
  3
+*.xcodeproj/*.pbxuser
  4
+*.xcodeproj/*.mode1v3
  5
+*.xcodeproj/*.mode2v3
  6
+*.xcodeproj/*.perspectivev3
  7
+
  8
+# old skool
  9
+.svn
  10
+
  11
+# osx noise
  12
+.DS_Store
  13
+profile
  14
+
  15
+# vim noise
  16
+*~
  17
+*.swp
18  Changelog.txt
... ...
@@ -0,0 +1,18 @@
  1
+Version 0.31 @ 8.10.09
  2
+- Fix for touch through during the fade-out animation.
  3
+
  4
+Version 0.3 @ 30.9.09
  5
+- Added show: and hide: methods.
  6
+- Now using UIViews layoutSubviews to automate layout calls.
  7
+- Added some floors to round pixel positions and thereby prevent unsharp views.
  8
+- Some additional documentation and code cleanup. 
  9
+
  10
+Version 0.2 @ 21.7.09
  11
+- Added determinate progress mode and switching capabilities between determinate and indeterminate modes. 
  12
+- Various bugfixes. 
  13
+
  14
+Version 0.11 @ 2.6.09.
  15
+- Updated labelText and detailsLabelText properties to support text modifications while the HUD is being shown. 
  16
+
  17
+Version 0.1 @ 2.4.09
  18
+- Initial release.
22  Demo/Classes/HudDemoAppDelegate.h
... ...
@@ -0,0 +1,22 @@
  1
+//
  2
+//  HudDemoAppDelegate.h
  3
+//  HudDemo
  4
+//
  5
+//  Created by Matej Bukovinski on 2.4.09.
  6
+//  Copyright bukovinski.com 2009. All rights reserved.
  7
+//
  8
+
  9
+#import <UIKit/UIKit.h>
  10
+
  11
+@class HudDemoViewController;
  12
+
  13
+@interface HudDemoAppDelegate : NSObject <UIApplicationDelegate> {
  14
+    UIWindow *window;
  15
+    HudDemoViewController *viewController;
  16
+}
  17
+
  18
+@property (nonatomic, retain) IBOutlet UIWindow *window;
  19
+@property (nonatomic, retain) IBOutlet HudDemoViewController *viewController;
  20
+
  21
+@end
  22
+
33  Demo/Classes/HudDemoAppDelegate.m
... ...
@@ -0,0 +1,33 @@
  1
+//
  2
+//  HudDemoAppDelegate.m
  3
+//  HudDemo
  4
+//
  5
+//  Created by Matej Bukovinski on 2.4.09.
  6
+//  Copyright bukovinski.com 2009. All rights reserved.
  7
+//
  8
+
  9
+#import "HudDemoAppDelegate.h"
  10
+#import "HudDemoViewController.h"
  11
+
  12
+@implementation HudDemoAppDelegate
  13
+
  14
+@synthesize window;
  15
+@synthesize viewController;
  16
+
  17
+
  18
+- (void)applicationDidFinishLaunching:(UIApplication *)application {    
  19
+    
  20
+    // Override point for customization after app launch    
  21
+    [window addSubview:viewController.view];
  22
+    [window makeKeyAndVisible];
  23
+}
  24
+
  25
+
  26
+- (void)dealloc {
  27
+    [viewController release];
  28
+    [window release];
  29
+    [super dealloc];
  30
+}
  31
+
  32
+
  33
+@end
27  Demo/Classes/HudDemoViewController.h
... ...
@@ -0,0 +1,27 @@
  1
+//
  2
+//  HudDemoViewController.h
  3
+//  HudDemo
  4
+//
  5
+//  Created by Matej Bukovinski on 30.9.09.
  6
+//  Copyright bukovinski.com 2009. All rights reserved.
  7
+//
  8
+
  9
+#import <UIKit/UIKit.h>
  10
+#import "MBProgressHUD.h"
  11
+
  12
+@interface HudDemoViewController : UIViewController <MBProgressHUDDelegate> {
  13
+	MBProgressHUD *HUD;
  14
+}
  15
+
  16
+- (IBAction) showSimple:(id)sender;
  17
+- (IBAction) showWithLabel:(id)sender;
  18
+- (IBAction) showWithDetailsLabel:(id)sender;
  19
+- (IBAction) showWithLabelDeterminate:(id)sender;
  20
+- (IBAction) showWithLabelMixed:(id)sender;
  21
+
  22
+- (void) myTask;
  23
+- (void) myProgressTask;
  24
+- (void) myMixedTask;
  25
+
  26
+@end
  27
+
169  Demo/Classes/HudDemoViewController.m
... ...
@@ -0,0 +1,169 @@
  1
+//
  2
+//  HudDemoViewController.m
  3
+//  HudDemo
  4
+//
  5
+//  Created by Matej Bukovinski on 30.9.09.
  6
+//  Copyright bukovinski.com 2009. All rights reserved.
  7
+//
  8
+
  9
+#import "HudDemoViewController.h"
  10
+
  11
+@implementation HudDemoViewController
  12
+
  13
+- (IBAction) showSimple:(id)sender {
  14
+	
  15
+	// Should be initialized with the windows frame so the HUD disables all user input by covering the entire screen
  16
+	UIWindow *window = [UIApplication sharedApplication].keyWindow;
  17
+	HUD = [[MBProgressHUD alloc] initWithWindow:window];
  18
+	
  19
+	// Add HUD to screen
  20
+	[window addSubview:HUD];
  21
+	
  22
+	// Regisete for HUD callbacks so we can remove it from the window at the right time
  23
+	HUD.delegate = self;
  24
+	
  25
+	// Show the HUD while the provided method executes in a new thread
  26
+	[HUD showWhileExecuting:@selector(myTask) onTarget:self withObject:nil animated:YES];
  27
+	
  28
+}
  29
+
  30
+- (IBAction) showWithLabel:(id)sender {
  31
+	
  32
+	// Should be initialized with the windows frame so the HUD disables all user input by covering the entire screen
  33
+	UIWindow *window = [UIApplication sharedApplication].keyWindow;
  34
+	HUD = [[MBProgressHUD alloc] initWithWindow:window];
  35
+	
  36
+	// Add HUD to screen
  37
+	[window addSubview:HUD];
  38
+	
  39
+	// Regisete for HUD callbacks so we can remove it from the window at the right time
  40
+	HUD.delegate = self;
  41
+	
  42
+	HUD.labelText = @"Loading";
  43
+	
  44
+	// Show the HUD while the provided method executes in a new thread
  45
+	[HUD showWhileExecuting:@selector(myTask) onTarget:self withObject:nil animated:YES];
  46
+}
  47
+
  48
+- (IBAction) showWithDetailsLabel:(id)sender {
  49
+	
  50
+	// Should be initialized with the windows frame so the HUD disables all user input by covering the entire screen
  51
+	UIWindow *window = [UIApplication sharedApplication].keyWindow;
  52
+	HUD = [[MBProgressHUD alloc] initWithWindow:window];
  53
+	
  54
+	// Add HUD to screen
  55
+	[window addSubview:HUD];
  56
+	
  57
+	// Regisete for HUD callbacks so we can remove it from the window at the right time
  58
+	HUD.delegate = self;
  59
+	
  60
+	HUD.labelText = @"Loading";
  61
+	HUD.detailsLabelText = @"updating data";
  62
+	
  63
+	// Show the HUD while the provided method executes in a new thread
  64
+	[HUD showWhileExecuting:@selector(myTask) onTarget:self withObject:nil animated:YES];
  65
+	
  66
+}
  67
+
  68
+- (IBAction) showWithLabelDeterminate:(id)sender {
  69
+	
  70
+	// Should be initialized with the windows frame so the HUD disables all user input by covering the entire screen
  71
+	UIWindow *window = [UIApplication sharedApplication].keyWindow;
  72
+	HUD = [[MBProgressHUD alloc] initWithWindow:window];
  73
+	
  74
+	// Set determinate mode
  75
+	HUD.mode = MBProgressHUDModeDeterminate;
  76
+	
  77
+	// Add HUD to screen
  78
+	[window addSubview:HUD];
  79
+	
  80
+	// Regisete for HUD callbacks so we can remove it from the window at the right time
  81
+	HUD.delegate = self;
  82
+	
  83
+	HUD.labelText = @"Loading";
  84
+	
  85
+	// Show the HUD while the provided method executes in a new thread
  86
+	[HUD showWhileExecuting:@selector(myProgressTask) onTarget:self withObject:nil animated:YES];
  87
+	
  88
+}
  89
+
  90
+- (IBAction) showWithLabelMixed:(id)sender {
  91
+	
  92
+	// Should be initialized with the windows frame so the HUD disables all user input by covering the entire screen
  93
+	UIWindow *window = [UIApplication sharedApplication].keyWindow;
  94
+	HUD = [[MBProgressHUD alloc] initWithWindow:[UIApplication sharedApplication].keyWindow];
  95
+	
  96
+	// Add HUD to screen
  97
+	[window addSubview:HUD];
  98
+	
  99
+	// Regisete for HUD callbacks so we can remove it from the window at the right time
  100
+	HUD.delegate = self;
  101
+	
  102
+	HUD.labelText = @"Connecting";
  103
+	
  104
+	// Show the HUD while the provided method executes in a new thread
  105
+	[HUD showWhileExecuting:@selector(myMixedTask) onTarget:self withObject:nil animated:YES];
  106
+	
  107
+}
  108
+
  109
+- (void) myTask {
  110
+	// Do something usefull in here instead of sleeping ...
  111
+	sleep(1);
  112
+	// Labels can be changed during the execution
  113
+	//HUD.detailsLabelText = @"Something";
  114
+	//sleep(3);
  115
+}
  116
+
  117
+- (void) myProgressTask {
  118
+	// This just increases the progress indicator in a loop
  119
+	float progress = 0.0f;
  120
+	while (progress < 1.0f) {
  121
+		progress += 0.01f;
  122
+		HUD.progress = progress;
  123
+		usleep(50000);
  124
+	}
  125
+}
  126
+
  127
+- (void) myMixedTask {
  128
+	// Indeterminate mode
  129
+	sleep(2);
  130
+	// Switch to determinate mode
  131
+	HUD.mode = MBProgressHUDModeDeterminate;
  132
+	HUD.labelText = @"Downloading";
  133
+	float progress = 0.0f;
  134
+	while (progress < 1.0f) {
  135
+		progress += 0.01f;
  136
+		HUD.progress = progress;
  137
+		usleep(50000);
  138
+	}
  139
+	// Back to indeterminate mode
  140
+	HUD.mode = MBProgressHUDModeIndeterminate;
  141
+	HUD.labelText = @"Cleaning up";
  142
+	sleep(2);
  143
+}
  144
+
  145
+- (void)hudWasHidden {
  146
+	// Remove HUD from screen when the HUD was hidded
  147
+	[HUD removeFromSuperview];
  148
+	[HUD release];
  149
+}
  150
+
  151
+- (void)didReceiveMemoryWarning {
  152
+    [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
  153
+    // Release anything that's not essential, such as cached data
  154
+}
  155
+
  156
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
  157
+	// No autoroation support for the HUD since we aren't using a ViewController but rather adding
  158
+	// the HUD view as a direct subview of the window. 
  159
+	// You need to explicitly transform the HUD if you need a rotated version (i.g.,
  160
+	// self.transform = CGAffineTransformMakeRotation(PI / 2); )
  161
+	return NO;	
  162
+}
  163
+
  164
+
  165
+- (void)dealloc {
  166
+    [super dealloc];
  167
+}
  168
+
  169
+@end
1,557  Demo/Doxyfile
... ...
@@ -0,0 +1,1557 @@
  1
+# Doxyfile 1.6.1
  2
+
  3
+# This file describes the settings to be used by the documentation system
  4
+# doxygen (www.doxygen.org) for a project
  5
+#
  6
+# All text after a hash (#) is considered a comment and will be ignored
  7
+# The format is:
  8
+#       TAG = value [value, ...]
  9
+# For lists items can also be appended using:
  10
+#       TAG += value [value, ...]
  11
+# Values that contain spaces should be placed between quotes (" ")
  12
+
  13
+#---------------------------------------------------------------------------
  14
+# Project related configuration options
  15
+#---------------------------------------------------------------------------
  16
+
  17
+# This tag specifies the encoding used for all characters in the config file 
  18
+# that follow. The default is UTF-8 which is also the encoding used for all 
  19
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the 
  20
+# iconv built into libc) for the transcoding. See 
  21
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
  22
+
  23
+DOXYFILE_ENCODING      = UTF-8
  24
+
  25
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
  26
+# by quotes) that should identify the project.
  27
+
  28
+PROJECT_NAME           = MBProgressHUD
  29
+
  30
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
  31
+# This could be handy for archiving the generated documentation or 
  32
+# if some version control system is used.
  33
+
  34
+PROJECT_NUMBER         = 0.3
  35
+
  36
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
  37
+# base path where the generated documentation will be put. 
  38
+# If a relative path is entered, it will be relative to the location 
  39
+# where doxygen was started. If left blank the current directory will be used.
  40
+
  41
+OUTPUT_DIRECTORY       = ../doc
  42
+
  43
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
  44
+# 4096 sub-directories (in 2 levels) under the output directory of each output 
  45
+# format and will distribute the generated files over these directories. 
  46
+# Enabling this option can be useful when feeding doxygen a huge amount of 
  47
+# source files, where putting all generated files in the same directory would 
  48
+# otherwise cause performance problems for the file system.
  49
+
  50
+CREATE_SUBDIRS         = NO
  51
+
  52
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
  53
+# documentation generated by doxygen is written. Doxygen will use this 
  54
+# information to generate all constant output in the proper language. 
  55
+# The default language is English, other supported languages are: 
  56
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 
  57
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, 
  58
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English 
  59
+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, 
  60
+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, 
  61
+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
  62
+
  63
+OUTPUT_LANGUAGE        = English
  64
+
  65
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
  66
+# include brief member descriptions after the members that are listed in 
  67
+# the file and class documentation (similar to JavaDoc). 
  68
+# Set to NO to disable this.
  69
+
  70
+BRIEF_MEMBER_DESC      = YES
  71
+
  72
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
  73
+# the brief description of a member or function before the detailed description. 
  74
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
  75
+# brief descriptions will be completely suppressed.
  76
+
  77
+REPEAT_BRIEF           = YES
  78
+
  79
+# This tag implements a quasi-intelligent brief description abbreviator 
  80
+# that is used to form the text in various listings. Each string 
  81
+# in this list, if found as the leading text of the brief description, will be 
  82
+# stripped from the text and the result after processing the whole list, is 
  83
+# used as the annotated text. Otherwise, the brief description is used as-is. 
  84
+# If left blank, the following values are used ("$name" is automatically 
  85
+# replaced with the name of the entity): "The $name class" "The $name widget" 
  86
+# "The $name file" "is" "provides" "specifies" "contains" 
  87
+# "represents" "a" "an" "the"
  88
+
  89
+ABBREVIATE_BRIEF       = "The $name class" \
  90
+                         "The $name widget" \
  91
+                         "The $name file" \
  92
+                         is \
  93
+                         provides \
  94
+                         specifies \
  95
+                         contains \
  96
+                         represents \
  97
+                         a \
  98
+                         an \
  99
+                         the
  100
+
  101
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
  102
+# Doxygen will generate a detailed section even if there is only a brief 
  103
+# description.
  104
+
  105
+ALWAYS_DETAILED_SEC    = NO
  106
+
  107
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
  108
+# inherited members of a class in the documentation of that class as if those 
  109
+# members were ordinary class members. Constructors, destructors and assignment 
  110
+# operators of the base classes will not be shown.
  111
+
  112
+INLINE_INHERITED_MEMB  = NO
  113
+
  114
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
  115
+# path before files name in the file list and in the header files. If set 
  116
+# to NO the shortest path that makes the file name unique will be used.
  117
+
  118
+FULL_PATH_NAMES        = YES
  119
+
  120
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
  121
+# can be used to strip a user-defined part of the path. Stripping is 
  122
+# only done if one of the specified strings matches the left-hand part of 
  123
+# the path. The tag can be used to show relative paths in the file list. 
  124
+# If left blank the directory from which doxygen is run is used as the 
  125
+# path to strip.
  126
+
  127
+STRIP_FROM_PATH        = 
  128
+
  129
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
  130
+# the path mentioned in the documentation of a class, which tells 
  131
+# the reader which header file to include in order to use a class. 
  132
+# If left blank only the name of the header file containing the class 
  133
+# definition is used. Otherwise one should specify the include paths that 
  134
+# are normally passed to the compiler using the -I flag.
  135
+
  136
+STRIP_FROM_INC_PATH    = 
  137
+
  138
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
  139
+# (but less readable) file names. This can be useful is your file systems 
  140
+# doesn't support long names like on DOS, Mac, or CD-ROM.
  141
+
  142
+SHORT_NAMES            = NO
  143
+
  144
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
  145
+# will interpret the first line (until the first dot) of a JavaDoc-style 
  146
+# comment as the brief description. If set to NO, the JavaDoc 
  147
+# comments will behave just like regular Qt-style comments 
  148
+# (thus requiring an explicit @brief command for a brief description.)
  149
+
  150
+JAVADOC_AUTOBRIEF      = YES
  151
+
  152
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will 
  153
+# interpret the first line (until the first dot) of a Qt-style 
  154
+# comment as the brief description. If set to NO, the comments 
  155
+# will behave just like regular Qt-style comments (thus requiring 
  156
+# an explicit \brief command for a brief description.)
  157
+
  158
+QT_AUTOBRIEF           = NO
  159
+
  160
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
  161
+# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
  162
+# comments) as a brief description. This used to be the default behaviour. 
  163
+# The new default is to treat a multi-line C++ comment block as a detailed 
  164
+# description. Set this tag to YES if you prefer the old behaviour instead.
  165
+
  166
+MULTILINE_CPP_IS_BRIEF = NO
  167
+
  168
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
  169
+# member inherits the documentation from any documented member that it 
  170
+# re-implements.
  171
+
  172
+INHERIT_DOCS           = YES
  173
+
  174
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
  175
+# a new page for each member. If set to NO, the documentation of a member will 
  176
+# be part of the file/class/namespace that contains it.
  177
+
  178
+SEPARATE_MEMBER_PAGES  = NO
  179
+
  180
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
  181
+# Doxygen uses this value to replace tabs by spaces in code fragments.
  182
+
  183
+TAB_SIZE               = 8
  184
+
  185
+# This tag can be used to specify a number of aliases that acts 
  186
+# as commands in the documentation. An alias has the form "name=value". 
  187
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
  188
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
  189
+# will result in a user-defined paragraph with heading "Side Effects:". 
  190
+# You can put \n's in the value part of an alias to insert newlines.
  191
+
  192
+ALIASES                = 
  193
+
  194
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
  195
+# sources only. Doxygen will then generate output that is more tailored for C. 
  196
+# For instance, some of the names that are used will be different. The list 
  197
+# of all members will be omitted, etc.
  198
+
  199
+OPTIMIZE_OUTPUT_FOR_C  = NO
  200
+
  201
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
  202
+# sources only. Doxygen will then generate output that is more tailored for 
  203
+# Java. For instance, namespaces will be presented as packages, qualified 
  204
+# scopes will look different, etc.
  205
+
  206
+OPTIMIZE_OUTPUT_JAVA   = NO
  207
+
  208
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran 
  209
+# sources only. Doxygen will then generate output that is more tailored for 
  210
+# Fortran.
  211
+
  212
+OPTIMIZE_FOR_FORTRAN   = NO
  213
+
  214
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL 
  215
+# sources. Doxygen will then generate output that is tailored for 
  216
+# VHDL.
  217
+
  218
+OPTIMIZE_OUTPUT_VHDL   = NO
  219
+
  220
+# Doxygen selects the parser to use depending on the extension of the files it parses. 
  221
+# With this tag you can assign which parser to use for a given extension. 
  222
+# Doxygen has a built-in mapping, but you can override or extend it using this tag. 
  223
+# The format is ext=language, where ext is a file extension, and language is one of 
  224
+# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, 
  225
+# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat 
  226
+# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), 
  227
+# use: inc=Fortran f=C. Note that for custom extensions you also need to set
  228
+# FILE_PATTERNS otherwise the files are not read by doxygen.
  229
+
  230
+EXTENSION_MAPPING      = 
  231
+
  232
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want 
  233
+# to include (a tag file for) the STL sources as input, then you should 
  234
+# set this tag to YES in order to let doxygen match functions declarations and 
  235
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
  236
+# func(std::string) {}). This also make the inheritance and collaboration 
  237
+# diagrams that involve STL classes more complete and accurate.
  238
+
  239
+BUILTIN_STL_SUPPORT    = NO
  240
+
  241
+# If you use Microsoft's C++/CLI language, you should set this option to YES to 
  242
+# enable parsing support.
  243
+
  244
+CPP_CLI_SUPPORT        = NO
  245
+
  246
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. 
  247
+# Doxygen will parse them like normal C++ but will assume all classes use public 
  248
+# instead of private inheritance when no explicit protection keyword is present.
  249
+
  250
+SIP_SUPPORT            = NO
  251
+
  252
+# For Microsoft's IDL there are propget and propput attributes to indicate getter 
  253
+# and setter methods for a property. Setting this option to YES (the default) 
  254
+# will make doxygen to replace the get and set methods by a property in the 
  255
+# documentation. This will only work if the methods are indeed getting or 
  256
+# setting a simple type. If this is not the case, or you want to show the 
  257
+# methods anyway, you should set this option to NO.
  258
+
  259
+IDL_PROPERTY_SUPPORT   = YES
  260
+
  261
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
  262
+# tag is set to YES, then doxygen will reuse the documentation of the first 
  263
+# member in the group (if any) for the other members of the group. By default 
  264
+# all members of a group must be documented explicitly.
  265
+
  266
+DISTRIBUTE_GROUP_DOC   = NO
  267
+
  268
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
  269
+# the same type (for instance a group of public functions) to be put as a 
  270
+# subgroup of that type (e.g. under the Public Functions section). Set it to 
  271
+# NO to prevent subgrouping. Alternatively, this can be done per class using 
  272
+# the \nosubgrouping command.
  273
+
  274
+SUBGROUPING            = YES
  275
+
  276
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum 
  277
+# is documented as struct, union, or enum with the name of the typedef. So 
  278
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct 
  279
+# with name TypeT. When disabled the typedef will appear as a member of a file, 
  280
+# namespace, or class. And the struct will be named TypeS. This can typically 
  281
+# be useful for C code in case the coding convention dictates that all compound 
  282
+# types are typedef'ed and only the typedef is referenced, never the tag name.
  283
+
  284
+TYPEDEF_HIDES_STRUCT   = NO
  285
+
  286
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to 
  287
+# determine which symbols to keep in memory and which to flush to disk. 
  288
+# When the cache is full, less often used symbols will be written to disk. 
  289
+# For small to medium size projects (<1000 input files) the default value is 
  290
+# probably good enough. For larger projects a too small cache size can cause 
  291
+# doxygen to be busy swapping symbols to and from disk most of the time 
  292
+# causing a significant performance penality. 
  293
+# If the system has enough physical memory increasing the cache will improve the 
  294
+# performance by keeping more symbols in memory. Note that the value works on 
  295
+# a logarithmic scale so increasing the size by one will rougly double the 
  296
+# memory usage. The cache size is given by this formula: 
  297
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, 
  298
+# corresponding to a cache size of 2^16 = 65536 symbols
  299
+
  300
+SYMBOL_CACHE_SIZE      = 0
  301
+
  302
+#---------------------------------------------------------------------------
  303
+# Build related configuration options
  304
+#---------------------------------------------------------------------------
  305
+
  306
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
  307
+# documentation are documented, even if no documentation was available. 
  308
+# Private class members and static file members will be hidden unless 
  309
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
  310
+
  311
+EXTRACT_ALL            = NO
  312
+
  313
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
  314
+# will be included in the documentation.
  315
+
  316
+EXTRACT_PRIVATE        = NO
  317
+
  318
+# If the EXTRACT_STATIC tag is set to YES all static members of a file 
  319
+# will be included in the documentation.
  320
+
  321
+EXTRACT_STATIC         = NO
  322
+
  323
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
  324
+# defined locally in source files will be included in the documentation. 
  325
+# If set to NO only classes defined in header files are included.
  326
+
  327
+EXTRACT_LOCAL_CLASSES  = YES
  328
+
  329
+# This flag is only useful for Objective-C code. When set to YES local 
  330
+# methods, which are defined in the implementation section but not in 
  331
+# the interface are included in the documentation. 
  332
+# If set to NO (the default) only methods in the interface are included.
  333
+
  334
+EXTRACT_LOCAL_METHODS  = NO
  335
+
  336
+# If this flag is set to YES, the members of anonymous namespaces will be 
  337
+# extracted and appear in the documentation as a namespace called 
  338
+# 'anonymous_namespace{file}', where file will be replaced with the base 
  339
+# name of the file that contains the anonymous namespace. By default 
  340
+# anonymous namespace are hidden.
  341
+
  342
+EXTRACT_ANON_NSPACES   = NO
  343
+
  344
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
  345
+# undocumented members of documented classes, files or namespaces. 
  346
+# If set to NO (the default) these members will be included in the 
  347
+# various overviews, but no documentation section is generated. 
  348
+# This option has no effect if EXTRACT_ALL is enabled.
  349
+
  350
+HIDE_UNDOC_MEMBERS     = NO
  351
+
  352
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
  353
+# undocumented classes that are normally visible in the class hierarchy. 
  354
+# If set to NO (the default) these classes will be included in the various 
  355
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
  356
+
  357
+HIDE_UNDOC_CLASSES     = NO
  358
+
  359
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
  360
+# friend (class|struct|union) declarations. 
  361
+# If set to NO (the default) these declarations will be included in the 
  362
+# documentation.
  363
+
  364
+HIDE_FRIEND_COMPOUNDS  = NO
  365
+
  366
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
  367
+# documentation blocks found inside the body of a function. 
  368
+# If set to NO (the default) these blocks will be appended to the 
  369
+# function's detailed documentation block.
  370
+
  371
+HIDE_IN_BODY_DOCS      = NO
  372
+
  373
+# The INTERNAL_DOCS tag determines if documentation 
  374
+# that is typed after a \internal command is included. If the tag is set 
  375
+# to NO (the default) then the documentation will be excluded. 
  376
+# Set it to YES to include the internal documentation.
  377
+
  378
+INTERNAL_DOCS          = NO
  379
+
  380
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
  381
+# file names in lower-case letters. If set to YES upper-case letters are also 
  382
+# allowed. This is useful if you have classes or files whose names only differ 
  383
+# in case and if your file system supports case sensitive file names. Windows 
  384
+# and Mac users are advised to set this option to NO.
  385
+
  386
+CASE_SENSE_NAMES       = NO
  387
+
  388
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
  389
+# will show members with their full class and namespace scopes in the 
  390
+# documentation. If set to YES the scope will be hidden.
  391
+
  392
+HIDE_SCOPE_NAMES       = NO
  393
+
  394
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
  395
+# will put a list of the files that are included by a file in the documentation 
  396
+# of that file.
  397
+
  398
+SHOW_INCLUDE_FILES     = YES
  399
+
  400
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
  401
+# is inserted in the documentation for inline members.
  402
+
  403
+INLINE_INFO            = YES
  404
+
  405
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
  406
+# will sort the (detailed) documentation of file and class members 
  407
+# alphabetically by member name. If set to NO the members will appear in 
  408
+# declaration order.
  409
+
  410
+SORT_MEMBER_DOCS       = YES
  411
+
  412
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
  413
+# brief documentation of file, namespace and class members alphabetically 
  414
+# by member name. If set to NO (the default) the members will appear in 
  415
+# declaration order.
  416
+
  417
+SORT_BRIEF_DOCS        = NO
  418
+
  419
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
  420
+# will sort the (brief and detailed) documentation of class members so that
  421
+# constructors and destructors are listed first. If set to NO (the default)
  422
+# the constructors will appear in the respective orders defined by
  423
+# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
  424
+# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
  425
+# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
  426
+
  427
+SORT_MEMBERS_CTORS_1ST = NO
  428
+
  429
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the 
  430
+# hierarchy of group names into alphabetical order. If set to NO (the default) 
  431
+# the group names will appear in their defined order.
  432
+
  433
+SORT_GROUP_NAMES       = NO
  434
+
  435
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
  436
+# sorted by fully-qualified names, including namespaces. If set to 
  437
+# NO (the default), the class list will be sorted only by class name, 
  438
+# not including the namespace part. 
  439
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. 
  440
+# Note: This option applies only to the class list, not to the 
  441
+# alphabetical list.
  442
+
  443
+SORT_BY_SCOPE_NAME     = NO
  444
+
  445
+# The GENERATE_TODOLIST tag can be used to enable (YES) or 
  446
+# disable (NO) the todo list. This list is created by putting \todo 
  447
+# commands in the documentation.
  448
+
  449
+GENERATE_TODOLIST      = YES
  450
+
  451
+# The GENERATE_TESTLIST tag can be used to enable (YES) or 
  452
+# disable (NO) the test list. This list is created by putting \test 
  453
+# commands in the documentation.
  454
+
  455
+GENERATE_TESTLIST      = YES
  456
+
  457
+# The GENERATE_BUGLIST tag can be used to enable (YES) or 
  458
+# disable (NO) the bug list. This list is created by putting \bug 
  459
+# commands in the documentation.
  460
+
  461
+GENERATE_BUGLIST       = YES
  462
+
  463
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
  464
+# disable (NO) the deprecated list. This list is created by putting 
  465
+# \deprecated commands in the documentation.
  466
+
  467
+GENERATE_DEPRECATEDLIST= YES
  468
+
  469
+# The ENABLED_SECTIONS tag can be used to enable conditional 
  470
+# documentation sections, marked by \if sectionname ... \endif.
  471
+
  472
+ENABLED_SECTIONS       = 
  473
+
  474
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
  475
+# the initial value of a variable or define consists of for it to appear in 
  476
+# the documentation. If the initializer consists of more lines than specified 
  477
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
  478
+# The appearance of the initializer of individual variables and defines in the 
  479
+# documentation can be controlled using \showinitializer or \hideinitializer 
  480
+# command in the documentation regardless of this setting.
  481
+
  482
+MAX_INITIALIZER_LINES  = 30
  483
+
  484
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
  485
+# at the bottom of the documentation of classes and structs. If set to YES the 
  486
+# list will mention the files that were used to generate the documentation.
  487
+
  488
+SHOW_USED_FILES        = YES
  489
+
  490
+# If the sources in your project are distributed over multiple directories 
  491
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
  492
+# in the documentation. The default is NO.
  493
+
  494
+SHOW_DIRECTORIES       = NO
  495
+
  496
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. 
  497
+# This will remove the Files entry from the Quick Index and from the 
  498
+# Folder Tree View (if specified). The default is YES.
  499
+
  500
+SHOW_FILES             = YES
  501
+
  502
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the 
  503
+# Namespaces page.  This will remove the Namespaces entry from the Quick Index 
  504
+# and from the Folder Tree View (if specified). The default is YES.
  505
+
  506
+SHOW_NAMESPACES        = YES
  507
+
  508
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
  509
+# doxygen should invoke to get the current version for each file (typically from 
  510
+# the version control system). Doxygen will invoke the program by executing (via 
  511
+# popen()) the command <command> <input-file>, where <command> is the value of 
  512
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
  513
+# provided by doxygen. Whatever the program writes to standard output 
  514
+# is used as the file version. See the manual for examples.
  515
+
  516
+FILE_VERSION_FILTER    = 
  517
+
  518
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by 
  519
+# doxygen. The layout file controls the global structure of the generated output files 
  520
+# in an output format independent way. The create the layout file that represents 
  521
+# doxygen's defaults, run doxygen with the -l option. You can optionally specify a 
  522
+# file name after the option, if omitted DoxygenLayout.xml will be used as the name 
  523
+# of the layout file.
  524
+
  525
+LAYOUT_FILE            = 
  526
+
  527
+#---------------------------------------------------------------------------
  528
+# configuration options related to warning and progress messages
  529
+#---------------------------------------------------------------------------
  530
+
  531
+# The QUIET tag can be used to turn on/off the messages that are generated 
  532
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
  533
+
  534
+QUIET                  = NO
  535
+
  536
+# The WARNINGS tag can be used to turn on/off the warning messages that are 
  537
+# generated by doxygen. Possible values are YES and NO. If left blank 
  538
+# NO is used.
  539
+
  540
+WARNINGS               = YES
  541
+
  542
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
  543
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
  544
+# automatically be disabled.
  545
+
  546
+WARN_IF_UNDOCUMENTED   = YES
  547
+
  548
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
  549
+# potential errors in the documentation, such as not documenting some 
  550
+# parameters in a documented function, or documenting parameters that 
  551
+# don't exist or using markup commands wrongly.
  552
+
  553
+WARN_IF_DOC_ERROR      = YES
  554
+
  555
+# This WARN_NO_PARAMDOC option can be abled to get warnings for 
  556
+# functions that are documented, but have no documentation for their parameters 
  557
+# or return value. If set to NO (the default) doxygen will only warn about 
  558
+# wrong or incomplete parameter documentation, but not about the absence of 
  559
+# documentation.
  560
+
  561
+WARN_NO_PARAMDOC       = NO
  562
+
  563
+# The WARN_FORMAT tag determines the format of the warning messages that 
  564
+# doxygen can produce. The string should contain the $file, $line, and $text 
  565
+# tags, which will be replaced by the file and line number from which the 
  566
+# warning originated and the warning text. Optionally the format may contain 
  567
+# $version, which will be replaced by the version of the file (if it could 
  568
+# be obtained via FILE_VERSION_FILTER)
  569
+
  570
+WARN_FORMAT            = "$file:$line: $text"
  571
+
  572
+# The WARN_LOGFILE tag can be used to specify a file to which warning 
  573
+# and error messages should be written. If left blank the output is written 
  574
+# to stderr.
  575
+
  576
+WARN_LOGFILE           = 
  577
+
  578
+#---------------------------------------------------------------------------
  579
+# configuration options related to the input files
  580
+#---------------------------------------------------------------------------
  581
+
  582
+# The INPUT tag can be used to specify the files and/or directories that contain 
  583
+# documented source files. You may enter file names like "myfile.cpp" or 
  584
+# directories like "/usr/src/myproject". Separate the files or directories 
  585
+# with spaces.
  586
+
  587
+INPUT                  = ../MBProgressHUD.h ../MBProgressHUD.m Classes
  588
+
  589
+# This tag can be used to specify the character encoding of the source files 
  590
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 
  591
+# also the default input encoding. Doxygen uses libiconv (or the iconv built 
  592
+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for 
  593
+# the list of possible encodings.
  594
+
  595
+INPUT_ENCODING         = UTF-8
  596
+
  597
+# If the value of the INPUT tag contains directories, you can use the 
  598
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
  599
+# and *.h) to filter out the source-files in the directories. If left 
  600
+# blank the following patterns are tested: 
  601
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
  602
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
  603
+
  604
+FILE_PATTERNS          = *.c \
  605
+                         *.cc \
  606
+                         *.cxx \
  607
+                         *.cpp \
  608
+                         *.c++ \
  609
+                         *.d \
  610
+                         *.java \
  611
+                         *.ii \
  612
+                         *.ixx \
  613
+                         *.ipp \
  614
+                         *.i++ \
  615
+                         *.inl \
  616
+                         *.h \
  617
+                         *.hh \
  618
+                         *.hxx \
  619
+                         *.hpp \
  620
+                         *.h++ \
  621
+                         *.idl \
  622
+                         *.odl \
  623
+                         *.cs \
  624
+                         *.php \
  625
+                         *.php3 \
  626
+                         *.inc \
  627
+                         *.m \
  628
+                         *.mm \
  629
+                         *.dox \
  630
+                         *.py \
  631
+                         *.f90 \
  632
+                         *.f \
  633
+                         *.vhd \
  634
+                         *.vhdl
  635
+
  636
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
  637
+# should be searched for input files as well. Possible values are YES and NO. 
  638
+# If left blank NO is used.
  639
+
  640
+RECURSIVE              = NO
  641
+
  642
+# The EXCLUDE tag can be used to specify files and/or directories that should 
  643
+# excluded from the INPUT source files. This way you can easily exclude a 
  644
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
  645
+
  646
+EXCLUDE                = 
  647
+
  648
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
  649
+# directories that are symbolic links (a Unix filesystem feature) are excluded 
  650
+# from the input.
  651
+
  652
+EXCLUDE_SYMLINKS       = NO
  653
+
  654
+# If the value of the INPUT tag contains directories, you can use the 
  655
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
  656
+# certain files from those directories. Note that the wildcards are matched 
  657
+# against the file with absolute path, so to exclude all test directories 
  658
+# for example use the pattern */test/*
  659
+
  660
+EXCLUDE_PATTERNS       = 
  661
+
  662
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 
  663
+# (namespaces, classes, functions, etc.) that should be excluded from the 
  664
+# output. The symbol name can be a fully qualified name, a word, or if the 
  665
+# wildcard * is used, a substring. Examples: ANamespace, AClass, 
  666
+# AClass::ANamespace, ANamespace::*Test
  667
+
  668
+EXCLUDE_SYMBOLS        = 
  669
+
  670
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
  671
+# directories that contain example code fragments that are included (see 
  672
+# the \include command).
  673
+
  674
+EXAMPLE_PATH           = 
  675
+
  676
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
  677
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
  678
+# and *.h) to filter out the source-files in the directories. If left 
  679
+# blank all files are included.
  680
+
  681
+EXAMPLE_PATTERNS       = *
  682
+
  683
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
  684
+# searched for input files to be used with the \include or \dontinclude 
  685
+# commands irrespective of the value of the RECURSIVE tag. 
  686
+# Possible values are YES and NO. If left blank NO is used.
  687
+
  688
+EXAMPLE_RECURSIVE      = NO
  689
+
  690
+# The IMAGE_PATH tag can be used to specify one or more files or 
  691
+# directories that contain image that are included in the documentation (see 
  692
+# the \image command).
  693
+
  694
+IMAGE_PATH             = 
  695
+
  696
+# The INPUT_FILTER tag can be used to specify a program that doxygen should 
  697
+# invoke to filter for each input file. Doxygen will invoke the filter program 
  698
+# by executing (via popen()) the command <filter> <input-file>, where <filter> 
  699
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
  700
+# input file. Doxygen will then use the output that the filter program writes 
  701
+# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
  702
+# ignored.
  703
+
  704
+INPUT_FILTER           = 
  705
+
  706
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
  707
+# basis.  Doxygen will compare the file name with each pattern and apply the 
  708
+# filter if there is a match.  The filters are a list of the form: 
  709
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
  710
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
  711
+# is applied to all files.
  712
+
  713
+FILTER_PATTERNS        = 
  714
+
  715
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
  716
+# INPUT_FILTER) will be used to filter the input files when producing source 
  717
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
  718
+
  719
+FILTER_SOURCE_FILES    = NO
  720
+
  721
+#---------------------------------------------------------------------------
  722
+# configuration options related to source browsing
  723
+#---------------------------------------------------------------------------
  724
+
  725
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
  726
+# be generated. Documented entities will be cross-referenced with these sources. 
  727
+# Note: To get rid of all source code in the generated output, make sure also 
  728
+# VERBATIM_HEADERS is set to NO.
  729
+
  730
+SOURCE_BROWSER         = NO
  731
+
  732
+# Setting the INLINE_SOURCES tag to YES will include the body 
  733
+# of functions and classes directly in the documentation.
  734
+
  735
+INLINE_SOURCES         = NO
  736
+
  737
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
  738
+# doxygen to hide any special comment blocks from generated source code 
  739
+# fragments. Normal C and C++ comments will always remain visible.
  740
+
  741
+STRIP_CODE_COMMENTS    = YES
  742
+
  743
+# If the REFERENCED_BY_RELATION tag is set to YES 
  744
+# then for each documented function all documented 
  745
+# functions referencing it will be listed.
  746
+
  747
+REFERENCED_BY_RELATION = NO
  748
+
  749
+# If the REFERENCES_RELATION tag is set to YES 
  750
+# then for each documented function all documented entities 
  751
+# called/used by that function will be listed.
  752
+
  753
+REFERENCES_RELATION    = NO
  754
+
  755
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) 
  756
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from 
  757
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will 
  758
+# link to the source code.  Otherwise they will link to the documentation.
  759
+
  760
+REFERENCES_LINK_SOURCE = YES
  761
+
  762
+# If the USE_HTAGS tag is set to YES then the references to source code 
  763
+# will point to the HTML generated by the htags(1) tool instead of doxygen 
  764
+# built-in source browser. The htags tool is part of GNU's global source 
  765
+# tagging system (see http://www.gnu.org/software/global/global.html). You 
  766
+# will need version 4.8.6 or higher.
  767
+
  768
+USE_HTAGS              = NO
  769
+
  770
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
  771
+# will generate a verbatim copy of the header file for each class for 
  772
+# which an include is specified. Set to NO to disable this.
  773
+
  774
+VERBATIM_HEADERS       = YES
  775
+
  776
+#---------------------------------------------------------------------------
  777
+# configuration options related to the alphabetical class index
  778
+#---------------------------------------------------------------------------
  779
+
  780
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
  781
+# of all compounds will be generated. Enable this if the project 
  782
+# contains a lot of classes, structs, unions or interfaces.
  783
+
  784
+ALPHABETICAL_INDEX     = NO
  785
+
  786
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
  787
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
  788
+# in which this list will be split (can be a number in the range [1..20])
  789
+
  790
+COLS_IN_ALPHA_INDEX    = 5
  791
+
  792
+# In case all classes in a project start with a common prefix, all 
  793
+# classes will be put under the same header in the alphabetical index. 
  794
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
  795
+# should be ignored while generating the index headers.
  796
+
  797
+IGNORE_PREFIX          = 
  798
+
  799
+#---------------------------------------------------------------------------
  800
+# configuration options related to the HTML output
  801
+#---------------------------------------------------------------------------
  802
+
  803
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
  804
+# generate HTML output.
  805
+
  806
+GENERATE_HTML          = YES
  807
+
  808
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
  809
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
  810
+# put in front of it. If left blank `html' will be used as the default path.
  811
+
  812
+HTML_OUTPUT            = html
  813
+
  814
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
  815
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
  816
+# doxygen will generate files with .html extension.
  817
+
  818
+HTML_FILE_EXTENSION    = .html
  819
+
  820
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
  821
+# each generated HTML page. If it is left blank doxygen will generate a 
  822
+# standard header.
  823
+
  824
+HTML_HEADER            = 
  825
+
  826
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
  827
+# each generated HTML page. If it is left blank doxygen will generate a 
  828
+# standard footer.
  829
+
  830
+HTML_FOOTER            = 
  831
+
  832
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
  833
+# style sheet that is used by each HTML page. It can be used to 
  834
+# fine-tune the look of the HTML output. If the tag is left blank doxygen 
  835
+# will generate a default style sheet. Note that doxygen will try to copy 
  836
+# the style sheet file to the HTML output directory, so don't put your own 
  837
+# stylesheet in the HTML output directory as well, or it will be erased!
  838
+
  839
+HTML_STYLESHEET        = 
  840
+
  841
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
  842
+# files or namespaces will be aligned in HTML using tables. If set to 
  843
+# NO a bullet list will be used.
  844
+
  845
+HTML_ALIGN_MEMBERS     = YES
  846
+
  847
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML 
  848
+# documentation will contain sections that can be hidden and shown after the 
  849
+# page has loaded. For this to work a browser that supports 
  850
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox 
  851
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
  852
+
  853
+HTML_DYNAMIC_SECTIONS  = NO
  854
+
  855
+# If the GENERATE_DOCSET tag is set to YES, additional index files 
  856
+# will be generated that can be used as input for Apple's Xcode 3 
  857
+# integrated development environment, introduced with OSX 10.5 (Leopard). 
  858
+# To create a documentation set, doxygen will generate a Makefile in the 
  859
+# HTML output directory. Running make will produce the docset in that 
  860
+# directory and running "make install" will install the docset in 
  861
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find 
  862
+# it at startup. 
  863
+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.
  864
+
  865
+GENERATE_DOCSET        = YES
  866
+
  867
+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the 
  868
+# feed. A documentation feed provides an umbrella under which multiple 
  869
+# documentation sets from a single provider (such as a company or product suite) 
  870
+# can be grouped.
  871
+
  872
+DOCSET_FEEDNAME        = "Doxygen generated docs"
  873
+
  874
+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that 
  875
+# should uniquely identify the documentation set bundle. This should be a 
  876
+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen 
  877
+# will append .docset to the name.
  878
+
  879
+DOCSET_BUNDLE_ID       = org.doxygen.Project
  880
+
  881
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
  882
+# will be generated that can be used as input for tools like the 
  883
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) 
  884
+# of the generated HTML documentation.
  885
+
  886
+GENERATE_HTMLHELP      = NO
  887