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/string16.h" | 9 #include "base/string16.h" |
10 #include "chrome/browser/ui/views/dropdown_bar_view.h" | 10 #include "chrome/browser/ui/views/dropdown_bar_view.h" |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 virtual void ContentsChanged(views::Textfield* sender, | 80 virtual void ContentsChanged(views::Textfield* sender, |
81 const string16& new_contents) OVERRIDE; | 81 const string16& new_contents) OVERRIDE; |
82 virtual bool HandleKeyEvent(views::Textfield* sender, | 82 virtual bool HandleKeyEvent(views::Textfield* sender, |
83 const ui::KeyEvent& key_event) OVERRIDE; | 83 const ui::KeyEvent& key_event) OVERRIDE; |
84 virtual void OnAfterCutOrCopy() OVERRIDE; | 84 virtual void OnAfterCutOrCopy() OVERRIDE; |
85 | 85 |
86 private: | 86 private: |
87 // Update the appearance for the match count label. | 87 // Update the appearance for the match count label. |
88 void UpdateMatchCountAppearance(bool no_match); | 88 void UpdateMatchCountAppearance(bool no_match); |
89 | 89 |
90 // Overridden from views::View. | 90 // views::View: |
91 virtual void OnThemeChanged() OVERRIDE; | 91 virtual void OnThemeChanged() OVERRIDE; |
92 | 92 |
93 // We use a hidden view to grab mouse clicks and bring focus to the find | 93 // We use a hidden view to grab mouse clicks and bring focus to the find |
94 // text box. This is because although the find text box may look like it | 94 // text box. This is because although the find text box may look like it |
95 // extends all the way to the find button, it only goes as far as to the | 95 // extends all the way to the find button, it only goes as far as to the |
96 // match_count label. The user, however, expects being able to click anywhere | 96 // match_count label. The user, however, expects being able to click anywhere |
97 // inside what looks like the find text box (including on or around the | 97 // inside what looks like the find text box (including on or around the |
98 // match_count label) and have focus brought to the find box. | 98 // match_count label) and have focus brought to the find box. |
99 class FocusForwarderView : public views::View { | 99 class FocusForwarderView : public views::View { |
100 public: | 100 public: |
101 explicit FocusForwarderView( | 101 explicit FocusForwarderView( |
102 views::Textfield* view_to_focus_on_mousedown) | 102 views::Textfield* view_to_focus_on_mousedown) |
103 : view_to_focus_on_mousedown_(view_to_focus_on_mousedown) {} | 103 : view_to_focus_on_mousedown_(view_to_focus_on_mousedown) {} |
104 | 104 |
105 private: | 105 private: |
106 virtual bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE; | 106 virtual bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE; |
107 | 107 |
108 views::Textfield* view_to_focus_on_mousedown_; | 108 views::Textfield* view_to_focus_on_mousedown_; |
109 | 109 |
110 DISALLOW_COPY_AND_ASSIGN(FocusForwarderView); | 110 DISALLOW_COPY_AND_ASSIGN(FocusForwarderView); |
111 }; | 111 }; |
112 | 112 |
113 // A wrapper of views::TextField that allows us to select all text when we | 113 // A wrapper of views::TextField that allows us to select all text when we |
114 // get focus. Represents the text field where the user enters a search term. | 114 // get focus. Represents the text field where the user enters a search term. |
115 class SearchTextfieldView : public views::Textfield { | 115 class SearchTextfieldView : public views::Textfield { |
116 public: | 116 public: |
117 SearchTextfieldView(); | 117 SearchTextfieldView(); |
118 virtual ~SearchTextfieldView(); | 118 virtual ~SearchTextfieldView(); |
119 | 119 |
120 virtual void RequestFocus() OVERRIDE; | 120 // views::View: |
| 121 virtual bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE; |
| 122 virtual void OnMouseReleased(const ui::MouseEvent& event) OVERRIDE; |
| 123 |
| 124 // views::Textfield: |
| 125 virtual void OnFocus() OVERRIDE; |
121 | 126 |
122 private: | 127 private: |
| 128 bool select_all_on_focus_; |
| 129 |
123 DISALLOW_COPY_AND_ASSIGN(SearchTextfieldView); | 130 DISALLOW_COPY_AND_ASSIGN(SearchTextfieldView); |
124 }; | 131 }; |
125 | 132 |
126 // Returns the OS-specific view for the find bar that acts as an intermediary | 133 // Returns the OS-specific view for the find bar that acts as an intermediary |
127 // between us and the WebContentsView. | 134 // between us and the WebContentsView. |
128 FindBarHost* find_bar_host() const; | 135 FindBarHost* find_bar_host() const; |
129 | 136 |
130 // The controls in the window. | 137 // The controls in the window. |
131 SearchTextfieldView* find_text_; | 138 SearchTextfieldView* find_text_; |
132 views::Label* match_count_text_; | 139 views::Label* match_count_text_; |
133 FocusForwarderView* focus_forwarder_view_; | 140 FocusForwarderView* focus_forwarder_view_; |
134 views::ImageButton* find_previous_button_; | 141 views::ImageButton* find_previous_button_; |
135 views::ImageButton* find_next_button_; | 142 views::ImageButton* find_next_button_; |
136 views::ImageButton* close_button_; | 143 views::ImageButton* close_button_; |
137 | 144 |
138 // The preferred height of the find bar. | 145 // The preferred height of the find bar. |
139 int preferred_height_; | 146 int preferred_height_; |
140 | 147 |
141 // The background image for the Find text box, which we draw behind the Find | 148 // The background image for the Find text box, which we draw behind the Find |
142 // box to provide the Chrome look to the edge of the text box. | 149 // box to provide the Chrome look to the edge of the text box. |
143 const gfx::ImageSkia* text_box_background_; | 150 const gfx::ImageSkia* text_box_background_; |
144 | 151 |
145 // The rounded edge on the left side of the Find text box. | 152 // The rounded edge on the left side of the Find text box. |
146 const gfx::ImageSkia* text_box_background_left_; | 153 const gfx::ImageSkia* text_box_background_left_; |
147 | 154 |
148 DISALLOW_COPY_AND_ASSIGN(FindBarView); | 155 DISALLOW_COPY_AND_ASSIGN(FindBarView); |
149 }; | 156 }; |
150 | 157 |
151 #endif // CHROME_BROWSER_UI_VIEWS_FIND_BAR_VIEW_H_ | 158 #endif // CHROME_BROWSER_UI_VIEWS_FIND_BAR_VIEW_H_ |
OLD | NEW |