OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef BASE_NIX_XDG_UTIL_H_ | 5 #ifndef BASE_NIX_XDG_UTIL_H_ |
6 #define BASE_NIX_XDG_UTIL_H_ | 6 #define BASE_NIX_XDG_UTIL_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 // XDG refers to http://en.wikipedia.org/wiki/Freedesktop.org . | 9 // XDG refers to http://en.wikipedia.org/wiki/Freedesktop.org . |
10 // This file contains utilities found across free desktop environments. | 10 // This file contains utilities found across free desktop environments. |
11 // | 11 // |
12 // TODO(brettw) this file should be in app/x11, but is currently used by | 12 // TODO(brettw) this file should be in app/x11, but is currently used by |
13 // net. We should have a net API to allow the embedder to specify the behavior | 13 // net. We should have a net API to allow the embedder to specify the behavior |
14 // that it uses XDG for, and then move this file. | 14 // that it uses XDG for, and then move this file. |
15 | 15 |
16 #include "base/base_api.h" | 16 #include "base/base_export.h" |
17 | 17 |
18 #ifdef nix | 18 #ifdef nix |
19 #error asdf | 19 #error asdf |
20 #endif | 20 #endif |
21 | 21 |
22 class FilePath; | 22 class FilePath; |
23 | 23 |
24 namespace base { | 24 namespace base { |
25 | 25 |
26 class Environment; | 26 class Environment; |
27 | 27 |
28 namespace nix { | 28 namespace nix { |
29 | 29 |
30 // Utility function for getting XDG directories. | 30 // Utility function for getting XDG directories. |
31 // |env_name| is the name of an environment variable that we want to use to get | 31 // |env_name| is the name of an environment variable that we want to use to get |
32 // a directory path. |fallback_dir| is the directory relative to $HOME that we | 32 // a directory path. |fallback_dir| is the directory relative to $HOME that we |
33 // use if |env_name| cannot be found or is empty. |fallback_dir| may be NULL. | 33 // use if |env_name| cannot be found or is empty. |fallback_dir| may be NULL. |
34 // Examples of |env_name| are XDG_CONFIG_HOME and XDG_DATA_HOME. | 34 // Examples of |env_name| are XDG_CONFIG_HOME and XDG_DATA_HOME. |
35 BASE_API FilePath GetXDGDirectory(Environment* env, const char* env_name, | 35 BASE_EXPORT FilePath GetXDGDirectory(Environment* env, const char* env_name, |
36 const char* fallback_dir); | 36 const char* fallback_dir); |
37 | 37 |
38 // Wrapper around xdg_user_dir_lookup() from src/base/third_party/xdg-user-dirs | 38 // Wrapper around xdg_user_dir_lookup() from src/base/third_party/xdg-user-dirs |
39 // This looks up "well known" user directories like the desktop and music | 39 // This looks up "well known" user directories like the desktop and music |
40 // folder. Examples of |dir_name| are DESKTOP and MUSIC. | 40 // folder. Examples of |dir_name| are DESKTOP and MUSIC. |
41 BASE_API FilePath GetXDGUserDirectory(Environment* env, const char* dir_name, | 41 BASE_EXPORT FilePath GetXDGUserDirectory(Environment* env, const char* dir_name, |
42 const char* fallback_dir); | 42 const char* fallback_dir); |
43 | 43 |
44 enum DesktopEnvironment { | 44 enum DesktopEnvironment { |
45 DESKTOP_ENVIRONMENT_OTHER, | 45 DESKTOP_ENVIRONMENT_OTHER, |
46 DESKTOP_ENVIRONMENT_GNOME, | 46 DESKTOP_ENVIRONMENT_GNOME, |
47 // KDE3 and KDE4 are sufficiently different that we count | 47 // KDE3 and KDE4 are sufficiently different that we count |
48 // them as two different desktop environments here. | 48 // them as two different desktop environments here. |
49 DESKTOP_ENVIRONMENT_KDE3, | 49 DESKTOP_ENVIRONMENT_KDE3, |
50 DESKTOP_ENVIRONMENT_KDE4, | 50 DESKTOP_ENVIRONMENT_KDE4, |
51 DESKTOP_ENVIRONMENT_XFCE, | 51 DESKTOP_ENVIRONMENT_XFCE, |
52 }; | 52 }; |
53 | 53 |
54 // Return an entry from the DesktopEnvironment enum with a best guess | 54 // Return an entry from the DesktopEnvironment enum with a best guess |
55 // of which desktop environment we're using. We use this to know when | 55 // of which desktop environment we're using. We use this to know when |
56 // to attempt to use preferences from the desktop environment -- | 56 // to attempt to use preferences from the desktop environment -- |
57 // proxy settings, password manager, etc. | 57 // proxy settings, password manager, etc. |
58 BASE_API DesktopEnvironment GetDesktopEnvironment(Environment* env); | 58 BASE_EXPORT DesktopEnvironment GetDesktopEnvironment(Environment* env); |
59 | 59 |
60 // Return a string representation of the given desktop environment. | 60 // Return a string representation of the given desktop environment. |
61 // May return NULL in the case of DESKTOP_ENVIRONMENT_OTHER. | 61 // May return NULL in the case of DESKTOP_ENVIRONMENT_OTHER. |
62 BASE_API const char* GetDesktopEnvironmentName(DesktopEnvironment env); | 62 BASE_EXPORT const char* GetDesktopEnvironmentName(DesktopEnvironment env); |
63 // Convenience wrapper that calls GetDesktopEnvironment() first. | 63 // Convenience wrapper that calls GetDesktopEnvironment() first. |
64 BASE_API const char* GetDesktopEnvironmentName(Environment* env); | 64 BASE_EXPORT const char* GetDesktopEnvironmentName(Environment* env); |
65 | 65 |
66 } // namespace nix | 66 } // namespace nix |
67 } // namespace base | 67 } // namespace base |
68 | 68 |
69 #endif // BASE_NIX_XDG_UTIL_H_ | 69 #endif // BASE_NIX_XDG_UTIL_H_ |
OLD | NEW |