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 #ifndef UI_BASE_RESOURCE_RESOURCE_HANDLE_H_ 6 #define UI_BASE_RESOURCE_RESOURCE_HANDLE_H_ 7 8 #include "base/basictypes.h" 9 #include "base/strings/string_piece.h" 10 #include "ui/base/layout.h" 11 #include "ui/base/ui_export.h" 12 13 namespace base { 14 class RefCountedStaticMemory; 15 } 16 17 namespace ui { 18 19 class UI_EXPORT ResourceHandle { 20 public: 21 // What type of encoding the text resources use. 22 enum TextEncodingType { 23 BINARY, 24 UTF8, 25 UTF16 26 }; 27 ~ResourceHandle()28 virtual ~ResourceHandle() {} 29 30 // Returns true if the DataPack contains a resource with id |resource_id|. 31 virtual bool HasResource(uint16 resource_id) const = 0; 32 33 // Get resource by id |resource_id|, filling in |data|. 34 // The data is owned by the DataPack object and should not be modified. 35 // Returns false if the resource id isn't found. 36 virtual bool GetStringPiece(uint16 resource_id, 37 base::StringPiece* data) const = 0; 38 39 // Like GetStringPiece(), but returns a reference to memory. 40 // Caller owns the returned object. 41 virtual base::RefCountedStaticMemory* GetStaticMemory( 42 uint16 resource_id) const = 0; 43 44 // Get the encoding type of text resources. 45 virtual TextEncodingType GetTextEncodingType() const = 0; 46 47 // The scale of images in this resource pack relative to images in the 1x 48 // resource pak. 49 virtual ScaleFactor GetScaleFactor() const = 0; 50 }; 51 52 } // namespace ui 53 54 #endif // UI_BASE_RESOURCE_RESOURCE_HANDLE_H_ 55