#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;
window = XtWindow( (Widget) wxTheApp->GetTopWindow()->GetTopWidget() );
int success = XmClipboardRetrieve((Display*) wxGetDisplay(),
- window, "TEXT(", (XtPointer) 0, 0, & numBytes, & privateId) ;
+ window, "TEXT", (XtPointer) 0, 0, & numBytes, & privateId) ;
// Assume only text is supported. If we have anything at all,
// or the clipboard is locked so we're not sure, we say we support it.
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;
XmClipboardCopy((Display*) wxGetDisplay(),
window,
itemId,
- "TEXT(",
+ "TEXT",
(XtPointer) data,
strlen(data) + 1,
0,
}
result = XmClipboardRetrieve((Display*) wxGetDisplay(),
window,
- "TEXT(",
+ "TEXT",
(XtPointer) data,
currentDataSize,
&numBytes,
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)
{
- strcpy(formatName, "TEXT(");
+ strcpy(formatName, "TEXT");
return TRUE;
}
else
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);
*/
default:
{
- return FALSE;
+#ifndef __VMS
+ // VMS complains that this statement is/causes unreachability
+ return FALSE;
+#endif
}
}
- return FALSE;
+
+ 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
/*
static int FormatStringToID(char *str)
{
- if (!strcmp(str, "TEXT("))
+ if (!strcmp(str, "TEXT"))
return wxDF_TEXT;
return wxRegisterClipboardFormat(str);
char *str;
long length;
- str = GetClipboardData("TEXT(", &length, time);
+ str = GetClipboardData("TEXT", &length, time);
if (!str) {
str = new char[1];
*str = 0;
else
return NULL;
} else if (cbString) {
- if (!strcmp(format, "TEXT("))
+ if (!strcmp(format, "TEXT"))
return copystring(cbString);
else
return NULL;