OLD | NEW |
| (Empty) |
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_BOOKMARKS_BOOKMARK_MANAGER_EXTENSION_API_H_ | |
6 #define CHROME_BROWSER_BOOKMARKS_BOOKMARK_MANAGER_EXTENSION_API_H_ | |
7 | |
8 #include "base/values.h" | |
9 #include "chrome/browser/bookmarks/bookmark_node_data.h" | |
10 // TODO (rdevlin.cronin): Move BookmarkManagerAPI to | |
11 // chrome/browser/extensions/api/bookmark so these two aren't interdependent. | |
12 #include "chrome/browser/extensions/api/bookmarks/bookmark_api.h" | |
13 #include "chrome/browser/extensions/extension_function.h" | |
14 #include "chrome/browser/ui/bookmarks/bookmark_tab_helper.h" | |
15 | |
16 struct BookmarkNodeData; | |
17 class Profile; | |
18 | |
19 namespace content { | |
20 class WebContents; | |
21 } | |
22 | |
23 // Class that handles the chrome.bookmarkManagerPrivate events. | |
24 class BookmarkManagerExtensionEventRouter | |
25 : public BookmarkTabHelper::BookmarkDrag { | |
26 public: | |
27 BookmarkManagerExtensionEventRouter(Profile* profile, | |
28 content::WebContents* web_contents); | |
29 virtual ~BookmarkManagerExtensionEventRouter(); | |
30 | |
31 // BookmarkTabHelper::BookmarkDrag interface | |
32 virtual void OnDragEnter(const BookmarkNodeData& data) OVERRIDE; | |
33 virtual void OnDragOver(const BookmarkNodeData& data) OVERRIDE; | |
34 virtual void OnDragLeave(const BookmarkNodeData& data) OVERRIDE; | |
35 virtual void OnDrop(const BookmarkNodeData& data) OVERRIDE; | |
36 | |
37 // The bookmark drag and drop data. This gets set after a drop was done on | |
38 // the page. This returns NULL if no data is available. | |
39 const BookmarkNodeData* GetBookmarkNodeData(); | |
40 | |
41 // Clears the drag and drop data. | |
42 void ClearBookmarkNodeData(); | |
43 | |
44 private: | |
45 // Helper to actually dispatch an event to extension listeners. | |
46 void DispatchEvent(const char* event_name, | |
47 scoped_ptr<base::ListValue> args); | |
48 | |
49 void DispatchDragEvent(const BookmarkNodeData& data, const char* event_name); | |
50 | |
51 Profile* profile_; | |
52 content::WebContents* web_contents_; | |
53 BookmarkNodeData bookmark_drag_data_; | |
54 | |
55 DISALLOW_COPY_AND_ASSIGN(BookmarkManagerExtensionEventRouter); | |
56 }; | |
57 | |
58 class ClipboardBookmarkManagerFunction : public extensions::BookmarksFunction { | |
59 protected: | |
60 virtual ~ClipboardBookmarkManagerFunction() {} | |
61 | |
62 bool CopyOrCut(bool cut); | |
63 }; | |
64 | |
65 class CopyBookmarkManagerFunction : public ClipboardBookmarkManagerFunction { | |
66 public: | |
67 DECLARE_EXTENSION_FUNCTION_NAME("bookmarkManagerPrivate.copy"); | |
68 | |
69 protected: | |
70 virtual ~CopyBookmarkManagerFunction() {} | |
71 | |
72 // ExtensionFunction: | |
73 virtual bool RunImpl() OVERRIDE; | |
74 }; | |
75 | |
76 class CutBookmarkManagerFunction : public ClipboardBookmarkManagerFunction { | |
77 public: | |
78 DECLARE_EXTENSION_FUNCTION_NAME("bookmarkManagerPrivate.cut"); | |
79 | |
80 protected: | |
81 virtual ~CutBookmarkManagerFunction() {} | |
82 | |
83 // ExtensionFunction: | |
84 virtual bool RunImpl() OVERRIDE; | |
85 }; | |
86 | |
87 class PasteBookmarkManagerFunction : public extensions::BookmarksFunction { | |
88 public: | |
89 DECLARE_EXTENSION_FUNCTION_NAME("bookmarkManagerPrivate.paste"); | |
90 | |
91 protected: | |
92 virtual ~PasteBookmarkManagerFunction() {} | |
93 | |
94 // ExtensionFunction: | |
95 virtual bool RunImpl() OVERRIDE; | |
96 }; | |
97 | |
98 class CanPasteBookmarkManagerFunction : public extensions::BookmarksFunction { | |
99 public: | |
100 DECLARE_EXTENSION_FUNCTION_NAME("bookmarkManagerPrivate.canPaste"); | |
101 | |
102 protected: | |
103 virtual ~CanPasteBookmarkManagerFunction() {} | |
104 | |
105 // ExtensionFunction: | |
106 virtual bool RunImpl() OVERRIDE; | |
107 }; | |
108 | |
109 class SortChildrenBookmarkManagerFunction | |
110 : public extensions::BookmarksFunction { | |
111 public: | |
112 DECLARE_EXTENSION_FUNCTION_NAME("bookmarkManagerPrivate.sortChildren"); | |
113 | |
114 protected: | |
115 virtual ~SortChildrenBookmarkManagerFunction() {} | |
116 | |
117 // ExtensionFunction: | |
118 virtual bool RunImpl() OVERRIDE; | |
119 }; | |
120 | |
121 class BookmarkManagerGetStringsFunction : public AsyncExtensionFunction { | |
122 public: | |
123 DECLARE_EXTENSION_FUNCTION_NAME("bookmarkManagerPrivate.getStrings"); | |
124 | |
125 protected: | |
126 virtual ~BookmarkManagerGetStringsFunction() {} | |
127 | |
128 // ExtensionFunction: | |
129 virtual bool RunImpl() OVERRIDE; | |
130 }; | |
131 | |
132 class StartDragBookmarkManagerFunction : public extensions::BookmarksFunction { | |
133 public: | |
134 DECLARE_EXTENSION_FUNCTION_NAME("bookmarkManagerPrivate.startDrag"); | |
135 | |
136 protected: | |
137 virtual ~StartDragBookmarkManagerFunction() {} | |
138 | |
139 // ExtensionFunction: | |
140 virtual bool RunImpl() OVERRIDE; | |
141 }; | |
142 | |
143 class DropBookmarkManagerFunction : public extensions::BookmarksFunction { | |
144 public: | |
145 DECLARE_EXTENSION_FUNCTION_NAME("bookmarkManagerPrivate.drop"); | |
146 | |
147 protected: | |
148 virtual ~DropBookmarkManagerFunction() {} | |
149 | |
150 // ExtensionFunction: | |
151 virtual bool RunImpl() OVERRIDE; | |
152 }; | |
153 | |
154 class GetSubtreeBookmarkManagerFunction : public extensions::BookmarksFunction { | |
155 public: | |
156 DECLARE_EXTENSION_FUNCTION_NAME("bookmarkManagerPrivate.getSubtree"); | |
157 | |
158 protected: | |
159 virtual ~GetSubtreeBookmarkManagerFunction() {} | |
160 | |
161 // ExtensionFunction: | |
162 virtual bool RunImpl() OVERRIDE; | |
163 }; | |
164 | |
165 class CanEditBookmarkManagerFunction : public extensions::BookmarksFunction { | |
166 public: | |
167 DECLARE_EXTENSION_FUNCTION_NAME("bookmarkManagerPrivate.canEdit"); | |
168 | |
169 protected: | |
170 virtual ~CanEditBookmarkManagerFunction() {} | |
171 | |
172 // ExtensionFunction: | |
173 virtual bool RunImpl() OVERRIDE; | |
174 }; | |
175 | |
176 class RecordLaunchBookmarkFunction : public extensions::BookmarksFunction { | |
177 public: | |
178 DECLARE_EXTENSION_FUNCTION_NAME("bookmarkManagerPrivate.recordLaunch") | |
179 | |
180 protected: | |
181 virtual ~RecordLaunchBookmarkFunction() {} | |
182 | |
183 // ExtensionFunction: | |
184 virtual bool RunImpl() OVERRIDE; | |
185 }; | |
186 | |
187 class CanOpenNewWindowsBookmarkFunction : public extensions::BookmarksFunction { | |
188 public: | |
189 DECLARE_EXTENSION_FUNCTION_NAME("bookmarkManagerPrivate.canOpenNewWindows"); | |
190 | |
191 protected: | |
192 virtual ~CanOpenNewWindowsBookmarkFunction() {} | |
193 | |
194 // ExtensionFunction: | |
195 virtual bool RunImpl() OVERRIDE; | |
196 }; | |
197 | |
198 | |
199 #endif // CHROME_BROWSER_BOOKMARKS_BOOKMARK_MANAGER_EXTENSION_API_H_ | |
OLD | NEW |