File: lacros_app_window.cc

package info (click to toggle)
chromium 120.0.6099.224-1~deb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 6,112,112 kB
  • sloc: cpp: 32,907,025; ansic: 8,148,123; javascript: 3,679,536; python: 2,031,248; asm: 959,718; java: 804,675; xml: 617,256; sh: 111,417; objc: 100,835; perl: 88,443; cs: 53,032; makefile: 29,579; fortran: 24,137; php: 21,162; tcl: 21,147; sql: 20,809; ruby: 17,735; pascal: 12,864; yacc: 8,045; lisp: 3,388; lex: 1,323; ada: 727; awk: 329; jsp: 267; csh: 117; exp: 43; sed: 37
file content (49 lines) | stat: -rw-r--r-- 2,079 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/ui/ash/shelf/lacros_app_window.h"

#include "build/branding_buildflags.h"
#include "chrome/grit/chrome_unscaled_resources.h"
#include "extensions/common/constants.h"
#include "skia/ext/image_operations.h"
#include "ui/aura/client/aura_constants.h"
#include "ui/aura/window.h"
#include "ui/base/resource/resource_bundle.h"
#include "ui/gfx/image/image_skia.h"
#include "ui/gfx/image/image_skia_operations.h"
#include "ui/views/widget/native_widget_aura.h"

namespace {
constexpr int kWindowIconSizeDips = extension_misc::EXTENSION_ICON_BITTY;
constexpr int kAppIconSizeDips = extension_misc::EXTENSION_ICON_MEDIUM;
}  // namespace

LacrosAppWindow::LacrosAppWindow(const ash::ShelfID& shelf_id,
                                 views::Widget* widget)
    : AppWindowBase(shelf_id, widget) {
  // The lacros browser icon is known to ash, so don't bother with app service
  // icon loading.
  // TODO(jamescook): Replace the canary icon with the chrome icon. Use an icon
  // that is the correct size for the app icon instead of resizing in software.
#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
  const int icon_id = IDR_PRODUCT_LOGO_256_CANARY;
#else
  const int icon_id = IDR_PRODUCT_LOGO_256;
#endif
  gfx::ImageSkia icon =
      *ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed(icon_id);
  // The app icon is large.
  gfx::ImageSkia app_icon = gfx::ImageSkiaOperations::CreateResizedImage(
      icon, skia::ImageOperations::RESIZE_BEST,
      gfx::Size(kAppIconSizeDips, kAppIconSizeDips));
  // The window icon is small.
  gfx::ImageSkia window_icon = gfx::ImageSkiaOperations::CreateResizedImage(
      app_icon, skia::ImageOperations::RESIZE_BEST,
      gfx::Size(kWindowIconSizeDips, kWindowIconSizeDips));
  views::NativeWidgetAura::AssignIconToAuraWindow(GetNativeWindow(),
                                                  window_icon, app_icon);
}

LacrosAppWindow::~LacrosAppWindow() = default;