| Index: ui/base/x/selection_utils.h
|
| diff --git a/ui/base/x/selection_utils.h b/ui/base/x/selection_utils.h
|
| index eba259b37ddc48e5caf375490a4565d9a97f01aa..741fd819f9bc84f9bbb874a1570cddba871df6d9 100644
|
| --- a/ui/base/x/selection_utils.h
|
| +++ b/ui/base/x/selection_utils.h
|
| @@ -15,13 +15,26 @@
|
| #include "base/basictypes.h"
|
| #include "ui/base/clipboard/clipboard.h"
|
| #include "ui/base/ui_export.h"
|
| +#include "ui/base/x/x11_atom_cache.h"
|
|
|
| namespace ui {
|
| class X11AtomCache;
|
|
|
| +extern const char kMimeTypeMozillaURL[];
|
| +extern const char kString[];
|
| +extern const char kText[];
|
| +extern const char kUtf8String[];
|
| +
|
| // Returns a list of all text atoms that we handle.
|
| UI_EXPORT std::vector< ::Atom> GetTextAtomsFrom(const X11AtomCache* atom_cache);
|
|
|
| +UI_EXPORT std::vector< ::Atom> GetURLAtomsFrom(const X11AtomCache* atom_cache);
|
| +
|
| +// Places the intersection of |one| and |two| into |output|.
|
| +UI_EXPORT void GetAtomIntersection(const std::vector< ::Atom>& one,
|
| + const std::vector< ::Atom>& two,
|
| + std::vector< ::Atom>* output);
|
| +
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| // Represents the selection in different data formats. Binary data passed in is
|
| @@ -52,6 +65,43 @@ class UI_EXPORT SelectionFormatMap {
|
| DISALLOW_COPY_AND_ASSIGN(SelectionFormatMap);
|
| };
|
|
|
| +///////////////////////////////////////////////////////////////////////////////
|
| +
|
| +// A holder for data with optional X11 deletion semantics.
|
| +class UI_EXPORT SelectionData {
|
| + public:
|
| + // |atom_cache| is still owned by caller.
|
| + explicit SelectionData(Display* x_display);
|
| + ~SelectionData();
|
| +
|
| + ::Atom type() const { return type_; }
|
| + char* data() const { return data_; }
|
| + size_t size() const { return size_; }
|
| +
|
| + void Set(::Atom type, char* data, size_t size, bool owned);
|
| +
|
| + // If |type_| is a string type, convert the data to UTF8 and return it.
|
| + std::string GetText() const;
|
| +
|
| + // If |type_| is the HTML type, returns the data as a string16. This detects
|
| + // guesses the character encoding of the source.
|
| + string16 GetHtml() const;
|
| +
|
| + // Assigns the raw data to the string.
|
| + void AssignTo(std::string* result) const;
|
| + void AssignTo(string16* result) const;
|
| +
|
| + private:
|
| + ::Atom type_;
|
| + char* data_;
|
| + size_t size_;
|
| + bool owned_;
|
| +
|
| + X11AtomCache atom_cache_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(SelectionData);
|
| +};
|
| +
|
| } // namespace ui
|
|
|
| #endif // UI_BASE_X_SELECTION_UTILS_H_
|
|
|