Home | History | Annotate | Download | only in login
      1 // Copyright (c) 2011 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_LOGIN_GUEST_USER_VIEW_H_
      6 #define CHROME_BROWSER_CHROMEOS_LOGIN_GUEST_USER_VIEW_H_
      7 #pragma once
      8 
      9 #include "chrome/browser/chromeos/login/helper.h"
     10 #include "chrome/browser/chromeos/login/user_input.h"
     11 #include "views/accelerator.h"
     12 #include "views/controls/button/native_button.h"
     13 #include "views/controls/textfield/textfield.h"
     14 #include "views/view.h"
     15 
     16 namespace chromeos {
     17 
     18 class UserController;
     19 
     20 // This view is for controls window of Guest mode pod that allows user to
     21 // get temporary profile and use it for browsing. Contains only one Sign-in
     22 // button and handles different common keyboard shortcuts.
     23 class GuestUserView : public ThrobberHostView,
     24                       public UserInput,
     25                       public views::ButtonListener {
     26  public:
     27   explicit GuestUserView(UserController* uc);
     28 
     29   void RecreateFields();
     30 
     31   // Overridden from views::View:
     32   virtual bool AcceleratorPressed(const views::Accelerator& accelerator);
     33   virtual void RequestFocus();
     34 
     35   // Overridden from views::ButtonListener.
     36   virtual void ButtonPressed(views::Button* sender, const views::Event& event);
     37 
     38   // Overridden from UserInput:
     39   virtual void EnableInputControls(bool enabled);
     40   virtual void ClearAndFocusControls();
     41   virtual void ClearAndFocusPassword();
     42   virtual gfx::Rect GetMainInputScreenBounds() const;
     43 
     44  private:
     45   // Overridden from views::View:
     46   virtual void OnLocaleChanged();
     47   virtual void Layout();
     48 
     49   // Button to start login.
     50   views::NativeButton* submit_button_;
     51 
     52   UserController* user_controller_;
     53 
     54   views::Accelerator accel_toggle_accessibility_;
     55   views::Accelerator accel_login_off_the_record_;
     56   views::Accelerator accel_previous_pod_by_arrow_;
     57   views::Accelerator accel_previous_pod_by_tab_;
     58   views::Accelerator accel_next_pod_by_arrow_;
     59   views::Accelerator accel_next_pod_by_tab_;
     60 
     61   DISALLOW_COPY_AND_ASSIGN(GuestUserView);
     62 };
     63 
     64 }  // chromeos
     65 
     66 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_GUEST_USER_VIEW_H_
     67