| Index: app/resource_bundle.h
|
| ===================================================================
|
| --- app/resource_bundle.h (revision 72000)
|
| +++ app/resource_bundle.h (working copy)
|
| @@ -1,277 +0,0 @@
|
| -// Copyright (c) 2010 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.
|
| -
|
| -#ifndef APP_RESOURCE_BUNDLE_H_
|
| -#define APP_RESOURCE_BUNDLE_H_
|
| -#pragma once
|
| -
|
| -#include "build/build_config.h"
|
| -
|
| -#if defined(OS_WIN)
|
| -#include <windows.h>
|
| -#endif
|
| -
|
| -#include <map>
|
| -#include <string>
|
| -#include <vector>
|
| -
|
| -#include "base/basictypes.h"
|
| -#include "base/file_path.h"
|
| -#include "base/ref_counted_memory.h"
|
| -#include "base/scoped_ptr.h"
|
| -#include "base/string16.h"
|
| -#include "gfx/native_widget_types.h"
|
| -
|
| -namespace app {
|
| -class DataPack;
|
| -}
|
| -namespace base {
|
| -class Lock;
|
| -}
|
| -namespace gfx {
|
| -class Font;
|
| -}
|
| -class SkBitmap;
|
| -typedef uint32 SkColor;
|
| -namespace base {
|
| -class StringPiece;
|
| -}
|
| -
|
| -#if defined(OS_MACOSX)
|
| -#ifdef __OBJC__
|
| -@class NSImage;
|
| -#else
|
| -class NSImage;
|
| -#endif // __OBJC__
|
| -#endif // defined(OS_MACOSX)
|
| -
|
| -#if defined(USE_X11)
|
| -typedef struct _GdkPixbuf GdkPixbuf;
|
| -#endif
|
| -
|
| -// ResourceBundle is a central facility to load images and other resources,
|
| -// such as theme graphics.
|
| -// Every resource is loaded only once.
|
| -class ResourceBundle {
|
| - public:
|
| - // An enumeration of the various font styles used throughout Chrome.
|
| - // The following holds true for the font sizes:
|
| - // Small <= Base <= Bold <= Medium <= MediumBold <= Large.
|
| - enum FontStyle {
|
| - SmallFont,
|
| - BaseFont,
|
| - BoldFont,
|
| - MediumFont,
|
| - // NOTE: depending upon the locale, this may *not* result in a bold font.
|
| - MediumBoldFont,
|
| - LargeFont,
|
| - };
|
| -
|
| - // Initialize the ResourceBundle for this process. Returns the language
|
| - // selected.
|
| - // NOTE: Mac ignores this and always loads up resources for the language
|
| - // defined by the Cocoa UI (ie-NSBundle does the langange work).
|
| - static std::string InitSharedInstance(const std::string& pref_locale);
|
| -
|
| - // Changes the locale for an already-initialized ResourceBundle. Future
|
| - // calls to get strings will return the strings for this new locale. This
|
| - // has no effect on existing or future image resources. This has no effect
|
| - // on existing or future image resources, and thus does not use the lock to
|
| - // guarantee thread-safety, since all string access is expected to happen on
|
| - // the UI thread.
|
| - static std::string ReloadSharedInstance(const std::string& pref_locale);
|
| -
|
| - // Registers additional data pack files with the global ResourceBundle. When
|
| - // looking for a DataResource, we will search these files after searching the
|
| - // main module. This method is not thread safe! You should call it
|
| - // immediately after calling InitSharedInstance.
|
| - static void AddDataPackToSharedInstance(const FilePath& path);
|
| -
|
| - // Delete the ResourceBundle for this process if it exists.
|
| - static void CleanupSharedInstance();
|
| -
|
| - // Return the global resource loader instance.
|
| - static ResourceBundle& GetSharedInstance();
|
| -
|
| - // Gets the bitmap with the specified resource_id from the current module
|
| - // data. Returns a pointer to a shared instance of the SkBitmap. This shared
|
| - // bitmap is owned by the resource bundle and should not be freed.
|
| - SkBitmap* GetBitmapNamed(int resource_id);
|
| -
|
| - // Loads the raw bytes of a data resource into |bytes|,
|
| - // without doing any processing or interpretation of
|
| - // the resource. Returns whether we successfully read the resource.
|
| - RefCountedStaticMemory* LoadDataResourceBytes(int resource_id) const;
|
| -
|
| - // Return the contents of a resource in a StringPiece given the resource id.
|
| - base::StringPiece GetRawDataResource(int resource_id) const;
|
| -
|
| - // Get a localized string given a message id. Returns an empty
|
| - // string if the message_id is not found.
|
| - string16 GetLocalizedString(int message_id);
|
| -
|
| - // Returns the font for the specified style.
|
| - const gfx::Font& GetFont(FontStyle style);
|
| -
|
| - // Returns the gfx::NativeImage, the native platform type, named resource.
|
| - // Internally, this makes use of GetNSImageNamed(), GetPixbufNamed(), or
|
| - // GetBitmapNamed() depending on the platform (see gfx/native_widget_types.h).
|
| - // NOTE: On Mac the returned resource is autoreleased.
|
| - gfx::NativeImage GetNativeImageNamed(int resource_id);
|
| -
|
| -#if defined(OS_WIN)
|
| - // Loads and returns an icon from the app module.
|
| - HICON LoadThemeIcon(int icon_id);
|
| -
|
| - // Loads and returns a cursor from the app module.
|
| - HCURSOR LoadCursor(int cursor_id);
|
| -#elif defined(OS_MACOSX)
|
| - private:
|
| - // Wrapper for GetBitmapNamed. Converts the bitmap to an autoreleased NSImage.
|
| - // TODO(rsesek): Move implementation into GetNativeImageNamed().
|
| - NSImage* GetNSImageNamed(int resource_id);
|
| - public:
|
| -#elif defined(USE_X11)
|
| - // Gets the GdkPixbuf with the specified resource_id from the main data pak
|
| - // file. Returns a pointer to a shared instance of the GdkPixbuf. This
|
| - // shared GdkPixbuf is owned by the resource bundle and should not be freed.
|
| - //
|
| - // The bitmap is assumed to exist. This function will log in release, and
|
| - // assert in debug mode if it does not. On failure, this will return a
|
| - // pointer to a shared empty placeholder bitmap so it will be visible what
|
| - // is missing.
|
| - GdkPixbuf* GetPixbufNamed(int resource_id);
|
| -
|
| - // As above, but flips it in RTL locales.
|
| - GdkPixbuf* GetRTLEnabledPixbufNamed(int resource_id);
|
| -
|
| - private:
|
| - // Shared implementation for the above two functions.
|
| - GdkPixbuf* GetPixbufImpl(int resource_id, bool rtl_enabled);
|
| -
|
| - public:
|
| -#endif
|
| -
|
| - // TODO(glen): Move these into theme provider (dialogs still depend on
|
| - // ResourceBundle).
|
| - static const SkColor frame_color;
|
| - static const SkColor frame_color_inactive;
|
| - static const SkColor frame_color_app_panel;
|
| - static const SkColor frame_color_app_panel_inactive;
|
| - static const SkColor frame_color_incognito;
|
| - static const SkColor frame_color_incognito_inactive;
|
| - static const SkColor toolbar_color;
|
| - static const SkColor toolbar_separator_color;
|
| -
|
| - private:
|
| - // Helper class for managing data packs.
|
| - class LoadedDataPack {
|
| - public:
|
| - explicit LoadedDataPack(const FilePath& path);
|
| - ~LoadedDataPack();
|
| - bool GetStringPiece(int resource_id, base::StringPiece* data) const;
|
| - RefCountedStaticMemory* GetStaticMemory(int resource_id) const;
|
| -
|
| - private:
|
| - void Load();
|
| -
|
| - scoped_ptr<app::DataPack> data_pack_;
|
| - FilePath path_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(LoadedDataPack);
|
| - };
|
| -
|
| - // We define a DataHandle typedef to abstract across how data is stored
|
| - // across platforms.
|
| -#if defined(OS_WIN)
|
| - // Windows stores resources in DLLs, which are managed by HINSTANCE.
|
| - typedef HINSTANCE DataHandle;
|
| -#elif defined(USE_BASE_DATA_PACK)
|
| - // Linux uses base::DataPack.
|
| - typedef app::DataPack* DataHandle;
|
| -#endif
|
| -
|
| - // Ctor/dtor are private, since we're a singleton.
|
| - ResourceBundle();
|
| - ~ResourceBundle();
|
| -
|
| - // Free skia_images_.
|
| - void FreeImages();
|
| -
|
| -#if defined(USE_X11)
|
| - // Free gdkPixbufs_.
|
| - void FreeGdkPixBufs();
|
| -#endif
|
| -
|
| - // Load the main resources.
|
| - void LoadCommonResources();
|
| -
|
| - // Try to load the locale specific strings from an external data module.
|
| - // Returns the locale that is loaded.
|
| - std::string LoadLocaleResources(const std::string& pref_locale);
|
| -
|
| - // Unload the locale specific strings and prepares to load new ones. See
|
| - // comments for ReloadSharedInstance().
|
| - void UnloadLocaleResources();
|
| -
|
| - // Initialize all the gfx::Font members if they haven't yet been initialized.
|
| - void LoadFontsIfNecessary();
|
| -
|
| -#if defined(USE_BASE_DATA_PACK)
|
| - // Returns the full pathname of the main resources file to load. May return
|
| - // an empty string if no main resources data files are found.
|
| - static FilePath GetResourcesFilePath();
|
| -#endif
|
| -
|
| - // Returns the full pathname of the locale file to load. May return an empty
|
| - // string if no locale data files are found.
|
| - static FilePath GetLocaleFilePath(const std::string& app_locale);
|
| -
|
| - // Returns a handle to bytes from the resource |module|, without doing any
|
| - // processing or interpretation of the resource. Returns whether we
|
| - // successfully read the resource. Caller does not own the data returned
|
| - // through this method and must not modify the data pointed to by |bytes|.
|
| - static RefCountedStaticMemory* LoadResourceBytes(DataHandle module,
|
| - int resource_id);
|
| -
|
| - // Creates and returns a new SkBitmap given the data file to look in and the
|
| - // resource id. It's up to the caller to free the returned bitmap when
|
| - // done.
|
| - static SkBitmap* LoadBitmap(DataHandle dll_inst, int resource_id);
|
| -
|
| - // Class level lock. Used to protect internal data structures that may be
|
| - // accessed from other threads (e.g., skia_images_).
|
| - scoped_ptr<base::Lock> lock_;
|
| -
|
| - // Handles for data sources.
|
| - DataHandle resources_data_;
|
| - DataHandle locale_resources_data_;
|
| -
|
| - // References to extra data packs loaded via AddDataPackToSharedInstance.
|
| - std::vector<LoadedDataPack*> data_packs_;
|
| -
|
| - // Cached images. The ResourceBundle caches all retrieved bitmaps and keeps
|
| - // ownership of the pointers.
|
| - typedef std::map<int, SkBitmap*> SkImageMap;
|
| - SkImageMap skia_images_;
|
| -#if defined(USE_X11)
|
| - typedef std::map<int, GdkPixbuf*> GdkPixbufMap;
|
| - GdkPixbufMap gdk_pixbufs_;
|
| -#endif
|
| -
|
| - // The various fonts used. Cached to avoid repeated GDI creation/destruction.
|
| - scoped_ptr<gfx::Font> base_font_;
|
| - scoped_ptr<gfx::Font> bold_font_;
|
| - scoped_ptr<gfx::Font> small_font_;
|
| - scoped_ptr<gfx::Font> medium_font_;
|
| - scoped_ptr<gfx::Font> medium_bold_font_;
|
| - scoped_ptr<gfx::Font> large_font_;
|
| - scoped_ptr<gfx::Font> web_font_;
|
| -
|
| - static ResourceBundle* g_shared_instance_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ResourceBundle);
|
| -};
|
| -
|
| -#endif // APP_RESOURCE_BUNDLE_H_
|
|
|