X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e1ee679c2e3f48bc4f2607e35033ed5505ed6665..8fbdfa4faf61ecc4177d9952d3f3718cf4514ae6:/src/motif/clipbrd.cpp diff --git a/src/motif/clipbrd.cpp b/src/motif/clipbrd.cpp index 93c36445be..41afb324d3 100644 --- a/src/motif/clipbrd.cpp +++ b/src/motif/clipbrd.cpp @@ -26,15 +26,19 @@ #include "wx/clipbrd.h" #include "wx/dataobj.h" +#ifdef __VMS__ +#pragma message disable nosimpint +#endif #include #include +#ifdef __VMS__ +#pragma message enable nosimpint +#endif #include -#if !USE_SHARED_LIBRARY // IMPLEMENT_DYNAMIC_CLASS(wxClipboard, wxObject) // IMPLEMENT_ABSTRACT_CLASS(wxClipboardClient, wxObject) -#endif static bool gs_clipboardIsOpen = FALSE; @@ -95,7 +99,7 @@ bool wxIsClipboardFormatAvailable(wxDataFormat dataFormat) return TRUE; } -bool wxSetClipboardData(wxDataFormat dataFormat, wxObject *obj, int width, int height) +bool wxSetClipboardData(wxDataFormat dataFormat, wxObject *obj, int WXUNUSED(width), int WXUNUSED(height)) { if (dataFormat != wxDF_TEXT) return FALSE; @@ -213,13 +217,13 @@ wxDataFormat wxEnumClipboardFormats(wxDataFormat dataFormat) return wxDF_INVALID; } -wxDataFormat wxRegisterClipboardFormat(char *formatName) +wxDataFormat wxRegisterClipboardFormat(char *WXUNUSED(formatName)) { // Not supported return (wxDataFormat) wxDF_INVALID; } -bool wxGetClipboardFormatName(wxDataFormat dataFormat, char *formatName, int maxCount) +bool wxGetClipboardFormatName(wxDataFormat dataFormat, char *formatName, int WXUNUSED(maxCount)) { // Only wxDF_TEXT supported if (dataFormat == wxDF_TEXT) @@ -237,8 +241,6 @@ bool wxGetClipboardFormatName(wxDataFormat dataFormat, char *formatName, int max IMPLEMENT_DYNAMIC_CLASS(wxClipboard,wxObject) -wxClipboard* wxTheClipboard = (wxClipboard*) NULL; - wxClipboard::wxClipboard() { m_open = FALSE; @@ -275,30 +277,36 @@ bool wxClipboard::SetData( wxDataObject *data ) wxCHECK_MSG( data, FALSE, "data is invalid" ); wxCHECK_MSG( m_open, FALSE, "clipboard not open" ); - switch (data->GetFormat()) + Clear(); + + return AddData( data ); +} + +bool wxClipboard::AddData( wxDataObject *data ) +{ + wxCHECK_MSG( data, FALSE, "data is invalid" ); + wxCHECK_MSG( m_open, FALSE, "clipboard not open" ); + + wxDataFormat::NativeFormat format = data->GetPreferredFormat().GetType(); + switch ( format ) { case wxDF_TEXT: case wxDF_OEMTEXT: { wxTextDataObject* textDataObject = (wxTextDataObject*) data; wxString str(textDataObject->GetText()); - return wxSetClipboardData(data->GetFormat(), (wxObject*) (const char*) str); - break; + return wxSetClipboardData(format, (wxObject*) (const char*) str); } -/* +#if 0 case wxDF_BITMAP: case wxDF_DIB: { wxBitmapDataObject* bitmapDataObject = (wxBitmapDataObject*) data; wxBitmap bitmap(bitmapDataObject->GetBitmap()); - return wxSetClipboardData(data->GetFormat(), & bitmap); + return wxSetClipboardData(data->GetType(), & bitmap); break; } -*/ - default: - { - return FALSE; - } +#endif // 0 } return FALSE; @@ -312,25 +320,26 @@ void wxClipboard::Close() wxCloseClipboard(); } -bool wxClipboard::IsSupported( wxDataFormat format) +bool wxClipboard::IsSupported( const wxDataFormat& format) { return wxIsClipboardFormatAvailable(format); } -bool wxClipboard::GetData( wxDataObject *data ) +bool wxClipboard::GetData( wxDataObject& data ) { wxCHECK_MSG( m_open, FALSE, "clipboard not open" ); - switch (data->GetFormat()) + wxDataFormat::NativeFormat format = data.GetPreferredFormat().GetType(); + switch ( format ) { case wxDF_TEXT: case wxDF_OEMTEXT: { - wxTextDataObject* textDataObject = (wxTextDataObject*) data; - char* s = (char*) wxGetClipboardData(data->GetFormat()); + wxTextDataObject& textDataObject = (wxTextDataObject &) data; + char* s = (char*) wxGetClipboardData(format); if (s) { - textDataObject->SetText(s); + textDataObject.SetText(s); delete[] s; return TRUE; } @@ -343,7 +352,7 @@ bool wxClipboard::GetData( wxDataObject *data ) case wxDF_DIB: { wxBitmapDataObject* bitmapDataObject = (wxBitmapDataObject*) data; - wxBitmap* bitmap = (wxBitmap*) wxGetClipboardData(data->GetFormat()); + wxBitmap* bitmap = (wxBitmap*) wxGetClipboardData(data->GetType()); if (bitmap) { bitmapDataObject->SetBitmap(* bitmap);