for (unsigned int i=0; i<selection_data->length/sizeof(GdkAtom); i++)
{
+ char *name = gdk_atom_name (atoms[i]);
+ if (name) printf( "Format available: %s.\n", name );
+
if (atoms[i] == clipboard->m_targetRequested)
{
clipboard->m_formatSupported = TRUE;
/* Add handlers if someone requests data */
+
+#if (GTK_MINOR_VERSION > 0)
+
+ gtk_selection_add_target( GTK_WIDGET(m_clipboardWidget),
+ GDK_SELECTION_PRIMARY,
+ format,
+ 0 ); /* what is info ? */
+
+ gtk_selection_add_target( GTK_WIDGET(m_clipboardWidget),
+ g_clipboardAtom,
+ format,
+ 0 ); /* what is info ? */
+
+ gtk_signal_connect( GTK_OBJECT(m_clipboardWidget),
+ "selection_get",
+ GTK_SIGNAL_FUNC(selection_handler),
+ (gpointer) NULL );
+
+#else
+
gtk_selection_add_handler( m_clipboardWidget,
g_clipboardAtom,
format,
format,
selection_handler,
(gpointer) NULL );
+#endif
/* Tell the world we offer clipboard data */
m_open = FALSE;
}
-bool wxClipboard::IsSupported( wxDataObject &data )
+bool wxClipboard::IsSupported( wxDataFormat format )
{
wxCHECK_MSG( m_open, FALSE, "clipboard not open" );
/* store requested format to be asked for by callbacks */
- m_targetRequested = data.GetFormat().GetAtom();
+ m_targetRequested = format.GetAtom();
wxCHECK_MSG( m_targetRequested, FALSE, "invalid clipboard format" );
return TRUE;
}
-bool wxClipboard::GetData( wxDataObject &data )
+bool wxClipboard::GetData( wxDataObject *data )
{
wxCHECK_MSG( m_open, FALSE, "clipboard not open" );
/* is data supported by clipboard ? */
- if (!IsSupported( data )) return FALSE;
+ if (!IsSupported( data->GetFormat() )) return FALSE;
/* store pointer to data object to be filled up by callbacks */
- m_receivedData = &data;
+ m_receivedData = data;
/* store requested format to be asked for by callbacks */
- m_targetRequested = data.GetFormat().GetAtom();
+ m_targetRequested = data->GetFormat().GetAtom();
wxCHECK_MSG( m_targetRequested, FALSE, "invalid clipboard format" );