chromium/chrome/browser/shortcuts/shortcut_icon_generator.h

// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_SHORTCUTS_SHORTCUT_ICON_GENERATOR_H_
#define CHROME_BROWSER_SHORTCUTS_SHORTCUT_ICON_GENERATOR_H_

#include <string>

#include "third_party/skia/include/core/SkBitmap.h"
#include "url/gurl.h"

namespace shortcuts {

SquareSizePx;

// Generates a square container icon of |output_size| by drawing the given
// |icon_letter|.
SkBitmap GenerateBitmap(SquareSizePx output_size, char32_t icon_letter);

// Returns the first letter from |app_url| that will be painted on the generated
// icon.
char32_t GenerateIconLetterFromUrl(const GURL& app_url);

// Returns the first letter from |app_name| that will be painted on the
// generated icon.
char32_t GenerateIconLetterFromName(const std::u16string& app_name);

// Converts a codepoint (intended to be the first letter of an app name or URL)
// to a UTF-16 string.
//
// Public for testing.
std::u16string IconLetterToString(char32_t cp);

}  // namespace shortcuts

#endif  // CHROME_BROWSER_SHORTCUTS_SHORTCUT_ICON_GENERATOR_H_