// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_USER_IMAGE_SCREEN_H_ #define CHROME_BROWSER_CHROMEOS_LOGIN_USER_IMAGE_SCREEN_H_ #pragma once #include "chrome/browser/chromeos/login/camera_controller.h" #include "chrome/browser/chromeos/login/user_image_view.h" #include "chrome/browser/chromeos/login/view_screen.h" #include "content/common/notification_observer.h" #include "content/common/notification_registrar.h" #include "third_party/skia/include/core/SkBitmap.h" namespace chromeos { class UserImageScreen: public ViewScreen, public CameraController::Delegate, public UserImageView::Delegate, public NotificationObserver { public: explicit UserImageScreen(WizardScreenDelegate* delegate); virtual ~UserImageScreen(); // Overridden from ViewScreen: virtual void Refresh(); virtual void Hide(); virtual UserImageView* AllocateView(); // CameraController::Delegate implementation: virtual void OnCaptureSuccess(); virtual void OnCaptureFailure(); // UserImageView::Delegate implementation: virtual void StartCamera(); virtual void StopCamera(); virtual void OnPhotoTaken(const SkBitmap& image); virtual void OnDefaultImageSelected(int index); // NotificationObserver implementation: virtual void Observe(NotificationType type, const NotificationSource& source, const NotificationDetails& details); private: CameraController camera_controller_; NotificationRegistrar registrar_; DISALLOW_COPY_AND_ASSIGN(UserImageScreen); }; } // namespace chromeos #endif // CHROME_BROWSER_CHROMEOS_LOGIN_USER_IMAGE_SCREEN_H_