Index: views/examples/tabbed_pane_example.cc |
diff --git a/views/examples/tabbed_pane_example.cc b/views/examples/tabbed_pane_example.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..09090b1613b9b5834dbc66b40fc5b4edcf5a961b |
--- /dev/null |
+++ b/views/examples/tabbed_pane_example.cc |
@@ -0,0 +1,90 @@ |
+// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "views/examples/tabbed_pane_example.h" |
+ |
+namespace examples { |
+ |
+TabbedPaneExample::TabbedPaneExample(ExamplesMain* main) |
+ : ExampleBase(main) { |
+} |
+ |
+TabbedPaneExample::~TabbedPaneExample() { |
+} |
+ |
+std::wstring TabbedPaneExample::GetExampleTitle() { |
+ return L"Tabbed Pane"; |
+} |
+ |
+void TabbedPaneExample::CreateExampleView(views::View* container) { |
+ tabbed_pane_ = new views::TabbedPane(); |
+ add_ = new views::TextButton(this, L"Add"); |
+ add_at_ = new views::TextButton(this, L"Add At 1"); |
+ remove_at_ = new views::TextButton(this, L"Remove At 1"); |
+ select_at_ = new views::TextButton(this, L"Select At 1"); |
+ |
+ views::GridLayout* layout = new views::GridLayout(container); |
+ container->SetLayoutManager(layout); |
+ |
+ const int tabbed_pane_column = 0; |
+ views::ColumnSet* column_set = layout->AddColumnSet(tabbed_pane_column); |
+ column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, |
+ 1.0f, views::GridLayout::USE_PREF, 0, 0); |
+ layout->StartRow(1 /* expand */, tabbed_pane_column); |
+ layout->AddView(tabbed_pane_); |
+ |
+ // Create a few tabs with a button first. |
+ AddButton(L"Tab 1"); |
+ AddButton(L"Tab 2"); |
+ |
+ // Add control buttons horizontally. |
+ const int button_column = 1; |
+ column_set = layout->AddColumnSet(button_column); |
+ for (int i = 0; i < 4; i++) { |
+ column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::FILL, |
+ 1.0f, views::GridLayout::USE_PREF, 0, 0); |
+ } |
+ |
+ layout->StartRow(0 /* no expand */, button_column); |
+ layout->AddView(add_); |
+ layout->AddView(add_at_); |
+ layout->AddView(remove_at_); |
+ layout->AddView(select_at_); |
+} |
+ |
+void TabbedPaneExample::ButtonPressed(views::Button* sender, |
+ const views::Event& sender) { |
+ if (sender == add_) { |
+ AddButton(L"Added"); |
+ } else if (sender == add_at_) { |
+ const std::wstring label = L"Added at 1"; |
+ tabbed_pane_->AddTabAtIndex(1, label, |
+ new views::TextButton(NULL, label), true); |
+ } else if (sender == remove_at_) { |
+ if (tabbed_pane_->GetTabCount() > 1) |
+ delete tabbed_pane_->RemoveTabAtIndex(1); |
+ } else if (sender == select_at_) { |
+ if (tabbed_pane_->GetTabCount() > 1) |
+ tabbed_pane_->SelectTabAt(1); |
+ } |
+ PrintStatus(); |
+} |
+ |
+void TabbedPaneExample::TabSelectedAt(int index) { |
+ // Just print the status when selection changes. |
+ PrintStatus(); |
+} |
+ |
+void TabbedPaneExample::PrintStatus() { |
+ ExampleBase::PrintStatus(L"Tab Count:%d, Selected Tab:%d", |
+ tabbed_pane_->GetTabCount(), |
+ tabbed_pane_->GetSelectedTabIndex()); |
+} |
+ |
+void TabbedPaneExample::AddButton(const std::wstring& label) { |
+ views::TextButton* button = new views::TextButton(NULL, label); |
+ tabbed_pane_->AddTab(label, button); |
+} |
+ |
+} // namespace examples |