#include "wx/object.h"
#include "wx/chartype.h"
-class WXDLLEXPORT wxDataFormat;
-class WXDLLEXPORT wxDataObject;
-class WXDLLEXPORT wxClipboard;
+class WXDLLIMPEXP_FWD_CORE wxDataFormat;
+class WXDLLIMPEXP_FWD_CORE wxDataObject;
+class WXDLLIMPEXP_FWD_CORE wxClipboard;
// ----------------------------------------------------------------------------
// wxClipboard represents the system clipboard. Normally, you should use
// with wxDataObject.
// ----------------------------------------------------------------------------
-class WXDLLEXPORT wxClipboardBase : public wxObject
+class WXDLLIMPEXP_CORE wxClipboardBase : public wxObject
{
public:
- wxClipboardBase() {}
+ wxClipboardBase() { m_usePrimary = false; }
// open the clipboard before Add/SetData() and GetData()
virtual bool Open() = 0;
// eating memory), otherwise the clipboard will be emptied on exit
virtual bool Flush() { return false; }
- // X11 has two clipboards which get selected by this call. Empty on MSW.
- virtual void UsePrimarySelection( bool WXUNUSED(primary) = false ) { }
+ // this allows to choose whether we work with CLIPBOARD (default) or
+ // PRIMARY selection on X11-based systems
+ //
+ // on the other ones, working with primary selection does nothing: this
+ // allows to write code which sets the primary selection when something is
+ // selected without any ill effects (i.e. without overwriting the
+ // clipboard which would be wrong on the platforms without X11 PRIMARY)
+ virtual void UsePrimarySelection(bool usePrimary = false)
+ {
+ m_usePrimary = usePrimary;
+ }
+
+ // return true if we're using primary selection
+ bool IsUsingPrimarySelection() const { return m_usePrimary; }
// Returns global instance (wxTheClipboard) of the object:
static wxClipboard *Get();
+
+
+ // don't use this directly, it is public for compatibility with some ports
+ // (wxX11, wxMotif, ...) only
+ bool m_usePrimary;
};
// ----------------------------------------------------------------------------
// helpful class for opening the clipboard and automatically closing it
// ----------------------------------------------------------------------------
-class WXDLLEXPORT wxClipboardLocker
+class WXDLLIMPEXP_CORE wxClipboardLocker
{
public:
wxClipboardLocker(wxClipboard *clipboard = (wxClipboard *)NULL)