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