Index: chrome/browser/ui/views/chrome_to_mobile_bubble_view.h |
diff --git a/chrome/browser/ui/views/chrome_to_mobile_bubble_view.h b/chrome/browser/ui/views/chrome_to_mobile_bubble_view.h |
new file mode 100755 |
index 0000000000000000000000000000000000000000..87c386066310a75a8a4d196bfcf22e30629e9a71 |
--- /dev/null |
+++ b/chrome/browser/ui/views/chrome_to_mobile_bubble_view.h |
@@ -0,0 +1,108 @@ |
+// Copyright (c) 2012 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_VIEWS_CHROME_TO_MOBILE_BUBBLE_VIEW_H_ |
+#define CHROME_BROWSER_UI_VIEWS_CHROME_TO_MOBILE_BUBBLE_VIEW_H_ |
+#pragma once |
+ |
+#include <map> |
+ |
+#include "base/basictypes.h" |
+#include "base/compiler_specific.h" |
+#include "base/memory/weak_ptr.h" |
+#include "chrome/browser/chrome_to_mobile_service.h" |
+#include "chrome/common/guid.h" |
+#include "ui/views/bubble/bubble_delegate.h" |
+#include "ui/views/controls/button/button.h" |
+ |
+class Profile; |
+ |
+namespace base { |
+class DictionaryValue; |
+} |
+ |
+namespace ui { |
+class ThrobAnimation; |
+} |
+ |
+namespace views { |
+class Checkbox; |
+class Label; |
+class RadioButton; |
+class TextButton; |
+} |
+ |
+// ChromeToMobileBubbleView is a bubble view for the Chrome To Mobile service. |
+// Don't create a ChromeToMobileBubbleView directly, use ShowBubble method. |
sky
2012/03/11 21:41:22
nit: update comment as you can't really create a C
msw
2012/03/12 10:17:18
Good point, removed that sentence.
|
+class ChromeToMobileBubbleView : public views::BubbleDelegateView, |
+ public ChromeToMobileService::Observer, |
+ public views::ButtonListener { |
+ public: |
+ static void ShowBubble(views::View* anchor_view, Profile* profile); |
+ static bool IsShowing(); |
+ static void Hide(); |
+ |
+ virtual ~ChromeToMobileBubbleView(); |
sky
2012/03/11 21:41:22
destructor before static emthods.
msw
2012/03/12 10:17:18
Done.
|
+ |
+ // views::BubbleDelegateView methods. |
+ virtual views::View* GetInitiallyFocusedView() OVERRIDE; |
+ virtual gfx::Rect GetAnchorRect() OVERRIDE; |
+ |
+ // views::WidgetDelegate method. |
+ virtual void WindowClosing() OVERRIDE; |
+ |
+ // views::View method. |
+ virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE; |
+ |
+ // ChromeToMobileService::Observer method. |
+ virtual void OnSendComplete(bool success) OVERRIDE; |
+ |
+ // views::AnimationDelegate method. |
+ virtual void AnimationProgressed(const ui::Animation* animation) OVERRIDE; |
+ |
+ // Called upon generation of the page's MHTML snapshot. |
sky
2012/03/11 21:41:22
nit: typically overriden virtual methods are last
msw
2012/03/12 10:17:18
Moot here with latest code, but thanks for the tip
|
+ void SnapshotGenerated(const FilePath& snapshot_path, int64 snapshot_bytes); |
+ |
+ protected: |
+ // views::BubbleDelegateView method. |
+ virtual void Init() OVERRIDE; |
+ |
+ private: |
+ ChromeToMobileBubbleView(views::View* anchor_view, Profile* profile); |
+ |
+ // Overridden from views::ButtonListener: |
+ virtual void ButtonPressed(views::Button* sender, |
+ const views::Event& event) OVERRIDE; |
+ |
+ // Handle the message when the user presses a button. |
+ void HandleButtonPressed(views::Button* sender); |
+ |
+ // Send the page to the mobile device. |
+ void Send(); |
+ |
+ // The Chrome To Mobile bubble, if we're showing one. |
+ static ChromeToMobileBubbleView* bubble_; |
+ |
+ base::WeakPtrFactory<ChromeToMobileBubbleView> weak_ptr_factory_; |
+ |
+ Profile* profile_; |
+ |
+ typedef std::map<views::RadioButton*, base::DictionaryValue*> DeviceMap; |
+ DeviceMap mobile_map_; |
sky
2012/03/11 21:41:22
Add a description of mobile_map_ and selected_mobi
msw
2012/03/12 10:17:18
Done.
|
+ base::DictionaryValue* selected_mobile_; |
sky
2012/03/11 21:41:22
Initialize this to NULL.
msw
2012/03/12 10:17:18
Done.
|
+ |
+ FilePath snapshot_path_; |
+ views::Checkbox* send_copy_; |
+ |
+ views::TextButton* send_; |
+ views::TextButton* cancel_; |
+ |
+ views::Label* progress_label_; |
+ size_t progress_periods_count_; |
sky
2012/03/11 21:41:22
Add a description of this.
msw
2012/03/12 10:17:18
Done.
|
+ scoped_ptr<ui::ThrobAnimation> progress_animation_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(ChromeToMobileBubbleView); |
+}; |
+ |
+#endif // CHROME_BROWSER_UI_VIEWS_CHROME_TO_MOBILE_BUBBLE_VIEW_H_ |