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

Side by Side Diff: chrome/browser/chromeos/compact_navigation_bar.cc

Issue 329009: CompactNavigationBar for toolkit views build, with some design change per Cole's request. (Closed)
Patch Set: updates per review Created 11 years, 2 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
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 "chrome/browser/chromeos/compact_navigation_bar.h" 5 #include "chrome/browser/chromeos/compact_navigation_bar.h"
6 6
7 #include "app/gfx/canvas.h" 7 #include "app/gfx/canvas.h"
8 #include "app/resource_bundle.h" 8 #include "app/resource_bundle.h"
9 #include "app/theme_provider.h" 9 #include "app/theme_provider.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 22 matching lines...) Expand all
33 // Draw this much white around the URL bar to make it look larger than it 33 // Draw this much white around the URL bar to make it look larger than it
34 // actually is. 34 // actually is.
35 static const int kURLPadding = 2; 35 static const int kURLPadding = 2;
36 36
37 CompactNavigationBar::CompactNavigationBar(Browser* browser) 37 CompactNavigationBar::CompactNavigationBar(Browser* browser)
38 : browser_(browser), 38 : browser_(browser),
39 initialized_(false) { 39 initialized_(false) {
40 } 40 }
41 41
42 CompactNavigationBar::~CompactNavigationBar() { 42 CompactNavigationBar::~CompactNavigationBar() {
43 location_entry_view_->Detach(); 43 if (location_entry_view_->native_view())
44 location_entry_view_->Detach();
44 } 45 }
45 46
46 void CompactNavigationBar::Init() { 47 void CompactNavigationBar::Init() {
47 DCHECK(!initialized_); 48 DCHECK(!initialized_);
48 initialized_ = true; 49 initialized_ = true;
49 50
50 ResourceBundle& resource_bundle = ResourceBundle::GetSharedInstance(); 51 ResourceBundle& resource_bundle = ResourceBundle::GetSharedInstance();
51 52
52 back_button_ = new views::ImageButton(this); 53 back_button_ = new views::ImageButton(this);
53 back_button_->SetImage(views::CustomButton::BS_NORMAL, 54 back_button_->SetImage(views::CustomButton::BS_NORMAL,
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 kInnerPadding * 2; 94 kInnerPadding * 2;
94 95
95 width++; 96 width++;
96 return gfx::Size(width, kPreferredHeight); 97 return gfx::Size(width, kPreferredHeight);
97 } 98 }
98 99
99 void CompactNavigationBar::Layout() { 100 void CompactNavigationBar::Layout() {
100 if (!initialized_) 101 if (!initialized_)
101 return; 102 return;
102 103
103 int curx = 0; 104 // We hide navigation buttons when the entry has focus. Navigation
105 // buttons' visibility is controlled in OnKillFocus/OnSetFocus methods.
106 if (!back_button_->IsVisible()) {
107 // Fill the view with the entry view while it has focus.
108 location_entry_view_->SetBounds(kURLPadding, 0,
109 width() - kHorizPadding, height());
110 } else {
111 // Layout forward/back buttons after entry views as follows:
112 // [Entry View] [Back]|[Forward]
113 int curx = 0;
114 // URL bar.
115 location_entry_view_->SetBounds(curx + kURLPadding, 0,
116 kURLWidth + kURLPadding * 2, height());
117 curx += kURLWidth + kHorizPadding + kURLPadding * 2;
104 118
105 // "Back | Forward" section. 119 // "Back | Forward" section.
106 gfx::Size button_size = back_button_->GetPreferredSize(); 120 gfx::Size button_size = back_button_->GetPreferredSize();
107 button_size.set_width(button_size.width() + kInnerPadding * 2); 121 button_size.set_width(button_size.width() + kInnerPadding * 2);
108 back_button_->SetBounds(curx, 0, button_size.width(), height()); 122 back_button_->SetBounds(curx, 0, button_size.width(), height());
109 curx += button_size.width() + kHorizPadding; 123 curx += button_size.width() + kHorizPadding;
110 124
111 button_size = bf_separator_->GetPreferredSize(); 125 button_size = bf_separator_->GetPreferredSize();
112 bf_separator_->SetBounds(curx, 0, button_size.width(), height()); 126 bf_separator_->SetBounds(curx, 0, button_size.width(), height());
113 curx += button_size.width() + kHorizPadding; 127 curx += button_size.width() + kHorizPadding;
114 128
115 button_size = forward_button_->GetPreferredSize(); 129 button_size = forward_button_->GetPreferredSize();
116 button_size.set_width(button_size.width() + kInnerPadding * 2); 130 button_size.set_width(button_size.width() + kInnerPadding * 2);
117 forward_button_->SetBounds(curx, 0, button_size.width(), height()); 131 forward_button_->SetBounds(curx, 0, button_size.width(), height());
118 curx += button_size.width() + kHorizPadding; 132 curx += button_size.width() + kHorizPadding;
119 133 }
120 // URL bar.
121 location_entry_view_->SetBounds(curx + kURLPadding, 0,
122 kURLWidth + kURLPadding * 2, height());
123 curx += kURLWidth + kHorizPadding + kURLPadding * 2;
124 } 134 }
125 135
126 void CompactNavigationBar::Paint(gfx::Canvas* canvas) { 136 void CompactNavigationBar::Paint(gfx::Canvas* canvas) {
127 ThemeProvider* theme = browser_->profile()->GetThemeProvider(); 137 ThemeProvider* theme = browser_->profile()->GetThemeProvider();
128 138
129 // Fill the background. 139 // Fill the background.
130 int image_name; 140 int image_name;
131 if (browser_->window()->IsActive()) { 141 if (browser_->window()->IsActive()) {
132 image_name = browser_->profile()->IsOffTheRecord() ? 142 image_name = browser_->profile()->IsOffTheRecord() ?
133 IDR_THEME_FRAME_INCOGNITO : IDR_THEME_FRAME; 143 IDR_THEME_FRAME_INCOGNITO : IDR_THEME_FRAME;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 AddTabWithURL(url, transition); 183 AddTabWithURL(url, transition);
174 } 184 }
175 185
176 void CompactNavigationBar::OnChanged() { 186 void CompactNavigationBar::OnChanged() {
177 // Other one does "DoLayout" here. 187 // Other one does "DoLayout" here.
178 } 188 }
179 189
180 void CompactNavigationBar::OnInputInProgress(bool in_progress) { 190 void CompactNavigationBar::OnInputInProgress(bool in_progress) {
181 } 191 }
182 192
193 void CompactNavigationBar::OnKillFocus() {
194 back_button_->SetVisible(true);
195 bf_separator_->SetVisible(true);
196 forward_button_->SetVisible(true);
197 Layout();
198 SchedulePaint();
199 }
200
183 void CompactNavigationBar::OnSetFocus() { 201 void CompactNavigationBar::OnSetFocus() {
202 back_button_->SetVisible(false);
203 bf_separator_->SetVisible(false);
204 forward_button_->SetVisible(false);
205 Layout();
206 SchedulePaint();
184 } 207 }
185 208
186 SkBitmap CompactNavigationBar::GetFavIcon() const { 209 SkBitmap CompactNavigationBar::GetFavIcon() const {
187 return SkBitmap(); 210 return SkBitmap();
188 } 211 }
189 212
190 std::wstring CompactNavigationBar::GetTitle() const { 213 std::wstring CompactNavigationBar::GetTitle() const {
191 return std::wstring(); 214 return std::wstring();
192 } 215 }
193 216
(...skipping 17 matching lines...) Expand all
211 browser_->GetSelectedTabContents()->controller().LoadURL( 234 browser_->GetSelectedTabContents()->controller().LoadURL(
212 url, GURL(), transition); 235 url, GURL(), transition);
213 break; 236 break;
214 } 237 }
215 case StatusAreaView::OPEN_TABS_ON_RIGHT: { 238 case StatusAreaView::OPEN_TABS_ON_RIGHT: {
216 browser_->AddTabWithURL(url, GURL(), transition, true, -1, true, NULL); 239 browser_->AddTabWithURL(url, GURL(), transition, true, -1, true, NULL);
217 break; 240 break;
218 } 241 }
219 } 242 }
220 } 243 }
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/compact_navigation_bar.h ('k') | chrome/browser/chromeos/status_area_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698