blob: 64b26e7a7966dbba2e6565a7064ead44f25eb362 [file] [log] [blame]
// Copyright 2022 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/passwords/views_utils.h"
#include "chrome/browser/ui/passwords/ui_utils.h"
#include "chrome/browser/ui/views/chrome_typography.h"
#include "components/password_manager/core/browser/password_form.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/views/controls/styled_label.h"
std::unique_ptr<views::StyledLabel> CreateGooglePasswordManagerLabel(
int text_message_id,
int link_message_id,
const std::u16string& email,
base::RepeatingClosure open_link_closure) {
const std::u16string link = l10n_util::GetStringUTF16(link_message_id);
std::vector<size_t> offsets;
std::u16string text =
l10n_util::GetStringFUTF16(text_message_id, link, email, &offsets);
auto label = std::make_unique<views::StyledLabel>();
label->SetText(text);
label->SetTextContext(CONTEXT_DIALOG_BODY_TEXT_SMALL);
label->SetDefaultTextStyle(views::style::STYLE_SECONDARY);
label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
label->AddStyleRange(
gfx::Range(offsets.at(0), offsets.at(0) + link.length()),
views::StyledLabel::RangeStyleInfo::CreateForLink(open_link_closure));
return label;
}
std::unique_ptr<views::StyledLabel> CreateGooglePasswordManagerLabel(
int text_message_id,
int link_message_id,
base::RepeatingClosure open_link_closure) {
const std::u16string link = l10n_util::GetStringUTF16(link_message_id);
size_t link_offset;
std::u16string text =
l10n_util::GetStringFUTF16(text_message_id, link, &link_offset);
auto label = std::make_unique<views::StyledLabel>();
label->SetText(text);
label->SetTextContext(CONTEXT_DIALOG_BODY_TEXT_SMALL);
label->SetDefaultTextStyle(views::style::STYLE_SECONDARY);
label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
label->AddStyleRange(
gfx::Range(link_offset, link_offset + link.length()),
views::StyledLabel::RangeStyleInfo::CreateForLink(open_link_closure));
return label;
}
std::unique_ptr<views::Label> CreateUsernameLabel(
const password_manager::PasswordForm& form) {
auto label = std::make_unique<views::Label>(
GetDisplayUsername(form), views::style::CONTEXT_DIALOG_BODY_TEXT,
views::style::STYLE_SECONDARY);
label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
return label;
}
std::unique_ptr<views::Label> CreatePasswordLabel(
const password_manager::PasswordForm& form) {
std::unique_ptr<views::Label> label = std::make_unique<views::Label>(
GetDisplayPassword(form), views::style::CONTEXT_DIALOG_BODY_TEXT);
if (form.federation_origin.opaque()) {
label->SetTextStyle(STYLE_SECONDARY_MONOSPACED);
label->SetObscured(true);
label->SetElideBehavior(gfx::TRUNCATE);
} else {
label->SetTextStyle(views::style::STYLE_SECONDARY);
label->SetElideBehavior(gfx::ELIDE_HEAD);
}
label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
return label;
}