X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b068c4e8a1f4919360329c345eae36ff95ab5a10..4b5e178a4c22caac92952131632641c63821fc0c:/src/common/clipcmn.cpp diff --git a/src/common/clipcmn.cpp b/src/common/clipcmn.cpp index 7dc2ef2030..afdd300f30 100644 --- a/src/common/clipcmn.cpp +++ b/src/common/clipcmn.cpp @@ -1,12 +1,12 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: common/clipcmn.cpp +// Name: src/common/clipcmn.cpp // Purpose: common (to all ports) wxClipboard functions // Author: Robert Roebling // Modified by: // Created: 28.06.99 // RCS-ID: $Id$ // Copyright: (c) Robert Roebling -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma implementation "clipboardbase.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -28,32 +24,65 @@ #pragma hdrstop #endif +#if wxUSE_CLIPBOARD + #include "wx/clipbrd.h" -//-------------------------------------------------------------------------- +#ifndef WX_PRECOMP + #include "wx/module.h" +#endif + +// --------------------------------------------------------- +// wxClipboardEvent +// --------------------------------------------------------- + +IMPLEMENT_DYNAMIC_CLASS(wxClipboardEvent,wxEvent) + +DEFINE_EVENT_TYPE(wxEVT_CLIPBOARD_CHANGED) + +bool wxClipboardEvent::SupportsFormat( const wxDataFormat &format ) const +{ + wxVector::size_type n; + for (n = 0; n < m_formats.size(); n++) + { if (m_formats[n] == format) return true; } + return false; +} + +void wxClipboardEvent::AddFormat( const wxDataFormat &format ) +{ + m_formats.push_back( format ); +} + +// --------------------------------------------------------- // wxClipboardBase -//-------------------------------------------------------------------------- +// --------------------------------------------------------- + +static wxClipboard *gs_clipboard = NULL; -wxClipboardBase::wxClipboardBase() +/*static*/ wxClipboard *wxClipboardBase::Get() { + if ( !gs_clipboard ) + { + gs_clipboard = new wxClipboard; + } + return gs_clipboard; } // ---------------------------------------------------------------------------- -// wxClipboardModule: module responsible for initializing the global clipboard +// wxClipboardModule: module responsible for destroying the global clipboard // object -// -// NB: IMPLEMENT_DYNAMIC_CLASS() for it is in common/appcmn.cpp // ---------------------------------------------------------------------------- class wxClipboardModule : public wxModule { public: - bool OnInit() - { wxTheClipboard = new wxClipboard; return TRUE; } - void OnExit() - { delete wxTheClipboard; wxTheClipboard = (wxClipboard *)NULL; } + bool OnInit() { return true; } + void OnExit() { wxDELETE(gs_clipboard); } private: DECLARE_DYNAMIC_CLASS(wxClipboardModule) }; +IMPLEMENT_DYNAMIC_CLASS(wxClipboardModule, wxModule) + +#endif // wxUSE_CLIPBOARD