bixbite 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (194) hide show
  1. data/LICENSE +20 -0
  2. data/README.markdown +49 -0
  3. data/VERSION +1 -0
  4. data/bin/bixbite +73 -0
  5. data/lib/bixbite.rb +13 -0
  6. data/lib/bixbite/command.rb +14 -0
  7. data/lib/bixbite/create.rb +76 -0
  8. data/template/Rakefile +25 -0
  9. data/template/assets/bixbite/Rakefile.rb +297 -0
  10. data/template/assets/naturaldocs/NaturalDocs/Config/Languages.txt +286 -0
  11. data/template/assets/naturaldocs/NaturalDocs/Config/Topics.txt +382 -0
  12. data/template/assets/naturaldocs/NaturalDocs/Help/customizinglanguages.html +52 -0
  13. data/template/assets/naturaldocs/NaturalDocs/Help/customizingtopics.html +74 -0
  14. data/template/assets/naturaldocs/NaturalDocs/Help/documenting.html +58 -0
  15. data/template/assets/naturaldocs/NaturalDocs/Help/documenting/reference.html +146 -0
  16. data/template/assets/naturaldocs/NaturalDocs/Help/documenting/walkthrough.html +180 -0
  17. data/template/assets/naturaldocs/NaturalDocs/Help/example/Default.css +528 -0
  18. data/template/assets/naturaldocs/NaturalDocs/Help/example/NaturalDocs.js +204 -0
  19. data/template/assets/naturaldocs/NaturalDocs/Help/examples.css +90 -0
  20. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/background.png +0 -0
  21. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/leftside.png +0 -0
  22. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/logo.png +0 -0
  23. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overbody.png +0 -0
  24. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overbodybg.png +0 -0
  25. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overleftmargin.png +0 -0
  26. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overmenu.png +0 -0
  27. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/overmenubg.png +0 -0
  28. data/template/assets/naturaldocs/NaturalDocs/Help/images/header/rightside.png +0 -0
  29. data/template/assets/naturaldocs/NaturalDocs/Help/images/logo.gif +0 -0
  30. data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/about.png +0 -0
  31. data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/background.png +0 -0
  32. data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/bottomleft.png +0 -0
  33. data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/bottomright.png +0 -0
  34. data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/community.png +0 -0
  35. data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/customizing.png +0 -0
  36. data/template/assets/naturaldocs/NaturalDocs/Help/images/menu/using.png +0 -0
  37. data/template/assets/naturaldocs/NaturalDocs/Help/index.html +9 -0
  38. data/template/assets/naturaldocs/NaturalDocs/Help/javascript/BrowserStyles.js +77 -0
  39. data/template/assets/naturaldocs/NaturalDocs/Help/javascript/PNGHandling.js +72 -0
  40. data/template/assets/naturaldocs/NaturalDocs/Help/keywords.html +38 -0
  41. data/template/assets/naturaldocs/NaturalDocs/Help/languages.html +32 -0
  42. data/template/assets/naturaldocs/NaturalDocs/Help/menu.html +79 -0
  43. data/template/assets/naturaldocs/NaturalDocs/Help/output.html +84 -0
  44. data/template/assets/naturaldocs/NaturalDocs/Help/running.html +40 -0
  45. data/template/assets/naturaldocs/NaturalDocs/Help/styles.css +290 -0
  46. data/template/assets/naturaldocs/NaturalDocs/Help/styles.html +52 -0
  47. data/template/assets/naturaldocs/NaturalDocs/Help/troubleshooting.html +18 -0
  48. data/template/assets/naturaldocs/NaturalDocs/Info/CSSGuide.txt +947 -0
  49. data/template/assets/naturaldocs/NaturalDocs/Info/File Parsing.txt +83 -0
  50. data/template/assets/naturaldocs/NaturalDocs/Info/HTMLTestCases.pm +269 -0
  51. data/template/assets/naturaldocs/NaturalDocs/Info/Languages.txt +107 -0
  52. data/template/assets/naturaldocs/NaturalDocs/Info/NDMarkup.txt +91 -0
  53. data/template/assets/naturaldocs/NaturalDocs/Info/Symbol Management.txt +59 -0
  54. data/template/assets/naturaldocs/NaturalDocs/Info/images/Logo.png +0 -0
  55. data/template/assets/naturaldocs/NaturalDocs/JavaScript/NaturalDocs.js +836 -0
  56. data/template/assets/naturaldocs/NaturalDocs/License-GPL.txt +341 -0
  57. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/BinaryFile.pm +294 -0
  58. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder.pm +280 -0
  59. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder/Base.pm +348 -0
  60. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder/FramedHTML.pm +345 -0
  61. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder/HTML.pm +398 -0
  62. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Builder/HTMLBase.pm +3693 -0
  63. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ClassHierarchy.pm +860 -0
  64. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ClassHierarchy/Class.pm +412 -0
  65. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ClassHierarchy/File.pm +157 -0
  66. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ConfigFile.pm +497 -0
  67. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Constants.pm +165 -0
  68. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/DefineMembers.pm +100 -0
  69. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Error.pm +305 -0
  70. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/File.pm +540 -0
  71. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ImageReferenceTable.pm +383 -0
  72. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ImageReferenceTable/Reference.pm +44 -0
  73. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ImageReferenceTable/String.pm +110 -0
  74. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages.pm +1475 -0
  75. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/ActionScript.pm +1473 -0
  76. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Ada.pm +38 -0
  77. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Advanced.pm +828 -0
  78. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Advanced/Scope.pm +95 -0
  79. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Advanced/ScopeChange.pm +70 -0
  80. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Base.pm +832 -0
  81. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/CSharp.pm +1484 -0
  82. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/PLSQL.pm +319 -0
  83. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Pascal.pm +143 -0
  84. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Perl.pm +1370 -0
  85. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Prototype.pm +92 -0
  86. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Prototype/Parameter.pm +87 -0
  87. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Simple.pm +503 -0
  88. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Languages/Tcl.pm +219 -0
  89. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Menu.pm +3406 -0
  90. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Menu/Entry.pm +201 -0
  91. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/NDMarkup.pm +76 -0
  92. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Parser.pm +1331 -0
  93. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Parser/JavaDoc.pm +464 -0
  94. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Parser/Native.pm +1060 -0
  95. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Parser/ParsedTopic.pm +253 -0
  96. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Project.pm +1402 -0
  97. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Project/ImageFile.pm +160 -0
  98. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Project/SourceFile.pm +113 -0
  99. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/ReferenceString.pm +334 -0
  100. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Settings.pm +1418 -0
  101. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Settings/BuildTarget.pm +66 -0
  102. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB.pm +678 -0
  103. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/Extension.pm +84 -0
  104. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/File.pm +129 -0
  105. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/Item.pm +201 -0
  106. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/ItemDefinition.pm +45 -0
  107. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SourceDB/WatchedFileDefinitions.pm +159 -0
  108. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/StatusMessage.pm +102 -0
  109. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolString.pm +212 -0
  110. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable.pm +1984 -0
  111. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/File.pm +186 -0
  112. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/IndexElement.pm +522 -0
  113. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/Reference.pm +273 -0
  114. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/ReferenceTarget.pm +97 -0
  115. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/Symbol.pm +428 -0
  116. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/SymbolTable/SymbolDefinition.pm +96 -0
  117. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Topics.pm +1319 -0
  118. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Topics/Type.pm +151 -0
  119. data/template/assets/naturaldocs/NaturalDocs/Modules/NaturalDocs/Version.pm +384 -0
  120. data/template/assets/naturaldocs/NaturalDocs/NaturalDocs +400 -0
  121. data/template/assets/naturaldocs/NaturalDocs/NaturalDocs.bat +17 -0
  122. data/template/assets/naturaldocs/NaturalDocs/Styles/Default.css +767 -0
  123. data/template/assets/naturaldocs/NaturalDocs/Styles/Roman.css +765 -0
  124. data/template/assets/naturaldocs/NaturalDocs/Styles/Small.css +763 -0
  125. data/template/assets/utilities/pngout +0 -0
  126. data/template/deploy/public_html/.htaccess +0 -0
  127. data/template/documentation/js/.htaccess +0 -0
  128. data/template/src/html/.htaccess +76 -0
  129. data/template/src/html/css/cmn/global.css +96 -0
  130. data/template/src/html/css/cmn/ie.css +15 -0
  131. data/template/src/html/css/cmn/ie6.css +15 -0
  132. data/template/src/html/images/cmn/.htaccess +0 -0
  133. data/template/src/html/images/tmp/.htaccess +0 -0
  134. data/template/src/html/includes/debug.inc +5 -0
  135. data/template/src/html/includes/footer.inc +52 -0
  136. data/template/src/html/includes/header.inc +61 -0
  137. data/template/src/html/includes/html.inc +3 -0
  138. data/template/src/html/includes/namespace.inc +19 -0
  139. data/template/src/html/includes/page.inc +151 -0
  140. data/template/src/html/index.html +35 -0
  141. data/template/src/html/js/cmn/bootstrap.js +74 -0
  142. data/template/src/html/js/cmn/global.js +142 -0
  143. data/template/src/html/js/cmn/lib/LAB.js +348 -0
  144. data/template/src/html/min/.htaccess +4 -0
  145. data/template/src/html/min/MinifyCLI.php +19 -0
  146. data/template/src/html/min/README.txt +132 -0
  147. data/template/src/html/min/builder/_index.js +242 -0
  148. data/template/src/html/min/builder/bm.js +36 -0
  149. data/template/src/html/min/builder/index.php +182 -0
  150. data/template/src/html/min/builder/ocCheck.php +36 -0
  151. data/template/src/html/min/builder/rewriteTest.js +1 -0
  152. data/template/src/html/min/config.php +187 -0
  153. data/template/src/html/min/groupsConfig.php +34 -0
  154. data/template/src/html/min/index.php +66 -0
  155. data/template/src/html/min/lib/FirePHP.php +1370 -0
  156. data/template/src/html/min/lib/HTTP/ConditionalGet.php +348 -0
  157. data/template/src/html/min/lib/HTTP/Encoder.php +326 -0
  158. data/template/src/html/min/lib/JSMin.php +314 -0
  159. data/template/src/html/min/lib/JSMinPlus.php +1872 -0
  160. data/template/src/html/min/lib/Minify.php +532 -0
  161. data/template/src/html/min/lib/Minify/Build.php +103 -0
  162. data/template/src/html/min/lib/Minify/CSS.php +83 -0
  163. data/template/src/html/min/lib/Minify/CSS/Compressor.php +250 -0
  164. data/template/src/html/min/lib/Minify/CSS/UriRewriter.php +270 -0
  165. data/template/src/html/min/lib/Minify/Cache/APC.php +130 -0
  166. data/template/src/html/min/lib/Minify/Cache/File.php +125 -0
  167. data/template/src/html/min/lib/Minify/Cache/Memcache.php +137 -0
  168. data/template/src/html/min/lib/Minify/ClosureCompiler.php +85 -0
  169. data/template/src/html/min/lib/Minify/CommentPreserver.php +90 -0
  170. data/template/src/html/min/lib/Minify/Controller/Base.php +202 -0
  171. data/template/src/html/min/lib/Minify/Controller/Files.php +78 -0
  172. data/template/src/html/min/lib/Minify/Controller/Groups.php +94 -0
  173. data/template/src/html/min/lib/Minify/Controller/MinApp.php +132 -0
  174. data/template/src/html/min/lib/Minify/Controller/Page.php +82 -0
  175. data/template/src/html/min/lib/Minify/Controller/Version1.php +118 -0
  176. data/template/src/html/min/lib/Minify/HTML.php +245 -0
  177. data/template/src/html/min/lib/Minify/ImportProcessor.php +157 -0
  178. data/template/src/html/min/lib/Minify/Lines.php +131 -0
  179. data/template/src/html/min/lib/Minify/Logger.php +45 -0
  180. data/template/src/html/min/lib/Minify/Packer.php +37 -0
  181. data/template/src/html/min/lib/Minify/Source.php +187 -0
  182. data/template/src/html/min/lib/Minify/YUICompressor.php +139 -0
  183. data/template/src/html/min/lib/Solar/Dir.php +199 -0
  184. data/template/src/html/min/lib/closure-compiler.jar +0 -0
  185. data/template/src/html/min/lib/yuicompressor-2.4.2.jar +0 -0
  186. data/template/src/html/min/utils.php +90 -0
  187. data/template/src/templates/css/template.css +7 -0
  188. data/template/src/templates/js/template.js +72 -0
  189. data/template/src/templates/template.html +18 -0
  190. data/template/src/yaml/config.yml +46 -0
  191. data/template/src/yaml/deploy.yml +35 -0
  192. data/test/bixbite_test.rb +7 -0
  193. data/test/test_helper.rb +10 -0
  194. metadata +278 -0
