1d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)// found in the LICENSE file. 4d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) 5d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)#ifndef CHROME_BROWSER_CHROMEOS_CHARGER_REPLACE_CHARGER_REPLACEMENT_DIALOG_H_ 6d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)#define CHROME_BROWSER_CHROMEOS_CHARGER_REPLACE_CHARGER_REPLACEMENT_DIALOG_H_ 7d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) 8d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)#include "ui/gfx/native_widget_types.h" 9d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)#include "ui/web_dialogs/web_dialog_delegate.h" 10d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) 11d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)namespace chromeos { 12d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) 13d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)class ChargerReplacementHandler; 14d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) 15d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)// Spring charger replacement dialog. 16d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)class ChargerReplacementDialog : public ui::WebDialogDelegate { 17d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) public: 18d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) explicit ChargerReplacementDialog(gfx::NativeWindow parent_window); 19d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) virtual ~ChargerReplacementDialog(); 20d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) 21d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) // True if ChargerReplacementDialog should be shown. 22d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) static bool ShouldShowDialog(); 23d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) 24f60fc993c7b081abf77ce2ffc7fcca1142c8cb01Torne (Richard Coles) static void SetFocusOnChargerDialogIfVisible(); 25f60fc993c7b081abf77ce2ffc7fcca1142c8cb01Torne (Richard Coles) 26d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) void Show(); 27d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) void set_can_close(bool can_close) { can_close_ = can_close; } 28d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) 29d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) private: 30d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) // ui::WebDialogDelegate implementation. 31d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) virtual ui::ModalType GetDialogModalType() const OVERRIDE; 32d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) virtual string16 GetDialogTitle() const OVERRIDE; 33d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) virtual GURL GetDialogContentURL() const OVERRIDE; 34d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) virtual void GetWebUIMessageHandlers( 35d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) std::vector<content::WebUIMessageHandler*>* handlers) const OVERRIDE; 36d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) virtual void GetMinimumDialogSize(gfx::Size* size) const OVERRIDE; 37d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) virtual void GetDialogSize(gfx::Size* size) const OVERRIDE; 38d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) virtual std::string GetDialogArgs() const OVERRIDE; 39d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) virtual bool CanCloseDialog() const OVERRIDE; 40d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) // NOTE: This function deletes this object at the end. 41d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) virtual void OnDialogClosed(const std::string& json_retval) OVERRIDE; 42d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) virtual void OnCloseContents( 43d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) content::WebContents* source, bool* out_close_dialog) OVERRIDE; 44d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) virtual bool ShouldShowDialogTitle() const OVERRIDE; 45d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) virtual bool HandleContextMenu( 46d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) const content::ContextMenuParams& params) OVERRIDE; 47d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) 48d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) static bool is_window_visible_; 49f60fc993c7b081abf77ce2ffc7fcca1142c8cb01Torne (Richard Coles) static gfx::NativeWindow current_window_; 50d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) 51d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) gfx::NativeWindow parent_window_; 52d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) bool can_close_; 53d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) ChargerReplacementHandler* charger_replacement_handler_; 54d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) 55d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(ChargerReplacementDialog); 56d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)}; 57d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) 58d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)} // namespace chromeos 59d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles) 60d57369da7c6519fef57db42085f7b42d4c8845c1Torne (Richard Coles)#endif // CHROME_BROWSER_CHROMEOS_CHARGER_REPLACE_CHARGER_REPLACEMENT_DIALOG_H_ 61