12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_POPUP_VIEW_H_ 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_POPUP_VIEW_H_ 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/gfx/native_widget_types.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace gfx { 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class Rect; 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace ui { 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class KeyEvent; 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace autofill { 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class AutofillPopupController; 21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// The interface for creating and controlling a platform-dependent 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// AutofillPopupView. 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class AutofillPopupView { 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // The minimum amount of padding between the Autofill name and subtext, 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // in pixels. 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) static const size_t kNamePadding = 15; 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The amount of padding between icons in pixels. 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static const int kIconPadding = 5; 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // The amount of padding at the end of the popup in pixels. 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static const int kEndPadding = 3; 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Height of the delete icon in pixels. 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static const int kDeleteIconHeight = 16; 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Width of the delete icon in pixels. 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static const int kDeleteIconWidth = 16; 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Displays the Autofill popup and fills it in with data from the controller. 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void Show() = 0; 442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Hides the popup from view. This will cause the popup to be deleted. 46eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual void Hide() = 0; 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Invalidates the given row and redraw it. 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void InvalidateRow(size_t row) = 0; 502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Refreshes the position of the popup. 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void UpdateBoundsAndRedrawPopup() = 0; 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Factory function for creating the view. 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) static AutofillPopupView* Create(AutofillPopupController* controller); 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) protected: 58eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch virtual ~AutofillPopupView() {} 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 61c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace autofill 62c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif // CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_POPUP_VIEW_H_ 64