Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(182)

Side by Side Diff: ui/views/controls/tabbed_pane/tabbed_pane.cc

Issue 889453004: Tab, TabStrip: Added GetClassName override. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "ui/views/controls/tabbed_pane/tabbed_pane.h" 5 #include "ui/views/controls/tabbed_pane/tabbed_pane.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "ui/accessibility/ax_view_state.h" 8 #include "ui/accessibility/ax_view_state.h"
9 #include "ui/base/resource/resource_bundle.h" 9 #include "ui/base/resource/resource_bundle.h"
10 #include "ui/events/keycodes/keyboard_codes.h" 10 #include "ui/events/keycodes/keyboard_codes.h"
(...skipping 16 matching lines...) Expand all
27 } // namespace 27 } // namespace
28 28
29 namespace views { 29 namespace views {
30 30
31 // static 31 // static
32 const char TabbedPane::kViewClassName[] = "TabbedPane"; 32 const char TabbedPane::kViewClassName[] = "TabbedPane";
33 33
34 // The tab view shown in the tab strip. 34 // The tab view shown in the tab strip.
35 class Tab : public View { 35 class Tab : public View {
36 public: 36 public:
37 // Internal class name.
38 static const char kViewClassName[];
39
37 Tab(TabbedPane* tabbed_pane, const base::string16& title, View* contents); 40 Tab(TabbedPane* tabbed_pane, const base::string16& title, View* contents);
38 ~Tab() override; 41 ~Tab() override;
39 42
40 View* contents() const { return contents_; } 43 View* contents() const { return contents_; }
41 44
42 bool selected() const { return contents_->visible(); } 45 bool selected() const { return contents_->visible(); }
43 void SetSelected(bool selected); 46 void SetSelected(bool selected);
44 47
45 // Overridden from View: 48 // Overridden from View:
46 bool OnMousePressed(const ui::MouseEvent& event) override; 49 bool OnMousePressed(const ui::MouseEvent& event) override;
47 void OnMouseEntered(const ui::MouseEvent& event) override; 50 void OnMouseEntered(const ui::MouseEvent& event) override;
48 void OnMouseExited(const ui::MouseEvent& event) override; 51 void OnMouseExited(const ui::MouseEvent& event) override;
49 void OnGestureEvent(ui::GestureEvent* event) override; 52 void OnGestureEvent(ui::GestureEvent* event) override;
50 gfx::Size GetPreferredSize() const override; 53 gfx::Size GetPreferredSize() const override;
51 void Layout() override; 54 void Layout() override;
55 const char* GetClassName() const override;
52 56
53 private: 57 private:
54 enum TabState { 58 enum TabState {
55 TAB_INACTIVE, 59 TAB_INACTIVE,
56 TAB_ACTIVE, 60 TAB_ACTIVE,
57 TAB_HOVERED, 61 TAB_HOVERED,
58 }; 62 };
59 63
60 void SetState(TabState tab_state); 64 void SetState(TabState tab_state);
61 65
62 TabbedPane* tabbed_pane_; 66 TabbedPane* tabbed_pane_;
63 Label* title_; 67 Label* title_;
64 gfx::Size preferred_title_size_; 68 gfx::Size preferred_title_size_;
65 TabState tab_state_; 69 TabState tab_state_;
66 // The content view associated with this tab. 70 // The content view associated with this tab.
67 View* contents_; 71 View* contents_;
68 72
69 DISALLOW_COPY_AND_ASSIGN(Tab); 73 DISALLOW_COPY_AND_ASSIGN(Tab);
70 }; 74 };
71 75
72 // The tab strip shown above the tab contents. 76 // The tab strip shown above the tab contents.
73 class TabStrip : public View { 77 class TabStrip : public View {
74 public: 78 public:
79 // Internal class name.
80 static const char kViewClassName[];
81
75 explicit TabStrip(TabbedPane* tabbed_pane); 82 explicit TabStrip(TabbedPane* tabbed_pane);
76 ~TabStrip() override; 83 ~TabStrip() override;
77 84
78 // Overridden from View: 85 // Overridden from View:
79 gfx::Size GetPreferredSize() const override; 86 gfx::Size GetPreferredSize() const override;
80 void Layout() override; 87 void Layout() override;
88 const char* GetClassName() const override;
81 void OnPaint(gfx::Canvas* canvas) override; 89 void OnPaint(gfx::Canvas* canvas) override;
82 90
83 private: 91 private:
84 TabbedPane* tabbed_pane_; 92 TabbedPane* tabbed_pane_;
85 93
86 DISALLOW_COPY_AND_ASSIGN(TabStrip); 94 DISALLOW_COPY_AND_ASSIGN(TabStrip);
87 }; 95 };
88 96
97 // static
98 const char Tab::kViewClassName[] = "Tab";
99
89 Tab::Tab(TabbedPane* tabbed_pane, const base::string16& title, View* contents) 100 Tab::Tab(TabbedPane* tabbed_pane, const base::string16& title, View* contents)
90 : tabbed_pane_(tabbed_pane), 101 : tabbed_pane_(tabbed_pane),
91 title_(new Label(title, 102 title_(new Label(title,
92 ui::ResourceBundle::GetSharedInstance().GetFontList( 103 ui::ResourceBundle::GetSharedInstance().GetFontList(
93 ui::ResourceBundle::BoldFont))), 104 ui::ResourceBundle::BoldFont))),
94 tab_state_(TAB_ACTIVE), 105 tab_state_(TAB_ACTIVE),
95 contents_(contents) { 106 contents_(contents) {
96 // Calculate this now while the font list is guaranteed to be bold. 107 // Calculate this now while the font list is guaranteed to be bold.
97 preferred_title_size_ = title_->GetPreferredSize(); 108 preferred_title_size_ = title_->GetPreferredSize();
98 109
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 return size; 159 return size;
149 } 160 }
150 161
151 void Tab::Layout() { 162 void Tab::Layout() {
152 gfx::Rect bounds = GetLocalBounds(); 163 gfx::Rect bounds = GetLocalBounds();
153 bounds.Inset(0, 1, 0, 0); 164 bounds.Inset(0, 1, 0, 0);
154 bounds.ClampToCenteredSize(preferred_title_size_); 165 bounds.ClampToCenteredSize(preferred_title_size_);
155 title_->SetBoundsRect(bounds); 166 title_->SetBoundsRect(bounds);
156 } 167 }
157 168
169 const char* Tab::GetClassName() const {
170 return kViewClassName;
171 }
172
158 void Tab::SetState(TabState tab_state) { 173 void Tab::SetState(TabState tab_state) {
159 if (tab_state == tab_state_) 174 if (tab_state == tab_state_)
160 return; 175 return;
161 tab_state_ = tab_state; 176 tab_state_ = tab_state;
162 177
163 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); 178 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
164 switch (tab_state) { 179 switch (tab_state) {
165 case TAB_INACTIVE: 180 case TAB_INACTIVE:
166 title_->SetEnabledColor(kTabTitleColor_Inactive); 181 title_->SetEnabledColor(kTabTitleColor_Inactive);
167 title_->SetFontList(rb.GetFontList(ui::ResourceBundle::BaseFont)); 182 title_->SetFontList(rb.GetFontList(ui::ResourceBundle::BaseFont));
168 break; 183 break;
169 case TAB_ACTIVE: 184 case TAB_ACTIVE:
170 title_->SetEnabledColor(kTabTitleColor_Active); 185 title_->SetEnabledColor(kTabTitleColor_Active);
171 title_->SetFontList(rb.GetFontList(ui::ResourceBundle::BoldFont)); 186 title_->SetFontList(rb.GetFontList(ui::ResourceBundle::BoldFont));
172 break; 187 break;
173 case TAB_HOVERED: 188 case TAB_HOVERED:
174 title_->SetEnabledColor(kTabTitleColor_Hovered); 189 title_->SetEnabledColor(kTabTitleColor_Hovered);
175 title_->SetFontList(rb.GetFontList(ui::ResourceBundle::BaseFont)); 190 title_->SetFontList(rb.GetFontList(ui::ResourceBundle::BaseFont));
176 break; 191 break;
177 } 192 }
178 SchedulePaint(); 193 SchedulePaint();
179 } 194 }
180 195
196 // static
197 const char TabStrip::kViewClassName[] = "TabStrip";
198
181 TabStrip::TabStrip(TabbedPane* tabbed_pane) : tabbed_pane_(tabbed_pane) {} 199 TabStrip::TabStrip(TabbedPane* tabbed_pane) : tabbed_pane_(tabbed_pane) {}
182 200
183 TabStrip::~TabStrip() {} 201 TabStrip::~TabStrip() {}
184 202
185 gfx::Size TabStrip::GetPreferredSize() const { 203 gfx::Size TabStrip::GetPreferredSize() const {
186 gfx::Size size; 204 gfx::Size size;
187 for (int i = 0; i < child_count(); ++i) { 205 for (int i = 0; i < child_count(); ++i) {
188 const gfx::Size child_size = child_at(i)->GetPreferredSize(); 206 const gfx::Size child_size = child_at(i)->GetPreferredSize();
189 size.SetSize(size.width() + child_size.width(), 207 size.SetSize(size.width() + child_size.width(),
190 std::max(size.height(), child_size.height())); 208 std::max(size.height(), child_size.height()));
191 } 209 }
192 return size; 210 return size;
193 } 211 }
194 212
195 void TabStrip::Layout() { 213 void TabStrip::Layout() {
196 const int kTabOffset = 9; 214 const int kTabOffset = 9;
197 int x = kTabOffset; // Layout tabs with an offset to the tabstrip border. 215 int x = kTabOffset; // Layout tabs with an offset to the tabstrip border.
198 for (int i = 0; i < child_count(); ++i) { 216 for (int i = 0; i < child_count(); ++i) {
199 gfx::Size ps = child_at(i)->GetPreferredSize(); 217 gfx::Size ps = child_at(i)->GetPreferredSize();
200 child_at(i)->SetBounds(x, 0, ps.width(), ps.height()); 218 child_at(i)->SetBounds(x, 0, ps.width(), ps.height());
201 x = child_at(i)->bounds().right(); 219 x = child_at(i)->bounds().right();
202 } 220 }
203 } 221 }
204 222
223 const char* TabStrip::GetClassName() const {
224 return kViewClassName;
225 }
226
205 void TabStrip::OnPaint(gfx::Canvas* canvas) { 227 void TabStrip::OnPaint(gfx::Canvas* canvas) {
206 OnPaintBackground(canvas); 228 OnPaintBackground(canvas);
207 229
208 // Draw the TabStrip border. 230 // Draw the TabStrip border.
209 SkPaint paint; 231 SkPaint paint;
210 paint.setColor(kTabBorderColor); 232 paint.setColor(kTabBorderColor);
211 paint.setStrokeWidth(kTabBorderThickness); 233 paint.setStrokeWidth(kTabBorderThickness);
212 SkScalar line_y = SkIntToScalar(height()) - (kTabBorderThickness / 2); 234 SkScalar line_y = SkIntToScalar(height()) - (kTabBorderThickness / 2);
213 SkScalar line_end = SkIntToScalar(width()); 235 SkScalar line_end = SkIntToScalar(width());
214 int selected_tab_index = tabbed_pane_->selected_tab_index(); 236 int selected_tab_index = tabbed_pane_->selected_tab_index();
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 selected_tab->NotifyAccessibilityEvent( 388 selected_tab->NotifyAccessibilityEvent(
367 ui::AX_EVENT_FOCUS, true); 389 ui::AX_EVENT_FOCUS, true);
368 } 390 }
369 } 391 }
370 392
371 void TabbedPane::GetAccessibleState(ui::AXViewState* state) { 393 void TabbedPane::GetAccessibleState(ui::AXViewState* state) {
372 state->role = ui::AX_ROLE_TAB_LIST; 394 state->role = ui::AX_ROLE_TAB_LIST;
373 } 395 }
374 396
375 } // namespace views 397 } // namespace views
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698