#pragma implementation "clipbrd.h"
#endif
+#include "wx/defs.h"
+
+#if wxUSE_CLIPBOARD
+
#include "wx/app.h"
#include "wx/frame.h"
#include "wx/bitmap.h"
#include "wx/clipbrd.h"
#include "wx/dataobj.h"
+#ifdef __VMS__
+#pragma message disable nosimpint
+#endif
#include <Xm/Xm.h>
#include <Xm/CutPaste.h>
+#ifdef __VMS__
+#pragma message enable nosimpint
+#endif
#include <string.h>
-#if !USE_SHARED_LIBRARY
// IMPLEMENT_DYNAMIC_CLASS(wxClipboard, wxObject)
// IMPLEMENT_ABSTRACT_CLASS(wxClipboardClient, wxObject)
-#endif
static bool gs_clipboardIsOpen = FALSE;
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;
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)
IMPLEMENT_DYNAMIC_CLASS(wxClipboard,wxObject)
-wxClipboard* wxTheClipboard = (wxClipboard*) NULL;
-
wxClipboard::wxClipboard()
{
m_open = FALSE;
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;
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;
}
case wxDF_DIB:
{
wxBitmapDataObject* bitmapDataObject = (wxBitmapDataObject*) data;
- wxBitmap* bitmap = (wxBitmap*) wxGetClipboardData(data->GetFormat());
+ wxBitmap* bitmap = (wxBitmap*) wxGetClipboardData(data->GetType());
if (bitmap)
{
bitmapDataObject->SetBitmap(* bitmap);
return FALSE;
}
-//-----------------------------------------------------------------------------
-// wxClipboardModule
-//-----------------------------------------------------------------------------
-
-IMPLEMENT_DYNAMIC_CLASS(wxClipboardModule,wxModule)
-
-bool wxClipboardModule::OnInit()
-{
- wxTheClipboard = new wxClipboard();
-
- return TRUE;
-}
-
-void wxClipboardModule::OnExit()
-{
- if (wxTheClipboard) delete wxTheClipboard;
- wxTheClipboard = (wxClipboard*) NULL;
-}
-
-
#if 0
/*
}
#endif
+#endif // wxUSE_CLIPBOARD