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 //.
| Generated by doxygen 1.7.1 on Thu May 24 2012 01:02:25 for The Battle for Wesnoth | Gna! | Forum | Wiki | CIA | devdocs |