@@ -0,0 +1,400 @@
1
+ #!/usr/bin/perl
2
+
3
+ =begin nd
4
+
5
+ Script: NaturalDocs
6
+ ___________________________________________________________________________
7
+
8
+ Version 1.4
9
+
10
+ Copyright (C) 2003-2008 Greg Valure
11
+
12
+ http://www.naturaldocs.org
13
+
14
+
15
+ About: License
16
+
17
+ Licensed under the GNU General Public License
18
+
19
+ This program is free software; you can redistribute it and/or modify
20
+ it under the terms of the GNU General Public License as published by
21
+ the Free Software Foundation; either version 2 of the License, or
22
+ (at your option) any later version.
23
+
24
+ This program is distributed in the hope that it will be useful,
25
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
26
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27
+ GNU General Public License for more details.
28
+
29
+ You should have received a copy of the GNU General Public License
30
+ along with this program; if not, visit http://www.gnu.org/licenses/gpl.txt
31
+ or write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
32
+ Boston, MA 02111-1307 USA.
33
+
34
+
35
+ Topic: Code Conventions
36
+
37
+ - Every package function is called with an arrow operator. It's needed for inheritance in some places, and consistency
38
+ when it's not.
39
+
40
+ - No constant will ever be zero or undef. Those are reserved so any piece of code can allow a "none of the above" option
41
+ and not worry about conflicts with an existing value.
42
+
43
+ - Existence hashes are hashes where the value doesn't matter. It acts more as a set, where the existence of the key is
44
+ the significant part.
45
+
46
+
47
+ Topic: File Format Conventions
48
+
49
+ - All integers appear in big-endian format. So a UInt16 should be handled with a 'n' in pack and unpack, not with a 'S'.
50
+
51
+ - AString16's are a big-endian UInt16 followed by that many ASCII characters. A null-terminator is not stored.
52
+
53
+ - If a higher-level type is described in a file format, that means the loading and saving format is handled by that package.
54
+ For example, if you see <SymbolString> in the format, that means <NaturalDocs::SymbolString->ToBinaryFile()> and
55
+ <NaturalDocs::SymbolString->FromBinaryFile()> are used to manipulate it, and the underlying format should be treated
56
+ as opaque.
57
+
58
+ =cut
59
+
60
+
61
+ use strict;
62
+ use integer;
63
+
64
+ use 5.005; # When File::Spec was included by default
65
+
66
+ use English '-no_match_vars';
67
+
68
+ use FindBin;
69
+ use lib "$FindBin::RealBin/Modules";
70
+
71
+ sub INIT
72
+ {
73
+ # This function is just here so that when I start the debugger, it doesn't open a new file. Normally it would jump to an INIT
74
+ # function in some other file since that's the first piece of code to execute.
75
+ };
76
+
77
+
78
+ use NaturalDocs::Constants;
79
+ use NaturalDocs::Version;
80
+ use NaturalDocs::File;
81
+ use NaturalDocs::Error;
82
+
83
+ use NaturalDocs::ConfigFile;
84
+ use NaturalDocs::BinaryFile;
85
+ use NaturalDocs::StatusMessage;
86
+ use NaturalDocs::SymbolString;
87
+ use NaturalDocs::ReferenceString;
88
+ use NaturalDocs::NDMarkup;
89
+
90
+ use NaturalDocs::Settings;
91
+ use NaturalDocs::Topics;
92
+ use NaturalDocs::Languages;
93
+ use NaturalDocs::Project;
94
+ use NaturalDocs::Menu;
95
+ use NaturalDocs::SymbolTable;
96
+ use NaturalDocs::ClassHierarchy;
97
+ use NaturalDocs::SourceDB;
98
+ use NaturalDocs::ImageReferenceTable;
99
+ use NaturalDocs::Parser;
100
+ use NaturalDocs::Builder;
101
+
102
+
103
+
104
+ ###############################################################################
105
+ #
106
+ # Group: Basic Types
107
+ #
108
+ # Types used throughout the program. As Perl is a weakly-typed language unless you box things into objects, these types are
109
+ # for documentation purposes and are not enforced.
110
+ #
111
+ #
112
+ # Type: FileName
113
+ #
114
+ # A string representing the absolute, platform-dependent path to a file. Relative file paths are no longer in use anywhere in the
115
+ # program. All path manipulation should be done through <NaturalDocs::File>.
116
+ #
117
+ #
118
+ # Type: VersionInt
119
+ #
120
+ # A comparable integer representing a version number. Converting them to and from text and binary should be handled by
121
+ # <NaturalDocs::Version>.
122
+ #
123
+ #
124
+ # Type: SymbolString
125
+ #
126
+ # A scalar which encodes a normalized array of identifier strings representing a full or partially-resolved symbol. All symbols
127
+ # must be retrieved from plain text via <NaturalDocs::SymbolString->FromText()> so that the separation and normalization is
128
+ # always consistent. SymbolStrings are comparable via string compare functions and are sortable.
129
+ #
130
+ #
131
+ # Type: ReferenceString
132
+ #
133
+ # All the information about a reference that makes it unique encoded into a string. This includes the <SymbolString> of the
134
+ # reference, the scope <SymbolString> it appears in, the scope <SymbolStrings> it has access to via "using", and the
135
+ # <ReferenceType>. This is done because if any of those parameters change, it needs to be treated as a completely separate
136
+ # reference.
137
+ #
138
+
139
+
140
+
141
+ ###############################################################################
142
+ # Group: Support Functions
143
+ # General functions that are used throughout the program, and that don't really fit anywhere else.
144
+
145
+
146
+ #
147
+ # Function: StringCompare
148
+ #
149
+ # Compares two strings so that the result is good for proper sorting. A proper sort orders the characters as
150
+ # follows:
151
+ #
152
+ # - End of string.
153
+ # - Whitespace. Line break-tab-space.
154
+ # - Symbols, which is anything not included in the other entries.
155
+ # - Numbers, 0-9.
156
+ # - Letters, case insensitive except to break ties.
157
+ #
158
+ # If you use cmp instead of this function, the result would go by ASCII/Unicode values which would place certain symbols
159
+ # between letters and numbers instead of having them all grouped together. Also, you would have to choose between case
160
+ # sensitivity or complete case insensitivity, in which ties are broken arbitrarily.
161
+ #
162
+ # Returns:
163
+ #
164
+ # Like cmp, it returns zero if A and B are equal, a positive value if A is greater than B, and a negative value if A is less than B.
165
+ #
166
+ sub StringCompare #(a, b)
167
+ {
168
+ my ($a, $b) = @_;
169
+
170
+ if (!defined $a)
171
+ {
172
+ if (!defined $b)
173
+ { return 0; }
174
+ else
175
+ { return -1; };
176
+ }
177
+ elsif (!defined $b)
178
+ {
179
+ return 1;
180
+ };
181
+
182
+ my $translatedA = lc($a);
183
+ my $translatedB = lc($b);
184
+
185
+ $translatedA =~ tr/\n\r\t 0-9a-z/\x01\x02\x03\x04\xDB-\xFE/;
186
+ $translatedB =~ tr/\n\r\t 0-9a-z/\x01\x02\x03\x04\xDB-\xFE/;
187
+
188
+ my $result = $translatedA cmp $translatedB;
189
+
190
+ if ($result == 0)
191
+ {
192
+ # Break the tie by comparing their case. Lowercase before uppercase.
193
+
194
+ # If statement just to keep everything theoretically kosher, even though in practice we don't need this.
195
+ if (ord('A') > ord('a'))
196
+ { return ($a cmp $b); }
197
+ else
198
+ { return ($b cmp $a); };
199
+ }
200
+ else
201
+ { return $result; };
202
+ };
203
+
204
+
205
+ #
206
+ # Function: ShortenToMatchStrings
207
+ #
208
+ # Compares two arrayrefs and shortens the first array to only contain shared entries. Assumes all entries are strings.
209
+ #
210
+ # Parameters:
211
+ #
212
+ # sharedArrayRef - The arrayref that will be shortened to only contain common elements.
213
+ # compareArrayRef - The arrayref to match.
214
+ #
215
+ sub ShortenToMatchStrings #(sharedArrayRef, compareArrayRef)
216
+ {
217
+ my ($sharedArrayRef, $compareArrayRef) = @_;
218
+
219
+ my $index = 0;
220
+
221
+ while ($index < scalar @$sharedArrayRef && $index < scalar @$compareArrayRef &&
222
+ $sharedArrayRef->[$index] eq $compareArrayRef->[$index])
223
+ { $index++; };
224
+
225
+ if ($index < scalar @$sharedArrayRef)
226
+ { splice(@$sharedArrayRef, $index); };
227
+ };
228
+
229
+
230
+ #
231
+ # Function: XChomp
232
+ #
233
+ # A cross-platform chomp function. Regular chomp fails when parsing Windows-format line breaks on a Unix platform. It
234
+ # leaves the /r on, which screws everything up. This does not.
235
+ #
236
+ # Parameters:
237
+ #
238
+ # lineRef - A *reference* to the line to chomp.
239
+ #
240
+ sub XChomp #(lineRef)
241
+ {
242
+ my $lineRef = shift;
243
+ $$lineRef =~ s/[\n\r]+$//;
244
+ };
245
+
246
+
247
+ #
248
+ # Function: FindFirstSymbol
249
+ #
250
+ # Searches a string for a number of symbols to see which appears first.
251
+ #
252
+ # Parameters:
253
+ #
254
+ # string - The string to search.
255
+ # symbols - An arrayref of symbols to look for.
256
+ # index - The index to start at, if any.
257
+ #
258
+ # Returns:
259
+ #
260
+ # The array ( index, symbol ).
261
+ #
262
+ # index - The index the first symbol appears at, or -1 if none appear.
263
+ # symbol - The symbol that appeared, or undef if none.
264
+ #
265
+ sub FindFirstSymbol #(string, symbols, index)
266
+ {
267
+ my ($string, $symbols, $index) = @_;
268
+
269
+ if (!defined $index)
270
+ { $index = 0; };
271
+
272
+ my $lowestIndex = -1;
273
+ my $lowestSymbol;
274
+
275
+ foreach my $symbol (@$symbols)
276
+ {
277
+ my $testIndex = index($string, $symbol, $index);
278
+
279
+ if ($testIndex != -1 && ($lowestIndex == -1 || $testIndex < $lowestIndex))
280
+ {
281
+ $lowestIndex = $testIndex;
282
+ $lowestSymbol = $symbol;
283
+ };
284
+ };
285
+
286
+ return ($lowestIndex, $lowestSymbol);
287
+ };
288
+
289
+
290
+
291
+
292
+ ###############################################################################
293
+ #
294
+ # Main Code
295
+ #
296
+ # The order in which functions are called here is critically important. Read the "Usage and Dependencies" sections of all the
297
+ # packages before even thinking about rearranging these.
298
+ #
299
+
300
+
301
+ eval {
302
+
303
+ # Check that our required packages are okay.
304
+
305
+ NaturalDocs::File->CheckCompatibility();
306
+
307
+
308
+ # Almost everything requires Settings to be initialized.
309
+
310
+ NaturalDocs::Settings->Load();
311
+
312
+
313
+ NaturalDocs::Project->LoadConfigFileInfo();
314
+
315
+ NaturalDocs::Topics->Load();
316
+ NaturalDocs::Languages->Load();
317
+
318
+
319
+ # Migrate from the old file names that were used prior to 1.14.
320
+
321
+ NaturalDocs::Project->MigrateOldFiles();
322
+
323
+
324
+ if (!NaturalDocs::Settings->IsQuiet())
325
+ { print "Finding files and detecting changes...\n"; };
326
+
327
+ NaturalDocs::Project->LoadSourceFileInfo();
328
+ NaturalDocs::Project->LoadImageFileInfo();
329
+
330
+ # Register SourceDB extensions. Order is important.
331
+ NaturalDocs::ImageReferenceTable->Register();
332
+
333
+ NaturalDocs::SymbolTable->Load();
334
+ NaturalDocs::ClassHierarchy->Load();
335
+ NaturalDocs::SourceDB->Load();
336
+
337
+ NaturalDocs::SymbolTable->Purge();
338
+ NaturalDocs::ClassHierarchy->Purge();
339
+ NaturalDocs::SourceDB->PurgeDeletedSourceFiles();
340
+
341
+
342
+ # Parse any supported files that have changed.
343
+
344
+ my $filesToParse = NaturalDocs::Project->FilesToParse();
345
+ my $amount = scalar keys %$filesToParse;
346
+
347
+ if ($amount > 0)
348
+ {
349
+ NaturalDocs::StatusMessage->Start('Parsing ' . $amount . ' file' . ($amount > 1 ? 's' : '') . '...', $amount);
350
+
351
+ foreach my $file (keys %$filesToParse)
352
+ {
353
+ NaturalDocs::Parser->ParseForInformation($file);
354
+ NaturalDocs::StatusMessage->CompletedItem();
355
+ };
356
+ };
357
+
358
+
359
+ # The symbol table is now fully resolved, so we can reduce its memory footprint.
360
+
361
+ NaturalDocs::SymbolTable->PurgeResolvingInfo();
362
+
363
+
364
+ # Load and update the menu file. We need to do this after parsing so when it is updated, it will detect files where the
365
+ # default menu title has changed and files that have added or deleted Natural Docs content.
366
+
367
+ NaturalDocs::Menu->LoadAndUpdate();
368
+
369
+
370
+ # Build any files that need it. This needs to be run regardless of whether there are any files to build. It will handle its own
371
+ # output messages.
372
+
373
+ NaturalDocs::Builder->Run();
374
+
375
+
376
+ # Write the changes back to disk.
377
+
378
+ NaturalDocs::Menu->Save();
379
+ NaturalDocs::Project->SaveImageFileInfo();
380
+ NaturalDocs::Project->SaveSourceFileInfo();
381
+ NaturalDocs::SymbolTable->Save();
382
+ NaturalDocs::ClassHierarchy->Save();
383
+ NaturalDocs::SourceDB->Save();
384
+ NaturalDocs::Settings->Save();
385
+ NaturalDocs::Topics->Save();
386
+ NaturalDocs::Languages->Save();
387
+
388
+ # Must be done last.
389
+ NaturalDocs::Project->SaveConfigFileInfo();
390
+
391
+ if (!NaturalDocs::Settings->IsQuiet())
392
+ { print "Done.\n"; };
393
+
394
+ };
395
+
396
+ if ($EVAL_ERROR) # Oops.
397
+ {
398
+ NaturalDocs::Error->HandleDeath();
399
+ };
400
+
@@ -0,0 +1,17 @@
1
+ @echo off
2
+
3
+ set NaturalDocsParams=
4
+
5
+ rem Shift and loop so we can get more than nine parameters.
6
+ rem This is especially important if we have spaces in file names.
7
+
8
+ :MORE
9
+ if "%1"=="" goto NOMORE
10
+ set NaturalDocsParams=%NaturalDocsParams% %1
11
+ shift
12
+ goto MORE
13
+ :NOMORE
14
+
15
+ perl NaturalDocs %NaturalDocsParams%
16
+
17
+ set NaturalDocsParams=
@@ -0,0 +1,767 @@
1
+ /*
2
+ IMPORTANT: If you're editing this file in the output directory of one of
3
+ your projects, your changes will be overwritten the next time you run
4
+ Natural Docs. Instead, copy this file to your project directory, make your
5
+ changes, and you can use it with -s. Even better would be to make a CSS
6
+ file in your project directory with only your changes, which you can then
7
+ use with -s [original style] [your changes].
8
+
9
+ On the other hand, if you're editing this file in the Natural Docs styles
10
+ directory, the changes will automatically be applied to all your projects
11
+ that use this style the next time Natural Docs is run on them.
12
+
13
+ This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure
14
+ Natural Docs is licensed under the GPL
15
+ */
16
+
17
+ body {
18
+ font: 10pt Verdana, Arial, sans-serif;
19
+ color: #000000;
20
+ margin: 0; padding: 0;
21
+ }
22
+
23
+ .ContentPage,
24
+ .IndexPage,
25
+ .FramedMenuPage {
26
+ background-color: #E8E8E8;
27
+ }
28
+ .FramedContentPage,
29
+ .FramedIndexPage,
30
+ .FramedSearchResultsPage,
31
+ .PopupSearchResultsPage {
32
+ background-color: #FFFFFF;
33
+ }
34
+
35
+
36
+ a:link,
37
+ a:visited { color: #900000; text-decoration: none }
38
+ a:hover { color: #900000; text-decoration: underline }
39
+ a:active { color: #FF0000; text-decoration: underline }
40
+
41
+ td {
42
+ vertical-align: top }
43
+
44
+ img { border: 0; }
45
+
46
+
47
+ /*
48
+ Comment out this line to use web-style paragraphs (blank line between
49
+ paragraphs, no indent) instead of print-style paragraphs (no blank line,
50
+ indented.)
51
+ */
52
+ p {
53
+ text-indent: 5ex; margin: 0 }
54
+
55
+
56
+ /* Opera doesn't break with just wbr, but will if you add this. */
57
+ .Opera wbr:after {
58
+ content: "\00200B";
59
+ }
60
+
61
+
62
+ /* Blockquotes are used as containers for things that may need to scroll. */
63
+ blockquote {
64
+ padding: 0;
65
+ margin: 0;
66
+ overflow: auto;
67
+ }
68
+
69
+
70
+ .Firefox1 blockquote {
71
+ padding-bottom: .5em;
72
+ }
73
+
74
+ /* Turn off scrolling when printing. */
75
+ @media print {
76
+ blockquote {
77
+ overflow: visible;
78
+ }
79
+ .IE blockquote {
80
+ width: auto;
81
+ }
82
+ }
83
+
84
+
85
+
86
+ #Menu {
87
+ font-size: 9pt;
88
+ padding: 10px 0 0 0;
89
+ }
90
+ .ContentPage #Menu,
91
+ .IndexPage #Menu {
92
+ position: absolute;
93
+ top: 0;
94
+ left: 0;
95
+ width: 31ex;
96
+ overflow: hidden;
97
+ }
98
+ .ContentPage .Firefox #Menu,
99
+ .IndexPage .Firefox #Menu {
100
+ width: 27ex;
101
+ }
102
+
103
+
104
+ .MTitle {
105
+ font-size: 16pt; font-weight: bold; font-variant: small-caps;
106
+ text-align: center;
107
+ padding: 5px 10px 15px 10px;
108
+ border-bottom: 1px dotted #000000;
109
+ margin-bottom: 15px }
110
+
111
+ .MSubTitle {
112
+ font-size: 9pt; font-weight: normal; font-variant: normal;
113
+ margin-top: 1ex; margin-bottom: 5px }
114
+
115
+
116
+ .MEntry a:link,
117
+ .MEntry a:hover,
118
+ .MEntry a:visited { color: #606060; margin-right: 0 }
119
+ .MEntry a:active { color: #A00000; margin-right: 0 }
120
+
121
+
122
+ .MGroup {
123
+ font-variant: small-caps; font-weight: bold;
124
+ margin: 1em 0 1em 10px;
125
+ }
126
+
127
+ .MGroupContent {
128
+ font-variant: normal; font-weight: normal }
129
+
130
+ .MGroup a:link,
131
+ .MGroup a:hover,
132
+ .MGroup a:visited { color: #545454; margin-right: 10px }
133
+ .MGroup a:active { color: #A00000; margin-right: 10px }
134
+
135
+
136
+ .MFile,
137
+ .MText,
138
+ .MLink,
139
+ .MIndex {
140
+ padding: 1px 17px 2px 10px;
141
+ margin: .25em 0 .25em 0;
142
+ }
143
+
144
+ .MText {
145
+ font-size: 8pt; font-style: italic }
146
+
147
+ .MLink {
148
+ font-style: italic }
149
+
150
+ #MSelected {
151
+ color: #000000; background-color: #FFFFFF;
152
+ /* Replace padding with border. */
153
+ padding: 0 10px 0 10px;
154
+ border-width: 1px 2px 2px 0; border-style: solid; border-color: #000000;
155
+ margin-right: 5px;
156
+ }
157
+
158
+ /* Close off the left side when its in a group. */
159
+ .MGroup #MSelected {
160
+ padding-left: 9px; border-left-width: 1px }
161
+
162
+ /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */
163
+ .Firefox #MSelected {
164
+ -moz-border-radius-topright: 10px;
165
+ -moz-border-radius-bottomright: 10px }
166
+ .Firefox .MGroup #MSelected {
167
+ -moz-border-radius-topleft: 10px;
168
+ -moz-border-radius-bottomleft: 10px }
169
+
170
+
171
+ #MSearchPanel {
172
+ padding: 0px 6px;
173
+ margin: .25em 0;
174
+ }
175
+
176
+
177
+ #MSearchField {
178
+ font: italic 9pt Verdana, sans-serif;
179
+ color: #606060;
180
+ background-color: #E8E8E8;
181
+ border: none;
182
+ padding: 2px 4px;
183
+ width: 100%;
184
+ }
185
+ /* Only Opera gets it right. */
186
+ .Firefox #MSearchField,
187
+ .IE #MSearchField,
188
+ .Safari #MSearchField {
189
+ width: 94%;
190
+ }
191
+ .Opera9 #MSearchField,
192
+ .Konqueror #MSearchField {
193
+ width: 97%;
194
+ }
195
+ .FramedMenuPage .Firefox #MSearchField,
196
+ .FramedMenuPage .Safari #MSearchField,
197
+ .FramedMenuPage .Konqueror #MSearchField {
198
+ width: 98%;
199
+ }
200
+
201
+ /* Firefox doesn't do this right in frames without #MSearchPanel added on.
202
+ It's presence doesn't hurt anything other browsers. */
203
+ #MSearchPanel.MSearchPanelInactive:hover #MSearchField {
204
+ background-color: #FFFFFF;
205
+ border: 1px solid #C0C0C0;
206
+ padding: 1px 3px;
207
+ }
208
+ .MSearchPanelActive #MSearchField {
209
+ background-color: #FFFFFF;
210
+ border: 1px solid #C0C0C0;
211
+ font-style: normal;
212
+ padding: 1px 3px;
213
+ }
214
+
215
+ #MSearchType {
216
+ visibility: hidden;
217
+ font: 8pt Verdana, sans-serif;
218
+ width: 98%;
219
+ padding: 0;
220
+ border: 1px solid #C0C0C0;
221
+ }
222
+ .MSearchPanelActive #MSearchType,
223
+ /* As mentioned above, Firefox doesn't do this right in frames without #MSearchPanel added on. */
224
+ #MSearchPanel.MSearchPanelInactive:hover #MSearchType,
225
+ #MSearchType:focus {
226
+ visibility: visible;
227
+ color: #606060;
228
+ }
229
+ #MSearchType option#MSearchEverything {
230
+ font-weight: bold;
231
+ }
232
+
233
+ .Opera8 .MSearchPanelInactive:hover,
234
+ .Opera8 .MSearchPanelActive {
235
+ margin-left: -1px;
236
+ }
237
+
238
+
239
+ iframe#MSearchResults {
240
+ width: 60ex;
241
+ height: 15em;
242
+ }
243
+ #MSearchResultsWindow {
244
+ display: none;
245
+ position: absolute;
246
+ left: 0; top: 0;
247
+ border: 1px solid #000000;
248
+ background-color: #E8E8E8;
249
+ }
250
+ #MSearchResultsWindowClose {
251
+ font-weight: bold;
252
+ font-size: 8pt;
253
+ display: block;
254
+ padding: 2px 5px;
255
+ }
256
+ #MSearchResultsWindowClose:link,
257
+ #MSearchResultsWindowClose:visited {
258
+ color: #000000;
259
+ text-decoration: none;
260
+ }
261
+ #MSearchResultsWindowClose:active,
262
+ #MSearchResultsWindowClose:hover {
263
+ color: #800000;
264
+ text-decoration: none;
265
+ background-color: #F4F4F4;
266
+ }
267
+
268
+
269
+
270
+
271
+ #Content {
272
+ padding-bottom: 15px;
273
+ }
274
+
275
+ .ContentPage #Content {
276
+ border-width: 0 0 1px 1px;
277
+ border-style: solid;
278
+ border-color: #000000;
279
+ background-color: #FFFFFF;
280
+ font-size: 9pt; /* To make 31ex match the menu's 31ex. */
281
+ margin-left: 31ex;
282
+ }
283
+ .ContentPage .Firefox #Content {
284
+ margin-left: 27ex;
285
+ }
286
+
287
+
288
+
289
+ .CTopic {
290
+ font-size: 10pt;
291
+ margin-bottom: 3em;
292
+ }
293
+
294
+
295
+ .CTitle {
296
+ font-size: 12pt; font-weight: bold;
297
+ border-width: 0 0 1px 0; border-style: solid; border-color: #A0A0A0;
298
+ margin: 0 15px .5em 15px }
299
+
300
+ .CGroup .CTitle {
301
+ font-size: 16pt; font-variant: small-caps;
302
+ padding-left: 15px; padding-right: 15px;
303
+ border-width: 0 0 2px 0; border-color: #000000;
304
+ margin-left: 0; margin-right: 0 }
305
+
306
+ .CClass .CTitle,
307
+ .CInterface .CTitle,
308
+ .CDatabase .CTitle,
309
+ .CDatabaseTable .CTitle,
310
+ .CSection .CTitle {
311
+ font-size: 18pt;
312
+ color: #FFFFFF; background-color: #A0A0A0;
313
+ padding: 10px 15px 10px 15px;
314
+ border-width: 2px 0; border-color: #000000;
315
+ margin-left: 0; margin-right: 0 }
316
+
317
+ #MainTopic .CTitle {
318
+ font-size: 20pt;
319
+ color: #FFFFFF; background-color: #7070C0;
320
+ padding: 10px 15px 10px 15px;
321
+ border-width: 0 0 3px 0; border-color: #000000;
322
+ margin-left: 0; margin-right: 0 }
323
+
324
+ .CBody {
325
+ margin-left: 15px; margin-right: 15px }
326
+
327
+
328
+ .CToolTip {
329
+ position: absolute; visibility: hidden;
330
+ left: 0; top: 0;
331
+ background-color: #FFFFE0;
332
+ padding: 5px;
333
+ border-width: 1px 2px 2px 1px; border-style: solid; border-color: #000000;
334
+ font-size: 8pt;
335
+ }
336
+
337
+ .Opera .CToolTip {
338
+ max-width: 98%;
339
+ }
340
+
341
+ /* Scrollbars would be useless. */
342
+ .CToolTip blockquote {
343
+ overflow: hidden;
344
+ }
345
+ .IE6 .CToolTip blockquote {
346
+ overflow: visible;
347
+ }
348
+
349
+ .CHeading {
350
+ font-weight: bold; font-size: 10pt;
351
+ margin: 1.5em 0 .5em 0;
352
+ }
353
+
354
+ .CBody pre {
355
+ font: 10pt "Courier New", Courier, monospace;
356
+ margin: 1em 0;
357
+ }
358
+
359
+ .CBody ul {
360
+ /* I don't know why CBody's margin doesn't apply, but it's consistent across browsers so whatever.
361
+ Reapply it here as padding. */
362
+ padding-left: 15px; padding-right: 15px;
363
+ margin: .5em 5ex .5em 5ex;
364
+ }
365
+
366
+ .CDescriptionList {
367
+ margin: .5em 5ex 0 5ex }
368
+
369
+ .CDLEntry {
370
+ font: 10pt "Courier New", Courier, monospace; color: #808080;
371
+ padding-bottom: .25em;
372
+ white-space: nowrap }
373
+
374
+ .CDLDescription {
375
+ font-size: 10pt; /* For browsers that don't inherit correctly, like Opera 5. */
376
+ padding-bottom: .5em; padding-left: 5ex }
377
+
378
+
379
+ .CTopic img {
380
+ text-align: center;
381
+ display: block;
382
+ margin: 1em auto;
383
+ }
384
+ .CImageCaption {
385
+ font-variant: small-caps;
386
+ font-size: 8pt;
387
+ color: #808080;
388
+ text-align: center;
389
+ position: relative;
390
+ top: 1em;
391
+ }
392
+
393
+ .CImageLink {
394
+ color: #808080;
395
+ font-style: italic;
396
+ }
397
+ a.CImageLink:link,
398
+ a.CImageLink:visited,
399
+ a.CImageLink:hover { color: #808080 }
400
+
401
+
402
+
403
+
404
+
405
+ .Prototype {
406
+ font: 10pt "Courier New", Courier, monospace;
407
+ padding: 5px 3ex;
408
+ border-width: 1px; border-style: solid;
409
+ margin: 0 5ex 1.5em 5ex;
410
+ }
411
+
412
+ .Prototype td {
413
+ font-size: 10pt;
414
+ }
415
+
416
+ .PDefaultValue,
417
+ .PDefaultValuePrefix,
418
+ .PTypePrefix {
419
+ color: #8F8F8F;
420
+ }
421
+ .PTypePrefix {
422
+ text-align: right;
423
+ }
424
+ .PAfterParameters {
425
+ vertical-align: bottom;
426
+ }
427
+
428
+ .IE .Prototype table {
429
+ padding: 0;
430
+ }
431
+
432
+ .CFunction .Prototype {
433
+ background-color: #F4F4F4; border-color: #D0D0D0 }
434
+ .CProperty .Prototype {
435
+ background-color: #F4F4FF; border-color: #C0C0E8 }
436
+ .CVariable .Prototype {
437
+ background-color: #FFFFF0; border-color: #E0E0A0 }
438
+
439
+ .CClass .Prototype {
440
+ border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
441
+ background-color: #F4F4F4;
442
+ }
443
+ .CInterface .Prototype {
444
+ border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0D0;
445
+ background-color: #F4F4FF;
446
+ }
447
+
448
+ .CDatabaseIndex .Prototype,
449
+ .CConstant .Prototype {
450
+ background-color: #D0D0D0; border-color: #000000 }
451
+ .CType .Prototype,
452
+ .CEnumeration .Prototype {
453
+ background-color: #FAF0F0; border-color: #E0B0B0;
454
+ }
455
+ .CDatabaseTrigger .Prototype,
456
+ .CEvent .Prototype,
457
+ .CDelegate .Prototype {
458
+ background-color: #F0FCF0; border-color: #B8E4B8 }
459
+
460
+ .CToolTip .Prototype {
461
+ margin: 0 0 .5em 0;
462
+ white-space: nowrap;
463
+ }
464
+
465
+
466
+
467
+
468
+
469
+ .Summary {
470
+ margin: 1.5em 5ex 0 5ex }
471
+
472
+ .STitle {
473
+ font-size: 12pt; font-weight: bold;
474
+ margin-bottom: .5em }
475
+
476
+
477
+ .SBorder {
478
+ background-color: #FFFFF0;
479
+ padding: 15px;
480
+ border: 1px solid #C0C060 }
481
+
482
+ /* In a frame IE 6 will make them too long unless you set the width to 100%. Without frames it will be correct without a width
483
+ or slightly too long (but not enough to scroll) with a width. This arbitrary weirdness simply astounds me. IE 7 has the same
484
+ problem with frames, haven't tested it without. */
485
+ .FramedContentPage .IE .SBorder {
486
+ width: 100% }
487
+
488
+ /* A treat for Mozilla users. Blatantly non-standard. Will be replaced with CSS 3 attributes when finalized/supported. */
489
+ .Firefox .SBorder {
490
+ -moz-border-radius: 20px }
491
+
492
+
493
+ .STable {
494
+ font-size: 9pt; width: 100% }
495
+
496
+ .SEntry {
497
+ width: 30% }
498
+ .SDescription {
499
+ width: 70% }
500
+
501
+
502
+ .SMarked {
503
+ background-color: #F8F8D8 }
504
+
505
+ .SDescription { padding-left: 2ex }
506
+ .SIndent1 .SEntry { padding-left: 1.5ex } .SIndent1 .SDescription { padding-left: 3.5ex }
507
+ .SIndent2 .SEntry { padding-left: 3.0ex } .SIndent2 .SDescription { padding-left: 5.0ex }
508
+ .SIndent3 .SEntry { padding-left: 4.5ex } .SIndent3 .SDescription { padding-left: 6.5ex }
509
+ .SIndent4 .SEntry { padding-left: 6.0ex } .SIndent4 .SDescription { padding-left: 8.0ex }
510
+ .SIndent5 .SEntry { padding-left: 7.5ex } .SIndent5 .SDescription { padding-left: 9.5ex }
511
+
512
+ .SDescription a { color: #800000}
513
+ .SDescription a:active { color: #A00000 }
514
+
515
+ .SGroup td {
516
+ padding-top: .5em; padding-bottom: .25em }
517
+
518
+ .SGroup .SEntry {
519
+ font-weight: bold; font-variant: small-caps }
520
+
521
+ .SGroup .SEntry a { color: #800000 }
522
+ .SGroup .SEntry a:active { color: #F00000 }
523
+
524
+
525
+ .SMain td,
526
+ .SClass td,
527
+ .SDatabase td,
528
+ .SDatabaseTable td,
529
+ .SSection td {
530
+ font-size: 10pt;
531
+ padding-bottom: .25em }
532
+
533
+ .SClass td,
534
+ .SDatabase td,
535
+ .SDatabaseTable td,
536
+ .SSection td {
537
+ padding-top: 1em }
538
+
539
+ .SMain .SEntry,
540
+ .SClass .SEntry,
541
+ .SDatabase .SEntry,
542
+ .SDatabaseTable .SEntry,
543
+ .SSection .SEntry {
544
+ font-weight: bold;
545
+ }
546
+
547
+ .SMain .SEntry a,
548
+ .SClass .SEntry a,
549
+ .SDatabase .SEntry a,
550
+ .SDatabaseTable .SEntry a,
551
+ .SSection .SEntry a { color: #000000 }
552
+
553
+ .SMain .SEntry a:active,
554
+ .SClass .SEntry a:active,
555
+ .SDatabase .SEntry a:active,
556
+ .SDatabaseTable .SEntry a:active,
557
+ .SSection .SEntry a:active { color: #A00000 }
558
+
559
+
560
+
561
+
562
+
563
+ .ClassHierarchy {
564
+ margin: 0 15px 1em 15px }
565
+
566
+ .CHEntry {
567
+ border-width: 1px 2px 2px 1px; border-style: solid; border-color: #A0A0A0;
568
+ margin-bottom: 3px;
569
+ padding: 2px 2ex;
570
+ font-size: 10pt;
571
+ background-color: #F4F4F4; color: #606060;
572
+ }
573
+
574
+ .Firefox .CHEntry {
575
+ -moz-border-radius: 4px;
576
+ }
577
+
578
+ .CHCurrent .CHEntry {
579
+ font-weight: bold;
580
+ border-color: #000000;
581
+ color: #000000;
582
+ }
583
+
584
+ .CHChildNote .CHEntry {
585
+ font-style: italic;
586
+ font-size: 8pt;
587
+ }
588
+
589
+ .CHIndent {
590
+ margin-left: 3ex;
591
+ }
592
+
593
+ .CHEntry a:link,
594
+ .CHEntry a:visited,
595
+ .CHEntry a:hover {
596
+ color: #606060;
597
+ }
598
+ .CHEntry a:active {
599
+ color: #800000;
600
+ }
601
+
602
+
603
+
604
+
605
+
606
+ #Index {
607
+ background-color: #FFFFFF;
608
+ }
609
+
610
+ /* As opposed to .PopupSearchResultsPage #Index */
611
+ .IndexPage #Index,
612
+ .FramedIndexPage #Index,
613
+ .FramedSearchResultsPage #Index {
614
+ padding: 15px;
615
+ }
616
+
617
+ .IndexPage #Index {
618
+ border-width: 0 0 1px 1px;
619
+ border-style: solid;
620
+ border-color: #000000;
621
+ font-size: 9pt; /* To make 27ex match the menu's 27ex. */
622
+ margin-left: 27ex;
623
+ }
624
+
625
+
626
+ .IPageTitle {
627
+ font-size: 20pt; font-weight: bold;
628
+ color: #FFFFFF; background-color: #7070C0;
629
+ padding: 10px 15px 10px 15px;
630
+ border-width: 0 0 3px 0; border-color: #000000; border-style: solid;
631
+ margin: -15px -15px 0 -15px }
632
+
633
+ .FramedSearchResultsPage .IPageTitle {
634
+ margin-bottom: 15px;
635
+ }
636
+
637
+ .INavigationBar {
638
+ font-size: 10pt;
639
+ text-align: center;
640
+ background-color: #FFFFF0;
641
+ padding: 5px;
642
+ border-bottom: solid 1px black;
643
+ margin: 0 -15px 15px -15px;
644
+ }
645
+
646
+ .INavigationBar a {
647
+ font-weight: bold }
648
+
649
+ .IHeading {
650
+ font-size: 16pt; font-weight: bold;
651
+ padding: 2.5em 0 .5em 0;
652
+ text-align: center;
653
+ width: 3.5ex;
654
+ }
655
+ #IFirstHeading {
656
+ padding-top: 0;
657
+ }
658
+
659
+ .IEntry {
660
+ font-size: 10pt;
661
+ padding-left: 1ex;
662
+ }
663
+ .PopupSearchResultsPage .IEntry {
664
+ font-size: 8pt;
665
+ padding: 1px 5px;
666
+ }
667
+ .PopupSearchResultsPage .Opera9 .IEntry,
668
+ .FramedSearchResultsPage .Opera9 .IEntry {
669
+ text-align: left;
670
+ }
671
+ .FramedSearchResultsPage .IEntry {
672
+ padding: 0;
673
+ }
674
+
675
+ .ISubIndex {
676
+ padding-left: 3ex; padding-bottom: .5em }
677
+ .PopupSearchResultsPage .ISubIndex {
678
+ display: none;
679
+ }
680
+
681
+ /* While it may cause some entries to look like links when they aren't, I found it's much easier to read the
682
+ index if everything's the same color. */
683
+ .ISymbol {
684
+ font-weight: bold; color: #900000 }
685
+
686
+ .IndexPage .ISymbolPrefix,
687
+ .FramedIndexPage .ISymbolPrefix {
688
+ font-size: 10pt;
689
+ text-align: right;
690
+ color: #C47C7C;
691
+ background-color: #F8F8F8;
692
+ border-right: 3px solid #E0E0E0;
693
+ border-left: 1px solid #E0E0E0;
694
+ padding: 0 1px 0 2px;
695
+ }
696
+ .PopupSearchResultsPage .ISymbolPrefix,
697
+ .FramedSearchResultsPage .ISymbolPrefix {
698
+ color: #900000;
699
+ }
700
+ .PopupSearchResultsPage .ISymbolPrefix {
701
+ font-size: 8pt;
702
+ }
703
+
704
+ .IndexPage #IFirstSymbolPrefix,
705
+ .FramedIndexPage #IFirstSymbolPrefix {
706
+ border-top: 1px solid #E0E0E0;
707
+ }
708
+ .IndexPage #ILastSymbolPrefix,
709
+ .FramedIndexPage #ILastSymbolPrefix {
710
+ border-bottom: 1px solid #E0E0E0;
711
+ }
712
+ .IndexPage #IOnlySymbolPrefix,
713
+ .FramedIndexPage #IOnlySymbolPrefix {
714
+ border-top: 1px solid #E0E0E0;
715
+ border-bottom: 1px solid #E0E0E0;
716
+ }
717
+
718
+ a.IParent,
719
+ a.IFile {
720
+ display: block;
721
+ }
722
+
723
+ .PopupSearchResultsPage .SRStatus {
724
+ padding: 2px 5px;
725
+ font-size: 8pt;
726
+ font-style: italic;
727
+ }
728
+ .FramedSearchResultsPage .SRStatus {
729
+ font-size: 10pt;
730
+ font-style: italic;
731
+ }
732
+
733
+ .SRResult {
734
+ display: none;
735
+ }
736
+
737
+
738
+
739
+ #Footer {
740
+ font-size: 8pt;
741
+ color: #989898;
742
+ text-align: right;
743
+ }
744
+
745
+ #Footer p {
746
+ text-indent: 0;
747
+ margin-bottom: .5em;
748
+ }
749
+
750
+ .ContentPage #Footer,
751
+ .IndexPage #Footer {
752
+ text-align: right;
753
+ margin: 2px;
754
+ }
755
+
756
+ .FramedMenuPage #Footer {
757
+ text-align: center;
758
+ margin: 5em 10px 10px 10px;
759
+ padding-top: 1em;
760
+ border-top: 1px solid #C8C8C8;
761
+ }
762
+
763
+ #Footer a:link,
764
+ #Footer a:hover,
765
+ #Footer a:visited { color: #989898 }
766
+ #Footer a:active { color: #A00000 }
767
+