/////////////////////////////////////////////////////////////////////////////
-// Name: clipbrd.cpp
+// Name: src/os2/clipbrd.cpp
// Purpose: Clipboard functionality
// Author: David Webster
// Modified by:
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
-#ifndef WX_PRECOMP
- #include "wx/setup.h"
-#endif
-
#if wxUSE_CLIPBOARD
+#include "wx/clipbrd.h"
+
#ifndef WX_PRECOMP
#include "wx/object.h"
#include "wx/event.h"
#include "wx/bitmap.h"
#include "wx/utils.h"
#include "wx/intl.h"
+ #include "wx/log.h"
+ #include "wx/dataobj.h"
#endif
#if wxUSE_METAFILE
#include "wx/metafile.h"
#endif
-#include "wx/log.h"
-#include "wx/clipbrd.h"
-
#include <string.h>
-#define INCL_DOS
-#define INCL_PM
-#include <os2.h>
-
#include "wx/os2/private.h"
// wxDataObject is tied to OLE/drag and drop implementation,
// therefore so is wxClipboard :-(
-#if wxUSE_DRAG_AND_DROP
- #include "wx/dataobj.h"
-
- static bool wxSetClipboardData(wxDataObject *data);
-#endif
// ===========================================================================
// implementation
// old-style clipboard functions using Windows API
// ---------------------------------------------------------------------------
-static bool gs_wxClipboardIsOpen = FALSE;
+static bool gs_wxClipboardIsOpen = false;
bool wxOpenClipboard()
{
- wxCHECK_MSG( !gs_wxClipboardIsOpen, TRUE, wxT("clipboard already opened.") );
+ wxCHECK_MSG( !gs_wxClipboardIsOpen, true, wxT("clipboard already opened.") );
// TODO:
/*
wxWindow *win = wxTheApp->GetTopWindow();
gs_wxClipboardIsOpen = ::OpenClipboard((HWND)win->GetHWND()) != 0;
if ( !gs_wxClipboardIsOpen )
+ {
wxLogSysError(_("Failed to open the clipboard."));
+ }
return gs_wxClipboardIsOpen;
}
else
{
- wxLogDebug(wxT("Can not open clipboard without a main window."));
+ wxLogDebug(wxT("Cannot open clipboard without a main window."));
- return FALSE;
+ return false;
}
*/
- return FALSE;
+ return false;
}
bool wxCloseClipboard()
{
- wxCHECK_MSG( gs_wxClipboardIsOpen, FALSE, wxT("clipboard is not opened") );
+ wxCHECK_MSG( gs_wxClipboardIsOpen, false, wxT("clipboard is not opened") );
// TODO:
/*
- gs_wxClipboardIsOpen = FALSE;
+ gs_wxClipboardIsOpen = false;
if ( ::CloseClipboard() == 0 )
{
wxLogSysError(_("Failed to close the clipboard."));
- return FALSE;
+ return false;
}
*/
- return TRUE;
+ return true;
}
bool wxEmptyClipboard()
{
wxLogSysError(_("Failed to empty the clipboard."));
- return FALSE;
+ return false;
}
*/
- return TRUE;
+ return true;
}
bool wxIsClipboardOpened()
return gs_wxClipboardIsOpen;
}
-bool wxIsClipboardFormatAvailable(wxDataFormat dataFormat)
+bool wxIsClipboardFormatAvailable(wxDataFormat WXUNUSED(dataFormat))
{
// TODO: return ::IsClipboardFormatAvailable(dataFormat) != 0;
- return FALSE;
+ return false;
}
+#if 0
#if wxUSE_DRAG_AND_DROP
static bool wxSetClipboardData(wxDataObject *data)
{
wxLogSysError(_("Failed to allocate %dKb of memory for clipboard "
"transfer."), size / 1024);
- return FALSE;
+ return false;
}
LPVOID lpGlobalMemory = ::GlobalLock(hGlobal);
wxLogSysError(_("Failed to set clipboard data in format %s"),
wxDataObject::GetFormatName(format));
- return FALSE;
+ return false;
}
*/
- return TRUE;
+ return true;
}
#endif // wxUSE_DRAG_AND_DROP
+#endif
-bool wxSetClipboardData(wxDataFormat dataFormat,
- const void *data,
- int width, int height)
+bool wxSetClipboardData(wxDataFormat WXUNUSED(dataFormat),
+ const void *WXUNUSED(data),
+ int WXUNUSED(width), int WXUNUSED(height))
{
// TODO:
/*
SelectObject(hdcSrc, old);
DeleteDC(hdcMem);
DeleteDC(hdcSrc);
- return FALSE;
+ return false;
}
HBITMAP old1 = (HBITMAP) SelectObject(hdcMem, hBitmap);
default:
{
wxLogError(_("Unsupported clipboard format."));
- return FALSE;
+ return false;
}
case wxDF_OEMTEXT:
{
wxLogSysError(_("Failed to set clipboard data."));
- return FALSE;
+ return false;
}
*/
- return TRUE;
+ return true;
}
-void *wxGetClipboardData(wxDataFormat dataFormat, long *len)
+void *wxGetClipboardData(wxDataFormat WXUNUSED(dataFormat), long *WXUNUSED(len))
{
- void *retval = NULL;
+// void *retval = NULL;
// TODO:
/*
switch ( dataFormat )
wxBM->SetWidth(bm.bmWidth);
wxBM->SetHeight(bm.bmHeight);
wxBM->SetDepth(bm.bmPlanes);
- wxBM->SetOk(TRUE);
+ wxBM->SetOk(true);
retval = wxBM;
break;
}
case wxDF_DIB:
{
wxLogError(_("Unsupported clipboard format."));
- return FALSE;
+ return NULL;
}
case wxDF_OEMTEXT:
return dataFormat;
}
-int wxRegisterClipboardFormat(wxChar *formatName)
+int wxRegisterClipboardFormat(wxChar *WXUNUSED(formatName))
{
// TODO: return ::RegisterClipboardFormat(formatName);
return 0;
}
-bool wxGetClipboardFormatName(wxDataFormat dataFormat,
- wxChar *formatName,
- int maxCount)
+bool wxGetClipboardFormatName(wxDataFormat WXUNUSED(dataFormat),
+ wxChar *WXUNUSED(formatName),
+ int WXUNUSED(maxCount))
{
// TODO: return ::GetClipboardFormatName((int)dataFormat, formatName, maxCount) > 0;
return 0;
IMPLEMENT_DYNAMIC_CLASS(wxClipboard, wxObject)
-wxClipboard* wxTheClipboard = (wxClipboard *)NULL;
-
wxClipboard::wxClipboard()
{
}
{
}
+bool wxClipboard::Flush()
+{
+ // TODO:
+ return false;
+}
+
bool wxClipboard::Open()
{
return wxOpenClipboard();
}
-bool wxClipboard::SetData( wxDataObject *data )
+bool wxClipboard::IsOpened() const
+{
+ return wxIsClipboardOpened();
+}
+
+bool wxClipboard::SetData( wxDataObject *WXUNUSED(data) )
{
(void)wxEmptyClipboard();
// TODO:
if ( data )
return AddData(data);
else
- return TRUE;
+ return true;
*/
- return TRUE;
+ return true;
}
bool wxClipboard::AddData( wxDataObject *data )
{
- wxCHECK_MSG( data, FALSE, wxT("data is invalid") );
+ wxCHECK_MSG( data, false, wxT("data is invalid") );
#if wxUSE_DRAG_AND_DROP
- wxCHECK_MSG( wxIsClipboardOpened(), FALSE, wxT("clipboard not open") );
+ wxCHECK_MSG( wxIsClipboardOpened(), false, wxT("clipboard not open") );
-// wxDataFormat format = data->GetFormat();
+// wxDataFormat format = data->GetPreferredFormat();
// TODO:
/*
switch ( format )
{
wxBitmapDataObject* bitmapDataObject = (wxBitmapDataObject*) data;
wxBitmap bitmap(bitmapDataObject->GetBitmap());
- return wxSetClipboardData(data->GetFormat(), &bitmap);
+ return wxSetClipboardData(data->GetPreferredFormat(), &bitmap);
}
#if wxUSE_METAFILE
}
#else // !wxUSE_DRAG_AND_DROP
*/
- return FALSE;
+ return false;
+#else
+ return false;
#endif // wxUSE_DRAG_AND_DROP/!wxUSE_DRAG_AND_DROP
}
wxCloseClipboard();
}
-bool wxClipboard::IsSupported( wxDataFormat format )
+bool wxClipboard::IsSupported( const wxDataFormat& format )
{
return wxIsClipboardFormatAvailable(format);
}
-bool wxClipboard::GetData( wxDataObject *data )
+bool wxClipboard::GetData( wxDataObject& WXUNUSED(data) )
{
- wxCHECK_MSG( wxIsClipboardOpened(), FALSE, wxT("clipboard not open") );
+ wxCHECK_MSG( wxIsClipboardOpened(), false, wxT("clipboard not open") );
#if wxUSE_DRAG_AND_DROP
-// wxDataFormat format = data->GetFormat();
+// wxDataFormat format = data.GetPreferredFormat();
// TODO:
/*
switch ( format )
case wxDF_TEXT:
case wxDF_OEMTEXT:
{
- wxTextDataObject* textDataObject = (wxTextDataObject*) data;
+ wxTextDataObject& textDataObject = (wxTextDataObject&) data;
char* s = (char*) wxGetClipboardData(format);
if ( s )
{
- textDataObject->SetText(s);
+ textDataObject.SetText(s);
delete[] s;
- return TRUE;
+ return true;
}
else
- return FALSE;
+ return false;
}
case wxDF_BITMAP:
case wxDF_DIB:
{
- wxBitmapDataObject* bitmapDataObject = (wxBitmapDataObject *)data;
- wxBitmap* bitmap = (wxBitmap *)wxGetClipboardData(data->GetFormat());
+ wxBitmapDataObject& bitmapDataObject = (wxBitmapDataObject &)data;
+ wxBitmap* bitmap = (wxBitmap *)wxGetClipboardData(data->GetPreferredFormat());
if (bitmap)
{
- bitmapDataObject->SetBitmap(* bitmap);
+ bitmapDataObject.SetBitmap(* bitmap);
delete bitmap;
- return TRUE;
+ return true;
}
else
- return FALSE;
+ return false;
}
#if wxUSE_METAFILE
case wxDF_METAFILE:
{
- wxMetafileDataObject* metaFileDataObject = (wxMetafileDataObject *)data;
+ wxMetafileDataObject& metaFileDataObject = (wxMetafileDataObject &)data;
wxMetafile* metaFile = (wxMetafile *)wxGetClipboardData(wxDF_METAFILE);
if (metaFile)
{
- metaFileDataObject->SetMetafile(*metaFile);
+ metaFileDataObject.SetMetafile(*metaFile);
delete metaFile;
- return TRUE;
+ return true;
}
else
- return FALSE;
+ return false;
}
#endif
default:
void *buf = wxGetClipboardData(format, &len);
if ( buf )
{
- // FIXME this is for testing only!!
- ((wxPrivateDataObject *)data)->SetData(buf, len);
+ // FIXME this is for testing only!
+ ((wxPrivateDataObject &)data).SetData(buf, len);
free(buf);
- return TRUE;
+ return true;
}
}
- return FALSE;
+ return false;
}
#else
*/
- return FALSE;
+ return false;
+#else
+ return false;
#endif
}
-//-----------------------------------------------------------------------------
-// wxClipboardModule
-//-----------------------------------------------------------------------------
-
-IMPLEMENT_DYNAMIC_CLASS(wxClipboardModule,wxModule)
-
-bool wxClipboardModule::OnInit()
-{
- wxTheClipboard = new wxClipboard();
-
- return TRUE;
-}
-
-void wxClipboardModule::OnExit()
-{
- if (wxTheClipboard) delete wxTheClipboard;
- wxTheClipboard = (wxClipboard*) NULL;
-}
-
-#else
- #error "Please turn wxUSE_CLIPBOARD on to compile this file."
#endif // wxUSE_CLIPBOARD
-