Home | History | Annotate | Download | only in views
      1 // Copyright 2014 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_CONTENTS_SWITCHER_VIEW_H_
      6 #define UI_APP_LIST_VIEWS_CONTENTS_SWITCHER_VIEW_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "ui/views/controls/button/button.h"
     10 #include "ui/views/view.h"
     11 
     12 namespace app_list {
     13 
     14 class ContentsView;
     15 
     16 // A view that contains buttons to switch the displayed view in the given
     17 // ContentsView.
     18 class ContentsSwitcherView : public views::View, public views::ButtonListener {
     19  public:
     20   explicit ContentsSwitcherView(ContentsView* contents_view);
     21   virtual ~ContentsSwitcherView();
     22 
     23   ContentsView* contents_view() const { return contents_view_; }
     24 
     25   // Adds a switcher button using |resource_id| as the button's image, which
     26   // opens the page with index |page_index| in the ContentsView. |resource_id|
     27   // is ignored if it is 0.
     28   void AddSwitcherButton(int resource_id, int page_index);
     29 
     30  private:
     31   // Overridden from views::View:
     32   virtual gfx::Size GetPreferredSize() const OVERRIDE;
     33   virtual void Layout() OVERRIDE;
     34 
     35   // Overridden from views::ButtonListener:
     36   virtual void ButtonPressed(views::Button* sender,
     37                              const ui::Event& event) OVERRIDE;
     38 
     39   ContentsView* contents_view_;  // Owned by views hierarchy.
     40   views::View* buttons_;         // Owned by views hierarchy.
     41 
     42   DISALLOW_COPY_AND_ASSIGN(ContentsSwitcherView);
     43 };
     44 
     45 }  // namespace app_list
     46 
     47 #endif  // UI_APP_LIST_VIEWS_CONTENTS_SWITCHER_VIEW_H_
     48