Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / views / location_bar / location_bar_decoration_view.h
1 // Copyright 2013 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.
4
5 #ifndef CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_LOCATION_BAR_DECORATION_VIEW_H_
6 #define CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_LOCATION_BAR_DECORATION_VIEW_H_
7
8 #include "base/basictypes.h"
9 #include "base/compiler_specific.h"
10 #include "ui/views/controls/image_view.h"
11
12 ////////////////////////////////////////////////////////////////////////////////
13 //
14 // LocationBarDecorationView
15 //
16 //  An abstract class to provide common functionality to all icons that show up
17 //  in the omnibox (like the bookmarks star or SSL lock).
18 //
19 ////////////////////////////////////////////////////////////////////////////////
20 class LocationBarDecorationView : public views::ImageView {
21  public:
22   LocationBarDecorationView();
23   ~LocationBarDecorationView() override;
24
25   // views::ImageView:
26   bool OnMousePressed(const ui::MouseEvent& event) override;
27   void OnMouseReleased(const ui::MouseEvent& event) override;
28   bool OnKeyPressed(const ui::KeyEvent& event) override;
29   void OnGestureEvent(ui::GestureEvent* event) override;
30
31  protected:
32   // Whether this icon should currently be able to process a mouse click. Called
33   // both on mouse up and mouse down; must return true both times to for
34   // |OnClick()| to be called.
35   virtual bool CanHandleClick() const;
36
37   // Called when a user mouses up, taps, or presses a key on this icon.
38   virtual void OnClick() = 0;
39
40  private:
41   // Set when the user's mouse goes down to determine whether |CanHandleClick()|
42   // was true at that point.
43   bool could_handle_click_;
44
45   DISALLOW_COPY_AND_ASSIGN(LocationBarDecorationView);
46 };
47
48 #endif  // CHROME_BROWSER_UI_VIEWS_LOCATION_BAR_LOCATION_BAR_DECORATION_VIEW_H_