00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00026
00027
00028
00029
00030 #include "gtkmozembed.h"
00031 #include "gtkmozembed_internal.h"
00032
00033 #include "nsCOMPtr.h"
00034 #include "nsNetUtil.h"
00035 #include "nsIPrefService.h"
00036 #include "nsIPrefBranch.h"
00037
00038
00039 gboolean mozilla_save_prefs(void)
00040 {
00041 nsCOMPtr < nsIPrefService > prefService = do_GetService(NS_PREFSERVICE_CONTRACTID);
00042 g_return_val_if_fail(prefService != nsnull, FALSE);
00043
00044 nsresult rv = prefService->SavePrefFile(nsnull);
00045
00046 return NS_SUCCEEDED(rv) ? TRUE : FALSE;
00047 }
00048
00052 gboolean mozilla_pref_set_char(const char *preferenceName, const char *newValue)
00053 {
00054 g_return_val_if_fail(preferenceName != NULL, FALSE);
00055
00056
00057
00058
00059 if (!newValue)
00060 return FALSE;
00061
00062 nsCOMPtr < nsIPrefService > prefService = do_GetService(NS_PREFSERVICE_CONTRACTID);
00063 nsCOMPtr < nsIPrefBranch > pref;
00064 prefService->GetBranch("", getter_AddRefs(pref));
00065
00066 if (pref)
00067 {
00068 nsresult rv = pref->SetCharPref(preferenceName, newValue);
00069
00070 return NS_SUCCEEDED(rv) ? TRUE : FALSE;
00071 }
00072
00073 return FALSE;
00074 }
00075
00079 gboolean mozilla_pref_set_boolean(const char *preferenceName, gboolean newValue)
00080 {
00081 g_return_val_if_fail(preferenceName != NULL, FALSE);
00082
00083 nsCOMPtr < nsIPrefService > prefService = do_GetService(NS_PREFSERVICE_CONTRACTID);
00084 nsCOMPtr < nsIPrefBranch > pref;
00085 prefService->GetBranch("", getter_AddRefs(pref));
00086
00087 if (pref)
00088 {
00089 nsresult rv = pref->SetBoolPref(preferenceName, newValue ? PR_TRUE : PR_FALSE);
00090
00091 return NS_SUCCEEDED(rv) ? TRUE : FALSE;
00092 }
00093
00094 return FALSE;
00095 }
00096
00100 gboolean mozilla_pref_set_int(const char *preferenceName, int newValue)
00101 {
00102 g_return_val_if_fail(preferenceName != NULL, FALSE);
00103
00104 nsCOMPtr < nsIPrefService > prefService = do_GetService(NS_PREFSERVICE_CONTRACTID);
00105 nsCOMPtr < nsIPrefBranch > pref;
00106 prefService->GetBranch("", getter_AddRefs(pref));
00107
00108 if (pref)
00109 {
00110 nsresult rv = pref->SetIntPref(preferenceName, newValue);
00111
00112 return NS_SUCCEEDED(rv) ? TRUE : FALSE;
00113 }
00114 return FALSE;
00115 }
00116
00120 gboolean mozilla_pref_get_boolean(const char *preferenceName, gboolean defaultValue)
00121 {
00122 PRBool value;
00123
00124 g_return_val_if_fail(preferenceName != NULL, FALSE);
00125
00126 nsCOMPtr < nsIPrefService > prefService = do_GetService(NS_PREFSERVICE_CONTRACTID);
00127 nsCOMPtr < nsIPrefBranch > pref;
00128 prefService->GetBranch("", getter_AddRefs(pref));
00129
00130 if (pref)
00131 {
00132 nsresult result;
00133
00134 result = pref->GetBoolPref(preferenceName, &value);
00135 if (NS_FAILED(result))
00136 return defaultValue;
00137 }
00138
00139 return (value == PR_TRUE) ? TRUE : FALSE;
00140 }
00141
00145 gint mozilla_pref_get_int(const char *preferenceName)
00146 {
00147 int value = -1;
00148
00149 g_return_val_if_fail(preferenceName != NULL, FALSE);
00150
00151 nsCOMPtr < nsIPrefService > prefService = do_GetService(NS_PREFSERVICE_CONTRACTID);
00152 nsCOMPtr < nsIPrefBranch > pref;
00153 prefService->GetBranch("", getter_AddRefs(pref));
00154
00155 if (pref)
00156 {
00157 pref->GetIntPref(preferenceName, &value);
00158 }
00159
00160 return value;
00161 }
00162
00166 gchar *mozilla_pref_get_char(const char *preferenceName)
00167 {
00168 gchar *value = NULL;
00169 gchar *result = NULL;
00170
00171 g_return_val_if_fail(preferenceName != NULL, FALSE);
00172 nsCOMPtr < nsIPrefService > prefService = do_GetService(NS_PREFSERVICE_CONTRACTID);
00173 nsCOMPtr < nsIPrefBranch > pref;
00174 prefService->GetBranch("", getter_AddRefs(pref));
00175
00176 if (pref)
00177 {
00178 pref->GetCharPref(preferenceName, &value);
00179 }
00180
00181 if (value)
00182 {
00183 result = g_strdup(value);
00184 nsMemory::Free(value);
00185 }
00186
00187 return result;
00188 }
00189
00193 gboolean mozilla_pref_remove(const char *preferenceName)
00194 {
00195 g_return_val_if_fail(preferenceName != NULL, FALSE);
00196
00197 nsCOMPtr < nsIPrefService > prefService = do_GetService(NS_PREFSERVICE_CONTRACTID);
00198 nsCOMPtr < nsIPrefBranch > pref;
00199 prefService->GetBranch("", getter_AddRefs(pref));
00200
00201 if (pref)
00202 {
00203 nsresult rv = pref->ClearUserPref(preferenceName);
00204
00205 return NS_SUCCEEDED(rv) ? TRUE : FALSE;
00206 }
00207
00208 return FALSE;
00209 }