/////////////////////////////////////////////////////////////////////////////
-// Name: clipbrd.cpp
+// Name: gtk/clipbrd.cpp
// Purpose:
// Author: Robert Roebling
// Id: $Id$
// Copyright: (c) 1998 Robert Roebling
-// Licence: wxWindows licence
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#include "wx/utils.h"
#include "wx/log.h"
-#include "glib.h"
-#include "gdk/gdk.h"
-#include "gtk/gtk.h"
+#include <glib.h>
+#include <gdk/gdk.h>
+#include <gtk/gtk.h>
//-----------------------------------------------------------------------------
// thread system
GdkAtom g_clipboardAtom = 0;
GdkAtom g_targetsAtom = 0;
+// the trace mask we use with wxLogTrace() - call
+// wxLog::AddTraceMask(TRACE_CLIPBOARD) to enable the trace messages from here
+// (there will be a *lot* of them!)
+static const wxChar *TRACE_CLIPBOARD = _T("clipboard");
+
//-----------------------------------------------------------------------------
// reminder
//-----------------------------------------------------------------------------
GdkAtom selection;
GdkAtom target;
GdkAtom type;
- gint format;
+ gint format;
guchar *data;
- gint length;
+ gint length;
};
*/
GdkAtom type = selection_data->type;
if ( type != GDK_SELECTION_TYPE_ATOM )
{
- clipboard->m_waiting = FALSE;
- return;
+ if ( strcmp(gdk_atom_name(type), "TARGETS") )
+ {
+ wxLogTrace( TRACE_CLIPBOARD,
+ _T("got unsupported clipboard target") );
+
+ clipboard->m_waiting = FALSE;
+ return;
+ }
}
-/*
+#ifdef __WXDEBUG__
wxDataFormat clip( selection_data->selection );
- wxLogDebug( wxT("selection received for targets, clipboard %s"), clip.GetId().c_str() );
-*/
+ wxLogTrace( TRACE_CLIPBOARD,
+ wxT("selection received for targets, clipboard %s"),
+ clip.GetId().c_str() );
+#endif // __WXDEBUG__
// the atoms we received, holding a list of targets (= formats)
GdkAtom *atoms = (GdkAtom *)selection_data->data;
{
wxDataFormat format( atoms[i] );
-/*
- wxLogDebug( wxT("selection received for targets, format %s"), format.GetId().c_str() );
-*/
+ wxLogTrace( TRACE_CLIPBOARD,
+ wxT("selection received for targets, format %s"),
+ format.GetId().c_str() );
if (format == clipboard->m_targetRequested)
{
/* the clipboard is no longer in our hands. we can the delete clipboard data. */
if (wxTheClipboard->m_data)
{
- wxLogDebug( wxT("wxClipboard will get cleared" ) );
+ wxLogTrace(TRACE_CLIPBOARD, wxT("wxClipboard will get cleared" ));
delete wxTheClipboard->m_data;
wxTheClipboard->m_data = (wxDataObject*) NULL;
for (size_t i = 0; i < m_data->GetFormatCount(); i++)
{
- wxLogDebug( wxT("wxClipboard now supports atom %s"), array[i].GetId().c_str() );
+ wxLogTrace( TRACE_CLIPBOARD,
+ wxT("wxClipboard now supports atom %s"),
+ array[i].GetId().c_str() );
gtk_selection_add_target( GTK_WIDGET(m_clipboardWidget),
clipboard,
/* store requested format to be asked for by callbacks */
m_targetRequested = format;
-/*
- wxLogDebug( wxT("wxClipboard:IsSupported: requested format: %s"), format.GetId().c_str() );
-*/
+#if 0
+ wxLogTrace( TRACE_CLIPBOARD,
+ wxT("wxClipboard:IsSupported: requested format: %s"),
+ format.GetId().c_str() );
+#endif
wxCHECK_MSG( m_targetRequested, FALSE, wxT("invalid clipboard format") );
{
wxDataFormat format( array[i] );
- wxLogDebug( wxT("wxClipboard::GetData: requested format: %s"), format.GetId().c_str() );
+ wxLogTrace( TRACE_CLIPBOARD,
+ wxT("wxClipboard::GetData: requested format: %s"),
+ format.GetId().c_str() );
/* is data supported by clipboard ? */
m_waiting = TRUE;
- wxLogDebug( wxT("wxClipboard::GetData: format found, start convert") );
+ wxLogTrace( TRACE_CLIPBOARD,
+ wxT("wxClipboard::GetData: format found, start convert") );
gtk_selection_convert( m_clipboardWidget,
m_usePrimary ? (GdkAtom)GDK_SELECTION_PRIMARY
return TRUE;
}
- wxLogDebug( wxT("wxClipboard::GetData: format not found") );
+ wxLogTrace( TRACE_CLIPBOARD,
+ wxT("wxClipboard::GetData: format not found") );
/* return failure */
delete[] array;