[email protected] | 330b214 | 2011-06-21 21:21:40 | [diff] [blame^] | 1 | // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
[email protected] | 98af9aca | 2010-03-14 19:06:30 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
[email protected] | 08397d5 | 2011-02-05 01:53:38 | [diff] [blame] | 5 | #include "ui/gfx/gfx_paths.h" |
[email protected] | 98af9aca | 2010-03-14 19:06:30 | [diff] [blame] | 6 | |
| 7 | #include "base/command_line.h" |
| 8 | #include "base/file_path.h" |
| 9 | #include "base/file_util.h" |
| 10 | #include "base/path_service.h" |
| 11 | |
| 12 | namespace gfx { |
| 13 | |
| 14 | bool PathProvider(int key, FilePath* result) { |
[email protected] | 98af9aca | 2010-03-14 19:06:30 | [diff] [blame] | 15 | FilePath cur; |
| 16 | switch (key) { |
| 17 | // The following are only valid in the development environment, and |
| 18 | // will fail if executed from an installed executable (because the |
| 19 | // generated path won't exist). |
| 20 | case DIR_TEST_DATA: |
| 21 | if (!PathService::Get(base::DIR_SOURCE_ROOT, &cur)) |
| 22 | return false; |
[email protected] | a2d748e | 2011-02-13 05:53:45 | [diff] [blame] | 23 | cur = cur.Append(FILE_PATH_LITERAL("ui")); |
[email protected] | 98af9aca | 2010-03-14 19:06:30 | [diff] [blame] | 24 | cur = cur.Append(FILE_PATH_LITERAL("gfx")); |
| 25 | cur = cur.Append(FILE_PATH_LITERAL("test")); |
| 26 | cur = cur.Append(FILE_PATH_LITERAL("data")); |
| 27 | if (!file_util::PathExists(cur)) // we don't want to create this |
| 28 | return false; |
| 29 | break; |
| 30 | default: |
| 31 | return false; |
| 32 | } |
| 33 | |
[email protected] | 98af9aca | 2010-03-14 19:06:30 | [diff] [blame] | 34 | *result = cur; |
| 35 | return true; |
| 36 | } |
| 37 | |
| 38 | // This cannot be done as a static initializer sadly since Visual Studio will |
| 39 | // eliminate this object file if there is no direct entry point into it. |
| 40 | void RegisterPathProvider() { |
| 41 | PathService::RegisterProvider(PathProvider, PATH_START, PATH_END); |
| 42 | } |
| 43 | |
| 44 | } // namespace gfx |