Home | History | Annotate | Download | only in chromeos
      1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_CHARGER_REPLACEMENT_HANDLER_H_
      6 #define CHROME_BROWSER_UI_WEBUI_CHROMEOS_CHARGER_REPLACEMENT_HANDLER_H_
      7 
      8 #include "base/compiler_specific.h"
      9 #include "content/public/browser/web_ui_message_handler.h"
     10 #include "ui/gfx/native_widget_types.h"
     11 
     12 class PrefRegistrySimple;
     13 
     14 namespace chromeos {
     15 
     16 class ChargerReplacementDialog;
     17 
     18 // Handler for spring charger replacement web ui.
     19 class ChargerReplacementHandler : public content::WebUIMessageHandler {
     20  public:
     21   enum SpringChargerStatus {
     22     CHARGER_UNKNOWN,
     23     CONFIRM_SAFE_CHARGER,
     24     CONFIRM_NOT_ORDER_NEW_CHARGER,
     25     CONFIRM_NEW_CHARGER_ORDERED_ONLINE,
     26     CONFIRM_ORDER_NEW_CHARGER_BY_PHONE,
     27     USE_BAD_CHARGER_AFTER_ORDER_ONLINE,
     28     USE_BAD_CHARGER_AFTER_ORDER_BY_PHONE,
     29   };
     30 
     31   explicit ChargerReplacementHandler(ChargerReplacementDialog* dialog);
     32   virtual ~ChargerReplacementHandler();
     33 
     34   // Registers preferences.
     35   static void RegisterPrefs(PrefRegistrySimple* registry);
     36 
     37   // Sets/Gets charger status pref.
     38   static SpringChargerStatus GetChargerStatusPref();
     39   static void SetChargerStatusPref(SpringChargerStatus status);
     40 
     41   // WebUIMessageHandler overrides:
     42   virtual void RegisterMessages() OVERRIDE;
     43 
     44   // Gets localized strings for web ui.
     45   static void GetLocalizedValues(base::DictionaryValue* localized_strings);
     46 
     47   void set_charger_window(gfx::NativeWindow window) {
     48     charger_window_ = window;
     49   }
     50 
     51  private:
     52   void ConfirmSafeCharger(const base::ListValue* args);
     53   void ConfirmNotOrderNewCharger(const base::ListValue* args);
     54   void ConfirmChargerOrderedOnline(const base::ListValue* args);
     55   void ConfirmChargerOrderByPhone(const base::ListValue* args);
     56   void ConfirmStillUseBadCharger(const base::ListValue* args);
     57   void ShowLink(const base::ListValue* args);
     58 
     59   gfx::NativeWindow charger_window_;
     60   ChargerReplacementDialog* dialog_;
     61 
     62   DISALLOW_COPY_AND_ASSIGN(ChargerReplacementHandler);
     63 };
     64 
     65 }  // namespace chromeos
     66 
     67 #endif  // CHROME_BROWSER_UI_WEBUI_CHROMEOS_CHARGER_REPLACEMENT_HANDLER_H_
     68