| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 #include "app/resource_bundle.h" | 5 #include "app/resource_bundle.h" |
| 6 | 6 |
| 7 #include <atlbase.h> | 7 #include <atlbase.h> |
| 8 | 8 |
| 9 #include "app/app_paths.h" | 9 #include "app/app_paths.h" |
| 10 #include "app/gfx/font.h" | 10 #include "app/gfx/font.h" |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 FilePath theme_data_path; | 78 FilePath theme_data_path; |
| 79 PathService::Get(app::DIR_THEMES, &theme_data_path); | 79 PathService::Get(app::DIR_THEMES, &theme_data_path); |
| 80 theme_data_path = theme_data_path.AppendASCII("default.dll"); | 80 theme_data_path = theme_data_path.AppendASCII("default.dll"); |
| 81 | 81 |
| 82 // The dll should only have resources, not executable code. | 82 // The dll should only have resources, not executable code. |
| 83 theme_data_ = LoadLibraryEx(theme_data_path.value().c_str(), NULL, | 83 theme_data_ = LoadLibraryEx(theme_data_path.value().c_str(), NULL, |
| 84 GetDataDllLoadFlags()); | 84 GetDataDllLoadFlags()); |
| 85 DCHECK(theme_data_ != NULL) << "unable to load " << theme_data_path.value(); | 85 DCHECK(theme_data_ != NULL) << "unable to load " << theme_data_path.value(); |
| 86 } | 86 } |
| 87 | 87 |
| 88 /* static */ | 88 // static |
| 89 bool ResourceBundle::LoadResourceBytes( | 89 RefCountedStaticMemory* ResourceBundle::LoadResourceBytes( |
| 90 DataHandle module, | 90 DataHandle module, int resource_id) { |
| 91 int resource_id, | |
| 92 std::vector<unsigned char>* bytes) { | |
| 93 void* data_ptr; | 91 void* data_ptr; |
| 94 size_t data_size; | 92 size_t data_size; |
| 95 if (base::GetDataResourceFromModule(module, resource_id, &data_ptr, | 93 if (base::GetDataResourceFromModule(module, resource_id, &data_ptr, |
| 96 &data_size)) { | 94 &data_size)) { |
| 97 bytes->resize(data_size); | 95 return new RefCountedStaticMemory( |
| 98 memcpy(&(bytes->front()), data_ptr, data_size); | 96 reinterpret_cast<const unsigned char*>(data_ptr), data_size); |
| 99 return true; | |
| 100 } else { | 97 } else { |
| 101 return false; | 98 return NULL; |
| 102 } | 99 } |
| 103 } | 100 } |
| 104 | 101 |
| 105 HICON ResourceBundle::LoadThemeIcon(int icon_id) { | 102 HICON ResourceBundle::LoadThemeIcon(int icon_id) { |
| 106 return ::LoadIcon(theme_data_, MAKEINTRESOURCE(icon_id)); | 103 return ::LoadIcon(theme_data_, MAKEINTRESOURCE(icon_id)); |
| 107 } | 104 } |
| 108 | 105 |
| 109 base::StringPiece ResourceBundle::GetRawDataResource(int resource_id) { | 106 base::StringPiece ResourceBundle::GetRawDataResource(int resource_id) { |
| 110 void* data_ptr; | 107 void* data_ptr; |
| 111 size_t data_size; | 108 size_t data_size; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 message_id); | 149 message_id); |
| 153 if (!image) { | 150 if (!image) { |
| 154 StackTrace().PrintBacktrace(); // See http://crbug.com/21925. | 151 StackTrace().PrintBacktrace(); // See http://crbug.com/21925. |
| 155 NOTREACHED() << "unable to find resource: " << message_id; | 152 NOTREACHED() << "unable to find resource: " << message_id; |
| 156 return std::wstring(); | 153 return std::wstring(); |
| 157 } | 154 } |
| 158 } | 155 } |
| 159 // Copy into a string16 and return. | 156 // Copy into a string16 and return. |
| 160 return string16(image->achString, image->nLength); | 157 return string16(image->achString, image->nLength); |
| 161 } | 158 } |
| OLD | NEW |