Sound widget implementation
[mozilla-central.git] / toolkit / library / nsStaticXULComponents.cpp
blobdf5ef9440b6a3484ef1140ac21b8ff9d8089890c
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /* ***** BEGIN LICENSE BLOCK *****
3 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
5 * The contents of this file are subject to the Mozilla Public License Version
6 * 1.1 (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 * http://www.mozilla.org/MPL/
10 * Software distributed under the License is distributed on an "AS IS" basis,
11 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 * for the specific language governing rights and limitations under the
13 * License.
15 * The Original Code is mozilla.org code.
17 * The Initial Developer of the Original Code is
18 * Netscape Communications Corporation.
19 * Portions created by the Initial Developer are Copyright (C) 2001
20 * the Initial Developer. All Rights Reserved.
22 * Contributor(s):
23 * Christopher Seawood <cls@seawood.org>
24 * Chris Waterson <waterson@netscape.com>
25 * Benjamin Smedberg <bsmedberg@covad.net>
27 * Alternatively, the contents of this file may be used under the terms of
28 * either the GNU General Public License Version 2 or later (the "GPL"), or
29 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
30 * in which case the provisions of the GPL or the LGPL are applicable instead
31 * of those above. If you wish to allow use of your version of this file only
32 * under the terms of either the GPL or the LGPL, and not to allow others to
33 * use your version of this file under the terms of the MPL, indicate your
34 * decision by deleting the provisions above and replace them with the notice
35 * and other provisions required by the GPL or the LGPL. If you do not delete
36 * the provisions above, a recipient may use your version of this file under
37 * the terms of any one of the MPL, the GPL or the LGPL.
39 * ***** END LICENSE BLOCK ***** */
41 #define XPCOM_TRANSLATE_NSGM_ENTRY_POINT 1
43 #include "nsIGenericFactory.h"
44 #include "nsXPCOM.h"
45 #include "nsStaticComponents.h"
46 #include "nsMemory.h"
48 #define NSGETMODULE(_name) _name##_NSGetModule
50 #ifdef MOZ_AUTH_EXTENSION
51 #define AUTH_MODULE MODULE(nsAuthModule)
52 #else
53 #define AUTH_MODULE
54 #endif
56 #ifdef MOZ_PERMISSIONS
57 #define PERMISSIONS_MODULES \
58 MODULE(nsCookieModule) \
59 MODULE(nsPermissionsModule)
60 #else
61 #define PERMISSIONS_MODULES
62 #endif
64 #ifdef MOZ_UNIVERSALCHARDET
65 #define UNIVERSALCHARDET_MODULE MODULE(nsUniversalCharDetModule)
66 #else
67 #define UNIVERSALCHARDET_MODULE
68 #endif
70 #ifdef MOZ_MATHML
71 #define MATHML_MODULES MODULE(nsUCvMathModule)
72 #else
73 #define MATHML_MODULES
74 #endif
76 #ifdef MOZ_IPCD
77 #define IPC_MODULE MODULE(ipcdclient)
78 #else
79 #define IPC_MODULE
80 #endif
82 #define GFX_MODULES MODULE(nsGfxModule)
84 #ifdef XP_WIN
85 # define WIDGET_MODULES MODULE(nsWidgetModule)
86 #elif defined(XP_MACOSX)
87 # define WIDGET_MODULES MODULE(nsWidgetMacModule)
88 #elif defined(XP_BEOS)
89 # define WIDGET_MODULES MODULE(nsWidgetBeOSModule)
90 #elif defined(XP_OS2)
91 # define WIDGET_MODULES MODULE(nsWidgetOS2Module)
92 #elif defined(MOZ_WIDGET_GTK2)
93 # define WIDGET_MODULES MODULE(nsWidgetGtk2Module)
94 #elif defined(MOZ_WIDGET_PHOTON)
95 # define WIDGET_MODULES MODULE(nsWidgetPhModule)
96 #elif defined(MOZ_WIDGET_QT)
97 # define WIDGET_MODULES MODULE(nsWidgetQtModule)
98 #else
99 # error Unknown widget module.
100 #endif
102 #ifdef ICON_DECODER
103 #define ICON_MODULE MODULE(nsIconDecoderModule)
104 #else
105 #define ICON_MODULE
106 #endif
108 #ifdef MOZ_RDF
109 #define RDF_MODULE MODULE(nsRDFModule)
110 #else
111 #define RDF_MODULE
112 #endif
114 #ifdef OJI
115 #define OJI_MODULES MODULE(nsCJVMManagerModule)
116 #else
117 #define OJI_MODULES
118 #endif
120 #ifdef MOZ_PLAINTEXT_EDITOR_ONLY
121 #define COMPOSER_MODULE
122 #else
123 #define COMPOSER_MODULE MODULE(nsComposerModule)
124 #endif
126 #ifdef ACCESSIBILITY
127 #define ACCESS_MODULES MODULE(nsAccessibilityModule)
128 #else
129 #define ACCESS_MODULES
130 #endif
132 #ifdef MOZ_ENABLE_XREMOTE
133 #define XREMOTE_MODULES MODULE(RemoteServiceModule)
134 #else
135 #define XREMOTE_MODULES
136 #endif
138 #ifdef MOZ_ENABLE_GTK2
139 #ifdef MOZ_PREF_EXTENSIONS
140 #define SYSTEMPREF_MODULES MODULE(nsSystemPrefModule) \
141 MODULE(nsAutoConfigModule)
142 #else
143 #define SYSTEMPREF_MODULES
144 #endif
145 #else
146 #define SYSTEMPREF_MODULES
147 #endif
149 #ifdef MOZ_ENABLE_EXTENSION_LAYOUT_DEBUG
150 #define LAYOUT_DEBUG_MODULE MODULE(nsLayoutDebugModule)
151 #else
152 #define LAYOUT_DEBUG_MODULE
153 #endif
155 #ifdef MOZ_PLUGINS
156 #define PLUGINS_MODULES \
157 MODULE(nsPluginModule)
158 #else
159 #define PLUGINS_MODULES
160 #endif
162 #ifdef MOZ_WEBSERVICES
163 #define WEBSERVICES_MODULES \
164 MODULE(nsWebServicesModule)
165 #else
166 #define WEBSERVICES_MODULES
167 #endif
169 #ifdef MOZ_XPFE_COMPONENTS
170 #ifdef MOZ_RDF
171 #define RDFAPP_MODULES \
172 MODULE(nsXPIntlModule) \
173 MODULE(nsWindowDataSourceModule)
174 #else
175 #define RDFAPP_MODULES
176 #endif
177 #define APPLICATION_MODULES \
178 MODULE(application) \
179 MODULE(nsFindComponent)
180 #else
181 #define APPLICATION_MODULES
182 #define RDFAPP_MODULES
183 #endif
185 #ifdef MOZ_XPINSTALL
186 #define XPINSTALL_MODULES \
187 MODULE(nsSoftwareUpdate)
188 #else
189 #define XPINSTALL_MODULES
190 #endif
192 #ifdef MOZ_JSDEBUGGER
193 #define JSDEBUGGER_MODULES \
194 MODULE(JavaScript_Debugger)
195 #else
196 #define JSDEBUGGER_MODULES
197 #endif
199 #if defined(MOZ_FILEVIEW) && defined(MOZ_XPFE_COMPONENTS) && defined(MOZ_XUL)
200 #define FILEVIEW_MODULE MODULE(nsFileViewModule)
201 #else
202 #define FILEVIEW_MODULE
203 #endif
205 #ifdef MOZ_STORAGE
206 #define STORAGE_MODULE MODULE(mozStorageModule)
207 #else
208 #define STORAGE_MODULE
209 #endif
211 #ifdef MOZ_ZIPWRITER
212 #define ZIPWRITER_MODULE MODULE(ZipWriterModule)
213 #else
214 #define ZIPWRITER_MODULE
215 #endif
217 #ifdef MOZ_PLACES
218 #define PLACES_MODULES \
219 MODULE(nsPlacesModule)
220 #else
221 #if (defined(MOZ_MORK) && defined(MOZ_XUL))
222 #define PLACES_MODULES \
223 MODULE(nsMorkModule) \
224 MODULE(nsToolkitHistory)
225 #else
226 #define PLACES_MODULES
227 #endif
228 #endif
230 #ifdef MOZ_XUL
231 #define XULENABLED_MODULES \
232 MODULE(tkAutoCompleteModule) \
233 MODULE(satchel) \
234 MODULE(PKI)
235 #else
236 #define XULENABLED_MODULES
237 #endif
239 #ifdef MOZ_SPELLCHECK
240 #define SPELLCHECK_MODULE MODULE(mozSpellCheckerModule)
241 #else
242 #define SPELLCHECK_MODULE
243 #endif
245 #ifdef MOZ_XMLEXTRAS
246 #define XMLEXTRAS_MODULE MODULE(nsXMLExtrasModule)
247 #else
248 #define XMLEXTRAS_MODULE
249 #endif
251 #ifdef MOZ_XUL
252 #ifdef MOZ_ENABLE_GTK2
253 #define UNIXPROXY_MODULE MODULE(nsUnixProxyModule)
254 #endif
255 #if defined(MOZ_WIDGET_QT)
256 #define UNIXPROXY_MODULE MODULE(nsUnixProxyModule)
257 #endif
258 #endif
259 #ifndef UNIXPROXY_MODULE
260 #define UNIXPROXY_MODULE
261 #endif
263 #define XUL_MODULES \
264 MODULE(xpconnect) \
265 MATHML_MODULES \
266 MODULE(nsUConvModule) \
267 MODULE(nsI18nModule) \
268 MODULE(nsChardetModule) \
269 UNIVERSALCHARDET_MODULE \
270 MODULE(necko) \
271 PERMISSIONS_MODULES \
272 AUTH_MODULE \
273 IPC_MODULE \
274 MODULE(nsJarModule) \
275 ZIPWRITER_MODULE \
276 MODULE(nsPrefModule) \
277 MODULE(nsSecurityManagerModule) \
278 RDF_MODULE \
279 RDFAPP_MODULES \
280 MODULE(nsParserModule) \
281 GFX_MODULES \
282 WIDGET_MODULES \
283 MODULE(nsImageLib2Module) \
284 ICON_MODULE \
285 PLUGINS_MODULES \
286 MODULE(nsLayoutModule) \
287 WEBSERVICES_MODULES \
288 MODULE(docshell_provider) \
289 MODULE(embedcomponents) \
290 MODULE(Browser_Embedding_Module) \
291 OJI_MODULES \
292 ACCESS_MODULES \
293 MODULE(appshell) \
294 MODULE(nsTransactionManagerModule) \
295 COMPOSER_MODULE \
296 MODULE(nsChromeModule) \
297 APPLICATION_MODULES \
298 MODULE(Apprunner) \
299 MODULE(CommandLineModule) \
300 FILEVIEW_MODULE \
301 STORAGE_MODULE \
302 PLACES_MODULES \
303 XULENABLED_MODULES \
304 MODULE(nsToolkitCompsModule) \
305 XREMOTE_MODULES \
306 XPINSTALL_MODULES \
307 JSDEBUGGER_MODULES \
308 MODULE(BOOT) \
309 MODULE(NSS) \
310 SYSTEMPREF_MODULES \
311 SPELLCHECK_MODULE \
312 XMLEXTRAS_MODULE \
313 LAYOUT_DEBUG_MODULE \
314 UNIXPROXY_MODULE \
315 /* end of list */
317 #define MODULE(_name) \
318 NSGETMODULE_ENTRY_POINT(_name) (nsIComponentManager*, nsIFile*, nsIModule**);
320 XUL_MODULES
322 #undef MODULE
324 #define MODULE(_name) { #_name, NSGETMODULE(_name) },
327 * The nsStaticModuleInfo
329 static nsStaticModuleInfo const gStaticModuleInfo[] = {
330 XUL_MODULES
333 nsStaticModuleInfo const *const kPStaticModules = gStaticModuleInfo;
334 PRUint32 const kStaticModuleCount = NS_ARRAY_LENGTH(gStaticModuleInfo);