1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/* vim:expandtab:shiftwidth=4:tabstop=4:
4
/* ***** BEGIN LICENSE BLOCK *****
5
* Version: NPL 1.1/GPL 2.0/LGPL 2.1
8
* The contents of this file are subject to the Mozilla Public
9
* License Version 1.1 (the "License"); you may not use this file
10
* except in compliance with the License. You may obtain a copy of
11
* the License at http://www.mozilla.org/MPL/
13
* Software distributed under the License is distributed on an "AS
14
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
15
* implied. See the License for the specific language governing
16
* rights and limitations under the License.
18
* The Original Code is mozilla.org code.
20
* The Initial Developer of the Original Code is Sun Microsystems, Inc.
21
* Portions created by Sun Microsystems are Copyright (C) 2003 Sun
22
* Microsystems, Inc. All Rights Reserved.
24
* Original Author: Bolian Yin (bolian.yin@sun.com)
28
* Alternatively, the contents of this file may be used under the terms of
29
* either the GNU General Public License Version 2 or later (the "GPL"), or
30
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
31
* in which case the provisions of the GPL or the LGPL are applicable instead
32
* of those above. If you wish to allow use of your version of this file only
33
* under the terms of either the GPL or the LGPL, and not to allow others to
34
* use your version of this file under the terms of the NPL, indicate your
35
* decision by deleting the provisions above and replace them with the notice
36
* and other provisions required by the GPL or the LGPL. If you do not delete
37
* the provisions above, a recipient may use your version of this file under
38
* the terms of any one of the NPL, the GPL or the LGPL.
40
* ***** END LICENSE BLOCK ***** */
42
#ifndef __SYSTEM_PREF_SERVICE_H__
43
#define __SYSTEM_PREF_SERVICE_H__
46
#include "nsVoidArray.h"
47
#include "nsWeakPtr.h"
48
#include "nsIPrefBranch.h"
49
#include "nsIPrefBranchInternal.h"
53
////////////////////////////////////////////////////////////////////////////
54
// nsSystemPrefService provide a interface for read system prefs. It is
55
// platform related. This directory (system-pref/gconf) impls it for gconf
56
// on the gconf platform.
57
////////////////////////////////////////////////////////////////////////////
59
class nsSystemPrefService : public nsIPrefBranchInternal
64
NS_DECL_NSIPREFBRANCHINTERNAL
66
nsSystemPrefService();
67
virtual ~nsSystemPrefService();
70
void OnPrefChange(PRUint32 aPrefAtom, void *aData);
77
nsAutoVoidArray *mObservers;
80
#define NS_SYSTEMPREF_SERVICE_CID \
81
{ /* {94f1de09-d0e5-4ca8-94c2-98b049316b7f} */ \
85
{ 0x94, 0xc2, 0x98, 0xb0, 0x49, 0x31, 0x6b, 0x7f } \
88
#define NS_SYSTEMPREF_SERVICE_CONTRACTID "@mozilla.org/system-preference-service;1"
89
#define NS_SYSTEMPREF_SERVICE_CLASSNAME "System Preferences Service"
91
#define NS_SYSTEMPREF_PREFCHANGE_TOPIC_ID "nsSystemPrefService:pref-changed"
93
#endif /* __SYSTEM_PREF_SERVICE_H__ */