1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/chromeos/first_run/steps/tray_step.h" 6 7 #include "ash/first_run/first_run_helper.h" 8 #include "ash/shell.h" 9 #include "base/i18n/rtl.h" 10 #include "chrome/browser/chromeos/first_run/step_names.h" 11 #include "chrome/browser/ui/webui/chromeos/first_run/first_run_actor.h" 12 #include "ui/gfx/rect.h" 13 #include "ui/gfx/size.h" 14 15 namespace chromeos { 16 namespace first_run { 17 TrayStep(ash::FirstRunHelper * shell_helper,FirstRunActor * actor)18TrayStep::TrayStep(ash::FirstRunHelper* shell_helper, FirstRunActor* actor) 19 : Step(kTrayStep, shell_helper, actor) { 20 } 21 DoShow()22void TrayStep::DoShow() { 23 if (!shell_helper()->IsTrayBubbleOpened()) 24 shell_helper()->OpenTrayBubble(); 25 gfx::Rect bounds = shell_helper()->GetTrayBubbleBounds(); 26 actor()->AddRectangularHole(bounds.x(), bounds.y(), bounds.width(), 27 bounds.height()); 28 FirstRunActor::StepPosition position; 29 position.SetTop(bounds.y()); 30 ash::Shell* shell = ash::Shell::GetInstance(); 31 ash::ShelfAlignment alignment = 32 shell->GetShelfAlignment(shell->GetPrimaryRootWindow()); 33 if ((!base::i18n::IsRTL() && alignment != ash::SHELF_ALIGNMENT_LEFT) || 34 alignment == ash::SHELF_ALIGNMENT_RIGHT) 35 position.SetRight(GetOverlaySize().width() - bounds.x()); 36 else 37 position.SetLeft(bounds.right()); 38 actor()->ShowStepPositioned(name(), position); 39 } 40 41 } // namespace first_run 42 } // namespace chromeos 43 44