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

Unified Diff: chrome/browser/ui/views/frame/opaque_browser_frame_view.cc

Issue 7015051: Re-land: (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
===================================================================
--- chrome/browser/ui/views/frame/opaque_browser_frame_view.cc (revision 85284)
+++ chrome/browser/ui/views/frame/opaque_browser_frame_view.cc (working copy)
@@ -138,7 +138,7 @@
window_icon_(NULL),
frame_(frame),
browser_view_(browser_view) {
- ui::ThemeProvider* tp = frame_->GetThemeProviderForFrame();
+ ui::ThemeProvider* tp = frame_->GetThemeProvider();
SkColor color = tp->GetColor(ThemeService::COLOR_BUTTON_BACKGROUND);
SkBitmap* background =
tp->GetBitmapNamed(IDR_THEME_WINDOW_CONTROL_BACKGROUND);
@@ -243,8 +243,7 @@
int OpaqueBrowserFrameView::NonClientTopBorderHeight(
bool restored,
bool ignore_vertical_tabs) const {
- views::Window* window = frame_->GetWindow();
- views::WindowDelegate* delegate = window->window_delegate();
+ views::WindowDelegate* delegate = frame_->window_delegate();
// |delegate| may be NULL if called from callback of InputMethodChanged while
// a window is being destroyed.
// See more discussion at http://crosbug.com/8958
@@ -258,7 +257,7 @@
return FrameBorderThickness(restored) -
((browser_view_->IsTabStripVisible() && !restored &&
- window->IsMaximized()) ? kTabstripTopShadowThickness : 0);
+ frame_->IsMaximized()) ? kTabstripTopShadowThickness : 0);
}
///////////////////////////////////////////////////////////////////////////////
@@ -287,7 +286,7 @@
profile_button_->GetPreferredSize().width() +
ProfileMenuButton::kProfileTagHorizontalSpacing : 0);
int tabstrip_width = minimize_button_->x() - tabstrip_x -
- (frame_->GetWindow()->IsMaximized() ?
+ (frame_->IsMaximized() ?
maximized_spacing : kNewTabCaptionRestoredSpacing);
int tabstrip_height = 0;
if (tabstrip)
@@ -299,8 +298,8 @@
int OpaqueBrowserFrameView::GetHorizontalTabStripVerticalOffset(
bool restored) const {
return NonClientTopBorderHeight(restored, true) + ((!restored &&
- (frame_->GetWindow()->IsMaximized() ||
- frame_->GetWindow()->IsFullscreen())) ?
+ (frame_->IsMaximized() ||
+ frame_->IsFullscreen())) ?
0 : kNonClientRestoredExtraThickness);
}
@@ -315,7 +314,7 @@
min_size.Enlarge(2 * border_thickness,
NonClientTopBorderHeight(false, false) + border_thickness);
- views::WindowDelegate* delegate = frame_->GetWindow()->window_delegate();
+ views::WindowDelegate* delegate = frame_->window_delegate();
int min_titlebar_width = (2 * FrameBorderThickness(false)) +
kIconLeftSpacing +
(delegate && delegate->ShouldShowWindowIcon() ?
@@ -360,14 +359,14 @@
return HTNOWHERE;
int frame_component =
- frame_->GetWindow()->client_view()->NonClientHitTest(point);
+ frame_->client_view()->NonClientHitTest(point);
// See if we're in the sysmenu region. We still have to check the tabstrip
// first so that clicks in a tab don't get treated as sysmenu clicks.
gfx::Rect sysmenu_rect(IconBounds());
// In maximized mode we extend the rect to the screen corner to take advantage
// of Fitts' Law.
- if (frame_->GetWindow()->IsMaximized())
+ if (frame_->IsMaximized())
sysmenu_rect.SetRect(0, 0, sysmenu_rect.right(), sysmenu_rect.bottom());
sysmenu_rect.set_x(GetMirroredXForRect(sysmenu_rect));
if (sysmenu_rect.Contains(point))
@@ -395,7 +394,7 @@
profile_button_->GetMirroredBounds().Contains(point))
return HTCLIENT;
- views::WindowDelegate* delegate = frame_->GetWindow()->window_delegate();
+ views::WindowDelegate* delegate = frame_->window_delegate();
if (!delegate) {
LOG(WARNING) << "delegate is NULL, returning safe default.";
return HTCAPTION;
@@ -411,7 +410,7 @@
gfx::Path* window_mask) {
DCHECK(window_mask);
- if (frame_->GetWindow()->IsMaximized() || frame_->GetWindow()->IsFullscreen())
+ if (frame_->IsMaximized() || frame_->IsFullscreen())
return;
views::GetDefaultWindowMask(size, window_mask);
@@ -447,11 +446,10 @@
// OpaqueBrowserFrameView, views::View overrides:
void OpaqueBrowserFrameView::OnPaint(gfx::Canvas* canvas) {
- views::Window* window = frame_->GetWindow();
- if (window->IsFullscreen())
+ if (frame_->IsFullscreen())
return; // Nothing is visible, so don't bother to paint.
- if (window->IsMaximized())
+ if (frame_->IsMaximized())
PaintMaximizedFrameBorder(canvas);
else
PaintRestoredFrameBorder(canvas);
@@ -461,7 +459,7 @@
PaintToolbarBackground(canvas);
if (browser_view_->ShouldShowOffTheRecordAvatar())
PaintOTRAvatar(canvas);
- if (!window->IsMaximized())
+ if (!frame_->IsMaximized())
PaintRestoredClientEdge(canvas);
}
@@ -483,8 +481,7 @@
bool vertical_tabs = browser_view_->UseVerticalTabs();
gfx::Rect tabstrip_bounds = GetBoundsForTabStrip(browser_view_->tabstrip());
gfx::Point tabstrip_origin(tabstrip_bounds.origin());
- View::ConvertPointToView(frame_->GetWindow()->client_view(),
- this, &tabstrip_origin);
+ View::ConvertPointToView(frame_->client_view(), this, &tabstrip_origin);
tabstrip_bounds.set_origin(tabstrip_origin);
if ((!vertical_tabs && l.y() > tabstrip_bounds.bottom()) ||
(vertical_tabs && l.x() > tabstrip_bounds.right())) {
@@ -494,13 +491,13 @@
// Claim it only if we're also not in the compact navigation buttons.
if (browser_view_->UseCompactNavigationBar()) {
if (ConvertedContainsCheck(browser_view_->GetCompactNavigationBarBounds(),
- frame_->GetWindow()->client_view(),
+ frame_->client_view(),
static_cast<const View*>(this),
l)) {
return false;
}
if (ConvertedContainsCheck(browser_view_->GetCompactOptionsBarBounds(),
- frame_->GetWindow()->client_view(),
+ frame_->client_view(),
static_cast<const View*>(this),
l)) {
return false;
@@ -525,15 +522,14 @@
void OpaqueBrowserFrameView::ButtonPressed(views::Button* sender,
const views::Event& event) {
- views::Window* window = frame_->GetWindow();
if (sender == minimize_button_)
- window->Minimize();
+ frame_->Minimize();
else if (sender == maximize_button_)
- window->Maximize();
+ frame_->Maximize();
else if (sender == restore_button_)
- window->Restore();
+ frame_->Restore();
else if (sender == close_button_)
- window->CloseWindow();
+ frame_->Close();
}
///////////////////////////////////////////////////////////////////////////////
@@ -548,7 +544,7 @@
}
SkBitmap OpaqueBrowserFrameView::GetFaviconForTabIconView() {
- views::WindowDelegate* delegate = frame_->GetWindow()->window_delegate();
+ views::WindowDelegate* delegate = frame_->window_delegate();
if (!delegate) {
LOG(WARNING) << "delegate is NULL, returning safe default.";
return SkBitmap();
@@ -572,8 +568,7 @@
// OpaqueBrowserFrameView, private:
int OpaqueBrowserFrameView::FrameBorderThickness(bool restored) const {
- views::Window* window = frame_->GetWindow();
- return (!restored && (window->IsMaximized() || window->IsFullscreen())) ?
+ return (!restored && (frame_->IsMaximized() || frame_->IsFullscreen())) ?
0 : kFrameBorderThickness;
}
@@ -583,9 +578,8 @@
int OpaqueBrowserFrameView::NonClientBorderThickness() const {
// When we fill the screen, we don't show a client edge.
- views::Window* window = frame_->GetWindow();
return FrameBorderThickness(false) +
- ((window->IsMaximized() || window->IsFullscreen()) ?
+ ((frame_->IsMaximized() || frame_->IsFullscreen()) ?
0 : kClientEdgeThickness);
}
@@ -596,14 +590,13 @@
int OpaqueBrowserFrameView::CaptionButtonY(bool restored) const {
// Maximized buttons start at window top so that even if their images aren't
// drawn flush with the screen edge, they still obey Fitts' Law.
- return (!restored && frame_->GetWindow()->IsMaximized()) ?
+ return (!restored && frame_->IsMaximized()) ?
FrameBorderThickness(false) : kFrameShadowThickness;
}
int OpaqueBrowserFrameView::TitlebarBottomThickness(bool restored) const {
return kTitlebarTopAndBottomEdgeThickness +
- ((!restored && frame_->GetWindow()->IsMaximized()) ?
- 0 : kClientEdgeThickness);
+ ((!restored && frame_->IsMaximized()) ? 0 : kClientEdgeThickness);
}
int OpaqueBrowserFrameView::IconSize() const {
@@ -620,7 +613,7 @@
int size = IconSize();
int frame_thickness = FrameBorderThickness(false);
int y;
- views::WindowDelegate* delegate = frame_->GetWindow()->window_delegate();
+ views::WindowDelegate* delegate = frame_->window_delegate();
if (delegate && (delegate->ShouldShowWindowIcon() ||
delegate->ShouldShowWindowTitle())) {
// Our frame border has a different "3D look" than Windows'. Theirs has a
@@ -631,7 +624,7 @@
// with restored windows, so when the window is restored, instead of
// calculating the remaining space from below the frame border, we calculate
// from below the 3D edge.
- int unavailable_px_at_top = frame_->GetWindow()->IsMaximized() ?
+ int unavailable_px_at_top = frame_->IsMaximized() ?
frame_thickness : kTitlebarTopAndBottomEdgeThickness;
// When the icon is shorter than the minimum space we reserve for the
// caption button, we vertically center it. We want to bias rounding to put
@@ -768,8 +761,6 @@
void OpaqueBrowserFrameView::PaintMaximizedFrameBorder(gfx::Canvas* canvas) {
ui::ThemeProvider* tp = GetThemeProvider();
- views::Window* window = frame_->GetWindow();
-
// Window frame mode and color
SkBitmap* theme_frame;
@@ -828,13 +819,13 @@
tp->GetBitmapNamed(IDR_APP_TOP_CENTER);
int edge_height = top_center->height() - kClientEdgeThickness;
canvas->TileImageInt(*top_center, 0,
- window->client_view()->y() - edge_height, width(), edge_height);
+ frame_->client_view()->y() - edge_height, width(), edge_height);
}
}
void OpaqueBrowserFrameView::PaintTitleBar(gfx::Canvas* canvas) {
// The window icon is painted by the TabIconView.
- views::WindowDelegate* delegate = frame_->GetWindow()->window_delegate();
+ views::WindowDelegate* delegate = frame_->window_delegate();
if (!delegate) {
LOG(WARNING) << "delegate is NULL";
return;
@@ -986,7 +977,7 @@
void OpaqueBrowserFrameView::PaintRestoredClientEdge(gfx::Canvas* canvas) {
ui::ThemeProvider* tp = GetThemeProvider();
- int client_area_top = frame_->GetWindow()->client_view()->y();
+ int client_area_top = frame_->client_view()->y();
int image_top = client_area_top;
gfx::Rect client_area_bounds = CalculateClientAreaBounds(width(), height());
@@ -1072,7 +1063,7 @@
}
void OpaqueBrowserFrameView::LayoutWindowControls() {
- bool is_maximized = frame_->GetWindow()->IsMaximized();
+ bool is_maximized = frame_->IsMaximized();
close_button_->SetImageAlignment(views::ImageButton::ALIGN_LEFT,
views::ImageButton::ALIGN_BOTTOM);
int caption_y = CaptionButtonY(false);
@@ -1095,7 +1086,7 @@
// as maximized mode.
// TODO(oshima): Optimize the relayout logic to defer the frame view's
// relayout until it is necessary, i.e when it becomes visible.
- if (is_maximized || frame_->GetWindow()->IsFullscreen()) {
+ if (is_maximized || frame_->IsFullscreen()) {
minimize_button_->SetVisible(false);
restore_button_->SetVisible(false);
maximize_button_->SetVisible(false);
@@ -1121,7 +1112,7 @@
// When the window is restored, we show a maximized button; otherwise, we show
// a restore button.
- bool is_restored = !is_maximized && !frame_->GetWindow()->IsMinimized();
+ bool is_restored = !is_maximized && !frame_->IsMinimized();
views::ImageButton* invisible_button = is_restored ?
restore_button_ : maximize_button_;
invisible_button->SetVisible(false);
@@ -1150,7 +1141,7 @@
// The window title is based on the calculated icon position, even when there
// is no icon.
gfx::Rect icon_bounds(IconBounds());
- views::WindowDelegate* delegate = frame_->GetWindow()->window_delegate();
+ views::WindowDelegate* delegate = frame_->window_delegate();
if (delegate && delegate->ShouldShowWindowIcon())
window_icon_->SetBoundsRect(icon_bounds);
@@ -1182,7 +1173,7 @@
browser_view_->GetTabStripHeight() - kOTRBottomSpacing;
otr_restored_y = otr_bottom - otr_avatar_icon.height();
}
- int otr_y = frame_->GetWindow()->IsMaximized() ?
+ int otr_y = frame_->IsMaximized() ?
(NonClientTopBorderHeight(false, true) + kTabstripTopShadowThickness) :
otr_restored_y;
otr_avatar_bounds_.SetRect(NonClientBorderThickness() + kOTRSideSpacing,
@@ -1215,7 +1206,7 @@
profile_button_->GetPreferredSize().width();
// Adjust for different default font sizes on different Windows platforms.
int y_tag = profile_button_->font().GetHeight() < 14 ? 2 : 0;
- int y_maximized_offset = frame_->GetWindow()->IsMaximized() ?
+ int y_maximized_offset = frame_->IsMaximized() ?
kProfileElementMaximizedYOffset : 0;
profile_button_->SetBounds(
x_tag,
« no previous file with comments | « chrome/browser/ui/views/frame/native_browser_frame.h ('k') | chrome/browser/ui/views/fullscreen_exit_bubble.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698