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#ifndef ASH_FIRST_RUN_FIRST_RUN_HELPER_H_ 6#define ASH_FIRST_RUN_FIRST_RUN_HELPER_H_ 7 8#include "ash/ash_export.h" 9#include "base/basictypes.h" 10#include "base/observer_list.h" 11 12namespace gfx { 13class Rect; 14} 15 16namespace views { 17class Widget; 18} 19 20namespace ash { 21 22// Interface used by first-run tutorial to manipulate and retreive information 23// about shell elements. 24// All returned coordinates are in screen coordinate system. 25class ASH_EXPORT FirstRunHelper { 26 public: 27 class Observer { 28 public: 29 // Called when first-run UI was cancelled. 30 virtual void OnCancelled() = 0; 31 virtual ~Observer() {} 32 }; 33 34 public: 35 FirstRunHelper(); 36 virtual ~FirstRunHelper(); 37 38 void AddObserver(Observer* observer); 39 void RemoveObserver(Observer* observer); 40 41 // Returns widget to place tutorial UI into it. 42 virtual views::Widget* GetOverlayWidget() = 0; 43 44 // Opens and closes app list. 45 virtual void OpenAppList() = 0; 46 virtual void CloseAppList() = 0; 47 48 // Returns bounding rectangle of launcher elements. 49 virtual gfx::Rect GetLauncherBounds() = 0; 50 51 // Returns bounds of application list button. 52 virtual gfx::Rect GetAppListButtonBounds() = 0; 53 54 // Returns bounds of application list. You must open application list before 55 // calling this method. 56 virtual gfx::Rect GetAppListBounds() = 0; 57 58 // Opens and closes system tray bubble. 59 virtual void OpenTrayBubble() = 0; 60 virtual void CloseTrayBubble() = 0; 61 62 // Returns |true| iff system tray bubble is opened now. 63 virtual bool IsTrayBubbleOpened() = 0; 64 65 // Returns bounds of system tray bubble. You must open bubble before calling 66 // this method. 67 virtual gfx::Rect GetTrayBubbleBounds() = 0; 68 69 // Returns bounds of help app button from system tray buble. You must open 70 // bubble before calling this method. 71 virtual gfx::Rect GetHelpButtonBounds() = 0; 72 73 protected: 74 ObserverList<Observer>& observers() { return observers_; } 75 76 private: 77 ObserverList<Observer> observers_; 78 79 DISALLOW_COPY_AND_ASSIGN(FirstRunHelper); 80}; 81 82} // namespace ash 83 84#endif // ASH_FIRST_RUN_FIRST_RUN_HELPER_H_ 85 86