• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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