OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011 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_EXTENSIONS_EXTENSION_BOOKMARK_MANAGER_API_H_ | |
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_BOOKMARK_MANAGER_API_H_ | |
7 #pragma once | |
8 | |
9 #include "chrome/browser/bookmarks/bookmark_node_data.h" | |
10 #include "chrome/browser/extensions/extension_bookmarks_module.h" | |
11 #include "chrome/browser/extensions/extension_function.h" | |
12 #include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h" | |
13 | |
14 struct BookmarkNodeData; | |
15 class Profile; | |
16 class TabContentsWrapper; | |
17 | |
18 namespace base { | |
19 class ListValue; | |
20 } | |
21 | |
22 // Class that handles the chrome.experimental.bookmarkManager events. | |
23 class ExtensionBookmarkManagerEventRouter | |
24 : public BookmarkTabHelper::BookmarkDrag { | |
25 public: | |
26 ExtensionBookmarkManagerEventRouter(Profile* profile, | |
27 TabContentsWrapper* tab); | |
28 virtual ~ExtensionBookmarkManagerEventRouter(); | |
29 | |
30 // RenderViewHostDelegate::BookmarkDrag interface | |
31 virtual void OnDragEnter(const BookmarkNodeData& data); | |
32 virtual void OnDragOver(const BookmarkNodeData& data); | |
33 virtual void OnDragLeave(const BookmarkNodeData& data); | |
34 virtual void OnDrop(const BookmarkNodeData& data); | |
35 | |
36 // The bookmark drag and drop data. This gets set after a drop was done on | |
37 // the page. This returns NULL if no data is available. | |
38 const BookmarkNodeData* GetBookmarkNodeData(); | |
39 | |
40 // Clears the drag and drop data. | |
41 void ClearBookmarkNodeData(); | |
42 | |
43 private: | |
44 // Helper to actually dispatch an event to extension listeners. | |
45 void DispatchEvent(const char* event_name, const base::ListValue* args); | |
46 | |
47 void DispatchDragEvent(const BookmarkNodeData& data, const char* event_name); | |
48 | |
49 Profile* profile_; | |
50 TabContentsWrapper* tab_; | |
51 BookmarkNodeData bookmark_drag_data_; | |
52 | |
53 DISALLOW_COPY_AND_ASSIGN(ExtensionBookmarkManagerEventRouter); | |
54 }; | |
55 | |
56 class ClipboardBookmarkManagerFunction : public BookmarksFunction { | |
57 protected: | |
58 bool CopyOrCut(bool cut); | |
59 }; | |
60 | |
61 class CopyBookmarkManagerFunction : public ClipboardBookmarkManagerFunction { | |
62 public: | |
63 virtual bool RunImpl() OVERRIDE; | |
64 | |
65 private: | |
66 DECLARE_EXTENSION_FUNCTION_NAME("experimental.bookmarkManager.copy"); | |
67 }; | |
68 | |
69 class CutBookmarkManagerFunction : public ClipboardBookmarkManagerFunction { | |
70 public: | |
71 virtual bool RunImpl() OVERRIDE; | |
72 | |
73 private: | |
74 DECLARE_EXTENSION_FUNCTION_NAME("experimental.bookmarkManager.cut"); | |
75 }; | |
76 | |
77 class PasteBookmarkManagerFunction : public BookmarksFunction { | |
78 public: | |
79 virtual bool RunImpl() OVERRIDE; | |
80 | |
81 private: | |
82 DECLARE_EXTENSION_FUNCTION_NAME("experimental.bookmarkManager.paste"); | |
83 }; | |
84 | |
85 class CanPasteBookmarkManagerFunction : public BookmarksFunction { | |
86 public: | |
87 virtual bool RunImpl() OVERRIDE; | |
88 | |
89 private: | |
90 DECLARE_EXTENSION_FUNCTION_NAME("experimental.bookmarkManager.canPaste"); | |
91 }; | |
92 | |
93 class SortChildrenBookmarkManagerFunction : public BookmarksFunction { | |
94 public: | |
95 virtual bool RunImpl() OVERRIDE; | |
96 | |
97 private: | |
98 DECLARE_EXTENSION_FUNCTION_NAME("experimental.bookmarkManager.sortChildren"); | |
99 }; | |
100 | |
101 class BookmarkManagerGetStringsFunction : public AsyncExtensionFunction { | |
102 public: | |
103 virtual bool RunImpl() OVERRIDE; | |
104 | |
105 private: | |
106 DECLARE_EXTENSION_FUNCTION_NAME("experimental.bookmarkManager.getStrings"); | |
107 }; | |
108 | |
109 class StartDragBookmarkManagerFunction : public BookmarksFunction { | |
110 public: | |
111 virtual bool RunImpl() OVERRIDE; | |
112 | |
113 private: | |
114 DECLARE_EXTENSION_FUNCTION_NAME("experimental.bookmarkManager.startDrag"); | |
115 }; | |
116 | |
117 class DropBookmarkManagerFunction : public BookmarksFunction { | |
118 public: | |
119 virtual bool RunImpl() OVERRIDE; | |
120 | |
121 private: | |
122 DECLARE_EXTENSION_FUNCTION_NAME("experimental.bookmarkManager.drop"); | |
123 }; | |
124 | |
125 class GetSubtreeBookmarkManagerFunction : public BookmarksFunction { | |
126 public: | |
127 virtual bool RunImpl() OVERRIDE; | |
128 | |
129 private: | |
130 DECLARE_EXTENSION_FUNCTION_NAME("experimental.bookmarkManager.getSubtree"); | |
131 }; | |
132 | |
133 class CanEditBookmarkManagerFunction : public BookmarksFunction { | |
134 public: | |
135 virtual bool RunImpl() OVERRIDE; | |
136 | |
137 private: | |
138 DECLARE_EXTENSION_FUNCTION_NAME("experimental.bookmarkManager.canEdit"); | |
139 }; | |
140 | |
141 class RecordLaunchBookmarkFunction : public BookmarksFunction { | |
142 public: | |
143 virtual bool RunImpl() OVERRIDE; | |
144 | |
145 private: | |
146 DECLARE_EXTENSION_FUNCTION_NAME("experimental.bookmarkManager.recordLaunch") | |
147 }; | |
148 | |
149 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_BOOKMARK_MANAGER_API_H_ | |
OLD | NEW |