Home | History | Annotate | Download | only in media_galleries_private
      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 #ifndef CHROME_COMMON_EXTENSIONS_API_MEDIA_GALLERIES_PRIVATE_MEDIA_GALLERIES_HANDLER_H_
      6 #define CHROME_COMMON_EXTENSIONS_API_MEDIA_GALLERIES_PRIVATE_MEDIA_GALLERIES_HANDLER_H_
      7 
      8 #include <set>
      9 #include <string>
     10 #include <vector>
     11 
     12 #include "base/basictypes.h"
     13 #include "chrome/common/extensions/extension.h"
     14 #include "chrome/common/extensions/manifest_handler.h"
     15 
     16 class URLPattern;
     17 
     18 // Encapsulates the state of a media gallery handler.
     19 class MediaGalleriesHandler {
     20  public:
     21   typedef std::vector<linked_ptr<MediaGalleriesHandler> > List;
     22 
     23   MediaGalleriesHandler();
     24   ~MediaGalleriesHandler();
     25 
     26   std::string extension_id() const { return extension_id_; }
     27   void set_extension_id(const std::string& extension_id) {
     28     extension_id_ = extension_id;
     29   }
     30 
     31   const std::string& id() const { return id_; }
     32   void set_id(const std::string& id) { id_ = id; }
     33 
     34   // Default title.
     35   const std::string& title() const { return title_; }
     36   void set_title(const std::string& title) { title_ = title; }
     37 
     38   // Action icon path.
     39   const std::string icon_path() const { return default_icon_path_; }
     40   void set_icon_path(const std::string& path) {
     41     default_icon_path_ = path;
     42   }
     43 
     44   // Returns the media galleries handlers associated with the |extension|.
     45   static List* GetHandlers(const extensions::Extension* extension);
     46 
     47  private:
     48   // The id for the extension this action belongs to (as defined in the
     49   // extension manifest).
     50   std::string extension_id_;
     51   std::string title_;
     52   std::string default_icon_path_;
     53   // The id for the MediaGalleriesHandler, for example: "ImportToDrive".
     54   std::string id_;
     55 };
     56 
     57 // Parses the "media_galleries_handlers" extension manifest key.
     58 class MediaGalleriesHandlerParser : public extensions::ManifestHandler {
     59  public:
     60   MediaGalleriesHandlerParser();
     61   virtual ~MediaGalleriesHandlerParser();
     62 
     63   virtual bool Parse(extensions::Extension* extension,
     64                      string16* error) OVERRIDE;
     65 
     66  private:
     67   virtual const std::vector<std::string> Keys() const OVERRIDE;
     68 };
     69 
     70 #endif  // CHROME_COMMON_EXTENSIONS_API_MEDIA_GALLERIES_PRIVATE_MEDIA_GALLERIES_HANDLER_H_
     71