1 // Copyright 2014 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 CHROME_BROWSER_CHROMEOS_UI_IDLE_APP_NAME_NOTIFICATION_VIEW_H_ 6 #define CHROME_BROWSER_CHROMEOS_UI_IDLE_APP_NAME_NOTIFICATION_VIEW_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "base/strings/string16.h" 10 11 namespace extensions { 12 class Extension; 13 } // namespace extensions 14 15 namespace views { 16 class Widget; 17 } // namespace views 18 19 namespace chromeos { 20 21 class IdleAppNameNotificationDelegateView; 22 23 // A class which creates a message which shows the currently running applicaion 24 // name and its creator. 25 class IdleAppNameNotificationView { 26 public: 27 // |message_visibility_time_in_ms| is the time the message is fully visible. 28 // |animation_time_ms| is the transition time for the message to show or hide. 29 // |extension| is the application which is started. 30 IdleAppNameNotificationView(int message_visibility_time_in_ms, 31 int animation_time_ms, 32 const extensions::Extension* extension); 33 virtual ~IdleAppNameNotificationView(); 34 35 // Close and destroy the message instantly. 36 void CloseMessage(); 37 38 // Returns true when message is shown. 39 bool IsVisible(); 40 41 // Returns the shown text for testing. 42 base::string16 GetShownTextForTest(); 43 44 private: 45 // Show the message. This will make the message visible. 46 void ShowMessage(int message_visibility_time_in_ms, 47 int animation_time_ms, 48 const extensions::Extension* extension); 49 50 // A reference to an existing message. 51 IdleAppNameNotificationDelegateView* view_; 52 53 DISALLOW_COPY_AND_ASSIGN(IdleAppNameNotificationView); 54 }; 55 56 } // namespace chromeos 57 58 #endif // CHROME_BROWSER_CHROMEOS_UI_IDLE_APP_NAME_NOTIFICATION_VIEW_H_ 59