blob: 7a2c6e28fca1d2d1125b806dabad95143be0f3e5 [file] [log] [blame]
// Copyright 2017 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.
#include "chrome/browser/ui/views/frame/desktop_linux_browser_frame_view_layout.h"
#include "chrome/browser/ui/views/nav_button_provider.h"
DesktopLinuxBrowserFrameViewLayout::DesktopLinuxBrowserFrameViewLayout(
views::NavButtonProvider* nav_button_provider)
: nav_button_provider_(nav_button_provider) {}
int DesktopLinuxBrowserFrameViewLayout::CaptionButtonY(
chrome::FrameButtonDisplayType button_id,
bool restored) const {
gfx::Insets insets = nav_button_provider_->GetNavButtonMargin(button_id);
return insets.top() + FrameTopThickness(!delegate_->IsMaximized());
}
OpaqueBrowserFrameViewLayout::TopAreaPadding
DesktopLinuxBrowserFrameViewLayout::GetTopAreaPadding(
bool has_leading_buttons,
bool has_trailing_buttons) const {
gfx::Insets insets =
nav_button_provider_->GetTopAreaSpacing() +
gfx::Insets(0, FrameSideThickness(!delegate_->IsMaximized()));
const int leading = base::i18n::IsRTL() ? insets.right() : insets.left();
const int trailing = base::i18n::IsRTL() ? insets.left() : insets.right();
const int padding = FrameBorderThickness(false);
return {has_leading_buttons ? leading : padding,
has_trailing_buttons ? trailing : padding};
}
int DesktopLinuxBrowserFrameViewLayout::GetWindowCaptionSpacing(
views::FrameButton button_id,
bool leading_spacing,
bool is_leading_button) const {
gfx::Insets insets =
nav_button_provider_->GetNavButtonMargin(GetButtonDisplayType(button_id));
if (!leading_spacing)
return insets.right();
int spacing = insets.left();
if (!is_leading_button)
spacing += nav_button_provider_->GetInterNavButtonSpacing();
return spacing;
}