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_WEBUI_WEB_UI_UTIL_H_ 6 #define UI_WEBUI_WEB_UI_UTIL_H_ 7 8 #include <string> 9 10 #include "base/strings/string_piece.h" 11 #include "base/values.h" 12 #include "ui/base/layout.h" 13 #include "ui/base/ui_export.h" 14 #include "ui/base/window_open_disposition.h" 15 16 class GURL; 17 class SkBitmap; 18 19 namespace webui { 20 21 // Convenience routine to convert SkBitmap object to data url 22 // so that it can be used in WebUI. 23 UI_EXPORT std::string GetBitmapDataUrl(const SkBitmap& bitmap); 24 25 // Convenience routine to get data url that corresponds to given 26 // resource_id as a bitmap. This function does not check if the 27 // resource for the |resource_id| is a bitmap, therefore it is the 28 // caller's responsibility to make sure the resource is indeed a 29 // bitmap. Returns empty string if a resource does not exist for given 30 // |resource_id|. 31 UI_EXPORT std::string GetBitmapDataUrlFromResource(int resource_id); 32 33 // Extracts a disposition from click event arguments. |args| should contain 34 // an integer button and booleans alt key, ctrl key, meta key, and shift key 35 // (in that order), starting at |start_index|. 36 UI_EXPORT WindowOpenDisposition GetDispositionFromClick( 37 const base::ListValue* args, 38 int start_index); 39 40 // Given a scale factor such as "1x", "2x" or "1.99x", sets |scale_factor| to 41 // the closest ScaleFactor enum value for this scale factor. If string can not 42 // be parsed, then |scale_factor| is set to SCALE_FACTOR_100P, and false is 43 // returned. 44 UI_EXPORT bool ParseScaleFactor(const base::StringPiece&identifier, 45 ui::ScaleFactor* scale_factor); 46 47 // Parses a URL containing some path @{scale}x. If it does not contain a scale 48 // factor then the default scale factor is returned. 49 UI_EXPORT void ParsePathAndScale(const GURL& url, 50 std::string* path, 51 ui::ScaleFactor* scale_factor); 52 53 // Helper function to set the font family, size, and text direction into the 54 // given dictionary. 55 UI_EXPORT void SetFontAndTextDirection( 56 base::DictionaryValue* localized_strings); 57 58 } // namespace webui 59 60 #endif // UI_WEBUI_WEB_UI_UTIL_H_ 61