Commit df2a6a85 authored by Melissa Zhang's avatar Melissa Zhang Committed by Commit Bot

[Sharesheet] Give Sharesheet rounded corners

Bug: 1097623
Change-Id: I3b09b083884924c21f87e02d24900b8e17d12615
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2308433Reviewed-by: default avatarAvi Drissman <avi@chromium.org>
Commit-Queue: Melissa Zhang <melzhang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#790605}
parent 01462f98
......@@ -4,6 +4,7 @@
#include "chrome/browser/ui/views/sharesheet_bubble_view.h"
#include <memory>
#include <utility>
#include "base/strings/string16.h"
......@@ -14,6 +15,8 @@
#include "ui/gfx/geometry/insets.h"
#include "ui/gfx/geometry/size.h"
#include "ui/gfx/image/image_skia.h"
#include "ui/views/bubble/bubble_border.h"
#include "ui/views/bubble/bubble_frame_view.h"
#include "ui/views/controls/button/image_button.h"
#include "ui/views/controls/button/image_button_factory.h"
#include "ui/views/controls/image_view.h"
......@@ -25,6 +28,7 @@
namespace {
constexpr int kButtonSize = 64;
constexpr int kCornerRadius = 12;
constexpr int kMaxTargetRowSize = 4;
constexpr int kSpacing = 24;
constexpr char kTitle[] = "Share";
......@@ -187,6 +191,18 @@ void SharesheetBubbleView::ButtonPressed(views::Button* sender,
RequestFocus();
}
std::unique_ptr<views::NonClientFrameView>
SharesheetBubbleView::CreateNonClientFrameView(views::Widget* widget) {
auto bubble_border =
std::make_unique<views::BubbleBorder>(arrow(), GetShadow(), color());
bubble_border->SetCornerRadius(kCornerRadius);
auto frame =
views::BubbleDialogDelegateView::CreateNonClientFrameView(widget);
static_cast<views::BubbleFrameView*>(frame.get())
->SetBubbleBorder(std::move(bubble_border));
return frame;
}
void SharesheetBubbleView::OnWidgetDestroyed(views::Widget* widget) {
delegate_->OnBubbleClosed(active_target_);
}
......
......@@ -33,6 +33,10 @@ class SharesheetBubbleView : public views::BubbleDialogDelegateView,
// views::ButtonListener overrides
void ButtonPressed(views::Button* sender, const ui::Event& event) override;
// views::WidgetDelegate override
std::unique_ptr<views::NonClientFrameView> CreateNonClientFrameView(
views::Widget* widget) override;
// views::BubbleDialogDelegateView overrides
gfx::Size CalculatePreferredSize() const override;
void OnWidgetDestroyed(views::Widget* widget) override;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment