Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(80)

Side by Side Diff: ui/base/clipboard/clipboard.h

Issue 9232075: Have ScopedClipboardWriter and Clipboard::WriteObjects take a buffer parameter. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Fix build error. Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef UI_BASE_CLIPBOARD_CLIPBOARD_H_ 5 #ifndef UI_BASE_CLIPBOARD_CLIPBOARD_H_
6 #define UI_BASE_CLIPBOARD_CLIPBOARD_H_ 6 #define UI_BASE_CLIPBOARD_CLIPBOARD_H_
7 #pragma once 7 #pragma once
8 8
9 #include <map> 9 #include <map>
10 #include <string> 10 #include <string>
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 // object containing the bitmap data. 142 // object containing the bitmap data.
143 // size gfx::Size struct 143 // size gfx::Size struct
144 // CBF_DATA format char array 144 // CBF_DATA format char array
145 // data byte array 145 // data byte array
146 typedef std::vector<char> ObjectMapParam; 146 typedef std::vector<char> ObjectMapParam;
147 typedef std::vector<ObjectMapParam> ObjectMapParams; 147 typedef std::vector<ObjectMapParam> ObjectMapParams;
148 typedef std::map<int /* ObjectType */, ObjectMapParams> ObjectMap; 148 typedef std::map<int /* ObjectType */, ObjectMapParams> ObjectMap;
149 149
150 // Buffer designates which clipboard the action should be applied to. 150 // Buffer designates which clipboard the action should be applied to.
151 // Only platforms that use the X Window System support the selection 151 // Only platforms that use the X Window System support the selection
152 // buffer. Furthermore we currently only use a buffer other than the 152 // buffer.
153 // standard buffer when reading from the clipboard so only those
154 // functions accept a buffer parameter.
155 enum Buffer { 153 enum Buffer {
156 BUFFER_STANDARD, 154 BUFFER_STANDARD,
157 BUFFER_SELECTION, 155 BUFFER_SELECTION,
158 }; 156 };
159 157
160 static bool IsValidBuffer(int32 buffer) { 158 static bool IsValidBuffer(int32 buffer) {
161 switch (buffer) { 159 switch (buffer) {
162 case BUFFER_STANDARD: 160 case BUFFER_STANDARD:
163 return true; 161 return true;
164 #if defined(USE_X11) && !defined(USE_AURA) 162 #if defined(USE_X11) && !defined(USE_AURA)
165 case BUFFER_SELECTION: 163 case BUFFER_SELECTION:
166 return true; 164 return true;
167 #endif 165 #endif
168 } 166 }
169 return false; 167 return false;
170 } 168 }
171 169
172 static Buffer FromInt(int32 buffer) { 170 static Buffer FromInt(int32 buffer) {
173 return static_cast<Buffer>(buffer); 171 return static_cast<Buffer>(buffer);
174 } 172 }
175 173
176 Clipboard(); 174 Clipboard();
177 ~Clipboard(); 175 ~Clipboard();
178 176
179 // Write a bunch of objects to the system clipboard. Copies are made of the 177 // Write a bunch of objects to the system clipboard. Copies are made of the
180 // contents of |objects|. On Windows they are copied to the system clipboard. 178 // contents of |objects|. On Windows they are copied to the system clipboard.
181 // On linux they are copied into a structure owned by the Clipboard object and 179 // On linux they are copied into a structure owned by the Clipboard object and
182 // kept until the system clipboard is set again. 180 // kept until the system clipboard is set again.
183 void WriteObjects(const ObjectMap& objects); 181 void WriteObjects(Buffer buffer, const ObjectMap& objects);
184 182
185 // On Linux/BSD, we need to know when the clipboard is set to a URL. Most 183 // On Linux/BSD, we need to know when the clipboard is set to a URL. Most
186 // platforms don't care. 184 // platforms don't care.
187 #if defined(OS_WIN) || defined(OS_MACOSX) || defined(USE_AURA) \ 185 #if defined(OS_WIN) || defined(OS_MACOSX) || defined(USE_AURA) \
188 || defined(OS_ANDROID) 186 || defined(OS_ANDROID)
189 void DidWriteURL(const std::string& utf8_text) {} 187 void DidWriteURL(const std::string& utf8_text) {}
190 #else // !defined(OS_WIN) && !defined(OS_MACOSX) 188 #else // !defined(OS_WIN) && !defined(OS_MACOSX)
191 void DidWriteURL(const std::string& utf8_text); 189 void DidWriteURL(const std::string& utf8_text);
192 #endif 190 #endif
193 191
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 // of data we intend to put on the clipboard on clipboard_data_ as 317 // of data we intend to put on the clipboard on clipboard_data_ as
320 // WriteObjects is running, and then at the end call SetGtkClipboard 318 // WriteObjects is running, and then at the end call SetGtkClipboard
321 // which replaces whatever is on the system clipboard with the 319 // which replaces whatever is on the system clipboard with the
322 // contents of clipboard_data_. 320 // contents of clipboard_data_.
323 321
324 public: 322 public:
325 typedef std::map<std::string, std::pair<char*, size_t> > TargetMap; 323 typedef std::map<std::string, std::pair<char*, size_t> > TargetMap;
326 324
327 private: 325 private:
328 // Write changes to gtk clipboard. 326 // Write changes to gtk clipboard.
329 void SetGtkClipboard(); 327 void SetGtkClipboard(Buffer buffer);
330 // Insert a mapping into clipboard_data_. 328 // Insert a mapping into clipboard_data_.
331 void InsertMapping(const char* key, char* data, size_t data_len); 329 void InsertMapping(const char* key, char* data, size_t data_len);
332 330
333 // Find the gtk clipboard for the passed buffer enum. 331 // Find the gtk clipboard for the passed buffer enum.
334 GtkClipboard* LookupBackingClipboard(Buffer clipboard) const; 332 GtkClipboard* LookupBackingClipboard(Buffer clipboard) const;
335 333
336 TargetMap* clipboard_data_; 334 TargetMap* clipboard_data_;
337 GtkClipboard* clipboard_; 335 GtkClipboard* clipboard_;
338 GtkClipboard* primary_selection_; 336 GtkClipboard* primary_selection_;
339 #elif defined(OS_ANDROID) 337 #elif defined(OS_ANDROID)
(...skipping 21 matching lines...) Expand all
361 jmethodID get_text_; 359 jmethodID get_text_;
362 jmethodID to_string_; 360 jmethodID to_string_;
363 #endif 361 #endif
364 362
365 DISALLOW_COPY_AND_ASSIGN(Clipboard); 363 DISALLOW_COPY_AND_ASSIGN(Clipboard);
366 }; 364 };
367 365
368 } // namespace ui 366 } // namespace ui
369 367
370 #endif // UI_BASE_CLIPBOARD_CLIPBOARD_H_ 368 #endif // UI_BASE_CLIPBOARD_CLIPBOARD_H_
OLDNEW
« no previous file with comments | « content/browser/renderer_host/clipboard_message_filter.cc ('k') | ui/base/clipboard/clipboard_aurax11.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698