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

Side by Side Diff: chrome/browser/ui/views/autofill/autofill_dialog_views.h

Issue 21724002: rAc: try really hard not to ellipsize addresses (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix android Created 7 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_UI_VIEWS_AUTOFILL_AUTOFILL_DIALOG_VIEWS_H_ 5 #ifndef CHROME_BROWSER_UI_VIEWS_AUTOFILL_AUTOFILL_DIALOG_VIEWS_H_
6 #define CHROME_BROWSER_UI_VIEWS_AUTOFILL_AUTOFILL_DIALOG_VIEWS_H_ 6 #define CHROME_BROWSER_UI_VIEWS_AUTOFILL_AUTOFILL_DIALOG_VIEWS_H_
7 7
8 #include <map> 8 #include <map>
9 9
10 #include "base/memory/scoped_vector.h" 10 #include "base/memory/scoped_vector.h"
11 #include "base/memory/weak_ptr.h" 11 #include "base/memory/weak_ptr.h"
12 #include "base/scoped_observer.h" 12 #include "base/scoped_observer.h"
13 #include "chrome/browser/ui/autofill/autofill_dialog_controller.h" 13 #include "chrome/browser/ui/autofill/autofill_dialog_controller.h"
14 #include "chrome/browser/ui/autofill/autofill_dialog_types.h"
14 #include "chrome/browser/ui/autofill/autofill_dialog_view.h" 15 #include "chrome/browser/ui/autofill/autofill_dialog_view.h"
15 #include "chrome/browser/ui/autofill/testable_autofill_dialog_view.h" 16 #include "chrome/browser/ui/autofill/testable_autofill_dialog_view.h"
16 #include "ui/base/animation/animation_delegate.h" 17 #include "ui/base/animation/animation_delegate.h"
17 #include "ui/views/controls/button/button.h" 18 #include "ui/views/controls/button/button.h"
18 #include "ui/views/controls/button/menu_button_listener.h" 19 #include "ui/views/controls/button/menu_button_listener.h"
19 #include "ui/views/controls/combobox/combobox_listener.h" 20 #include "ui/views/controls/combobox/combobox_listener.h"
20 #include "ui/views/controls/link_listener.h" 21 #include "ui/views/controls/link_listener.h"
21 #include "ui/views/controls/progress_bar.h" 22 #include "ui/views/controls/progress_bar.h"
22 #include "ui/views/controls/scroll_view.h" 23 #include "ui/views/controls/scroll_view.h"
23 #include "ui/views/controls/styled_label_listener.h" 24 #include "ui/views/controls/styled_label_listener.h"
(...skipping 29 matching lines...) Expand all
53 namespace ui { 54 namespace ui {
54 class ComboboxModel; 55 class ComboboxModel;
55 class KeyEvent; 56 class KeyEvent;
56 class MultiAnimation; 57 class MultiAnimation;
57 } 58 }
58 59
59 namespace autofill { 60 namespace autofill {
60 61
61 class AutofillDialogSignInDelegate; 62 class AutofillDialogSignInDelegate;
62 class DecoratedTextfield; 63 class DecoratedTextfield;
63 struct DetailInput;
64 64
65 // Views toolkit implementation of the Autofill dialog that handles the 65 // Views toolkit implementation of the Autofill dialog that handles the
66 // imperative autocomplete API call. 66 // imperative autocomplete API call.
67 class AutofillDialogViews : public AutofillDialogView, 67 class AutofillDialogViews : public AutofillDialogView,
68 public TestableAutofillDialogView, 68 public TestableAutofillDialogView,
69 public views::DialogDelegateView, 69 public views::DialogDelegateView,
70 public views::WidgetObserver, 70 public views::WidgetObserver,
71 public views::ButtonListener, 71 public views::ButtonListener,
72 public views::TextfieldController, 72 public views::TextfieldController,
73 public views::FocusChangeListener, 73 public views::FocusChangeListener,
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 // When true, mouse events will be forwarded to |proxy_button_|. 373 // When true, mouse events will be forwarded to |proxy_button_|.
374 bool forward_mouse_events_; 374 bool forward_mouse_events_;
375 375
376 DISALLOW_COPY_AND_ASSIGN(SectionContainer); 376 DISALLOW_COPY_AND_ASSIGN(SectionContainer);
377 }; 377 };
378 378
379 // A view that contains a suggestion (such as a known address) and a link to 379 // A view that contains a suggestion (such as a known address) and a link to
380 // edit the suggestion. 380 // edit the suggestion.
381 class SuggestionView : public views::View { 381 class SuggestionView : public views::View {
382 public: 382 public:
383 SuggestionView(const base::string16& edit_label, 383 explicit SuggestionView(AutofillDialogViews* autofill_dialog);
384 AutofillDialogViews* autofill_dialog);
385 virtual ~SuggestionView(); 384 virtual ~SuggestionView();
386 385
387 // Sets the display text of the suggestion. 386 void SetState(const SuggestionState& state);
388 void SetSuggestionText(const base::string16& text,
389 gfx::Font::FontStyle style);
390 387
391 // Sets the icon which should be displayed ahead of the text. 388 // views::View implementation.
392 void SetSuggestionIcon(const gfx::Image& image); 389 virtual gfx::Size GetPreferredSize() OVERRIDE;
393 390 virtual int GetHeightForWidth(int w) OVERRIDE;
394 // Shows an auxiliary textfield to the right of the suggestion icon and 391 virtual void OnBoundsChanged(const gfx::Rect& previous_bounds) OVERRIDE;
395 // text. This is currently only used to show a CVC field for the CC section.
396 void ShowTextfield(const base::string16& placeholder_text,
397 const gfx::Image& icon);
398 392
399 DecoratedTextfield* decorated_textfield() { return decorated_; } 393 DecoratedTextfield* decorated_textfield() { return decorated_; }
400 394
401 private: 395 private:
396 bool CanUseVerticallyCompactText(int available_width,
397 int* resulting_height);
398
399 // Sets the display text of the suggestion.
400 void SetLabelText(const base::string16& text);
401
402 // Sets the icon which should be displayed ahead of the text.
403 void SetIcon(const gfx::Image& image);
404
405 // Shows an auxiliary textfield to the right of the suggestion icon and
406 // text. This is currently only used to show a CVC field for the CC section.
407 void SetTextfield(const base::string16& placeholder_text,
408 const gfx::Image& icon);
409
410 // The state of |this|.
411 SuggestionState state_;
412
413 // This caches preferred heights for given widths. The key is a preferred
414 // width, the value is a cached result of CanUseVerticallyCompactText.
415 std::map<int, std::pair<bool, int> > calculated_heights_;
416
402 // The label that holds the suggestion description text. 417 // The label that holds the suggestion description text.
403 views::Label* label_; 418 views::Label* label_;
404 // The second (and greater) line of text that describes the suggestion. 419 // The second (and greater) line of text that describes the suggestion.
405 views::Label* label_line_2_; 420 views::Label* label_line_2_;
406 // The icon that comes just before |label_|. 421 // The icon that comes just before |label_|.
407 views::ImageView* icon_; 422 views::ImageView* icon_;
408 // A view to contain |label_| and |icon_|.
409 views::View* label_container_;
410 // The input set by ShowTextfield. 423 // The input set by ShowTextfield.
411 DecoratedTextfield* decorated_; 424 DecoratedTextfield* decorated_;
412 // An "Edit" link that flips to editable inputs rather than suggestion text. 425 // An "Edit" link that flips to editable inputs rather than suggestion text.
413 views::Link* edit_link_; 426 views::Link* edit_link_;
414 427
415 DISALLOW_COPY_AND_ASSIGN(SuggestionView); 428 DISALLOW_COPY_AND_ASSIGN(SuggestionView);
416 }; 429 };
417 430
418 // A convenience struct for holding pointers to views within each detail 431 // A convenience struct for holding pointers to views within each detail
419 // section. None of the member pointers are owned. 432 // section. None of the member pointers are owned.
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
629 642
630 // Delegate for the sign-in dialog's webview. 643 // Delegate for the sign-in dialog's webview.
631 scoped_ptr<AutofillDialogSignInDelegate> sign_in_delegate_; 644 scoped_ptr<AutofillDialogSignInDelegate> sign_in_delegate_;
632 645
633 DISALLOW_COPY_AND_ASSIGN(AutofillDialogViews); 646 DISALLOW_COPY_AND_ASSIGN(AutofillDialogViews);
634 }; 647 };
635 648
636 } // namespace autofill 649 } // namespace autofill
637 650
638 #endif // CHROME_BROWSER_UI_VIEWS_AUTOFILL_AUTOFILL_DIALOG_VIEWS_H_ 651 #endif // CHROME_BROWSER_UI_VIEWS_AUTOFILL_AUTOFILL_DIALOG_VIEWS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698