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 UI_VIEWS_CONTROLS_TABBED_PANE_TABBED_PANE_H_ | 5 #ifndef UI_VIEWS_CONTROLS_TABBED_PANE_TABBED_PANE_H_ |
6 #define UI_VIEWS_CONTROLS_TABBED_PANE_TABBED_PANE_H_ | 6 #define UI_VIEWS_CONTROLS_TABBED_PANE_TABBED_PANE_H_ |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
11 #include "ui/views/view.h" | 11 #include "ui/views/view.h" |
12 | 12 |
13 namespace views { | 13 namespace views { |
14 | 14 |
15 class Tab; | 15 class Tab; |
16 class TabbedPaneListener; | 16 class TabbedPaneListener; |
17 class TabStrip; | 17 class TabStrip; |
18 | 18 |
19 // TabbedPane is a view that shows tabs. When the user clicks on a tab, the | 19 // TabbedPane is a view that shows tabs. When the user clicks on a tab, the |
20 // associated view is displayed. | 20 // associated view is displayed. |
21 class VIEWS_EXPORT TabbedPane : public View { | 21 class VIEWS_EXPORT TabbedPane : public View { |
22 public: | 22 public: |
23 // Internal class name. | 23 // Internal class name. |
24 static const char kViewClassName[]; | 24 static const char kViewClassName[]; |
25 | 25 |
26 TabbedPane(); | 26 TabbedPane(); |
27 virtual ~TabbedPane(); | 27 ~TabbedPane() override; |
28 | 28 |
29 TabbedPaneListener* listener() const { return listener_; } | 29 TabbedPaneListener* listener() const { return listener_; } |
30 void set_listener(TabbedPaneListener* listener) { listener_ = listener; } | 30 void set_listener(TabbedPaneListener* listener) { listener_ = listener; } |
31 | 31 |
32 int selected_tab_index() const { return selected_tab_index_; } | 32 int selected_tab_index() const { return selected_tab_index_; } |
33 | 33 |
34 // Returns the number of tabs. | 34 // Returns the number of tabs. |
35 int GetTabCount(); | 35 int GetTabCount(); |
36 | 36 |
37 // Returns the contents of the selected tab or NULL if there is none. | 37 // Returns the contents of the selected tab or NULL if there is none. |
38 View* GetSelectedTab(); | 38 View* GetSelectedTab(); |
39 | 39 |
40 // Adds a new tab at the end of this TabbedPane with the specified |title|. | 40 // Adds a new tab at the end of this TabbedPane with the specified |title|. |
41 // |contents| is the view displayed when the tab is selected and is owned by | 41 // |contents| is the view displayed when the tab is selected and is owned by |
42 // the TabbedPane. | 42 // the TabbedPane. |
43 void AddTab(const base::string16& title, View* contents); | 43 void AddTab(const base::string16& title, View* contents); |
44 | 44 |
45 // Adds a new tab at |index| with |title|. |contents| is the view displayed | 45 // Adds a new tab at |index| with |title|. |contents| is the view displayed |
46 // when the tab is selected and is owned by the TabbedPane. If the tabbed pane | 46 // when the tab is selected and is owned by the TabbedPane. If the tabbed pane |
47 // is currently empty, the new tab is selected. | 47 // is currently empty, the new tab is selected. |
48 void AddTabAtIndex(int index, const base::string16& title, View* contents); | 48 void AddTabAtIndex(int index, const base::string16& title, View* contents); |
49 | 49 |
50 // Selects the tab at |index|, which must be valid. | 50 // Selects the tab at |index|, which must be valid. |
51 void SelectTabAt(int index); | 51 void SelectTabAt(int index); |
52 | 52 |
53 // Selects |tab| (the tabstrip view, not its content) if it is valid. | 53 // Selects |tab| (the tabstrip view, not its content) if it is valid. |
54 void SelectTab(Tab* tab); | 54 void SelectTab(Tab* tab); |
55 | 55 |
56 // Overridden from View: | 56 // Overridden from View: |
57 virtual gfx::Size GetPreferredSize() const override; | 57 gfx::Size GetPreferredSize() const override; |
58 virtual const char* GetClassName() const override; | 58 const char* GetClassName() const override; |
59 | 59 |
60 private: | 60 private: |
61 friend class TabStrip; | 61 friend class TabStrip; |
62 | 62 |
63 // Get the Tab (the tabstrip view, not its content) at the valid |index|. | 63 // Get the Tab (the tabstrip view, not its content) at the valid |index|. |
64 Tab* GetTabAt(int index); | 64 Tab* GetTabAt(int index); |
65 | 65 |
66 // Overridden from View: | 66 // Overridden from View: |
67 virtual void Layout() override; | 67 void Layout() override; |
68 virtual void ViewHierarchyChanged( | 68 void ViewHierarchyChanged( |
69 const ViewHierarchyChangedDetails& details) override; | 69 const ViewHierarchyChangedDetails& details) override; |
70 virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) override; | 70 bool AcceleratorPressed(const ui::Accelerator& accelerator) override; |
71 virtual void OnFocus() override; | 71 void OnFocus() override; |
72 virtual void GetAccessibleState(ui::AXViewState* state) override; | 72 void GetAccessibleState(ui::AXViewState* state) override; |
73 | 73 |
74 // A listener notified when tab selection changes. Weak, not owned. | 74 // A listener notified when tab selection changes. Weak, not owned. |
75 TabbedPaneListener* listener_; | 75 TabbedPaneListener* listener_; |
76 | 76 |
77 // The tab strip and contents container. The child indices of these members | 77 // The tab strip and contents container. The child indices of these members |
78 // correspond to match each Tab with its respective content View. | 78 // correspond to match each Tab with its respective content View. |
79 TabStrip* tab_strip_; | 79 TabStrip* tab_strip_; |
80 View* contents_; | 80 View* contents_; |
81 | 81 |
82 // The selected tab index or -1 if invalid. | 82 // The selected tab index or -1 if invalid. |
83 int selected_tab_index_; | 83 int selected_tab_index_; |
84 | 84 |
85 DISALLOW_COPY_AND_ASSIGN(TabbedPane); | 85 DISALLOW_COPY_AND_ASSIGN(TabbedPane); |
86 }; | 86 }; |
87 | 87 |
88 } // namespace views | 88 } // namespace views |
89 | 89 |
90 #endif // UI_VIEWS_CONTROLS_TABBED_PANE_TABBED_PANE_H_ | 90 #endif // UI_VIEWS_CONTROLS_TABBED_PANE_TABBED_PANE_H_ |
OLD | NEW |