Home | History | Annotate | Download | only in power
      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