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

Unified Diff: chrome/browser/ui/views/color_chooser_aura.cc

Issue 10442020: Initial implementation of ColorChooser for Aura. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 8 years, 6 months 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/views/color_chooser_aura.cc
diff --git a/chrome/browser/ui/views/color_chooser_aura.cc b/chrome/browser/ui/views/color_chooser_aura.cc
index b1087963cac05ba26a4d3919f61c568c7f0af261..7b21d63fe99ba7126323db8c9f34522f59a3a576 100644
--- a/chrome/browser/ui/views/color_chooser_aura.cc
+++ b/chrome/browser/ui/views/color_chooser_aura.cc
@@ -3,12 +3,74 @@
// found in the LICENSE file.
#include "content/public/browser/color_chooser.h"
+#include "content/public/browser/web_contents.h"
+#include "ui/views/color_chooser/color_chooser_listener.h"
+#include "ui/views/color_chooser/color_chooser_view.h"
+#include "ui/views/widget/widget.h"
-#include "base/logging.h"
+
+namespace {
+
+class ColorChooserAura : public content::ColorChooser,
+ public views::ColorChooserListener {
+ public:
+ ColorChooserAura(int identifier,
+ content::WebContents* tab,
+ SkColor initial_color);
+
+ private:
+ // content::ColorChooser overrides:
+ virtual void End() OVERRIDE;
+ virtual void SetSelectedColor(SkColor color) OVERRIDE;
+
+ // views::ColorChooserListener overrides:
+ virtual void OnColorChosen(SkColor color) OVERRIDE;
+ virtual void OnColorChooserDialogClosed() OVERRIDE;
+
+ content::WebContents* tab_;
Peter Kasting 2012/06/19 21:10:31 Nit: Add comments about these, especially the owne
Jun Mukai 2012/06/20 09:29:08 Done.
+ views::ColorChooserView* view_;
+
+ DISALLOW_COPY_AND_ASSIGN(ColorChooserAura);
+};
+
+ColorChooserAura::ColorChooserAura(int identifier,
+ content::WebContents* tab,
+ SkColor initial_color)
+ : ColorChooser(identifier),
+ tab_(tab) {
+ view_ = new views::ColorChooserView(this, initial_color);
+ views::Widget* widget = views::Widget::CreateWindow(view_);
+ widget->SetAlwaysOnTop(true);
+ widget->Show();
+}
+
+void ColorChooserAura::OnColorChosen(SkColor color) {
+ if (tab_)
+ tab_->DidChooseColorInColorChooser(identifier(), color);
+}
+
+void ColorChooserAura::OnColorChooserDialogClosed() {
+ if (tab_)
+ tab_->DidEndColorChooser(identifier());
+ view_ = NULL;
+}
+
+void ColorChooserAura::End() {
+ if (view_) {
+ view_->OnOwningWindowClosed();
+ view_ = NULL;
+ }
+}
+
+void ColorChooserAura::SetSelectedColor(SkColor color) {
+ if (view_)
+ view_->OnColorChanged(color);
+}
+
+} // namespace
// static
content::ColorChooser* content::ColorChooser::Create(
int identifier, content::WebContents* tab, SkColor initial_color) {
- NOTIMPLEMENTED();
- return NULL;
+ return new ColorChooserAura(identifier, tab, initial_color);
}
« no previous file with comments | « no previous file | chrome/browser/ui/views/color_chooser_dialog.h » ('j') | chrome/browser/ui/views/color_chooser_win.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698