Home | History | Annotate | Download | only in views
      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 UI_APP_LIST_VIEWS_SEARCH_RESULT_ACTIONS_VIEW_H_
      6 #define UI_APP_LIST_VIEWS_SEARCH_RESULT_ACTIONS_VIEW_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "ui/app_list/search_result.h"
     10 #include "ui/views/controls/button/button.h"
     11 #include "ui/views/view.h"
     12 
     13 namespace app_list {
     14 
     15 class SearchResultActionsViewDelegate;
     16 
     17 // SearchResultActionsView displays a SearchResult::Actions in a button
     18 // strip. Each action is presented as a button and horizontally laid out.
     19 class SearchResultActionsView : public views::View,
     20                                 public views::ButtonListener {
     21  public:
     22   explicit SearchResultActionsView(SearchResultActionsViewDelegate* delegate);
     23   virtual ~SearchResultActionsView();
     24 
     25   void SetActions(const SearchResult::Actions& actions);
     26 
     27   void SetSelectedAction(int action_index);
     28   int selected_action() const { return selected_action_; }
     29 
     30   bool IsValidActionIndex(int action_index) const;
     31 
     32  private:
     33   void CreateImageButton(const SearchResult::Action& action);
     34   void CreateBlueButton(const SearchResult::Action& action);
     35 
     36   // views::View overrides:
     37   virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE;
     38 
     39   // views::ButtonListener overrides:
     40   virtual void ButtonPressed(views::Button* sender,
     41                              const ui::Event& event) OVERRIDE;
     42 
     43   SearchResultActionsViewDelegate* delegate_;  // Not owned.
     44   int selected_action_;
     45 
     46   DISALLOW_COPY_AND_ASSIGN(SearchResultActionsView);
     47 };
     48 
     49 }  // namespace app_list
     50 
     51 #endif  // UI_APP_LIST_VIEWS_SEARCH_RESULT_ACTIONS_VIEW_H_
     52