OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/app_list/views/signin_view.h" | 5 #include "ui/app_list/views/signin_view.h" |
6 | 6 |
7 #include "ui/app_list/signin_delegate.h" | 7 #include "ui/app_list/signin_delegate.h" |
8 #include "ui/base/resource/resource_bundle.h" | 8 #include "ui/gfx/font_list.h" |
9 #include "ui/gfx/font.h" | |
10 #include "ui/views/background.h" | 9 #include "ui/views/background.h" |
11 #include "ui/views/controls/button/blue_button.h" | 10 #include "ui/views/controls/button/blue_button.h" |
12 #include "ui/views/controls/label.h" | 11 #include "ui/views/controls/label.h" |
13 #include "ui/views/controls/link.h" | 12 #include "ui/views/controls/link.h" |
14 #include "ui/views/layout/grid_layout.h" | 13 #include "ui/views/layout/grid_layout.h" |
15 | 14 |
16 namespace { | 15 namespace { |
17 | 16 |
18 const int kTopPadding = 40; | 17 const int kTopPadding = 40; |
19 const int kBottomPadding = 40; | 18 const int kBottomPadding = 40; |
20 const int kLeftPadding = 40; | 19 const int kLeftPadding = 40; |
21 const int kRightPadding = 40; | 20 const int kRightPadding = 40; |
22 const int kHeadingPadding = 30; | 21 const int kHeadingPadding = 30; |
23 const int kButtonPadding = 40; | 22 const int kButtonPadding = 40; |
24 | 23 |
25 const int kTitleFontSize = 18; | 24 const int kTitleFontSize = 18; |
26 const int kTextFontSize = 13; | 25 const int kTextFontSize = 13; |
27 const int kButtonFontSize = 12; | 26 const int kButtonFontSize = 12; |
28 | 27 |
29 } // namespace | 28 } // namespace |
30 | 29 |
31 namespace app_list { | 30 namespace app_list { |
32 | 31 |
33 SigninView::SigninView(SigninDelegate* delegate, int width) | 32 SigninView::SigninView(SigninDelegate* delegate, int width) |
34 : delegate_(delegate) { | 33 : delegate_(delegate) { |
35 if (!delegate_) | 34 if (!delegate_) |
36 return; | 35 return; |
37 | 36 |
38 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); | 37 const gfx::FontList base_font_list; |
39 const gfx::Font& base_font = rb.GetFont(ui::ResourceBundle::BaseFont); | 38 const gfx::FontList& title_font_list = |
40 title_font_.reset(new gfx::Font(base_font.GetFontName(), kTitleFontSize)); | 39 base_font_list.DeriveFontListWithSizeDelta( |
41 text_font_.reset(new gfx::Font(base_font.GetFontName(), kTextFontSize)); | 40 kTitleFontSize - base_font_list.GetFontSize()); |
42 button_font_.reset(new gfx::Font(base_font.GetFontName(), kButtonFontSize)); | 41 const gfx::FontList& text_font_list = |
| 42 base_font_list.DeriveFontListWithSizeDelta( |
| 43 kTextFontSize - base_font_list.GetFontSize()); |
| 44 const gfx::FontList& button_font_list = |
| 45 base_font_list.DeriveFontListWithSizeDelta( |
| 46 kButtonFontSize - base_font_list.GetFontSize()); |
43 | 47 |
44 int title_descender = title_font_->GetHeight() - title_font_->GetBaseline(); | 48 int title_descender = |
45 int text_descender = text_font_->GetHeight() - text_font_->GetBaseline(); | 49 title_font_list.GetHeight() - title_font_list.GetBaseline(); |
| 50 int text_descender = |
| 51 text_font_list.GetHeight() - text_font_list.GetBaseline(); |
46 | 52 |
47 views::GridLayout* layout = new views::GridLayout(this); | 53 views::GridLayout* layout = new views::GridLayout(this); |
48 layout->SetInsets(kTopPadding, kLeftPadding, kBottomPadding - text_descender, | 54 layout->SetInsets(kTopPadding, kLeftPadding, kBottomPadding - text_descender, |
49 kRightPadding); | 55 kRightPadding); |
50 SetLayoutManager(layout); | 56 SetLayoutManager(layout); |
51 | 57 |
52 const int kNormalSetId = 0; | 58 const int kNormalSetId = 0; |
53 views::ColumnSet* columns = layout->AddColumnSet(kNormalSetId); | 59 views::ColumnSet* columns = layout->AddColumnSet(kNormalSetId); |
54 columns->AddColumn(views::GridLayout::FILL, | 60 columns->AddColumn(views::GridLayout::FILL, |
55 views::GridLayout::FILL, | 61 views::GridLayout::FILL, |
56 1, | 62 1, |
57 views::GridLayout::USE_PREF, | 63 views::GridLayout::USE_PREF, |
58 0, | 64 0, |
59 0); | 65 0); |
60 | 66 |
61 const int kButtonSetId = 1; | 67 const int kButtonSetId = 1; |
62 columns = layout->AddColumnSet(kButtonSetId); | 68 columns = layout->AddColumnSet(kButtonSetId); |
63 columns->AddColumn(views::GridLayout::LEADING, | 69 columns->AddColumn(views::GridLayout::LEADING, |
64 views::GridLayout::FILL, | 70 views::GridLayout::FILL, |
65 1, | 71 1, |
66 views::GridLayout::USE_PREF, | 72 views::GridLayout::USE_PREF, |
67 0, | 73 0, |
68 0); | 74 0); |
69 | 75 |
70 views::Label* heading = new views::Label(delegate_->GetSigninHeading()); | 76 views::Label* heading = new views::Label(delegate_->GetSigninHeading()); |
71 heading->SetFont(*title_font_); | 77 heading->SetFontList(title_font_list); |
72 heading->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 78 heading->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
73 | 79 |
74 layout->StartRow(0, kNormalSetId); | 80 layout->StartRow(0, kNormalSetId); |
75 layout->AddView(heading); | 81 layout->AddView(heading); |
76 | 82 |
77 views::Label* text = new views::Label(delegate_->GetSigninText()); | 83 views::Label* text = new views::Label(delegate_->GetSigninText()); |
78 text->SetFont(*text_font_); | 84 text->SetFontList(text_font_list); |
79 text->SetMultiLine(true); | 85 text->SetMultiLine(true); |
80 text->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 86 text->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
81 layout->StartRowWithPadding(0, kNormalSetId, 0, | 87 layout->StartRowWithPadding(0, kNormalSetId, 0, |
82 kHeadingPadding - title_descender); | 88 kHeadingPadding - title_descender); |
83 layout->AddView(text); | 89 layout->AddView(text); |
84 | 90 |
85 views::BlueButton* signin_button = new views::BlueButton( | 91 views::BlueButton* signin_button = new views::BlueButton( |
86 this, | 92 this, |
87 delegate_->GetSigninButtonText()); | 93 delegate_->GetSigninButtonText()); |
88 signin_button->SetFont(*button_font_); | 94 signin_button->SetFontList(button_font_list); |
89 layout->StartRowWithPadding(0, kButtonSetId, 0, | 95 layout->StartRowWithPadding(0, kButtonSetId, 0, |
90 kButtonPadding - text_descender); | 96 kButtonPadding - text_descender); |
91 layout->AddView(signin_button); | 97 layout->AddView(signin_button); |
92 | 98 |
93 layout->StartRow(1, kNormalSetId); | 99 layout->StartRow(1, kNormalSetId); |
94 learn_more_link_ = new views::Link(delegate_->GetLearnMoreLinkText()); | 100 learn_more_link_ = new views::Link(delegate_->GetLearnMoreLinkText()); |
95 learn_more_link_->set_listener(this); | 101 learn_more_link_->set_listener(this); |
96 learn_more_link_->SetFont(*text_font_); | 102 learn_more_link_->SetFontList(text_font_list); |
97 learn_more_link_->SetUnderline(false); | 103 learn_more_link_->SetUnderline(false); |
98 layout->AddView(learn_more_link_, | 104 layout->AddView(learn_more_link_, |
99 1, | 105 1, |
100 1, | 106 1, |
101 views::GridLayout::LEADING, | 107 views::GridLayout::LEADING, |
102 views::GridLayout::TRAILING); | 108 views::GridLayout::TRAILING); |
103 | 109 |
104 layout->StartRow(0, kNormalSetId); | 110 layout->StartRow(0, kNormalSetId); |
105 settings_link_ = new views::Link(delegate_->GetSettingsLinkText()); | 111 settings_link_ = new views::Link(delegate_->GetSettingsLinkText()); |
106 settings_link_->set_listener(this); | 112 settings_link_->set_listener(this); |
107 settings_link_->SetFont(*text_font_); | 113 settings_link_->SetFontList(text_font_list); |
108 settings_link_->SetUnderline(false); | 114 settings_link_->SetUnderline(false); |
109 layout->AddView(settings_link_, | 115 layout->AddView(settings_link_, |
110 1, | 116 1, |
111 1, | 117 1, |
112 views::GridLayout::LEADING, | 118 views::GridLayout::LEADING, |
113 views::GridLayout::TRAILING); | 119 views::GridLayout::TRAILING); |
114 } | 120 } |
115 | 121 |
116 SigninView::~SigninView() { | 122 SigninView::~SigninView() { |
117 } | 123 } |
118 | 124 |
119 void SigninView::ButtonPressed(views::Button* sender, const ui::Event& event) { | 125 void SigninView::ButtonPressed(views::Button* sender, const ui::Event& event) { |
120 if (delegate_) | 126 if (delegate_) |
121 delegate_->ShowSignin(); | 127 delegate_->ShowSignin(); |
122 } | 128 } |
123 | 129 |
124 void SigninView::LinkClicked(views::Link* source, int event_flags) { | 130 void SigninView::LinkClicked(views::Link* source, int event_flags) { |
125 if (delegate_) { | 131 if (delegate_) { |
126 if (source == learn_more_link_) | 132 if (source == learn_more_link_) |
127 delegate_->OpenLearnMore(); | 133 delegate_->OpenLearnMore(); |
128 else if (source == settings_link_) | 134 else if (source == settings_link_) |
129 delegate_->OpenSettings(); | 135 delegate_->OpenSettings(); |
130 else | 136 else |
131 NOTREACHED(); | 137 NOTREACHED(); |
132 } | 138 } |
133 } | 139 } |
134 | 140 |
135 } // namespace app_list | 141 } // namespace app_list |
OLD | NEW |