blob: 49f881ff7ae3858309ca5247164ff8881643179f [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.
#ifndef CHROME_BROWSER_UI_VIEWS_FRAME_DESKTOP_LINUX_BROWSER_FRAME_VIEW_LAYOUT_H_
#define CHROME_BROWSER_UI_VIEWS_FRAME_DESKTOP_LINUX_BROWSER_FRAME_VIEW_LAYOUT_H_
#include "chrome/browser/ui/views/frame/opaque_browser_frame_view_layout.h"
// A specialization of OpaqueBrowserFrameViewLayout that is also able
// to layout frame buttons that were rendered by GTK.
class DesktopLinuxBrowserFrameViewLayout : public OpaqueBrowserFrameViewLayout {
public:
DesktopLinuxBrowserFrameViewLayout(
views::NavButtonProvider* nav_button_provider);
// OpaqueBrowserFrameViewLayout:
int CaptionButtonY(chrome::FrameButtonDisplayType button_id,
bool restored) const override;
int TopAreaPadding() const override;
int GetWindowCaptionSpacing(views::FrameButton button_id,
bool leading_spacing,
bool is_leading_button) const override;
void LayoutNewStyleAvatar(views::View* host) override;
bool ShouldDrawImageMirrored(views::ImageButton* button,
ButtonAlignment alignment) const override;
private:
views::NavButtonProvider* nav_button_provider_;
DISALLOW_COPY_AND_ASSIGN(DesktopLinuxBrowserFrameViewLayout);
};
#endif // CHROME_BROWSER_UI_VIEWS_FRAME_DESKTOP_LINUX_BROWSER_FRAME_VIEW_LAYOUT_H_