Home | History | Annotate | Download | only in file_manager
      1 // Copyright 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 // This file provides miscellaneous API functions, which don't belong to
      6 // other files.
      7 
      8 #ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_MISC_H_
      9 #define CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_MISC_H_
     10 
     11 #include "chrome/browser/chromeos/extensions/file_manager/private_api_base.h"
     12 #include "chrome/browser/chromeos/extensions/file_manager/zip_file_creator.h"
     13 
     14 namespace file_manager {
     15 
     16 // Implements the chrome.fileBrowserPrivate.logoutUser method.
     17 class LogoutUserFunction : public SyncExtensionFunction {
     18  public:
     19   DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.logoutUser",
     20                              FILEBROWSERPRIVATE_LOGOUTUSER)
     21 
     22   LogoutUserFunction();
     23 
     24  protected:
     25   virtual ~LogoutUserFunction();
     26 
     27   // SyncExtensionFunction overrides.
     28   virtual bool RunImpl() OVERRIDE;
     29 };
     30 
     31 // Implements the chrome.fileBrowserPrivate.getPreferences method.
     32 // Gets settings for Files.app.
     33 class GetPreferencesFunction : public SyncExtensionFunction {
     34  public:
     35   DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.getPreferences",
     36                              FILEBROWSERPRIVATE_GETPREFERENCES)
     37 
     38   GetPreferencesFunction();
     39 
     40  protected:
     41   virtual ~GetPreferencesFunction();
     42 
     43   virtual bool RunImpl() OVERRIDE;
     44 };
     45 
     46 // Implements the chrome.fileBrowserPrivate.setPreferences method.
     47 // Sets settings for Files.app.
     48 class SetPreferencesFunction : public SyncExtensionFunction {
     49  public:
     50   DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.setPreferences",
     51                              FILEBROWSERPRIVATE_SETPREFERENCES)
     52 
     53   SetPreferencesFunction();
     54 
     55  protected:
     56   virtual ~SetPreferencesFunction();
     57 
     58   virtual bool RunImpl() OVERRIDE;
     59 };
     60 
     61 // Implements the chrome.fileBrowserPrivate.zipSelection method.
     62 // Creates a zip file for the selected files.
     63 class ZipSelectionFunction : public LoggedAsyncExtensionFunction,
     64                              public ZipFileCreator::Observer {
     65  public:
     66   DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.zipSelection",
     67                              FILEBROWSERPRIVATE_ZIPSELECTION)
     68 
     69   ZipSelectionFunction();
     70 
     71  protected:
     72   virtual ~ZipSelectionFunction();
     73 
     74   // AsyncExtensionFunction overrides.
     75   virtual bool RunImpl() OVERRIDE;
     76 
     77   // extensions::ZipFileCreator::Delegate overrides.
     78   virtual void OnZipDone(bool success) OVERRIDE;
     79 
     80  private:
     81   scoped_refptr<ZipFileCreator> zip_file_creator_;
     82 };
     83 
     84 // Implements the chrome.fileBrowserPrivate.zoom method.
     85 // Changes the zoom level of the file manager by internally calling
     86 // RenderViewHost::Zoom(). TODO(hirono): Remove this function once the zoom
     87 // level change is supported for all apps. crbug.com/227175.
     88 class ZoomFunction : public SyncExtensionFunction {
     89  public:
     90   DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.zoom",
     91                              FILEBROWSERPRIVATE_ZOOM);
     92 
     93   ZoomFunction();
     94 
     95  protected:
     96   virtual ~ZoomFunction();
     97   virtual bool RunImpl() OVERRIDE;
     98 };
     99 
    100 }  // namespace file_manager
    101 
    102 #endif  // CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_MISC_H_
    103