Disable view source for Developer Tools.
[chromium-blink-merge.git] / chrome / browser / ui / views / autofill / autofill_popup_view_views.h
blobde57660c28915090b6088fe09e163469f69d417d
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
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_UI_VIEWS_AUTOFILL_AUTOFILL_POPUP_VIEW_VIEWS_H_
6 #define CHROME_BROWSER_UI_VIEWS_AUTOFILL_AUTOFILL_POPUP_VIEW_VIEWS_H_
8 #include "chrome/browser/ui/autofill/autofill_popup_view.h"
9 #include "ui/views/widget/widget_delegate.h"
10 #include "ui/views/widget/widget_observer.h"
12 class AutofillPopupController;
14 namespace content {
15 class WebContents;
18 namespace autofill {
20 // Views toolkit implementation for AutofillPopupView.
21 class AutofillPopupViewViews : public AutofillPopupView,
22 public views::WidgetDelegateView,
23 public views::WidgetObserver {
24 public:
25 // The observing widget should be the top level widget for the native
26 // view, which we need to listen to for several signals that indicate the
27 // popup should be closed.
28 AutofillPopupViewViews(AutofillPopupController* controller,
29 views::Widget* observing_widget);
31 private:
32 virtual ~AutofillPopupViewViews();
34 // AutofillPopupView implementation.
35 virtual void Show() OVERRIDE;
36 virtual void Hide() OVERRIDE;
37 virtual void InvalidateRow(size_t row) OVERRIDE;
38 virtual void UpdateBoundsAndRedrawPopup() OVERRIDE;
40 // views:Views implementation.
41 virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE;
42 virtual void OnMouseCaptureLost() OVERRIDE;
43 virtual bool OnMouseDragged(const ui::MouseEvent& event) OVERRIDE;
44 virtual void OnMouseExited(const ui::MouseEvent& event) OVERRIDE;
45 virtual void OnMouseMoved(const ui::MouseEvent& event) OVERRIDE;
46 virtual bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE;
47 virtual void OnMouseReleased(const ui::MouseEvent& event) OVERRIDE;
48 virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE;
50 // views::WidgetObserver implementation.
51 virtual void OnWidgetBoundsChanged(views::Widget* widget,
52 const gfx::Rect& new_bounds) OVERRIDE;
54 // Hide the popup (Since either Hide or ~AutofillPopupViewViews can need to
55 // hide the popup, the actually hiding code must be placed here).
56 void HideInternal();
58 // Draw the given autofill entry in |entry_rect|.
59 void DrawAutofillEntry(gfx::Canvas* canvas,
60 int index,
61 const gfx::Rect& entry_rect);
63 AutofillPopupController* controller_; // Weak reference.
65 // The widget that |this| observes. Weak reference.
66 views::Widget* observing_widget_;
68 DISALLOW_COPY_AND_ASSIGN(AutofillPopupViewViews);
71 } // namespace autofill
73 #endif // CHROME_BROWSER_UI_VIEWS_AUTOFILL_AUTOFILL_POPUP_VIEW_VIEWS_H_