1 // Copyright 2018 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 ASH_SHORTCUT_VIEWER_VIEWS_KSV_SEARCH_BOX_VIEW_H_
6 #define ASH_SHORTCUT_VIEWER_VIEWS_KSV_SEARCH_BOX_VIEW_H_
7 
8 #include "ash/search_box/search_box_view_base.h"
9 #include "base/macros.h"
10 #include "base/strings/string16.h"
11 
12 namespace ash {
13 class SearchBoxViewDelegate;
14 }  // namespace ash
15 
16 namespace keyboard_shortcut_viewer {
17 
18 // A search_box_SearchBoxViewBase implementation for KeyboardShortcutViewer.
19 class KSVSearchBoxView : public ash::SearchBoxViewBase {
20  public:
21   explicit KSVSearchBoxView(ash::SearchBoxViewDelegate* delegate);
22   ~KSVSearchBoxView() override = default;
23 
24   // views::View:
25   gfx::Size CalculatePreferredSize() const override;
26   void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
27   void OnKeyEvent(ui::KeyEvent* event) override;
28 
29   void SetAccessibleValue(const base::string16& value);
30 
31   // SearchBoxViewBase:
32   void OnSearchBoxActiveChanged(bool active) override;
33 
34  private:
35   // SearchBoxViewBase:
36   void UpdateBackgroundColor(SkColor color) override;
37   void UpdateSearchBoxBorder() override;
38   void SetupCloseButton() override;
39   void SetupBackButton() override;
40   void SetPlaceholderTextAttributes();
41 
42   // Accessibility data value. Used to pronounce the number of search results.
43   base::string16 accessible_value_;
44 
45   DISALLOW_COPY_AND_ASSIGN(KSVSearchBoxView);
46 };
47 
48 }  // namespace keyboard_shortcut_viewer
49 
50 #endif  // ASH_SHORTCUT_VIEWER_VIEWS_KSV_SEARCH_BOX_VIEW_H_
51