Added wxCountingStream for measuring the size of streamed data

Added wxBitmapObject for putting it on the clipboard


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3439 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
1999-08-22 14:10:50 +00:00
parent ac2def68ed
commit e2acb9ae1c
12 changed files with 694 additions and 327 deletions

View File

@@ -153,7 +153,7 @@ selection_received( GtkWidget *WXUNUSED(widget),
clipboard->m_waiting = FALSE;
return;
}
/* make sure we got the data in the correct form (selection type).
if so, copy data to target object */
@@ -178,12 +178,16 @@ selection_received( GtkWidget *WXUNUSED(widget),
case wxDF_BITMAP:
{
if (selection_data->type != GDK_SELECTION_TYPE_BITMAP)
if (selection_data->type != GDK_SELECTION_TYPE_STRING)
{
clipboard->m_waiting = FALSE;
return;
}
wxBitmapDataObject *bitmap_object = (wxBitmapDataObject *) data_object;
bitmap_object->SetPngData( (const char*) selection_data->data, (size_t) selection_data->length );
break;
}
@@ -268,7 +272,7 @@ selection_handler( GtkWidget *WXUNUSED(widget), GtkSelectionData *selection_data
while (node)
{
wxDataObject *data_object = (wxDataObject *)node->Data();
if (data_object->GetFormat().GetAtom() != selection_data->target)
{
node = node->Next();
@@ -303,10 +307,17 @@ selection_handler( GtkWidget *WXUNUSED(widget), GtkSelectionData *selection_data
case wxDF_BITMAP:
{
// wxBitmapDataObject *private_object = (wxBitmapDataObject*) data_object;
wxBitmapDataObject *bitmap_object = (wxBitmapDataObject*) data_object;
// how do we do that ?
if (bitmap_object->GetSize() == 0) return;
gtk_selection_data_set(
selection_data,
GDK_SELECTION_TYPE_STRING,
8*sizeof(gchar),
(unsigned char*) bitmap_object->GetData(),
(int) bitmap_object->GetSize() );
break;
}