Index: views/controls/tabbed_pane/tabbed_pane.h |
=================================================================== |
--- views/controls/tabbed_pane/tabbed_pane.h (revision 0) |
+++ views/controls/tabbed_pane/tabbed_pane.h (working copy) |
@@ -1,20 +1,21 @@ |
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2009 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. |
#ifndef VIEWS_CONTROLS_TABBED_PANE_H_ |
#define VIEWS_CONTROLS_TABBED_PANE_H_ |
-#include "views/controls/native_control.h" |
+#include "views/view.h" |
namespace views { |
+class NativeTabbedPaneWrapper; |
+ |
// The TabbedPane class is a view that shows tabs. When the user clicks on a |
// tab, the associated view is displayed. |
// TODO (jcampan): implement GetPreferredSize(). |
-class WidgetWin; |
-class TabbedPane : public NativeControl { |
+class TabbedPane : public View { |
public: |
TabbedPane(); |
virtual ~TabbedPane(); |
@@ -28,6 +29,15 @@ |
}; |
void SetListener(Listener* listener); |
+ // Returns the number of tabs. |
+ int GetTabCount(); |
+ |
+ // Returns the index of the selected tab. |
+ int GetSelectedTabIndex(); |
+ |
+ // Returns the contents of the selected tab. |
+ View* GetSelectedTab(); |
+ |
// Adds a new tab at the end of this TabbedPane with the specified |title|. |
// |contents| is the view displayed when the tab is selected and is owned by |
// the TabbedPane. |
@@ -51,44 +61,32 @@ |
// Selects the tab at the specified |index|, which must be valid. |
void SelectTabAt(int index); |
- // Selects the tab containing the specified |contents|, which must be valid. |
- void SelectTabForContents(const View* contents); |
+ Listener* listener() const { return listener_; } |
- // Returns the number of tabs. |
- int GetTabCount(); |
- |
- virtual HWND CreateNativeControl(HWND parent_container); |
- virtual LRESULT OnNotify(int w_param, LPNMHDR l_param); |
- |
+ // View overrides: |
+ virtual void ViewHierarchyChanged(bool is_add, View* parent, View* child); |
+ virtual std::string GetClassName() const; |
virtual void Layout(); |
+ virtual void Focus(); |
- virtual RootView* GetContentsRootView(); |
- virtual FocusTraversable* GetFocusTraversable(); |
- virtual void ViewHierarchyChanged(bool is_add, View *parent, View *child); |
+ protected: |
+ // The object that actually implements the tabbed-pane. |
+ // Protected for tests access. |
+ NativeTabbedPaneWrapper* native_tabbed_pane_; |
private: |
- // Changes the contents view to the view associated with the tab at |index|. |
- void DoSelectTabAt(int index); |
+ // The tabbed-pane's class name. |
+ static const char kViewClassName[]; |
- // Returns the index of the tab containing the specified |contents|. |
- int GetIndexForContents(const View* contents) const; |
+ // Creates the native wrapper. |
+ void CreateWrapper(); |
- void ResizeContents(HWND tab_control); |
- |
- HWND tab_control_; |
- |
- // The views associated with the different tabs. |
- std::vector<View*> tab_views_; |
- |
- // The window displayed in the tab. |
- WidgetWin* content_window_; |
- |
// The listener we notify about tab selection changes. |
Listener* listener_; |
- DISALLOW_EVIL_CONSTRUCTORS(TabbedPane); |
+ DISALLOW_COPY_AND_ASSIGN(TabbedPane); |
}; |
} // namespace views |
-#endif // #define VIEWS_CONTROLS_TABBED_PANE_H_ |
+#endif // VIEWS_CONTROLS_TABBED_PANE_H_ |