OLD | NEW |
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 #include <set> | 9 #include <set> |
10 | 10 |
(...skipping 445 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
456 struct DetailsGroup { | 456 struct DetailsGroup { |
457 explicit DetailsGroup(DialogSection section); | 457 explicit DetailsGroup(DialogSection section); |
458 ~DetailsGroup(); | 458 ~DetailsGroup(); |
459 | 459 |
460 // The section this group is associated with. | 460 // The section this group is associated with. |
461 const DialogSection section; | 461 const DialogSection section; |
462 // The view that contains the entire section (label + input). | 462 // The view that contains the entire section (label + input). |
463 SectionContainer* container; | 463 SectionContainer* container; |
464 // The view that allows manual input. | 464 // The view that allows manual input. |
465 views::View* manual_input; | 465 views::View* manual_input; |
466 // The textfields in |manual_input|, tracked by their DetailInput. | 466 // The textfields in |manual_input|, tracked by their ServerFieldType. |
467 TextfieldMap textfields; | 467 TextfieldMap textfields; |
468 // The comboboxes in |manual_input|, tracked by their DetailInput. | 468 // The comboboxes in |manual_input|, tracked by their ServerFieldType. |
469 ComboboxMap comboboxes; | 469 ComboboxMap comboboxes; |
470 // The view that holds the text of the suggested data. This will be | 470 // The view that holds the text of the suggested data. This will be |
471 // visible IFF |manual_input| is not visible. | 471 // visible IFF |manual_input| is not visible. |
472 SuggestionView* suggested_info; | 472 SuggestionView* suggested_info; |
473 // The view that allows selecting other data suggestions. | 473 // The view that allows selecting other data suggestions. |
474 SuggestedButton* suggested_button; | 474 SuggestedButton* suggested_button; |
475 }; | 475 }; |
476 | 476 |
477 typedef std::map<DialogSection, DetailsGroup> DetailGroupMap; | 477 typedef std::map<DialogSection, DetailsGroup> DetailGroupMap; |
478 | 478 |
(...skipping 21 matching lines...) Expand all Loading... |
500 views::View* CreateMainContainer(); | 500 views::View* CreateMainContainer(); |
501 | 501 |
502 // Creates a detail section (Shipping, Email, etc.) with the given label, | 502 // Creates a detail section (Shipping, Email, etc.) with the given label, |
503 // inputs View, and suggestion model. Relevant pointers are stored in |group|. | 503 // inputs View, and suggestion model. Relevant pointers are stored in |group|. |
504 void CreateDetailsSection(DialogSection section); | 504 void CreateDetailsSection(DialogSection section); |
505 | 505 |
506 // Creates the view that holds controls for inputing or selecting data for | 506 // Creates the view that holds controls for inputing or selecting data for |
507 // a given section. | 507 // a given section. |
508 views::View* CreateInputsContainer(DialogSection section); | 508 views::View* CreateInputsContainer(DialogSection section); |
509 | 509 |
510 // Creates a grid of textfield views for the given section, and stores them | 510 // Creates a grid of inputs for the given section. |
511 // in the appropriate DetailsGroup. The top level View in the hierarchy is | 511 void InitInputsView(DialogSection section); |
512 // returned. | |
513 views::View* InitInputsView(DialogSection section); | |
514 | 512 |
515 // Changes the function of the whole dialog. Currently this can show a loading | 513 // Changes the function of the whole dialog. Currently this can show a loading |
516 // shield, an embedded sign in web view, or the more typical detail input mode | 514 // shield, an embedded sign in web view, or the more typical detail input mode |
517 // (suggestions and form inputs). | 515 // (suggestions and form inputs). |
518 void ShowDialogInMode(DialogMode dialog_mode); | 516 void ShowDialogInMode(DialogMode dialog_mode); |
519 | 517 |
520 // Updates the given section to match the state provided by |delegate_|. If | 518 // Updates the given section to match the state provided by |delegate_|. If |
521 // |clobber_inputs| is true, the current state of the textfields will be | 519 // |clobber_inputs| is true, the current state of the textfields will be |
522 // ignored, otherwise their contents will be preserved. | 520 // ignored, otherwise their contents will be preserved. |
523 void UpdateSectionImpl(DialogSection section, bool clobber_inputs); | 521 void UpdateSectionImpl(DialogSection section, bool clobber_inputs); |
524 | 522 |
525 // Updates the visual state of the given group as per the model. | 523 // Updates the visual state of the given group as per the model. |
526 void UpdateDetailsGroupState(const DetailsGroup& group); | 524 void UpdateDetailsGroupState(const DetailsGroup& group); |
527 | 525 |
528 // Gets a pointer to the DetailsGroup that's associated with the given section | 526 // Gets a pointer to the DetailsGroup that's associated with the given section |
529 // of the dialog. | 527 // of the dialog. |
530 DetailsGroup* GroupForSection(DialogSection section); | 528 DetailsGroup* GroupForSection(DialogSection section); |
531 | 529 |
532 // Gets a pointer to the DetailsGroup that's associated with a given |view|. | 530 // Gets a pointer to the DetailsGroup that's associated with a given |view|. |
533 // Returns NULL if no DetailsGroup was found. | 531 // Returns NULL if no DetailsGroup was found. |
534 DetailsGroup* GroupForView(views::View* view); | 532 DetailsGroup* GroupForView(views::View* view); |
535 | 533 |
| 534 // Erases all views in |group| from |validity_map_|. |
| 535 void EraseInvalidViewsInGroup(const DetailsGroup* group); |
| 536 |
536 // Explicitly focuses the initially focusable view. | 537 // Explicitly focuses the initially focusable view. |
537 void FocusInitialView(); | 538 void FocusInitialView(); |
538 | 539 |
539 // Sets the visual state for an input to be either valid or invalid. This | 540 // Sets the visual state for an input to be either valid or invalid. This |
540 // should work on Comboboxes or DecoratedTextfields. If |message| is empty, | 541 // should work on Comboboxes or DecoratedTextfields. If |message| is empty, |
541 // the input is valid. | 542 // the input is valid. |
542 template<class T> | 543 template<class T> |
543 void SetValidityForInput(T* input, const base::string16& message); | 544 void SetValidityForInput(T* input, const base::string16& message); |
544 | 545 |
545 // Shows an error bubble pointing at |view| if |view| has a message in | 546 // Shows an error bubble pointing at |view| if |view| has a message in |
(...skipping 10 matching lines...) Expand all Loading... |
556 bool overwrite_invalid); | 557 bool overwrite_invalid); |
557 | 558 |
558 // Checks all manual inputs in |group| for validity. Decorates the invalid | 559 // Checks all manual inputs in |group| for validity. Decorates the invalid |
559 // ones and returns true if all were valid. | 560 // ones and returns true if all were valid. |
560 bool ValidateGroup(const DetailsGroup& group, ValidationType type); | 561 bool ValidateGroup(const DetailsGroup& group, ValidationType type); |
561 | 562 |
562 // Checks all manual inputs in the form for validity. Decorates the invalid | 563 // Checks all manual inputs in the form for validity. Decorates the invalid |
563 // ones and returns true if all were valid. | 564 // ones and returns true if all were valid. |
564 bool ValidateForm(); | 565 bool ValidateForm(); |
565 | 566 |
566 // When an input textfield is edited (its contents change) or activated | 567 // When an input is edited (its contents change) or activated (clicked while |
567 // (clicked while focused), this function will inform the delegate that it's | 568 // focused), this function will inform the delegate to take the appropriate |
568 // time to show a suggestion popup and possibly reset the validity state of | 569 // action (textfields may show a suggestion popup, comboboxes may rebuild the |
569 // the input. | 570 // section inputs). May also reset the validity state of the input. |
570 void TextfieldEditedOrActivated(views::Textfield* textfield, bool was_edit); | 571 void InputEditedOrActivated(ServerFieldType type, |
| 572 const gfx::Rect& bounds, |
| 573 bool was_edit); |
571 | 574 |
572 // Updates the views in the button strip. | 575 // Updates the views in the button strip. |
573 void UpdateButtonStripExtraView(); | 576 void UpdateButtonStripExtraView(); |
574 | 577 |
575 // Call this when the size of anything in |contents_| might've changed. | 578 // Call this when the size of anything in |contents_| might've changed. |
576 void ContentsPreferredSizeChanged(); | 579 void ContentsPreferredSizeChanged(); |
577 void DoContentsPreferredSizeChanged(); | 580 void DoContentsPreferredSizeChanged(); |
578 | 581 |
579 // Gets the textfield view that is shown for the given |type| or NULL. | 582 // Gets the textfield view that is shown for the given |type| or NULL. |
580 views::Textfield* TextfieldForType(ServerFieldType type); | 583 DecoratedTextfield* TextfieldForType(ServerFieldType type); |
| 584 |
| 585 // Returns the associated ServerFieldType for |textfield|. |
| 586 ServerFieldType TypeForTextfield(const views::Textfield* textfield); |
581 | 587 |
582 // Gets the combobox view that is shown for the given |type|, or NULL. | 588 // Gets the combobox view that is shown for the given |type|, or NULL. |
583 views::Combobox* ComboboxForType(ServerFieldType type); | 589 views::Combobox* ComboboxForType(ServerFieldType type); |
584 | 590 |
| 591 // Returns the associated ServerFieldType for |combobox|. |
| 592 ServerFieldType TypeForCombobox(const views::Combobox* combobox) const; |
| 593 |
585 // Called when the details container changes in size or position. | 594 // Called when the details container changes in size or position. |
586 void DetailsContainerBoundsChanged(); | 595 void DetailsContainerBoundsChanged(); |
587 | 596 |
588 // Sets the icons in |section| according to the field values. For example, | 597 // Sets the icons in |section| according to the field values. For example, |
589 // sets the credit card and CVC icons according to the credit card number. | 598 // sets the credit card and CVC icons according to the credit card number. |
590 void SetIconsForSection(DialogSection section); | 599 void SetIconsForSection(DialogSection section); |
591 | 600 |
592 // Iterates over all the inputs in |section| and sets their enabled/disabled | 601 // Iterates over all the inputs in |section| and sets their enabled/disabled |
593 // state. | 602 // state. |
594 void SetEditabilityForSection(DialogSection section); | 603 void SetEditabilityForSection(DialogSection section); |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
679 | 688 |
680 // Delegate for the sign-in dialog's webview. | 689 // Delegate for the sign-in dialog's webview. |
681 scoped_ptr<AutofillDialogSignInDelegate> sign_in_delegate_; | 690 scoped_ptr<AutofillDialogSignInDelegate> sign_in_delegate_; |
682 | 691 |
683 DISALLOW_COPY_AND_ASSIGN(AutofillDialogViews); | 692 DISALLOW_COPY_AND_ASSIGN(AutofillDialogViews); |
684 }; | 693 }; |
685 | 694 |
686 } // namespace autofill | 695 } // namespace autofill |
687 | 696 |
688 #endif // CHROME_BROWSER_UI_VIEWS_AUTOFILL_AUTOFILL_DIALOG_VIEWS_H_ | 697 #endif // CHROME_BROWSER_UI_VIEWS_AUTOFILL_AUTOFILL_DIALOG_VIEWS_H_ |
OLD | NEW |