Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5028)

Unified Diff: chrome/browser/ui/views/password_generation_bubble_view.cc

Issue 538173002: [Password Generation] Remove old UI (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/ui/views/password_generation_bubble_view.h ('k') | chrome/chrome_browser_ui.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/views/password_generation_bubble_view.cc
diff --git a/chrome/browser/ui/views/password_generation_bubble_view.cc b/chrome/browser/ui/views/password_generation_bubble_view.cc
deleted file mode 100644
index d4285a20abdf5e9505615b36f7ffbe3be58f1905..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/views/password_generation_bubble_view.cc
+++ /dev/null
@@ -1,247 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// 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/password_generation_bubble_view.h"
-
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_list.h"
-#include "chrome/common/url_constants.h"
-#include "chrome/grit/generated_resources.h"
-#include "components/autofill/content/common/autofill_messages.h"
-#include "components/autofill/core/browser/password_generator.h"
-#include "components/autofill/core/common/password_generation_util.h"
-#include "components/password_manager/core/browser/password_manager.h"
-#include "content/public/browser/render_view_host.h"
-#include "grit/theme_resources.h"
-#include "third_party/skia/include/core/SkPaint.h"
-#include "ui/base/l10n/l10n_util.h"
-#include "ui/base/resource/resource_bundle.h"
-#include "ui/base/theme_provider.h"
-#include "ui/gfx/canvas.h"
-#include "ui/views/border.h"
-#include "ui/views/controls/button/image_button.h"
-#include "ui/views/controls/button/label_button.h"
-#include "ui/views/controls/label.h"
-#include "ui/views/controls/link.h"
-#include "ui/views/controls/textfield/textfield.h"
-#include "ui/views/layout/layout_constants.h"
-#include "url/gurl.h"
-
-namespace {
-// Constants for PasswordGenerationBubbleView.
-const int kBubbleMargin = 9;
-const int kButtonHorizontalSpacing = 4;
-const int kButtonWidth = 65;
-const int kDefaultTextFieldChars = 18;
-const int kTitleLabelVerticalOffset = -1;
-const int kVerticalPadding = 8;
-
-// Constants for Text fieldWrapper.
-const int kTextfieldHorizontalPadding = 2;
-const int kTextfieldVerticalPadding = 3;
-const int kWrapperBorderSize = 1;
-
-// This class handles layout so that it looks like a Textfield and ImageButton
-// are part of one logical textfield with the button on the right side of the
-// field. It also assumes that the textfield is already sized appropriately
-// and will alter the image size to fit.
-class TextfieldWrapper : public views::View {
- public:
- TextfieldWrapper(views::Textfield* textfield,
- views::ImageButton* image_button);
- virtual ~TextfieldWrapper();
-
- virtual void Layout() OVERRIDE;
- virtual gfx::Size GetPreferredSize() const OVERRIDE;
-
- private:
- gfx::Size GetImageSize() const;
-
- views::Textfield* textfield_;
- views::ImageButton* image_button_;
-};
-
-TextfieldWrapper::TextfieldWrapper(views::Textfield* textfield,
- views::ImageButton* image_button)
- : textfield_(textfield),
- image_button_(image_button) {
- SetBorder(views::Border::CreateSolidBorder(kWrapperBorderSize, SK_ColorGRAY));
-
- AddChildView(textfield_);
- AddChildView(image_button);
-}
-
-TextfieldWrapper::~TextfieldWrapper() {}
-
-void TextfieldWrapper::Layout() {
- // Add some spacing between the textfield and the border.
- textfield_->SetPosition(gfx::Point(kTextfieldHorizontalPadding,
- kTextfieldVerticalPadding));
- textfield_->SizeToPreferredSize();
-
- // Button should be offset one pixel from the end of the textfield so that
- // there is no overlap. It is also displaced down by the size of the border
- // so it doesn't overlap with it either.
- int button_x = (textfield_->GetPreferredSize().width() +
- kTextfieldHorizontalPadding + 1);
- image_button_->SetPosition(gfx::Point(button_x,
- kWrapperBorderSize));
-
- // Make sure that the image is centered after cropping.
- image_button_->SetImageAlignment(views::ImageButton::ALIGN_CENTER,
- views::ImageButton::ALIGN_MIDDLE);
-
- image_button_->SetSize(GetImageSize());
-}
-
-gfx::Size TextfieldWrapper::GetPreferredSize() const {
- int width = (textfield_->GetPreferredSize().width() +
- GetImageSize().width() +
- kTextfieldHorizontalPadding * 3);
- int height = (textfield_->GetPreferredSize().height() +
- kTextfieldVerticalPadding * 2);
-
- return gfx::Size(width, height);
-}
-
-gfx::Size TextfieldWrapper::GetImageSize() const {
- // The image is sized so that it fills the space between the borders
- // completely.
- int size = (textfield_->GetPreferredSize().height() +
- (kTextfieldVerticalPadding - kWrapperBorderSize) * 2);
- return gfx::Size(size, size);
-}
-} // namespace
-
-PasswordGenerationBubbleView::PasswordGenerationBubbleView(
- const autofill::PasswordForm& form,
- const gfx::Rect& anchor_rect,
- views::View* anchor_view,
- content::RenderViewHost* render_view_host,
- password_manager::PasswordManager* password_manager,
- autofill::PasswordGenerator* password_generator,
- ui::ThemeProvider* theme_provider)
- : BubbleDelegateView(anchor_view, views::BubbleBorder::TOP_LEFT),
- title_label_(NULL),
- accept_button_(NULL),
- textfield_(NULL),
- regenerate_button_(NULL),
- textfield_wrapper_(NULL),
- form_(form),
- anchor_rect_(anchor_rect),
- render_view_host_(render_view_host),
- password_manager_(password_manager),
- password_generator_(password_generator),
- theme_provider_(theme_provider) {}
-
-PasswordGenerationBubbleView::~PasswordGenerationBubbleView() {}
-
-void PasswordGenerationBubbleView::Init() {
- set_margins(gfx::Insets(kBubbleMargin, kBubbleMargin,
- kBubbleMargin, kBubbleMargin));
-
- // TODO(gcasto): Localize text after we have finalized the UI.
- // crbug.com/118062.
- ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
- title_label_ = new views::Label(
- l10n_util::GetStringUTF16(IDS_PASSWORD_GENERATION_BUBBLE_TITLE),
- rb.GetFontList(ui::ResourceBundle::MediumFont));
- AddChildView(title_label_);
-
- regenerate_button_ = new views::ImageButton(this);
- regenerate_button_->SetImage(
- views::CustomButton::STATE_NORMAL,
- theme_provider_->GetImageSkiaNamed(IDR_RELOAD_DIMMED));
- regenerate_button_->SetImage(
- views::CustomButton::STATE_HOVERED,
- theme_provider_->GetImageSkiaNamed(IDR_RELOAD));
- regenerate_button_->SetImage(
- views::CustomButton::STATE_PRESSED,
- theme_provider_->GetImageSkiaNamed(IDR_RELOAD));
-
- textfield_ = new views::Textfield();
- textfield_->set_default_width_in_chars(kDefaultTextFieldChars);
- textfield_->SetText(base::ASCIIToUTF16(password_generator_->Generate()));
- textfield_->set_controller(this);
-
- textfield_wrapper_ = new TextfieldWrapper(textfield_,
- regenerate_button_);
- AddChildView(textfield_wrapper_);
-
- accept_button_ = new views::LabelButton(
- this,
- l10n_util::GetStringUTF16(IDS_PASSWORD_GENERATION_BUTTON_TEXT));
- accept_button_->SetStyle(views::Button::STYLE_BUTTON);
- AddChildView(accept_button_);
-}
-
-void PasswordGenerationBubbleView::Layout() {
- // We have the title label shifted up to make the borders look more uniform.
- title_label_->SetPosition(gfx::Point(0, kTitleLabelVerticalOffset));
- title_label_->SizeToPreferredSize();
-
- int y = title_label_->GetPreferredSize().height() + kVerticalPadding;
-
- textfield_wrapper_->SetPosition(gfx::Point(0, y));
- textfield_wrapper_->SizeToPreferredSize();
-
- int button_x = (textfield_wrapper_->GetPreferredSize().width() +
- kButtonHorizontalSpacing);
- accept_button_->SetBounds(
- button_x,
- y - kWrapperBorderSize,
- kButtonWidth,
- textfield_wrapper_->GetPreferredSize().height() + kWrapperBorderSize * 2);
-}
-
-gfx::Size PasswordGenerationBubbleView::GetPreferredSize() const {
- int width = (textfield_wrapper_->GetPreferredSize().width() +
- kButtonHorizontalSpacing +
- kButtonWidth - 1);
- int height = (title_label_->GetPreferredSize().height() +
- textfield_wrapper_->GetPreferredSize().height() +
- kVerticalPadding);
- return gfx::Size(width, height);
-}
-
-gfx::Rect PasswordGenerationBubbleView::GetAnchorRect() const {
- return anchor_rect_;
-}
-
-void PasswordGenerationBubbleView::ButtonPressed(views::Button* sender,
- const ui::Event& event) {
- if (sender == accept_button_) {
- render_view_host_->Send(new AutofillMsg_GeneratedPasswordAccepted(
- render_view_host_->GetRoutingID(), textfield_->text()));
- password_manager_->SetFormHasGeneratedPassword(form_);
- actions_.password_accepted = true;
- GetWidget()->Close();
- }
- if (sender == regenerate_button_) {
- textfield_->SetText(
- base::ASCIIToUTF16(password_generator_->Generate()));
- actions_.password_regenerated = true;
- }
-}
-
-void PasswordGenerationBubbleView::ContentsChanged(
- views::Textfield* sender,
- const base::string16& contents) {
- actions_.password_edited = true;
-}
-
-bool PasswordGenerationBubbleView::HandleKeyEvent(
- views::Textfield* sender,
- const ui::KeyEvent& key_event) {
- return false;
-}
-
-views::View* PasswordGenerationBubbleView::GetInitiallyFocusedView() {
- return textfield_;
-}
-
-void PasswordGenerationBubbleView::WindowClosing() {
- autofill::password_generation::LogUserActions(actions_);
-}
« no previous file with comments | « chrome/browser/ui/views/password_generation_bubble_view.h ('k') | chrome/chrome_browser_ui.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698