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

Unified Diff: chrome/browser/ui/webui/options2/chromeos/change_picture_options_handler.h

Issue 8895023: Options2: Pull the trigger. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: DIAF. Created 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/options2/chromeos/change_picture_options_handler.h
diff --git a/chrome/browser/ui/webui/options2/chromeos/change_picture_options_handler.h b/chrome/browser/ui/webui/options2/chromeos/change_picture_options_handler.h
new file mode 100644
index 0000000000000000000000000000000000000000..8db67f49ff2f3cd30d728d8900a2b5f65f8d0cb2
--- /dev/null
+++ b/chrome/browser/ui/webui/options2/chromeos/change_picture_options_handler.h
@@ -0,0 +1,113 @@
+// 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_UI_WEBUI_OPTIONS2_CHROMEOS_CHANGE_PICTURE_OPTIONS_HANDLER_H_
+#define CHROME_BROWSER_UI_WEBUI_OPTIONS2_CHROMEOS_CHANGE_PICTURE_OPTIONS_HANDLER_H_
+
+#include "base/memory/weak_ptr.h"
+#include "chrome/browser/chromeos/options/take_photo_dialog.h"
+#include "chrome/browser/ui/select_file_dialog.h"
+#include "chrome/browser/ui/webui/options2/options_ui2.h"
+#include "content/public/browser/notification_registrar.h"
+#include "ui/gfx/native_widget_types.h"
+
+namespace base {
+class DictionaryValue;
+class ListValue;
+}
+
+namespace chromeos {
+
+// ChromeOS user image options page UI handler.
+class ChangePictureOptionsHandler : public OptionsPage2UIHandler,
+ public SelectFileDialog::Listener,
+ public TakePhotoDialog::Delegate {
+ public:
+ ChangePictureOptionsHandler();
+ virtual ~ChangePictureOptionsHandler();
+
+ // OptionsPage2UIHandler implementation.
+ virtual void GetLocalizedValues(
+ base::DictionaryValue* localized_strings) OVERRIDE;
+
+ // WebUIMessageHandler implementation.
+ virtual void RegisterMessages() OVERRIDE;
+
+ private:
+ // Sends list of available default images to the page.
+ void SendDefaultImages();
+
+ // Sends current selection to the page.
+ void SendSelectedImage();
+
+ // Sends the profile image to the page. If |should_select| is true then
+ // the profile image element is selected.
+ void SendProfileImage(const SkBitmap& image, bool should_select);
+
+ // Starts profile image update and shows the last downloaded profile image,
+ // if any, on the page. Shouldn't be called before |SendProfileImage|.
+ void UpdateProfileImage();
+
+ // Starts camera presence check.
+ void CheckCameraPresence();
+
+ // Updates UI with camera presence state.
+ void SetCameraPresent(bool present);
+
+ // Opens a file selection dialog to choose user image from file.
+ void HandleChooseFile(const base::ListValue* args);
+
+ // Opens the camera capture dialog.
+ void HandleTakePhoto(const base::ListValue* args);
+
+ // Gets the list of available user images and sends it to the page.
+ void HandleGetAvailableImages(const base::ListValue* args);
+
+ // Handles page initialized event.
+ void HandlePageInitialized(const base::ListValue* args);
+
+ // Handles page shown event.
+ void HandlePageShown(const base::ListValue* args);
+
+ // Selects one of the available images as user's.
+ void HandleSelectImage(const base::ListValue* args);
+
+ // SelectFileDialog::Delegate implementation.
+ virtual void FileSelected(
+ const FilePath& path,
+ int index, void* params) OVERRIDE;
+
+ // TakePhotoDialog::Delegate implementation.
+ virtual void OnPhotoAccepted(const SkBitmap& photo) OVERRIDE;
+
+ // content::NotificationObserver implementation.
+ virtual void Observe(int type,
+ const content::NotificationSource& source,
+ const content::NotificationDetails& details) OVERRIDE;
+
+ // Called when the camera presence check has been completed.
+ void OnCameraPresenceCheckDone();
+
+ // Returns handle to browser window or NULL if it can't be found.
+ gfx::NativeWindow GetBrowserWindow() const;
+
+ scoped_refptr<SelectFileDialog> select_file_dialog_;
+
+ // Previous user image from camera/file and its data URL.
+ SkBitmap previous_image_;
+ std::string previous_image_data_url_;
+
+ // Index of the previous user image.
+ int previous_image_index_;
+
+ content::NotificationRegistrar registrar_;
+
+ base::WeakPtrFactory<ChangePictureOptionsHandler> weak_factory_;
+
+ DISALLOW_COPY_AND_ASSIGN(ChangePictureOptionsHandler);
+};
+
+} // namespace chromeos
+
+#endif // CHROME_BROWSER_UI_WEBUI_OPTIONS2_CHROMEOS_CHANGE_PICTURE_OPTIONS_HANDLER_H_

Powered by Google App Engine
This is Rietveld 408576698