Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / ui / idle_app_name_notification_view.h
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_