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

Unified Diff: ash/common/system/chromeos/palette/tools/capture_region_mode.cc

Issue 2291913002: Allow the user to cancel the capture region action, and show its active status in the tray. (Closed)
Patch Set: Address comments Created 4 years, 3 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: ash/common/system/chromeos/palette/tools/capture_region_mode.cc
diff --git a/ash/common/system/chromeos/palette/tools/capture_region_action.cc b/ash/common/system/chromeos/palette/tools/capture_region_mode.cc
similarity index 53%
rename from ash/common/system/chromeos/palette/tools/capture_region_action.cc
rename to ash/common/system/chromeos/palette/tools/capture_region_mode.cc
index fdf7c72e71944498a4cf7b51fb1b057219543dfb..6cac51df83f02f273586852429869b72aab6c64c 100644
--- a/ash/common/system/chromeos/palette/tools/capture_region_action.cc
+++ b/ash/common/system/chromeos/palette/tools/capture_region_mode.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "ash/common/system/chromeos/palette/tools/capture_region_action.h"
+#include "ash/common/system/chromeos/palette/tools/capture_region_mode.h"
#include "ash/common/accelerators/accelerator_controller.h"
#include "ash/common/palette_delegate.h"
@@ -22,20 +22,25 @@ const int kToastDurationMs = 2500;
} // namespace
-CaptureRegionAction::CaptureRegionAction(Delegate* delegate)
- : CommonPaletteTool(delegate) {}
+CaptureRegionMode::CaptureRegionMode(Delegate* delegate)
+ : CommonPaletteTool(delegate), weak_factory_(this) {}
-CaptureRegionAction::~CaptureRegionAction() {}
+CaptureRegionMode::~CaptureRegionMode() {}
-PaletteGroup CaptureRegionAction::GetGroup() const {
- return PaletteGroup::ACTION;
+PaletteGroup CaptureRegionMode::GetGroup() const {
+ return PaletteGroup::MODE;
}
-PaletteToolId CaptureRegionAction::GetToolId() const {
+PaletteToolId CaptureRegionMode::GetToolId() const {
return PaletteToolId::CAPTURE_REGION;
}
-void CaptureRegionAction::OnEnable() {
+gfx::VectorIconId CaptureRegionMode::GetActiveTrayIcon() {
+ // TODO(jdufault): Update to real icon once new tray icons are ready.
+ return gfx::VectorIconId::PALETTE_TRAY_ICON_MAGNIFY;
+}
+
+void CaptureRegionMode::OnEnable() {
CommonPaletteTool::OnEnable();
ToastData toast(kToastId, l10n_util::GetStringUTF16(
@@ -43,18 +48,31 @@ void CaptureRegionAction::OnEnable() {
kToastDurationMs, base::string16());
ash::WmShell::Get()->toast_manager()->Show(toast);
- WmShell::Get()->palette_delegate()->TakePartialScreenshot();
- delegate()->DisableTool(GetToolId());
+ WmShell::Get()->palette_delegate()->TakePartialScreenshot(base::Bind(
+ &CaptureRegionMode::OnScreenshotDone, weak_factory_.GetWeakPtr()));
delegate()->HidePalette();
}
-views::View* CaptureRegionAction::CreateView() {
+void CaptureRegionMode::OnDisable() {
+ CommonPaletteTool::OnDisable();
+
+ // If the user manually cancelled the action we need to make sure to cancel
+ // the screenshot session as well.
+ WmShell::Get()->palette_delegate()->CancelPartialScreenshot();
+}
+
+views::View* CaptureRegionMode::CreateView() {
return CreateDefaultView(
l10n_util::GetStringUTF16(IDS_ASH_STYLUS_TOOLS_CAPTURE_REGION_ACTION));
}
-gfx::VectorIconId CaptureRegionAction::GetPaletteIconId() {
+gfx::VectorIconId CaptureRegionMode::GetPaletteIconId() {
return gfx::VectorIconId::PALETTE_ACTION_CAPTURE_REGION;
}
+void CaptureRegionMode::OnScreenshotDone() {
+ // The screenshot finished, so disable the tool.
+ delegate()->DisableTool(GetToolId());
+}
+
} // namespace ash

Powered by Google App Engine
This is Rietveld 408576698