Index: base/xdg_util.h |
diff --git a/base/xdg_util.h b/base/xdg_util.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b69ce517d789a8b62f0946b4a29423f611caae64 |
--- /dev/null |
+++ b/base/xdg_util.h |
@@ -0,0 +1,56 @@ |
+// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef BASE_XDG_UTIL_H_ |
+#define BASE_XDG_UTIL_H_ |
+ |
+// XDG refers to http://en.wikipedia.org/wiki/Freedesktop.org . |
willchan no longer on Chromium
2010/04/22 23:01:18
Why's there a space before the period?
Evan Martin
2010/04/22 23:17:40
Because it's not part of the URL
willchan no longer on Chromium
2010/04/22 23:26:24
Interesting, I haven't seen this done before. Doi
|
+// This file contains utilities found across free desktop |
+// environments. |
+ |
+class FilePath; |
+ |
+namespace base { |
+ |
+class EnvVarGetter; |
+ |
+// Utility function for getting XDG directories. |
+// |env_name| is the name of an environment variable that we want to use to get |
+// a directory path. |fallback_dir| is the directory relative to $HOME that we |
+// use if |env_name| cannot be found or is empty. |fallback_dir| may be NULL. |
+// Examples of |env_name| are XDG_CONFIG_HOME and XDG_DATA_HOME. |
+FilePath GetXDGDirectory(EnvVarGetter* env, const char* env_name, |
+ const char* fallback_dir); |
+ |
+// Wrapper around xdg_user_dir_lookup() from src/base/third_party/xdg-user-dirs |
+// This looks up "well known" user directories like the desktop and music |
+// folder. Examples of |dir_name| are DESKTOP and MUSIC. |
+FilePath GetXDGUserDirectory(EnvVarGetter* env, const char* dir_name, |
+ const char* fallback_dir); |
+ |
+enum DesktopEnvironment { |
+ DESKTOP_ENVIRONMENT_OTHER, |
+ DESKTOP_ENVIRONMENT_GNOME, |
+ // KDE3 and KDE4 are sufficiently different that we count |
+ // them as two different desktop environments here. |
+ DESKTOP_ENVIRONMENT_KDE3, |
+ DESKTOP_ENVIRONMENT_KDE4, |
+ DESKTOP_ENVIRONMENT_XFCE, |
+}; |
+ |
+// Return an entry from the DesktopEnvironment enum with a best guess |
+// of which desktop environment we're using. We use this to know when |
+// to attempt to use preferences from the desktop environment -- |
+// proxy settings, password manager, etc. |
+DesktopEnvironment GetDesktopEnvironment(EnvVarGetter* env); |
+ |
+// Return a string representation of the given desktop environment. |
+// May return NULL in the case of DESKTOP_ENVIRONMENT_OTHER. |
+const char* GetDesktopEnvironmentName(DesktopEnvironment env); |
+// Convenience wrapper that calls GetDesktopEnvironment() first. |
+const char* GetDesktopEnvironmentName(EnvVarGetter* env); |
+ |
+} // namespace base |
+ |
+#endif // BASE_XDG_UTIL_H_ |