1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/widget/android/nsWidgetFactory.cpp Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,121 @@ 1.4 +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 1.5 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.6 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.7 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.8 + 1.9 +#include "mozilla/ModuleUtils.h" 1.10 + 1.11 +#include "nsCOMPtr.h" 1.12 +#include "nsWidgetsCID.h" 1.13 +#include "nsAppShell.h" 1.14 +#include "AndroidBridge.h" 1.15 + 1.16 +#include "nsWindow.h" 1.17 +#include "nsLookAndFeel.h" 1.18 +#include "nsAppShellSingleton.h" 1.19 +#include "nsScreenManagerAndroid.h" 1.20 + 1.21 +#include "nsIdleServiceAndroid.h" 1.22 +#include "nsClipboard.h" 1.23 +#include "nsClipboardHelper.h" 1.24 +#include "nsTransferable.h" 1.25 +#include "nsPrintOptionsAndroid.h" 1.26 +#include "nsPrintSession.h" 1.27 +#include "nsDeviceContextAndroid.h" 1.28 +#include "nsHTMLFormatConverter.h" 1.29 +#include "nsIMEPicker.h" 1.30 +#include "nsXULAppAPI.h" 1.31 + 1.32 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsWindow) 1.33 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsScreenManagerAndroid) 1.34 +NS_GENERIC_FACTORY_SINGLETON_CONSTRUCTOR(nsIdleServiceAndroid, nsIdleServiceAndroid::GetInstance) 1.35 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsTransferable) 1.36 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsClipboard) 1.37 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsClipboardHelper) 1.38 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPrintOptionsAndroid, Init) 1.39 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPrintSession, Init) 1.40 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsDeviceContextSpecAndroid) 1.41 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsHTMLFormatConverter) 1.42 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsIMEPicker) 1.43 +NS_GENERIC_FACTORY_CONSTRUCTOR(nsAndroidBridge) 1.44 + 1.45 +#include "GfxInfo.h" 1.46 +namespace mozilla { 1.47 +namespace widget { 1.48 +// This constructor should really be shared with all platforms. 1.49 +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(GfxInfo, Init) 1.50 +} 1.51 +} 1.52 + 1.53 +NS_DEFINE_NAMED_CID(NS_APPSHELL_CID); 1.54 +NS_DEFINE_NAMED_CID(NS_WINDOW_CID); 1.55 +NS_DEFINE_NAMED_CID(NS_CHILD_CID); 1.56 +NS_DEFINE_NAMED_CID(NS_SCREENMANAGER_CID); 1.57 +NS_DEFINE_NAMED_CID(NS_IDLE_SERVICE_CID); 1.58 +NS_DEFINE_NAMED_CID(NS_TRANSFERABLE_CID); 1.59 +NS_DEFINE_NAMED_CID(NS_CLIPBOARD_CID); 1.60 +NS_DEFINE_NAMED_CID(NS_CLIPBOARDHELPER_CID); 1.61 +NS_DEFINE_NAMED_CID(NS_PRINTSETTINGSSERVICE_CID); 1.62 +NS_DEFINE_NAMED_CID(NS_PRINTSESSION_CID); 1.63 +NS_DEFINE_NAMED_CID(NS_DEVICE_CONTEXT_SPEC_CID); 1.64 +NS_DEFINE_NAMED_CID(NS_HTMLFORMATCONVERTER_CID); 1.65 +NS_DEFINE_NAMED_CID(NS_IMEPICKER_CID); 1.66 +NS_DEFINE_NAMED_CID(NS_GFXINFO_CID); 1.67 +NS_DEFINE_NAMED_CID(NS_ANDROIDBRIDGE_CID); 1.68 + 1.69 +static const mozilla::Module::CIDEntry kWidgetCIDs[] = { 1.70 + { &kNS_WINDOW_CID, false, nullptr, nsWindowConstructor }, 1.71 + { &kNS_CHILD_CID, false, nullptr, nsWindowConstructor }, 1.72 + { &kNS_APPSHELL_CID, false, nullptr, nsAppShellConstructor }, 1.73 + { &kNS_SCREENMANAGER_CID, false, nullptr, nsScreenManagerAndroidConstructor }, 1.74 + { &kNS_IDLE_SERVICE_CID, false, nullptr, nsIdleServiceAndroidConstructor }, 1.75 + { &kNS_TRANSFERABLE_CID, false, nullptr, nsTransferableConstructor }, 1.76 + { &kNS_CLIPBOARD_CID, false, nullptr, nsClipboardConstructor }, 1.77 + { &kNS_CLIPBOARDHELPER_CID, false, nullptr, nsClipboardHelperConstructor }, 1.78 + { &kNS_PRINTSETTINGSSERVICE_CID, false, nullptr, nsPrintOptionsAndroidConstructor }, 1.79 + { &kNS_PRINTSESSION_CID, false, nullptr, nsPrintSessionConstructor }, 1.80 + { &kNS_DEVICE_CONTEXT_SPEC_CID, false, nullptr, nsDeviceContextSpecAndroidConstructor }, 1.81 + { &kNS_HTMLFORMATCONVERTER_CID, false, nullptr, nsHTMLFormatConverterConstructor }, 1.82 + { &kNS_IMEPICKER_CID, false, nullptr, nsIMEPickerConstructor }, 1.83 + { &kNS_GFXINFO_CID, false, nullptr, mozilla::widget::GfxInfoConstructor }, 1.84 + { &kNS_ANDROIDBRIDGE_CID, false, nullptr, nsAndroidBridgeConstructor }, 1.85 + { nullptr } 1.86 +}; 1.87 + 1.88 +static const mozilla::Module::ContractIDEntry kWidgetContracts[] = { 1.89 + { "@mozilla.org/widgets/window/android;1", &kNS_WINDOW_CID }, 1.90 + { "@mozilla.org/widgets/child_window/android;1", &kNS_CHILD_CID }, 1.91 + { "@mozilla.org/widget/appshell/android;1", &kNS_APPSHELL_CID }, 1.92 + { "@mozilla.org/gfx/screenmanager;1", &kNS_SCREENMANAGER_CID }, 1.93 + { "@mozilla.org/widget/idleservice;1", &kNS_IDLE_SERVICE_CID }, 1.94 + { "@mozilla.org/widget/transferable;1", &kNS_TRANSFERABLE_CID }, 1.95 + { "@mozilla.org/widget/clipboard;1", &kNS_CLIPBOARD_CID }, 1.96 + { "@mozilla.org/widget/clipboardhelper;1", &kNS_CLIPBOARDHELPER_CID }, 1.97 + { "@mozilla.org/gfx/printsettings-service;1", &kNS_PRINTSETTINGSSERVICE_CID }, 1.98 + { "@mozilla.org/gfx/printsession;1", &kNS_PRINTSESSION_CID }, 1.99 + { "@mozilla.org/gfx/devicecontextspec;1", &kNS_DEVICE_CONTEXT_SPEC_CID }, 1.100 + { "@mozilla.org/widget/htmlformatconverter;1", &kNS_HTMLFORMATCONVERTER_CID }, 1.101 + { "@mozilla.org/imepicker;1", &kNS_IMEPICKER_CID }, 1.102 + { "@mozilla.org/gfx/info;1", &kNS_GFXINFO_CID }, 1.103 + { "@mozilla.org/android/bridge;1", &kNS_ANDROIDBRIDGE_CID }, 1.104 + { nullptr } 1.105 +}; 1.106 + 1.107 +static void 1.108 +nsWidgetAndroidModuleDtor() 1.109 +{ 1.110 + nsLookAndFeel::Shutdown(); 1.111 + nsAppShellShutdown(); 1.112 +} 1.113 + 1.114 +static const mozilla::Module kWidgetModule = { 1.115 + mozilla::Module::kVersion, 1.116 + kWidgetCIDs, 1.117 + kWidgetContracts, 1.118 + nullptr, 1.119 + nullptr, 1.120 + nsAppShellInit, 1.121 + nsWidgetAndroidModuleDtor 1.122 +}; 1.123 + 1.124 +NSMODULE_DEFN(nsWidgetAndroidModule) = &kWidgetModule;