blob: 54fca6fa0c6494b60acd40c8337316be3f739e92 [file] [log] [blame]
// Copyright (c) 2012 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.
#include "ui/base/resource/resource_bundle_win.h"
#include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "base/path_service.h"
#include "base/strings/utf_string_conversions.h"
#include "skia/ext/image_operations.h"
#include "ui/base/layout.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/base/resource/resource_data_dll_win.h"
#include "ui/gfx/geometry/size_conversions.h"
#include "ui/gfx/image/image_skia.h"
#include "ui/gfx/image/image_skia_source.h"
namespace ui {
namespace {
HINSTANCE resources_data_dll;
HINSTANCE GetCurrentResourceDLL() {
if (resources_data_dll)
return resources_data_dll;
return GetModuleHandle(NULL);
}
} // namespace
void ResourceBundle::LoadCommonResources() {
// As a convenience, add the current resource module as a data packs.
data_packs_.push_back(
std::make_unique<ResourceDataDLL>(GetCurrentResourceDLL()));
LoadChromeResources();
}
gfx::Image& ResourceBundle::GetNativeImageNamed(int resource_id) {
// Windows only uses SkBitmap for gfx::Image, so this is the same as
// GetImageNamed.
return GetImageNamed(resource_id);
}
void SetResourcesDataDLL(HINSTANCE handle) {
resources_data_dll = handle;
}
HICON LoadThemeIconFromResourcesDataDLL(int icon_id) {
return ::LoadIcon(GetCurrentResourceDLL(), MAKEINTRESOURCE(icon_id));
}
} // namespace ui;