Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(156)

Side by Side Diff: ash/system/session_length_limit/tray_session_length_limit.h

Issue 108213009: Adds TraySessionLengthLimitTest to ash_unittests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ASH_EXPORT to SessionLengthLimitObserver Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef ASH_SYSTEM_SESSION_LENGTH_LIMIT_TRAY_SESSION_LENGTH_LIMIT_H_ 5 #ifndef ASH_SYSTEM_SESSION_LENGTH_LIMIT_TRAY_SESSION_LENGTH_LIMIT_H_
6 #define ASH_SYSTEM_SESSION_LENGTH_LIMIT_TRAY_SESSION_LENGTH_LIMIT_H_ 6 #define ASH_SYSTEM_SESSION_LENGTH_LIMIT_TRAY_SESSION_LENGTH_LIMIT_H_
7 7
8 #include "ash/system/session_length_limit/session_length_limit_observer.h" 8 #include "ash/system/session_length_limit/session_length_limit_observer.h"
9 #include "ash/system/tray/system_tray_item.h" 9 #include "ash/system/tray/system_tray_item.h"
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
11 #include "base/compiler_specific.h" 11 #include "base/compiler_specific.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/time/time.h" 13 #include "base/time/time.h"
14 #include "base/timer/timer.h" 14 #include "base/timer/timer.h"
15 15
16 namespace ash { 16 namespace ash {
17
18 namespace test {
19 class TraySessionLengthLimitTest;
20 }
21
17 namespace internal { 22 namespace internal {
18 23
19 namespace tray { 24 namespace tray {
20 class RemainingSessionTimeTrayView; 25 class RemainingSessionTimeTrayView;
21 } 26 }
22 27
23 // Adds a countdown timer to the system tray if the session length is limited. 28 // Adds a countdown timer to the system tray if the session length is limited.
24 class TraySessionLengthLimit : public SystemTrayItem, 29 class ASH_EXPORT TraySessionLengthLimit : public SystemTrayItem,
25 public SessionLengthLimitObserver { 30 public SessionLengthLimitObserver {
26 public: 31 public:
27 enum LimitState { 32 enum LimitState {
28 LIMIT_NONE, 33 LIMIT_NONE,
29 LIMIT_SET, 34 LIMIT_SET,
30 LIMIT_EXPIRING_SOON 35 LIMIT_EXPIRING_SOON
31 }; 36 };
32 37
33 explicit TraySessionLengthLimit(SystemTray* system_tray); 38 explicit TraySessionLengthLimit(SystemTray* system_tray);
34 virtual ~TraySessionLengthLimit(); 39 virtual ~TraySessionLengthLimit();
35 40
36 // SystemTrayItem: 41 // SystemTrayItem:
37 virtual views::View* CreateTrayView(user::LoginStatus status) OVERRIDE; 42 virtual views::View* CreateTrayView(user::LoginStatus status) OVERRIDE;
38 virtual void DestroyTrayView() OVERRIDE; 43 virtual void DestroyTrayView() OVERRIDE;
39 virtual void UpdateAfterShelfAlignmentChange( 44 virtual void UpdateAfterShelfAlignmentChange(
40 ShelfAlignment alignment) OVERRIDE; 45 ShelfAlignment alignment) OVERRIDE;
41 46
42 // SessionLengthLimitObserver: 47 // SessionLengthLimitObserver:
43 virtual void OnSessionStartTimeChanged() OVERRIDE; 48 virtual void OnSessionStartTimeChanged() OVERRIDE;
44 virtual void OnSessionLengthLimitChanged() OVERRIDE; 49 virtual void OnSessionLengthLimitChanged() OVERRIDE;
45 50
46 LimitState GetLimitState() const; 51 LimitState GetLimitState() const;
47 base::TimeDelta GetRemainingSessionTime() const; 52 base::TimeDelta GetRemainingSessionTime() const;
48 53
49 private: 54 private:
55 friend class test::TraySessionLengthLimitTest;
56
57 static const char kNotificationId[];
58
50 void Update(); 59 void Update();
51 60
61 bool IsTrayViewVisibleForTest();
62
52 tray::RemainingSessionTimeTrayView* tray_view_; 63 tray::RemainingSessionTimeTrayView* tray_view_;
53 64
54 LimitState limit_state_; 65 LimitState limit_state_;
55 base::TimeTicks session_start_time_; 66 base::TimeTicks session_start_time_;
56 base::TimeDelta limit_; 67 base::TimeDelta limit_;
57 base::TimeDelta remaining_session_time_; 68 base::TimeDelta remaining_session_time_;
58 scoped_ptr<base::RepeatingTimer<TraySessionLengthLimit> > timer_; 69 scoped_ptr<base::RepeatingTimer<TraySessionLengthLimit> > timer_;
59 70
60 DISALLOW_COPY_AND_ASSIGN(TraySessionLengthLimit); 71 DISALLOW_COPY_AND_ASSIGN(TraySessionLengthLimit);
61 }; 72 };
62 73
63 } // namespace internal 74 } // namespace internal
64 } // namespace ash 75 } // namespace ash
65 76
66 #endif // ASH_SYSTEM_SESSION_LENGTH_LIMIT_TRAY_SESSION_LENGTH_LIMIT_H_ 77 #endif // ASH_SYSTEM_SESSION_LENGTH_LIMIT_TRAY_SESSION_LENGTH_LIMIT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698