wxCustomDataObject (uninitialized m_data) which this allowed to discover
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4330
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
exp->content.object->Write(string);
delete exp;
}
exp->content.object->Write(string);
delete exp;
}
-#if 0 // FIXME: DnD/Clipboard API has changed, what should this be?
- wxlo->SetData(string.c_str(), string.Length()+1);
-#endif
+
+ wxlo->SetLayoutData(string);
class wxLayoutDataObject : public wxCustomDataObject
{
public:
class wxLayoutDataObject : public wxCustomDataObject
{
public:
- wxLayoutDataObject(void)
-#if 0 // TODO: No longer exists, what should we do instead?
- SetId("application/wxlayoutlist");
-#endif
- //m_format.SetAtom((GdkAtom) 222222);
+ SetFormat("application/wxlayoutlist");
+
+ // type safe wrappers
+ void SetLayoutData(const wxString& text)
+ { SetData(text.length() + 1, text.c_str()); }
+ const char *GetLayoutData() const { return (const char *)GetData(); }
};
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
};
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
// Read some text
if (wxTheClipboard->Open())
{
// Read some text
if (wxTheClipboard->Open())
{
if(primary)
wxTheClipboard->UsePrimarySelection();
if(primary)
wxTheClipboard->UsePrimarySelection();
-#endif
-#if wxUSE_PRIVATE_CLIPBOARD_FORMAT
wxLayoutDataObject wxldo;
if (wxTheClipboard->IsSupported( wxldo.GetFormat() ))
{
wxLayoutDataObject wxldo;
if (wxTheClipboard->IsSupported( wxldo.GetFormat() ))
{
- wxTheClipboard->GetData(&wxldo);
- {
- }
- //FIXME: missing functionality m_llist->Insert(wxldo.GetList());
+ wxTheClipboard->GetData(wxldo);
+
+ // now we can access the data we had put into wxLayoutDataObject in
+ // wxLayoutList::GetSelection by calling its GetLayoutData() - the
+ // trouble is that I don't know what to do with it! (VZ)
{
wxTextDataObject data;
if (wxTheClipboard->IsSupported( data.GetFormat() ))
{
wxTextDataObject data;
if (wxTheClipboard->IsSupported( data.GetFormat() ))
m_llist->EndSelection();
}
m_llist->EndSelection();
}
- wxLayoutDataObject wldo;
- wxLayoutList *llist = m_llist->GetSelection(&wldo, invalidate);
+ wxLayoutDataObject *wldo = new wxLayoutDataObject;
+ wxLayoutList *llist = m_llist->GetSelection(wldo, invalidate);
if(! llist)
return FALSE;
// Export selection as text:
if(! llist)
return FALSE;
// Export selection as text:
if (wxTheClipboard->Open())
{
if (wxTheClipboard->Open())
{
- wxTextDataObject *data = new wxTextDataObject( text );
- bool rc = wxTheClipboard->SetData( data );
-#if wxUSE_PRIVATE_CLIPBOARD_FORMAT
- rc |= wxTheClipboard->AddData( &wldo );
-#endif
+ wxDataObjectComposite *dobj = new wxDataObjectComposite;
+ dobj->Add(new wxTextDataObject(text));
+ dobj->Add(wldo);
+
+ bool rc = wxTheClipboard->SetData(dobj);
+
wxTheClipboard->Close();
return rc;
}
wxTheClipboard->Close();
return rc;
}
wxCustomDataObject::wxCustomDataObject(const wxDataFormat& format)
: wxDataObjectSimple(format)
{
wxCustomDataObject::wxCustomDataObject(const wxDataFormat& format)
: wxDataObjectSimple(format)
{
wxCustomDataObject::~wxCustomDataObject()
{
Free();
wxCustomDataObject::~wxCustomDataObject()
{
Free();