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_FIND_BAR_VIEW_H_ | 5 #ifndef CHROME_BROWSER_UI_VIEWS_FIND_BAR_VIEW_H_ |
6 #define CHROME_BROWSER_UI_VIEWS_FIND_BAR_VIEW_H_ | 6 #define CHROME_BROWSER_UI_VIEWS_FIND_BAR_VIEW_H_ |
7 | 7 |
8 #include "base/compiler_specific.h" | 8 #include "base/compiler_specific.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
(...skipping 24 matching lines...) Expand all Loading... |
35 public views::TextfieldController { | 35 public views::TextfieldController { |
36 public: | 36 public: |
37 // A tag denoting which button the user pressed. | 37 // A tag denoting which button the user pressed. |
38 enum ButtonTag { | 38 enum ButtonTag { |
39 FIND_PREVIOUS_TAG = 0, // The Find Previous button. | 39 FIND_PREVIOUS_TAG = 0, // The Find Previous button. |
40 FIND_NEXT_TAG, // The Find Next button. | 40 FIND_NEXT_TAG, // The Find Next button. |
41 CLOSE_TAG, // The Close button (the 'X'). | 41 CLOSE_TAG, // The Close button (the 'X'). |
42 }; | 42 }; |
43 | 43 |
44 explicit FindBarView(FindBarHost* host); | 44 explicit FindBarView(FindBarHost* host); |
45 virtual ~FindBarView(); | 45 ~FindBarView() override; |
46 | 46 |
47 // Accessors for the text and selection displayed in the text box. | 47 // Accessors for the text and selection displayed in the text box. |
48 void SetFindTextAndSelectedRange(const base::string16& find_text, | 48 void SetFindTextAndSelectedRange(const base::string16& find_text, |
49 const gfx::Range& selected_range); | 49 const gfx::Range& selected_range); |
50 base::string16 GetFindText() const; | 50 base::string16 GetFindText() const; |
51 gfx::Range GetSelectedRange() const; | 51 gfx::Range GetSelectedRange() const; |
52 | 52 |
53 // Gets the selected text in the text box. | 53 // Gets the selected text in the text box. |
54 base::string16 GetFindSelectedText() const; | 54 base::string16 GetFindSelectedText() const; |
55 | 55 |
56 // Gets the match count text displayed in the text box. | 56 // Gets the match count text displayed in the text box. |
57 base::string16 GetMatchCountText() const; | 57 base::string16 GetMatchCountText() const; |
58 | 58 |
59 // Updates the label inside the Find text box that shows the ordinal of the | 59 // Updates the label inside the Find text box that shows the ordinal of the |
60 // active item and how many matches were found. | 60 // active item and how many matches were found. |
61 void UpdateForResult(const FindNotificationDetails& result, | 61 void UpdateForResult(const FindNotificationDetails& result, |
62 const base::string16& find_text); | 62 const base::string16& find_text); |
63 | 63 |
64 // Clears the current Match Count value in the Find text box. | 64 // Clears the current Match Count value in the Find text box. |
65 void ClearMatchCount(); | 65 void ClearMatchCount(); |
66 | 66 |
67 // Claims focus for the text field and selects its contents. | 67 // Claims focus for the text field and selects its contents. |
68 virtual void SetFocusAndSelection(bool select_all) override; | 68 void SetFocusAndSelection(bool select_all) override; |
69 | 69 |
70 // views::View: | 70 // views::View: |
71 virtual void OnPaint(gfx::Canvas* canvas) override; | 71 void OnPaint(gfx::Canvas* canvas) override; |
72 virtual void Layout() override; | 72 void Layout() override; |
73 virtual gfx::Size GetPreferredSize() const override; | 73 gfx::Size GetPreferredSize() const override; |
74 | 74 |
75 // views::ButtonListener: | 75 // views::ButtonListener: |
76 virtual void ButtonPressed(views::Button* sender, | 76 void ButtonPressed(views::Button* sender, const ui::Event& event) override; |
77 const ui::Event& event) override; | |
78 | 77 |
79 // views::TextfieldController: | 78 // views::TextfieldController: |
80 virtual bool HandleKeyEvent(views::Textfield* sender, | 79 bool HandleKeyEvent(views::Textfield* sender, |
81 const ui::KeyEvent& key_event) override; | 80 const ui::KeyEvent& key_event) override; |
82 virtual void OnAfterUserAction(views::Textfield* sender) override; | 81 void OnAfterUserAction(views::Textfield* sender) override; |
83 virtual void OnAfterPaste() override; | 82 void OnAfterPaste() override; |
84 | 83 |
85 private: | 84 private: |
86 // Starts finding |search_text|. If the text is empty, stops finding. | 85 // Starts finding |search_text|. If the text is empty, stops finding. |
87 void Find(const base::string16& search_text); | 86 void Find(const base::string16& search_text); |
88 | 87 |
89 // Updates the appearance for the match count label. | 88 // Updates the appearance for the match count label. |
90 void UpdateMatchCountAppearance(bool no_match); | 89 void UpdateMatchCountAppearance(bool no_match); |
91 | 90 |
92 // views::View: | 91 // views::View: |
93 virtual void OnThemeChanged() override; | 92 void OnThemeChanged() override; |
94 | 93 |
95 // We use a hidden view to grab mouse clicks and bring focus to the find | 94 // We use a hidden view to grab mouse clicks and bring focus to the find |
96 // text box. This is because although the find text box may look like it | 95 // text box. This is because although the find text box may look like it |
97 // extends all the way to the find button, it only goes as far as to the | 96 // extends all the way to the find button, it only goes as far as to the |
98 // match_count label. The user, however, expects being able to click anywhere | 97 // match_count label. The user, however, expects being able to click anywhere |
99 // inside what looks like the find text box (including on or around the | 98 // inside what looks like the find text box (including on or around the |
100 // match_count label) and have focus brought to the find box. | 99 // match_count label) and have focus brought to the find box. |
101 class FocusForwarderView : public views::View { | 100 class FocusForwarderView : public views::View { |
102 public: | 101 public: |
103 explicit FocusForwarderView( | 102 explicit FocusForwarderView( |
104 views::Textfield* view_to_focus_on_mousedown) | 103 views::Textfield* view_to_focus_on_mousedown) |
105 : view_to_focus_on_mousedown_(view_to_focus_on_mousedown) {} | 104 : view_to_focus_on_mousedown_(view_to_focus_on_mousedown) {} |
106 | 105 |
107 private: | 106 private: |
108 virtual bool OnMousePressed(const ui::MouseEvent& event) override; | 107 bool OnMousePressed(const ui::MouseEvent& event) override; |
109 | 108 |
110 views::Textfield* view_to_focus_on_mousedown_; | 109 views::Textfield* view_to_focus_on_mousedown_; |
111 | 110 |
112 DISALLOW_COPY_AND_ASSIGN(FocusForwarderView); | 111 DISALLOW_COPY_AND_ASSIGN(FocusForwarderView); |
113 }; | 112 }; |
114 | 113 |
115 // Returns the OS-specific view for the find bar that acts as an intermediary | 114 // Returns the OS-specific view for the find bar that acts as an intermediary |
116 // between us and the WebContentsView. | 115 // between us and the WebContentsView. |
117 FindBarHost* find_bar_host() const; | 116 FindBarHost* find_bar_host() const; |
118 | 117 |
(...skipping 10 matching lines...) Expand all Loading... |
129 views::ImageButton* find_next_button_; | 128 views::ImageButton* find_next_button_; |
130 views::ImageButton* close_button_; | 129 views::ImageButton* close_button_; |
131 | 130 |
132 // The preferred height of the find bar. | 131 // The preferred height of the find bar. |
133 int preferred_height_; | 132 int preferred_height_; |
134 | 133 |
135 DISALLOW_COPY_AND_ASSIGN(FindBarView); | 134 DISALLOW_COPY_AND_ASSIGN(FindBarView); |
136 }; | 135 }; |
137 | 136 |
138 #endif // CHROME_BROWSER_UI_VIEWS_FIND_BAR_VIEW_H_ | 137 #endif // CHROME_BROWSER_UI_VIEWS_FIND_BAR_VIEW_H_ |
OLD | NEW |