1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file. 4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#ifndef CHROME_BROWSER_UI_VIEWS_COLOR_CHOOSER_AURA_H_ 6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define CHROME_BROWSER_UI_VIEWS_COLOR_CHOOSER_AURA_H_ 7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/basictypes.h" 9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "base/compiler_specific.h" 10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "content/public/browser/color_chooser.h" 11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "ui/views/color_chooser/color_chooser_listener.h" 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace content { 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class WebContents; 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace views { 18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class ColorChooserView; 19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class Widget; 20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// TODO(mukai): rename this as -Ash and move to c/b/ui/ash after Linux-aura 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// switches to its native color chooser. 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)class ColorChooserAura : public content::ColorChooser, 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public views::ColorChooserListener { 26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public: 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) static ColorChooserAura* Open(content::WebContents* web_contents, 28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) SkColor initial_color); 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) private: 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ColorChooserAura(content::WebContents* web_contents, SkColor initial_color); 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // content::ColorChooser overrides: 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void End() OVERRIDE; 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void SetSelectedColor(SkColor color) OVERRIDE; 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // views::ColorChooserListener overrides: 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void OnColorChosen(SkColor color) OVERRIDE; 39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) virtual void OnColorChooserDialogClosed() OVERRIDE; 40f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) void DidEndColorChooser(); 42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 43f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // The actual view of the color chooser. No ownership because its parent 44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // view will take care of its lifetime. 45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) views::ColorChooserView* view_; 46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // The widget for the color chooser. No ownership because it's released 48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // automatically when closed. 49f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) views::Widget* widget_; 50f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 51f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // The web contents invoking the color chooser. No ownership because it will 52f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) // outlive this class. 53f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) content::WebContents* web_contents_; 54f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 55f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(ColorChooserAura); 56f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}; 57f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 58f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif // CHROME_BROWSER_UI_VIEWS_COLOR_CHOOSER_AURA_H_ 59