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 CHROME_BROWSER_CHROMEOS_POWER_IDLE_ACTION_WARNING_DIALOG_VIEW_H_ 6 #define CHROME_BROWSER_CHROMEOS_POWER_IDLE_ACTION_WARNING_DIALOG_VIEW_H_ 7 8 #include "base/basictypes.h" 9 #include "base/compiler_specific.h" 10 #include "base/time/time.h" 11 #include "base/timer/timer.h" 12 #include "ui/views/window/dialog_delegate.h" 13 14 namespace views { 15 class Label; 16 } 17 18 namespace chromeos { 19 20 // Shows a modal warning dialog that the idle action is imminent. Since the 21 // warning is only really necessary when the idle action is to log out the user, 22 // the warning is hard-coded to warn about logout. 23 class IdleActionWarningDialogView : public views::DialogDelegateView { 24 public: 25 explicit IdleActionWarningDialogView(base::TimeTicks idle_action_time); 26 void CloseDialog(); 27 28 void Update(base::TimeTicks idle_action_time); 29 30 // views::DialogDelegateView: 31 virtual ui::ModalType GetModalType() const OVERRIDE; 32 virtual base::string16 GetWindowTitle() const OVERRIDE; 33 virtual int GetDialogButtons() const OVERRIDE; 34 virtual bool Cancel() OVERRIDE; 35 36 private: 37 virtual ~IdleActionWarningDialogView(); 38 39 void UpdateLabel(); 40 41 base::TimeTicks idle_action_time_; 42 43 views::Label* label_; 44 45 base::RepeatingTimer<IdleActionWarningDialogView> update_timer_; 46 47 DISALLOW_COPY_AND_ASSIGN(IdleActionWarningDialogView); 48 }; 49 50 } // namespace chromeos 51 52 #endif // CHROME_BROWSER_CHROMEOS_POWER_IDLE_ACTION_WARNING_DIALOG_VIEW_H_ 53