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

Unified Diff: ash/system/palette/palette_tray.cc

Issue 2961313003: Touch gestures for System Tray/ IME/ Stylus/ Notifications (Closed)
Patch Set: Fixed nits. Created 3 years, 5 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
« no previous file with comments | « ash/system/palette/palette_tray.h ('k') | ash/system/tray/system_tray.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/system/palette/palette_tray.cc
diff --git a/ash/system/palette/palette_tray.cc b/ash/system/palette/palette_tray.cc
index c7da960ac4c17e251bf3cd51e389534e0df41df2..9c623809206254639f95e353559ed7b9ac8109d0 100644
--- a/ash/system/palette/palette_tray.cc
+++ b/ash/system/palette/palette_tray.cc
@@ -153,6 +153,9 @@ PaletteTray::PaletteTray(Shelf* shelf)
Shell::Get()->AddShellObserver(this);
ui::InputDeviceManager::GetInstance()->AddObserver(this);
+
+ if (!drag_controller())
+ set_drag_controller(base::MakeUnique<TrayDragController>(shelf));
}
PaletteTray::~PaletteTray() {
@@ -163,68 +166,6 @@ PaletteTray::~PaletteTray() {
Shell::Get()->RemoveShellObserver(this);
}
-bool PaletteTray::PerformAction(const ui::Event& event) {
- if (bubble_) {
- if (num_actions_in_bubble_ == 0)
- RecordPaletteOptionsUsage(PaletteTrayOptions::PALETTE_CLOSED_NO_ACTION);
- HidePalette();
- return true;
- }
-
- return ShowPalette();
-}
-
-bool PaletteTray::ShowPalette() {
- if (bubble_)
- return false;
-
- DCHECK(tray_container());
-
- views::TrayBubbleView::InitParams init_params;
- init_params.delegate = this;
- init_params.parent_window = GetBubbleWindowContainer();
- init_params.anchor_view = GetBubbleAnchor();
- init_params.anchor_alignment = GetAnchorAlignment();
- init_params.min_width = kPaletteWidth;
- init_params.max_width = kPaletteWidth;
- init_params.close_on_deactivate = true;
-
- // TODO(tdanderson): Refactor into common row layout code.
- // TODO(tdanderson|jdufault): Add material design ripple effects to the menu
- // rows.
-
- // Create and customize bubble view.
- views::TrayBubbleView* bubble_view = new views::TrayBubbleView(init_params);
- bubble_view->set_anchor_view_insets(GetBubbleAnchorInsets());
- bubble_view->set_margins(
- gfx::Insets(kPalettePaddingOnTop, 0, kPalettePaddingOnBottom, 0));
-
- // Add title.
- auto* title_view = new TitleView(this);
- title_view->SetBorder(views::CreateEmptyBorder(
- gfx::Insets(0, kPaddingBetweenTitleAndLeftEdge, 0, 0)));
- bubble_view->AddChildView(title_view);
-
- // Add horizontal separator.
- views::Separator* separator = new views::Separator();
- separator->SetColor(kPaletteSeparatorColor);
- separator->SetBorder(views::CreateEmptyBorder(gfx::Insets(
- kPaddingBetweenTitleAndSeparator, 0, kMenuSeparatorVerticalPadding, 0)));
- bubble_view->AddChildView(separator);
-
- // Add palette tools.
- // TODO(tdanderson|jdufault): Use SystemMenuButton to get the material design
- // ripples.
- std::vector<PaletteToolView> views = palette_tool_manager_->CreateViews();
- for (const PaletteToolView& view : views)
- bubble_view->AddChildView(view.view);
-
- // Show the bubble.
- bubble_.reset(new ash::TrayBubbleWrapper(this, bubble_view));
- SetIsActive(true);
- return true;
-}
-
bool PaletteTray::ContainsPointInScreen(const gfx::Point& point) {
if (icon_ && icon_->GetBoundsInScreen().Contains(point))
return true;
@@ -280,7 +221,7 @@ void PaletteTray::OnStylusStateChanged(ui::StylusState stylus_state) {
if (palette_delegate->ShouldAutoOpenPalette()) {
if (stylus_state == ui::StylusState::REMOVED && !bubble_) {
is_bubble_auto_opened_ = true;
- ShowPalette();
+ ShowBubble();
} else if (stylus_state == ui::StylusState::INSERTED && bubble_) {
HidePalette();
}
@@ -385,6 +326,76 @@ void PaletteTray::Initialize() {
&PaletteTray::OnPaletteEnabledPrefChanged, weak_factory_.GetWeakPtr()));
}
+bool PaletteTray::PerformAction(const ui::Event& event) {
+ if (bubble_) {
+ if (num_actions_in_bubble_ == 0)
+ RecordPaletteOptionsUsage(PaletteTrayOptions::PALETTE_CLOSED_NO_ACTION);
+ HidePalette();
+ return true;
+ }
+
+ ShowBubble();
+ return true;
+}
+
+void PaletteTray::CloseBubble() {
+ HidePalette();
+}
+
+void PaletteTray::ShowBubble() {
+ if (bubble_)
+ return;
+
+ DCHECK(tray_container());
+
+ views::TrayBubbleView::InitParams init_params;
+ init_params.delegate = this;
+ init_params.parent_window = GetBubbleWindowContainer();
+ init_params.anchor_view = GetBubbleAnchor();
+ init_params.anchor_alignment = GetAnchorAlignment();
+ init_params.min_width = kPaletteWidth;
+ init_params.max_width = kPaletteWidth;
+ init_params.close_on_deactivate = true;
+
+ // TODO(tdanderson): Refactor into common row layout code.
+ // TODO(tdanderson|jdufault): Add material design ripple effects to the menu
+ // rows.
+
+ // Create and customize bubble view.
+ views::TrayBubbleView* bubble_view = new views::TrayBubbleView(init_params);
+ bubble_view->set_anchor_view_insets(GetBubbleAnchorInsets());
+ bubble_view->set_margins(
+ gfx::Insets(kPalettePaddingOnTop, 0, kPalettePaddingOnBottom, 0));
+
+ // Add title.
+ auto* title_view = new TitleView(this);
+ title_view->SetBorder(views::CreateEmptyBorder(
+ gfx::Insets(0, kPaddingBetweenTitleAndLeftEdge, 0, 0)));
+ bubble_view->AddChildView(title_view);
+
+ // Add horizontal separator.
+ views::Separator* separator = new views::Separator();
+ separator->SetColor(kPaletteSeparatorColor);
+ separator->SetBorder(views::CreateEmptyBorder(gfx::Insets(
+ kPaddingBetweenTitleAndSeparator, 0, kMenuSeparatorVerticalPadding, 0)));
+ bubble_view->AddChildView(separator);
+
+ // Add palette tools.
+ // TODO(tdanderson|jdufault): Use SystemMenuButton to get the material design
+ // ripples.
+ std::vector<PaletteToolView> views = palette_tool_manager_->CreateViews();
+ for (const PaletteToolView& view : views)
+ bubble_view->AddChildView(view.view);
+
+ // Show the bubble.
+ bubble_ = base::MakeUnique<ash::TrayBubbleWrapper>(this, bubble_view);
+ SetIsActive(true);
+}
+
+views::TrayBubbleView* PaletteTray::GetBubbleView() {
+ return bubble_ ? bubble_->bubble_view() : nullptr;
+}
+
void PaletteTray::UpdateTrayIcon() {
icon_->SetImage(CreateVectorIcon(
palette_tool_manager_->GetActiveTrayIcon(
« no previous file with comments | « ash/system/palette/palette_tray.h ('k') | ash/system/tray/system_tray.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698