diff options
Diffstat (limited to 'intl/locale/nsLocaleConstructors.h')
-rw-r--r-- | intl/locale/nsLocaleConstructors.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/intl/locale/nsLocaleConstructors.h b/intl/locale/nsLocaleConstructors.h new file mode 100644 index 000000000..2d2e57974 --- /dev/null +++ b/intl/locale/nsLocaleConstructors.h @@ -0,0 +1,79 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef nsLocaleConstructors_h__ +#define nsLocaleConstructors_h__ + +#include "nsCollationCID.h" +#include "nsDateTimeFormatCID.h" +#include "mozilla/ModuleUtils.h" +#include "nsILocaleService.h" +#include "nsIScriptableDateFormat.h" +#include "nsIServiceManager.h" +#include "nsLanguageAtomService.h" +#include "nsPlatformCharset.h" + +#if defined(XP_MACOSX) +#define USE_MAC_LOCALE +#endif + +#if defined(XP_UNIX) && !defined(XP_MACOSX) +#define USE_UNIX_LOCALE +#endif + +#ifdef XP_WIN +#include "windows/nsCollationWin.h" +#include "windows/nsDateTimeFormatWin.h" +#endif + +#ifdef USE_MAC_LOCALE +#include "mac/nsCollationMacUC.h" +#include "mac/nsDateTimeFormatMac.h" +#endif + +#ifdef USE_UNIX_LOCALE +#include "unix/nsCollationUnix.h" +#include "unix/nsDateTimeFormatUnix.h" +#endif + +#define NSLOCALE_MAKE_CTOR(ctor_, iface_, func_) \ +static nsresult \ +ctor_(nsISupports* aOuter, REFNSIID aIID, void** aResult) \ +{ \ + *aResult = nullptr; \ + if (aOuter) \ + return NS_ERROR_NO_AGGREGATION; \ + iface_* inst; \ + nsresult rv = func_(&inst); \ + if (NS_SUCCEEDED(rv)) { \ + rv = inst->QueryInterface(aIID, aResult); \ + NS_RELEASE(inst); \ + } \ + return rv; \ +} + + +NSLOCALE_MAKE_CTOR(CreateLocaleService, nsILocaleService, NS_NewLocaleService) +NS_GENERIC_FACTORY_CONSTRUCTOR(nsCollationFactory) +//NS_GENERIC_FACTORY_CONSTRUCTOR(nsScriptableDateTimeFormat) +NS_GENERIC_FACTORY_CONSTRUCTOR(nsLanguageAtomService) +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPlatformCharset, Init) + +#ifdef XP_WIN +NS_GENERIC_FACTORY_CONSTRUCTOR(nsCollationWin) +NS_GENERIC_FACTORY_CONSTRUCTOR(nsDateTimeFormatWin) +#endif + +#ifdef USE_UNIX_LOCALE +NS_GENERIC_FACTORY_CONSTRUCTOR(nsCollationUnix) +NS_GENERIC_FACTORY_CONSTRUCTOR(nsDateTimeFormatUnix) +#endif + +#ifdef USE_MAC_LOCALE +NS_GENERIC_FACTORY_CONSTRUCTOR(nsCollationMacUC) +NS_GENERIC_FACTORY_CONSTRUCTOR(nsDateTimeFormatMac) +#endif + +#endif |