Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (c) 2008, 2009, Google Inc. All rights reserved. | 2 * Copyright (c) 2008, 2009, Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 48 class WebDragData; | 48 class WebDragData; |
| 49 | 49 |
| 50 // A data object for holding data that would be in a clipboard or moved | 50 // A data object for holding data that would be in a clipboard or moved |
| 51 // during a drag-n-drop operation. This is the data that WebCore is aware | 51 // during a drag-n-drop operation. This is the data that WebCore is aware |
| 52 // of and is not specific to a platform. | 52 // of and is not specific to a platform. |
| 53 class CORE_EXPORT DataObject : public GarbageCollectedFinalized<DataObject>, | 53 class CORE_EXPORT DataObject : public GarbageCollectedFinalized<DataObject>, |
| 54 public Supplementable<DataObject> { | 54 public Supplementable<DataObject> { |
| 55 USING_GARBAGE_COLLECTED_MIXIN(DataObject); | 55 USING_GARBAGE_COLLECTED_MIXIN(DataObject); |
| 56 | 56 |
| 57 public: | 57 public: |
| 58 struct Observer : public GarbageCollectedMixin { | |
| 59 virtual void OnItemListChanged() {} | |
|
jsbell
2017/05/15 20:49:28
Make this pure virtual? i.e. replace `{}` with `=
Raphael Kubo da Costa (rakuco)
2017/05/16 08:51:51
Done.
| |
| 60 }; | |
| 61 | |
| 58 static DataObject* CreateFromPasteboard(PasteMode); | 62 static DataObject* CreateFromPasteboard(PasteMode); |
| 59 static DataObject* CreateFromString(const String&); | 63 static DataObject* CreateFromString(const String&); |
| 60 static DataObject* Create(); | 64 static DataObject* Create(); |
| 61 static DataObject* Create(WebDragData); | 65 static DataObject* Create(WebDragData); |
| 62 | 66 |
| 63 virtual ~DataObject(); | 67 virtual ~DataObject(); |
| 64 | 68 |
| 65 // DataTransferItemList support. | 69 // DataTransferItemList support. |
| 66 size_t length() const; | 70 size_t length() const; |
| 67 DataObjectItem* Item(unsigned long index); | 71 DataObjectItem* Item(unsigned long index); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 104 | 108 |
| 105 // Used to handle files (images) being dragged out. | 109 // Used to handle files (images) being dragged out. |
| 106 void AddSharedBuffer(PassRefPtr<SharedBuffer>, | 110 void AddSharedBuffer(PassRefPtr<SharedBuffer>, |
| 107 const KURL&, | 111 const KURL&, |
| 108 const String& filename_extension, | 112 const String& filename_extension, |
| 109 const AtomicString& content_disposition); | 113 const AtomicString& content_disposition); |
| 110 | 114 |
| 111 int GetModifiers() const { return modifiers_; } | 115 int GetModifiers() const { return modifiers_; } |
| 112 void SetModifiers(int modifiers) { modifiers_ = modifiers; } | 116 void SetModifiers(int modifiers) { modifiers_ = modifiers; } |
| 113 | 117 |
| 118 // Adds an observer (and retains a reference to it) that is notified | |
| 119 // whenever the underlying item_list_ changes. | |
| 120 void AddObserver(Observer*); | |
| 121 | |
| 114 DECLARE_TRACE(); | 122 DECLARE_TRACE(); |
| 115 | 123 |
| 116 WebDragData ToWebDragData(); | 124 WebDragData ToWebDragData(); |
| 117 | 125 |
| 118 private: | 126 private: |
| 119 DataObject(); | 127 DataObject(); |
| 120 | 128 |
| 121 DataObjectItem* FindStringItem(const String& type) const; | 129 DataObjectItem* FindStringItem(const String& type) const; |
| 122 bool InternalAddStringItem(DataObjectItem*); | 130 bool InternalAddStringItem(DataObjectItem*); |
| 123 void InternalAddFileItem(DataObjectItem*); | 131 void InternalAddFileItem(DataObjectItem*); |
| 124 | 132 |
| 133 void NotifyItemListChanged() const; | |
| 134 | |
| 125 HeapVector<Member<DataObjectItem>> item_list_; | 135 HeapVector<Member<DataObjectItem>> item_list_; |
| 136 HeapHashSet<Member<Observer>> observers_; | |
| 126 | 137 |
| 127 // State of Shift/Ctrl/Alt/Meta keys and Left/Right/Middle mouse buttons | 138 // State of Shift/Ctrl/Alt/Meta keys and Left/Right/Middle mouse buttons |
| 128 int modifiers_; | 139 int modifiers_; |
| 129 String filesystem_id_; | 140 String filesystem_id_; |
| 130 }; | 141 }; |
| 131 | 142 |
| 132 } // namespace blink | 143 } // namespace blink |
| 133 | 144 |
| 134 #endif | 145 #endif |
| OLD | NEW |