1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "ui/base/resource/resource_bundle.h"
6
7#include "base/command_line.h"
8#include "base/logging.h"
9#include "base/path_service.h"
10#include "ui/base/layout.h"
11#include "ui/base/resource/resource_handle.h"
12#include "ui/base/ui_base_paths.h"
13#include "ui/base/ui_base_switches.h"
14#include "ui/gfx/display.h"
15#include "ui/gfx/image/image.h"
16
17namespace {
18
19base::FilePath GetResourcesPakFilePath(const std::string& pak_name) {
20  base::FilePath path;
21  if (PathService::Get(base::DIR_MODULE, &path))
22    return path.AppendASCII(pak_name.c_str());
23
24  // Return just the name of the pack file.
25  return base::FilePath(pak_name.c_str());
26}
27
28}  // namespace
29
30namespace ui {
31
32void ResourceBundle::LoadCommonResources() {
33  // Always load the 1x data pack first as the 2x data pack contains both 1x and
34  // 2x images. The 1x data pack only has 1x images, thus passes in an accurate
35  // scale factor to gfx::ImageSkia::AddRepresentation.
36  AddDataPackFromPath(GetResourcesPakFilePath(
37      "chrome_100_percent.pak"), SCALE_FACTOR_100P);
38
39  if (IsScaleFactorSupported(SCALE_FACTOR_200P)) {
40    AddOptionalDataPackFromPath(GetResourcesPakFilePath(
41        "chrome_200_percent.pak"), SCALE_FACTOR_200P);
42  }
43}
44
45gfx::Image& ResourceBundle::GetNativeImageNamed(int resource_id, ImageRTL rtl) {
46  // Flipped image is not used on ChromeOS.
47  DCHECK_EQ(rtl, RTL_DISABLED);
48  return GetImageNamed(resource_id);
49}
50
51}  // namespace ui
52