Home | History | Annotate | Download | only in print_preview
      1 // Copyright (c) 2012 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_PRINT_PREVIEW_STICKY_SETTINGS_H_
      6 #define CHROME_BROWSER_UI_WEBUI_PRINT_PREVIEW_STICKY_SETTINGS_H_
      7 
      8 #include "printing/print_job_constants.h"
      9 
     10 #include <string>
     11 
     12 #include "base/memory/scoped_ptr.h"
     13 
     14 class PrintPreviewHandlerTest;
     15 class PrefService;
     16 
     17 namespace base {
     18 class DictionaryValue;
     19 class FilePath;
     20 }
     21 
     22 namespace user_prefs {
     23 class PrefRegistrySyncable;
     24 }
     25 
     26 namespace printing {
     27 
     28 // Holds all the settings that should be remembered (sticky) in print preview.
     29 // A sticky setting will be restored next time the user launches print preview.
     30 // Only one instance of this class is instantiated.
     31 class StickySettings {
     32  public:
     33   StickySettings();
     34   ~StickySettings();
     35 
     36   base::FilePath* save_path();
     37   std::string* printer_app_state();
     38 
     39   // Stores app state for the last used printer.
     40   void StoreAppState(const std::string& app_state);
     41   // Stores the last path the user used to save to pdf.
     42   void StoreSavePath(const base::FilePath& path);
     43 
     44   void SaveInPrefs(PrefService* profile);
     45   void RestoreFromPrefs(PrefService* profile);
     46   static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
     47 
     48  private:
     49 
     50   scoped_ptr<base::FilePath> save_path_;
     51   scoped_ptr<std::string> printer_app_state_;
     52 };
     53 
     54 } // namespace printing
     55 
     56 #endif  // CHROME_BROWSER_UI_WEBUI_PRINT_PREVIEW_STICKY_SETTINGS_H_
     57