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 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
// Copyright 2024 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/views/webauthn/authenticator_gpm_account_info_view.h"
#include <memory>
#include <utility>
#include "chrome/browser/ui/views/webauthn/authenticator_request_sheet_view.h"
#include "chrome/browser/ui/webauthn/sheet_models.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/base/models/image_model.h"
#include "ui/gfx/text_constants.h"
#include "ui/views/controls/image_view.h"
#include "ui/views/controls/label.h"
#include "ui/views/layout/box_layout.h"
#include "ui/views/layout/box_layout_view.h"
#include "ui/views/style/typography.h"
namespace {
constexpr int kBetweenChildSpacing = 12;
constexpr int kHorizontalInset = 16;
constexpr int kVerticalInset = 12;
} // namespace
BEGIN_METADATA(AuthenticatorGpmAccountInfoView)
END_METADATA
AuthenticatorGpmAccountInfoView::AuthenticatorGpmAccountInfoView(
AuthenticatorGpmPinSheetModelBase* sheet_model) {
views::BoxLayout* layout =
SetLayoutManager(std::make_unique<views::BoxLayout>(
views::BoxLayout::Orientation::kHorizontal));
layout->set_main_axis_alignment(views::BoxLayout::MainAxisAlignment::kStart);
layout->set_cross_axis_alignment(
views::BoxLayout::CrossAxisAlignment::kCenter);
layout->set_inside_border_insets(
gfx::Insets::VH(kVerticalInset, kHorizontalInset));
layout->set_between_child_spacing(kBetweenChildSpacing);
auto image_view = std::make_unique<views::ImageView>();
image_view->SetImage(
ui::ImageModel::FromImage(sheet_model->GetGpmAccountImage()));
AddChildView(std::move(image_view));
auto label_column = std::make_unique<views::BoxLayoutView>();
label_column->SetOrientation(views::BoxLayout::Orientation::kVertical);
label_column->SetCrossAxisAlignment(
views::BoxLayout::CrossAxisAlignment::kStart);
label_column->SetMainAxisAlignment(
views::BoxLayout::MainAxisAlignment::kStart);
label_column->AddChildView(std::make_unique<views::Label>(
sheet_model->GetGpmAccountName(), views::style::CONTEXT_LABEL,
views::style::STYLE_BODY_4_BOLD));
auto* email_label = label_column->AddChildView(
std::make_unique<views::Label>(sheet_model->GetGpmAccountEmail()));
email_label->SetElideBehavior(gfx::ElideBehavior::ELIDE_EMAIL);
AddChildView(std::move(label_column));
}
AuthenticatorGpmAccountInfoView::~AuthenticatorGpmAccountInfoView() = default;
|