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

Unified Diff: ash/common/system/toast/toast_overlay.cc

Issue 2506583005: Hide dismiss button on toast when doing partial screenshot using stylus tools. (Closed)
Patch Set: Add DCHECK Created 4 years, 1 month 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
« no previous file with comments | « ash/common/system/toast/toast_overlay.h ('k') | ash/system/toast/toast_manager_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/common/system/toast/toast_overlay.cc
diff --git a/ash/common/system/toast/toast_overlay.cc b/ash/common/system/toast/toast_overlay.cc
index 7a969c4d020944d41100529fa25e5ba8b078015e..efb516d2d705eefc3d39d4fa12a2dddd2b3ddd75 100644
--- a/ash/common/system/toast/toast_overlay.cc
+++ b/ash/common/system/toast/toast_overlay.cc
@@ -129,10 +129,10 @@ ToastOverlayButton::ToastOverlayButton(views::ButtonListener* listener,
// ToastOverlayView
class ToastOverlayView : public views::View, public views::ButtonListener {
public:
- // This object is not owned by the views hiearchy or by the widget.
+ // This object is not owned by the views hierarchy or by the widget.
ToastOverlayView(ToastOverlay* overlay,
const base::string16& text,
- const base::string16& dismiss_text);
+ const base::Optional<base::string16>& dismiss_text);
~ToastOverlayView() override;
// views::View overrides:
@@ -141,38 +141,44 @@ class ToastOverlayView : public views::View, public views::ButtonListener {
ToastOverlayButton* button() { return button_; }
private:
- ToastOverlay* overlay_; // weak
- ToastOverlayButton* button_; // weak
-
+ // views::View overrides:
gfx::Size GetMaximumSize() const override;
gfx::Size GetMinimumSize() const override;
+ // views::ButtonListener overrides:
void ButtonPressed(views::Button* sender, const ui::Event& event) override;
+ ToastOverlay* overlay_ = nullptr; // weak
+ ToastOverlayButton* button_ = nullptr; // weak
+
DISALLOW_COPY_AND_ASSIGN(ToastOverlayView);
};
-ToastOverlayView::ToastOverlayView(ToastOverlay* overlay,
- const base::string16& text,
- const base::string16& dismiss_text)
- : overlay_(overlay),
- button_(new ToastOverlayButton(
- this,
- dismiss_text.empty()
- ? l10n_util::GetStringUTF16(IDS_ASH_TOAST_DISMISS_BUTTON)
- : dismiss_text)) {
- ToastOverlayLabel* label = new ToastOverlayLabel(text);
- label->SetMaximumWidth(
- GetMaximumSize().width() - button_->GetPreferredSize().width() -
- kToastHorizontalSpacing * 2 - kToastHorizontalSpacing * 2);
- AddChildView(label);
-
- AddChildView(button_);
-
+ToastOverlayView::ToastOverlayView(
+ ToastOverlay* overlay,
+ const base::string16& text,
+ const base::Optional<base::string16>& dismiss_text)
+ : overlay_(overlay) {
auto* layout = new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, 0);
SetLayoutManager(layout);
+
+ if (dismiss_text.has_value()) {
+ button_ = new ToastOverlayButton(
+ this, dismiss_text.value().empty()
+ ? l10n_util::GetStringUTF16(IDS_ASH_TOAST_DISMISS_BUTTON)
+ : dismiss_text.value());
+ }
+
+ ToastOverlayLabel* label = new ToastOverlayLabel(text);
+ AddChildView(label);
layout->SetFlexForView(label, 1);
- layout->SetFlexForView(button_, 0);
+
+ if (button_) {
+ label->SetMaximumWidth(
+ GetMaximumSize().width() - button_->GetPreferredSize().width() -
+ kToastHorizontalSpacing * 2 - kToastHorizontalSpacing * 2);
+ AddChildView(button_);
+ }
}
ToastOverlayView::~ToastOverlayView() {}
@@ -196,6 +202,7 @@ gfx::Size ToastOverlayView::GetMaximumSize() const {
void ToastOverlayView::ButtonPressed(views::Button* sender,
const ui::Event& event) {
+ DCHECK_EQ(button_, sender);
overlay_->Show(false);
}
@@ -203,7 +210,7 @@ void ToastOverlayView::ButtonPressed(views::Button* sender,
// ToastOverlay
ToastOverlay::ToastOverlay(Delegate* delegate,
const base::string16& text,
- const base::string16& dismiss_text)
+ base::Optional<base::string16> dismiss_text)
: delegate_(delegate),
text_(text),
dismiss_text_(dismiss_text),
@@ -293,7 +300,12 @@ views::Widget* ToastOverlay::widget_for_testing() {
return overlay_widget_.get();
}
+ToastOverlayButton* ToastOverlay::dismiss_button_for_testing() {
+ return overlay_view_->button();
+}
+
void ToastOverlay::ClickDismissButtonForTesting(const ui::Event& event) {
+ DCHECK(overlay_view_->button());
overlay_view_->button()->NotifyClick(event);
}
« no previous file with comments | « ash/common/system/toast/toast_overlay.h ('k') | ash/system/toast/toast_manager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698