From f8717db4e14979418e0c3cbc40c44b23b36cc4cc Mon Sep 17 00:00:00 2001 From: "bnesse%netscape.com" Date: Thu, 29 Mar 2001 00:46:49 +0000 Subject: [PATCH] Initial versions based on feedback of initial prefservice and prefbranch feedback. [Not Part of the Build] git-svn-id: svn://10.0.0.236/trunk@90712 18797224-902f-48f8-a5cc-f745e15eee43 --- .../libpref/public/nsIPrefBranchInternal.idl | 43 +++++++++++++++ .../libpref/public/nsIPrefLocalizedString.idl | 49 +++++++++++++++++ .../modules/libpref/src/nsPrefsFactory.cpp | 52 +++++++++++++++++++ 3 files changed, 144 insertions(+) create mode 100644 mozilla/modules/libpref/public/nsIPrefBranchInternal.idl create mode 100644 mozilla/modules/libpref/public/nsIPrefLocalizedString.idl create mode 100644 mozilla/modules/libpref/src/nsPrefsFactory.cpp diff --git a/mozilla/modules/libpref/public/nsIPrefBranchInternal.idl b/mozilla/modules/libpref/public/nsIPrefBranchInternal.idl new file mode 100644 index 00000000000..68baef24c5f --- /dev/null +++ b/mozilla/modules/libpref/public/nsIPrefBranchInternal.idl @@ -0,0 +1,43 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Mozilla Communicator client code. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * Alec Flett + * Brian Nesse + */ + +#include "nsIPrefBranch.idl" +#include "nsIObserver.idl" + +[scriptable, uuid(24ef9578-1dd2-11b2-b439-fcc3d2b4fa20)] +interface nsIPrefBranchInternal : nsIPrefBranch +{ + /* + * Listeners + */ + + /* + * The observers have their |Observe| methods called with + * ([the observer], "nsPref:changed", [pref name]). + */ + void addObserver(in string aDomain, in nsIObserver aObserver); + void removeObserver(in string aDomain, in nsIObserver aObserver); + +}; + diff --git a/mozilla/modules/libpref/public/nsIPrefLocalizedString.idl b/mozilla/modules/libpref/public/nsIPrefLocalizedString.idl new file mode 100644 index 00000000000..36917a285b6 --- /dev/null +++ b/mozilla/modules/libpref/public/nsIPrefLocalizedString.idl @@ -0,0 +1,49 @@ +/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Mozilla Communicator client code. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * Alec Flett + * Brian Nesse + */ + +#include "nsISupports.idl" + +/* + * nsIPrefLocalizedString is simply a wrapper for nsISupportsWString so we can have a unique + * identifier to distinguish between requests for normal wstrings and localized wstrings + */ + +[scriptable, uuid(ae419e24-1dd1-11b2-b39a-d3e5e7073802)] +interface nsIPrefLocalizedString : nsISupports +{ + attribute wstring data; + wstring toString(); + + // do not include space for null termination in |length|. It is handled + // internally. |length| is in characters, not in bytes. + void setDataWithLength(in unsigned long length, + [size_is(length)] in wstring data); +}; + +%{C++ + +#define NS_SUPPORTS_PREFLOCALIZEDSTRING_CONTRACTID "@mozilla.org/supports-preflocalizedstring;1" +#define NS_SUPPORTS_PREFLOCALIZEDSTRING_CLASSNAME "Supports PrefLocalizedString" + +%} diff --git a/mozilla/modules/libpref/src/nsPrefsFactory.cpp b/mozilla/modules/libpref/src/nsPrefsFactory.cpp new file mode 100644 index 00000000000..49cc5de37d4 --- /dev/null +++ b/mozilla/modules/libpref/src/nsPrefsFactory.cpp @@ -0,0 +1,52 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Mozilla Communicator client code. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * Brian Nesse + */ + +#include "nsIGenericFactory.h" +#include "nsPrefService.h" +#include "nsIPref.h" + +// remove this when nsPref goes away +extern "C" nsresult nsPrefConstructor(nsISupports *aOuter, REFNSIID aIID, void **aResult); + + +NS_GENERIC_FACTORY_CONSTRUCTOR_INIT(nsPrefService, Init) + +// The list of components we register +static nsModuleComponentInfo components[] = +{ + { + NS_PREFSERVICE_CLASSNAME, + NS_PREFSERVICE_CID, + NS_PREFSERVICE_CONTRACTID, + nsPrefServiceConstructor + }, + + { // remove this when nsPref goes away + NS_PREF_CLASSNAME, + NS_PREF_CID, + NS_PREF_CONTRACTID, + nsPrefConstructor + }, +}; + +NS_IMPL_NSGETMODULE("nsPrefModule", components);