49 void addRequest(Window owner, Window requestor, Atom target,
::Time time, Atom property);
79 bool empty()
override;
82 void close()
const override;
89 void clearConverters();
98 EFormat getFormat(Atom target)
const;
104 bool addSimpleRequest(Window requestor, Atom target,
::Time time, Atom property);
108 void checkCache()
const;
112 void clearCache()
const;
116 void fillCache()
const;
134 bool readClipboard(Display *display, Atom selection, Atom target, Atom *actualTarget, std::string *
data);
137 bool processEvent(Display *display,
const XEvent *event);
144 bool m_failed =
false;
148 Atom m_atomNone = None;
149 Atom m_atomIncr = None;
152 bool m_reading =
false;
155 std::string *m_data =
nullptr;
159 Atom *m_actualTarget =
nullptr;
162 bool m_error =
false;
224 Reply(Window, Atom target,
::Time, Atom property,
const std::string &
data, Atom
type,
int format);
272 void sendNotify(Window requestor, Atom selection, Atom target, Atom property,
Time time);
280 using ConverterList = std::vector<IXWindowsClipboardConverter *>;
286 mutable bool m_open =
false;
287 mutable Time m_time = 0;
288 bool m_owner =
false;
289 mutable Time m_timeOwned = 0;
293 mutable bool m_motif;
296 mutable bool m_checkCache;
307 ConverterList m_converters;
312 Atom m_atomTimestamp;
318 Atom m_atomMotifClipLock;
319 Atom m_atomMotifClipHeader;
320 Atom m_atomMotifClipAccess;
321 Atom m_atomGDKSelection;
static int void FAR * data
Definition ArchNetworkWinsock.cpp:34
static int type
Definition ArchNetworkWinsock.cpp:44
uint8_t ClipboardID
Clipboard ID.
Definition ClipboardTypes.h:16
Clipboard interface.
Definition IClipboard.h:20
EFormat
Clipboard formats.
Definition IClipboard.h:50
@ kNumFormats
The number of clipboard formats.
Definition IClipboard.h:54
uint32_t Time
Timestamp type.
Definition IClipboard.h:28
Base class of interfaces.
Definition IInterface.h:18
Clipboard format converter interface.
Definition XWindowsClipboard.h:330
virtual std::string fromIClipboard(const std::string &) const =0
Convert from IClipboard format.
virtual std::string toIClipboard(const std::string &) const =0
Convert to IClipboard format.
virtual int getDataSize() const =0
Get X11 property datum size.
virtual IClipboard::EFormat getFormat() const =0
Get clipboard format.
virtual Atom getAtom() const =0
Get X11 format atom.
CICCCMGetClipboard(Window requestor, Time time, Atom property)
Definition XWindowsClipboard.cpp:1149
bool readClipboard(Display *display, Atom selection, Atom target, Atom *actualTarget, std::string *data)
Definition XWindowsClipboard.cpp:1156
bool error() const
Definition XWindowsClipboard.h:165
~CICCCMGetClipboard()=default
Definition XWindowsClipboard.h:195
int32_t m_numFormats
Definition XWindowsClipboard.h:200
int32_t m_pad2[6]
Definition XWindowsClipboard.h:202
int32_t m_numDeletedFormats
Definition XWindowsClipboard.h:201
int32_t m_size
Definition XWindowsClipboard.h:199
MotifClip m_id
Definition XWindowsClipboard.h:197
int32_t m_pad1[5]
Definition XWindowsClipboard.h:198
Definition XWindowsClipboard.h:221
bool m_replied
Definition XWindowsClipboard.h:234
Atom m_property
Definition XWindowsClipboard.h:231
Atom m_type
Definition XWindowsClipboard.h:241
int m_format
Definition XWindowsClipboard.h:242
Atom m_target
Definition XWindowsClipboard.h:229
Reply(Window, Atom target, ::Time)
Definition XWindowsClipboard.cpp:1366
::Time m_time
Definition XWindowsClipboard.h:230
uint32_t m_ptr
Definition XWindowsClipboard.h:245
std::string m_data
Definition XWindowsClipboard.h:240
Window m_requestor
Definition XWindowsClipboard.h:228
bool m_done
Definition XWindowsClipboard.h:237
bool empty() override
Empty clipboard.
Definition XWindowsClipboard.cpp:233
bool insertMultipleReply(Window, ::Time, Atom)
Definition XWindowsClipboard.cpp:756
bool sendReply(Reply *)
Definition XWindowsClipboard.cpp:893
XWindowsClipboard & operator=(XWindowsClipboard const &)=delete
bool motifGetSelection(const MotifClipFormat *, Atom *actualTarget, std::string *data) const
Definition XWindowsClipboard.cpp:729
bool motifOwnsClipboard() const
Definition XWindowsClipboard.cpp:588
Time icccmGetTime() const
Definition XWindowsClipboard.cpp:534
void clearReplies()
Definition XWindowsClipboard.cpp:1050
XWindowsClipboard & operator=(XWindowsClipboard &&)=delete
void addRequest(Window owner, Window requestor, Atom target, ::Time time, Atom property)
Add clipboard request.
Definition XWindowsClipboard.cpp:93
void motifFillCache()
Definition XWindowsClipboard.cpp:620
Atom getSelection() const
Get selection atom.
Definition XWindowsClipboard.cpp:228
Time motifGetTime() const
Definition XWindowsClipboard.cpp:751
Window getWindow() const
Get window.
Definition XWindowsClipboard.cpp:223
std::map< Window, long > ReplyEventMask
Definition XWindowsClipboard.h:249
bool processRequest(Window requestor, ::Time time, Atom property)
Process clipboard request.
Definition XWindowsClipboard.cpp:177
void motifUnlockClipboard() const
Definition XWindowsClipboard.cpp:574
std::string get(EFormat) const override
Get data.
Definition XWindowsClipboard.cpp:344
void icccmFillCache()
Definition XWindowsClipboard.cpp:445
void pushReplies()
Definition XWindowsClipboard.cpp:846
Atom getTargetsData(std::string &, int *format) const
Definition XWindowsClipboard.cpp:1112
MotifClip
Definition XWindowsClipboard.h:173
@ Format
Definition XWindowsClipboard.h:174
@ Item
Definition XWindowsClipboard.h:175
@ Header
Definition XWindowsClipboard.h:176
~XWindowsClipboard() override
Definition XWindowsClipboard.cpp:77
void insertReply(Reply *)
Definition XWindowsClipboard.cpp:800
Time getTime() const override
Get time.
Definition XWindowsClipboard.cpp:330
bool motifLockClipboard() const
Definition XWindowsClipboard.cpp:549
bool destroyRequest(Window requestor)
Cancel clipboard request.
Definition XWindowsClipboard.cpp:205
void close() const override
Close clipboard.
Definition XWindowsClipboard.cpp:315
std::map< Window, ReplyList > ReplyMap
Definition XWindowsClipboard.h:248
Atom getTimestampData(std::string &, int *format) const
Definition XWindowsClipboard.cpp:1135
bool has(EFormat) const override
Check for data.
Definition XWindowsClipboard.cpp:336
void sendNotify(Window requestor, Atom selection, Atom target, Atom property, Time time)
Definition XWindowsClipboard.cpp:1067
void lost(Time)
Notify clipboard was lost.
Definition XWindowsClipboard.cpp:83
bool icccmGetSelection(Atom target, Atom *actualTarget, std::string *data) const
Definition XWindowsClipboard.cpp:515
XWindowsClipboard(XWindowsClipboard &&)=delete
bool open(Time) const override
Open clipboard.
Definition XWindowsClipboard.cpp:278
XWindowsClipboard(Display *, Window window, ClipboardID id)
Definition XWindowsClipboard.cpp:31
void add(EFormat, const std::string &data) override
Add data.
Definition XWindowsClipboard.cpp:265
std::list< Reply * > ReplyList
Definition XWindowsClipboard.h:247
XWindowsClipboard(XWindowsClipboard const &)=delete
bool wasOwnedAtTime(::Time) const
Definition XWindowsClipboard.cpp:1081