doc/doxygen/doxygen.cpp

Go to the documentation of this file.
00001 //! @file doxygen.cpp
00002 //! Text and HTML-code for the startpage of the doxygen-documentation.
00003 
00004 /*
00005     This file contains no code, and is only used when generating documentation.
00006     It serves as a place for the main page text and various developer documentation.
00007 */
00008 
00009 // ===========================================================================
00010 //  Main page
00011 // ===========================================================================
00012 
00013 /**
00014 
00015 @mainpage Developer Documentation
00016 
00017     <table border="0">
00018     <tr>
00019     <td valign="top">
00020         @image html wesnoth-icon.png
00021     </td>
00022     <td>
00023         <h3>Howto</h3>
00024         @li @ref get_involved
00025         @li @ref howto_document
00026 
00027     </td>
00028     </tr>
00029 
00030     <tr>
00031     <td valign="top">
00032         @image html portraits/humans/transparent/mage.png
00033     </td>
00034     <td>
00035         <h3>Reference</h3>
00036         @li <a href="namespaces.html">Namespaces</a>
00037         @li @ref unnamed_namespace
00038         @li <a href="hierarchy.html">Classes</a>
00039         @li <a href="files.html">Source Files</a>
00040         @li <a href="todo.html">Todo</a>
00041         @li <a href="deprecated.html">Deprecated</a>
00042     </td>
00043     </tr>
00044     </table>
00045 
00046 */
00047 
00048 // ===========================================================================
00049 //  namespace about
00050 // ===========================================================================
00051 
00052 /*-
00053 
00054 @namespace about    Display credits about all contributors.
00055 
00056 This module is used from the startup screen.
00057 When show_about() is called, a list of contributors
00058 to the game will be presented to the user.
00059 
00060 */
00061 
00062 // ===========================================================================
00063 //  namespace dialogs
00064 // ===========================================================================
00065 
00066 /**
00067 
00068 @namespace dialogs  Various uncategorised dialogs.
00069 
00070 */
00071 
00072 // ===========================================================================
00073 //  namespace events
00074 // ===========================================================================
00075 
00076 /**
00077 
00078 @namespace events   Handling of system events.
00079 
00080 System events include mouse and key events, and other events which
00081 are not domain specific.
00082 The program maintains a stack of event_context objects,
00083 the top of the stack being the active event_context.
00084 
00085 When an object of a type inheriting from handler is
00086 instantiated, it will be associated with the active event_context
00087 (unless auto_join has been set false, in which case it can manually
00088 be instructed to join a later context). As long as its event_context
00089 remains active, and only then, it will receive all system events.
00090 
00091 @note Multiple handler objects will receive the same events,
00092 including key events.
00093 
00094 */
00095 
00096 // ===========================================================================
00097 //  namespace font
00098 // ===========================================================================
00099 
00100 /**
00101 
00102 @namespace font Graphical text output.
00103 
00104 This module is used to display and measure text.
00105 Text can optionally contain special characters, which may
00106 change specified display properties such as colour
00107 or font size.
00108 If special characters are turned on,
00109 they can be escaped, C-style, using backslashes.
00110 
00111 */
00112 
00113 // ===========================================================================
00114 //  namespace game_config
00115 // ===========================================================================
00116 
00117 /**
00118 
00119 @namespace game_config  Game configuration data as global variables.
00120 
00121 This module can be used to load various high level
00122 game configuration data from a .cfg file.
00123 The loaded data will subsequently be accessible via the
00124 global variables.
00125 
00126 */
00127 
00128 // ===========================================================================
00129 //  namespace game_events
00130 // ===========================================================================
00131 
00132 /**
00133 
00134 @namespace game_events  Domain specific events
00135 
00136 This module defines the game's event mechanism. Events might be units
00137 moving or fighting, or when victory or defeat occurs. A scenario's
00138 configuration file will define actions to take when certain events
00139 occur. This module is responsible for making sure that when the events
00140 occur, the actions take place.
00141 
00142 Game events have nothing to do with mouse movement, keyboard events, etc.
00143 These kinds of system events can be handled using namespace @ref events
00144 
00145 */
00146 
00147 // ===========================================================================
00148 //  namespace gui
00149 // ===========================================================================
00150 
00151 /**
00152 
00153 @namespace gui  General purpose widgets.
00154 
00155 This module primarily contains a number of common, general purpose
00156 widgets for the construction of composite user interfaces.
00157 
00158 */
00159 
00160 // ===========================================================================
00161 //  namespace hotkey
00162 // ===========================================================================
00163 
00164 /**
00165 
00166 @namespace hotkey   Keyboard shortcuts for game actions.
00167 
00168 Hotkey commands can be loaded from configuration objects.
00169 When a keyboard event corresponding to a hotkey occurs,
00170 a command_executor object can execute the hotkeys actions.
00171 For this to work, key_event() must be called whenever a keyboard event happens.
00172 
00173 */
00174 
00175 // ===========================================================================
00176 //  namespace image
00177 // ===========================================================================
00178 
00179 /*- already documented
00180 
00181 @namespace image    Cache of images.
00182 
00183 This module manages the cache of images. With an image name, you can get
00184 the surface corresponding to that image, and don't need to free the image.
00185 Note that surfaces returned from here are invalidated whenever events::pump()
00186 is called, and so shouldn't be kept, but should be regotten from here as
00187 needed.
00188 
00189 images come in a number of varieties:
00190  - unscaled: no modifications have been done on the image.
00191  - scaled: images are scaled to the size of a tile
00192  - greyed: images are scaled and in greyscale
00193  - brightened: images are scaled and brighter than normal.
00194 
00195 */
00196 
00197 // ===========================================================================
00198 //  namespace mp
00199 // ===========================================================================
00200 
00201 /*- already documented
00202 
00203 @namespace mp   Multiplayer meeting place and game creation.
00204 
00205 This module controls the multiplayer lobby.
00206 The lobby is a section on the server which allows players
00207 to chat, create games, and join games.
00208 
00209 */
00210 
00211 // ===========================================================================
00212 //  namespace network
00213 // ===========================================================================
00214 
00215 /**
00216 
00217 @namespace network  High level network layer for config object transport.
00218 
00219 This module provides high level network access using an API similar
00220 to sockets, but primarily for the transport of @ref config objects.
00221 This is how the games protocols work - data is sent via config objects.
00222 
00223 A client would create a @ref manager object to initialize
00224 the network layer, connect(), and then send_data().
00225 A server would create a @ref server_manager object,
00226 then accept_connection(), and finally receive_data().
00227 
00228 */
00229 
00230 // ===========================================================================
00231 //  namespace preferences
00232 // ===========================================================================
00233 
00234 /**
00235 
00236 @namespace preferences  Modify, read and display user preferences.
00237 
00238 This module contain GUI code to display dialogs regarding
00239 user preferences, and functions which read and modify the preferences.
00240 
00241 */
00242 
00243 // ===========================================================================
00244 //  namespace reports
00245 // ===========================================================================
00246 
00247 /**
00248 
00249 @namespace reports  Unit and team statistics.
00250 
00251 This module can provide statistics and information, such as these
00252 presented in the in-game windows rightmost and upper borders.
00253 This is primarily characteristics of units and teams.
00254 
00255 */
00256 
00257 // ===========================================================================
00258 //  namespace sound
00259 // ===========================================================================
00260 
00261 /**
00262 
00263 @namespace sound    Audio output for sound and music.
00264 
00265 This module provides the ability to play music and sounds.
00266 Setting music volume to 0 will stop the music.
00267 
00268 */
00269 
00270 // ===========================================================================
00271 //  namespace tooltips
00272 // ===========================================================================
00273 
00274 /**
00275 
00276 @namespace tooltips tooltips.
00277 
00278 This module can be used to register tooltips,
00279 which will be shown provided @ref process()
00280 is called every time mouse motion events
00281 are received from the @ref events system.
00282 If tooltips::draw_text() is used instead of font::draw_text(),
00283 the text will also be registered as a tooltip.
00284 
00285 */
00286 
00287 // ===========================================================================
00288 //  Tutorials
00289 // ===========================================================================
00290 
00291 /**
00292 
00293 @page get_involved  Get Involved
00294 
00295 Apart from development, there are
00296 <a href="http://www.wesnoth.org/wiki/FAQ">other ways to contribute</a>
00297 to the project.
00298 
00299 Before you can join the development team, your work
00300 needs to be reviewed by a current developer.
00301 It works like this:
00302 you first get the
00303 <a href="http://gna.org/svn/?group=wesnoth">latest source code</a>
00304 and then submit your modified source code as
00305 <a href="http://www.kegel.com/academy/opensource.html">patches</a> to
00306 <a href="http://gna.org/patch/?group=wesnoth">Gna!</a>.
00307 Eventually, you may be given
00308 <a href="http://svnbook.org">SVN access</a>.
00309 
00310 One way to contribute is to find an unassigned bug in the
00311 <a href="http://gna.org/bugs/?group=wesnoth">bug repository</a>
00312 and fix the bug.
00313 If you wish to work on something else, you should probably
00314 explain on the
00315 <a href="http://www.wesnoth.org/forum/">forum</a>
00316 what you wish to do before doing any actual development.
00317 Do make sure you have read the projects
00318 <a href="http://www.wesnoth.org/wiki/CodingStandards">coding standards</a>.
00319 When adding new features, keep in mind the project philosophy,
00320 which is that of
00321 <a href="http://www.wesnoth.org/wiki/WesnothPhilosophy">KISS</a>.
00322 
00323 Other than at the forum, developers may also hang out
00324 in IRC @#wesnoth-dev at irc.freenode.net
00325 
00326 */
00327 
00328 /**
00329 
00330 @page howto_document    Document your code
00331 
00332 @section motivation Motivation
00333 
00334 The document you are reading now was generated using
00335 <a href="http://www.doxygen.org/">Doxygen</a>.
00336 It follows in the tradition of
00337 <a href="http://www.literateprogramming.com/">literal programming</a>,
00338 the goal of which is to keep documentation in the source code,
00339 when practical.
00340 This way, the documentation will not be outdated or unmaintained.
00341 
00342 @section interfaces Commenting interfaces
00343 
00344 Concise comments are prefered, as long as the explanation
00345 is correct, is not open to interpretation and does not
00346 assume extensive knowledge of other parts of the system.
00347 
00348 By interface, we mean all content of a header file which
00349 is available from a C++ source file, and could result in
00350 compile errors if removed.
00351 When you comment a header file, you need to take care
00352 of a few, minor things in order to produce readable
00353 documentation using Doxygen.
00354 The basic guidelines for this project are:
00355 
00356 - When commenting part of an interface, use two slashes followed by
00357   an exclamation sign, followed by a space and then the actual comment.
00358   The first sentence you write, terminated by a period,
00359   will be the brief description.
00360   After that, you can write a longer, more detailed description.
00361   The brief description will be shown in overviews,
00362   so it should be no more than a single line.
00363   It is possible to document virtually all parts of an interface,
00364   so it is not limited to classes.
00365 
00366 Example:
00367 @code
00368 / / ! Takes care of displaying the map and game-data on the screen.
00369 / / !
00370 / / ! The display is divided into two main sections: the game area,
00371 / / ! which displays the tiles of the game board, and units on them,
00372 / / ! and the side bar, which appears on the right hand side.
00373 / / ! The side bar display is divided into three sections.
00374 class display {
00375    ...
00376 };
00377 @endcode
00378 
00379 - Do not refer to multiple objects of the type "Manager"
00380   as "Managers" or "manager". Instead, say "Manager objects".
00381   Doxygen will automatically link to class documentation
00382   whenever it finds class names in comments,
00383   but will not do so if you do not use their proper names.
00384 
00385 - Many <a href="http://www.stack.nl/~dimitri/doxygen/commands.html">Doxygen commands</a>
00386   can be used in comments to enhance the generated documentation and structure the comments.
00387 - There is a balance between readable autogenerated documentation and readable code,
00388   so beware of overdoing it.
00389 
00390 Example:
00391 @code
00392 / / ! @param a  an integer dividend
00393 / / ! @param b  an integer divisor, which must not be zero
00394 / / ! @returns  a / b
00395 / / !
00396 / / ! @pre b != 0
00397 / / ! @post divide' = a / b
00398 / / !
00399 / / ! @throws std::runtime_error
00400 / / ! @todo this has not been peer reviewed yet
00401 int divide(int a,int b) {
00402     return a / b;
00403 }
00404 @endcode
00405 
00406 */
00407 
00408 // ===========================================================================
00409 //  Reference
00410 // ===========================================================================
00411 
00412 /**
00413     @defgroup unnamed_namespace Unnamed Namespace
00414 
00415     @{
00416 */
00417 
00418 /** -file actions.hpp */
00419 /** -file ai_attack.hpp */
00420 /** -file ai.hpp */
00421 /** -file ai_move.hpp */
00422 /** -file config.hpp */
00423 /** -file display.hpp */
00424 /** -file filesystem.hpp */
00425 /** @file game.hpp */
00426 /** -file gamestatus.hpp */
00427 /** @file intro.hpp */
00428 /** @file key.hpp */
00429 /** @file language.hpp */
00430 /** -file log.hpp */
00431 /** @file mapgen_dialog.hpp */
00432 /** -file mapgen.hpp */
00433 /** -file map.hpp */
00434 /** -file multiplayer_client.hpp */
00435 /** -file multiplayer_connect.hpp */
00436 /** @file multiplayer.hpp */
00437 /** -file pathfind.hpp */
00438 /** -file playlevel.hpp */
00439 /** @file playturn.hpp */
00440 /** @file race.hpp */
00441 /** @file replay.hpp */
00442 /** -file sdl_utils.hpp */
00443 /** @file team.hpp */
00444 /** @file terrain.hpp */
00445 /** -file theme.hpp */
00446 /** -file unit.hpp */
00447 /** @file unit_types.hpp */
00448 /** -file util.hpp */
00449 /** @file video.hpp */
00450 
00451 /** @} */
00452 
00453 //.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated by doxygen 1.7.1 on Thu May 24 2012 01:02:25 for The Battle for Wesnoth
Gna! | Forum | Wiki | CIA | devdocs