wxcore-0.13.2: src/cpp/eljdnd.cpp
#include "wrapper.h"
wxDragResult ELJTextDropTarget::OnData(wxCoord x, wxCoord y, wxDragResult def)
{
if (on_data_func)
return (wxDragResult) on_data_func(obj, (long)x, (long)y, (int) def);
else
return wxTextDropTarget::OnData(x, y, def);
}
bool ELJTextDropTarget::OnDrop(wxCoord x, wxCoord y)
{
if (on_drop_func)
return (bool) on_drop_func(obj, (long)x, (long)y);
else
return wxTextDropTarget::OnDrop(x, y);
}
wxDragResult ELJTextDropTarget::OnEnter(wxCoord x, wxCoord y, wxDragResult def)
{
if (on_enter_func)
return (wxDragResult) on_enter_func(obj, (long)x, (long)y, (int) def);
else
return wxTextDropTarget::OnEnter(x, y, def);
}
wxDragResult ELJTextDropTarget::OnDragOver(wxCoord x, wxCoord y, wxDragResult def)
{
if (on_drag_func)
return (wxDragResult) on_drag_func(obj, (long)x, (long)y, (int) def);
else
return wxTextDropTarget::OnDragOver(x, y, def);
}
void ELJTextDropTarget::OnLeave()
{
if (on_leave_func)
on_leave_func(obj);
else
wxTextDropTarget::OnLeave();
}
wxDragResult ELJFileDropTarget::OnData(wxCoord x, wxCoord y, wxDragResult def)
{
if (on_data_func)
return (wxDragResult) on_data_func(obj, (long)x, (long)y, (int) def);
else
return wxFileDropTarget::OnData(x, y, def);
}
bool ELJFileDropTarget::OnDrop(wxCoord x, wxCoord y)
{
if (on_drop_func)
return (bool) on_drop_func(obj, (long)x, (long)y);
else
return wxFileDropTarget::OnDrop(x, y);
}
wxDragResult ELJFileDropTarget::OnEnter(wxCoord x, wxCoord y, wxDragResult def)
{
if (on_enter_func)
return (wxDragResult) on_enter_func(obj, (long)x, (long)y, (int) def);
else
return wxFileDropTarget::OnEnter(x, y, def);
}
wxDragResult ELJFileDropTarget::OnDragOver(wxCoord x, wxCoord y, wxDragResult def)
{
if (on_drag_func)
return (wxDragResult) on_drag_func(obj, (long)x, (long)y, (int) def);
else
return wxFileDropTarget::OnDragOver(x, y, def);
}
void ELJFileDropTarget::OnLeave()
{
if (on_leave_func)
on_leave_func(obj);
else
wxFileDropTarget::OnLeave();
}
wxDragResult ELJDropTarget::OnData(wxCoord x, wxCoord y, wxDragResult def)
{
if (on_data_func)
return (wxDragResult) on_data_func(obj, (long)x, (long)y, (int) def);
else
{
GetData();
return def;
}
}
bool ELJDropTarget::OnDrop(wxCoord x, wxCoord y)
{
if (on_drop_func)
return (bool) on_drop_func(obj, (long)x, (long)y);
else
return wxDropTarget::OnDrop(x, y);
}
wxDragResult ELJDropTarget::OnEnter(wxCoord x, wxCoord y, wxDragResult def)
{
if (on_enter_func)
return (wxDragResult) on_enter_func(obj, (long)x, (long)y, (int) def);
else
return wxDropTarget::OnEnter(x, y, def);
}
wxDragResult ELJDropTarget::OnDragOver(wxCoord x, wxCoord y, wxDragResult def)
{
if (on_drag_func)
return (wxDragResult) on_drag_func(obj, (long)x, (long)y, (int) def);
else
return wxDropTarget::OnDragOver(x, y, def);
}
void ELJDropTarget::OnLeave()
{
if (on_leave_func)
on_leave_func(obj);
else
wxDropTarget::OnLeave();
}
bool ELJFileDropTarget::OnDropFiles(wxCoord x, wxCoord y, const wxArrayString& filenames)
{
bool result = false;
const wxChar** arr = (const wxChar**)malloc (sizeof(wxChar*)* filenames.GetCount());
for (unsigned int i = 0; i < filenames.GetCount(); i++)
arr[i] = filenames.Item(i).c_str();
result = func(obj, (long)x, (long)y, (void*)arr, (int)filenames.GetCount()) != 0;
free(arr);
return result;
}
bool ELJTextDropTarget::OnDropText(wxCoord x, wxCoord y, const wxString& text)
{
return func(obj, (long)x, (long)y, (void*)text.wchar_str()) != 0;
}
extern "C"
{
EWXWEXPORT(void*,ELJFileDropTarget_Create)(void* self,void* _func)
{
return (void*)new ELJFileDropTarget(self, (FileDropFunc)_func);
}
EWXWEXPORT(void,ELJFileDropTarget_Delete)(ELJFileDropTarget* self)
{
delete self;
}
EWXWEXPORT(void*,ELJTextDropTarget_Create)(void* self,void* _func)
{
return (void*)new ELJTextDropTarget(self, (TextDropFunc)_func);
}
EWXWEXPORT(void,ELJTextDropTarget_Delete)(ELJTextDropTarget* self)
{
delete self;
}
EWXWEXPORT(void*,TextDataObject_Create)(wxString* _txt)
{
return (void*)new wxTextDataObject(*_txt);
}
EWXWEXPORT(void,TextDataObject_Delete)(void* self)
{
delete (wxTextDataObject*)self;
}
EWXWEXPORT(size_t,TextDataObject_GetTextLength)(void* self)
{
return ((wxTextDataObject*)self)->GetTextLength();
}
EWXWEXPORT(wxString*,TextDataObject_GetText)(void* self)
{
wxString *result = new wxString();
*result = ((wxTextDataObject*)self)->GetText();
return result;
}
EWXWEXPORT(void,TextDataObject_SetText)(void* _obj,wxString* strText)
{
((wxTextDataObject*)_obj)->SetText(*strText);
}
EWXWEXPORT(void*,FileDataObject_Create)(int _cnt,void* _lst)
{
wxFileDataObject* result = new wxFileDataObject();
if (_cnt)
{
for (int i = 0; i < _cnt; i++)
result->AddFile(((wxChar**)_lst)[i]);
}
return (void*)result;
}
EWXWEXPORT(void,FileDataObject_Delete)(void* self)
{
delete (wxFileDataObject*)self;
}
EWXWEXPORT(void,FileDataObject_AddFile)(void* self,wxString* _fle)
{
((wxFileDataObject*)self)->AddFile(*_fle);
}
EWXWEXPORT(int,FileDataObject_GetFilenames)(void* self,void* _lst)
{
wxArrayString arr = ((wxFileDataObject*)self)->GetFilenames();
if (_lst)
{
for (unsigned int i = 0; i < arr.GetCount(); i++)
{
#if wxVERSION_NUMBER >= 2900
((const wxChar**)_lst)[i] = wxStrdup ((arr.Item(i).wchar_str()));
#else
((const wxChar**)_lst)[i] = wxStrdup ((arr.Item(i).c_str()));
#endif
}
}
return arr.GetCount();
}
EWXWEXPORT(void*,BitmapDataObject_Create)(wxBitmap* _bmp)
{
return (void*)new wxBitmapDataObject(*_bmp);
}
EWXWEXPORT(void*,BitmapDataObject_CreateEmpty)()
{
return (void*)new wxBitmapDataObject();
}
EWXWEXPORT(void,BitmapDataObject_Delete)(void* self)
{
delete (wxBitmapDataObject*)self;
}
EWXWEXPORT(void,BitmapDataObject_SetBitmap)(void* self,wxBitmap* _bmp)
{
((wxBitmapDataObject*)self)->SetBitmap (*_bmp);
}
EWXWEXPORT(void,BitmapDataObject_GetBitmap)(void* self,wxBitmap* _bmp)
{
*_bmp = ((wxBitmapDataObject*)self)->GetBitmap ();
}
EWXWEXPORT(void*,DropSource_Create)(wxDataObject* data,wxWindow* win,void* copy,void* move,void* none)
{
#if (wxCHECK_VERSION(2,5,0) && defined(__WXMAC__)) || defined(__WIN32__)
return (void*)new wxDropSource(*data, win,*((wxCursor*)copy),*((wxCursor*)move),*((wxCursor*)none));
#else
return (void*)new wxDropSource(*data, win,*((wxIcon*)copy),*((wxIcon*)move),*((wxIcon*)none));
#endif
}
EWXWEXPORT(void,DropSource_Delete)(void* self)
{
delete (wxDropSource*)self;
}
EWXWEXPORT(int,DropSource_DoDragDrop)(void* self,bool _move)
{
return (int)((wxDropSource*)self)->DoDragDrop(_move);
}
EWXWEXPORT(void*,ELJDropTarget_Create)(void* self)
{
return (void*)new ELJDropTarget(self);
}
EWXWEXPORT(void,ELJDropTarget_Delete)(void* self)
{
delete (ELJDropTarget*)self;
}
EWXWEXPORT(void,ELJFileDropTarget_SetOnData)(void* self,void* _func)
{
((ELJFileDropTarget*)self)->SetOnData((DragThreeFunc)_func);
}
EWXWEXPORT(void,ELJFileDropTarget_SetOnDrop)(void* self,void* _func)
{
((ELJFileDropTarget*)self)->SetOnDrop((DragTwoFunc)_func);
}
EWXWEXPORT(void,ELJFileDropTarget_SetOnEnter)(void* self,void* _func)
{
((ELJFileDropTarget*)self)->SetOnEnter((DragThreeFunc)_func);
}
EWXWEXPORT(void,ELJFileDropTarget_SetOnDragOver)(void* self,void* _func)
{
((ELJFileDropTarget*)self)->SetOnDragOver((DragThreeFunc)_func);
}
EWXWEXPORT(void,ELJFileDropTarget_SetOnLeave)(void* self,void* _func)
{
((ELJFileDropTarget*)self)->SetOnLeave((DragZeroFunc)_func);
}
EWXWEXPORT(void,ELJTextDropTarget_SetOnData)(void* self,void* _func)
{
((ELJTextDropTarget*)self)->SetOnData((DragThreeFunc)_func);
}
EWXWEXPORT(void,ELJTextDropTarget_SetOnDrop)(void* self,void* _func)
{
((ELJTextDropTarget*)self)->SetOnDrop((DragTwoFunc)_func);
}
EWXWEXPORT(void,ELJTextDropTarget_SetOnEnter)(void* self,void* _func)
{
((ELJTextDropTarget*)self)->SetOnEnter((DragThreeFunc)_func);
}
EWXWEXPORT(void,ELJTextDropTarget_SetOnDragOver)(void* self,void* _func)
{
((ELJTextDropTarget*)self)->SetOnDragOver((DragThreeFunc)_func);
}
EWXWEXPORT(void,ELJTextDropTarget_SetOnLeave)(void* self,void* _func)
{
((ELJTextDropTarget*)self)->SetOnLeave((DragZeroFunc)_func);
}
EWXWEXPORT(void,ELJDropTarget_SetOnData)(void* self,void* _func)
{
((ELJDropTarget*)self)->SetOnData((DragThreeFunc)_func);
}
EWXWEXPORT(void,ELJDropTarget_SetOnDrop)(void* self,void* _func)
{
((ELJDropTarget*)self)->SetOnDrop((DragTwoFunc)_func);
}
EWXWEXPORT(void,ELJDropTarget_SetOnEnter)(void* self,void* _func)
{
((ELJDropTarget*)self)->SetOnEnter((DragThreeFunc)_func);
}
EWXWEXPORT(void,ELJDropTarget_SetOnDragOver)(void* self,void* _func)
{
((ELJDropTarget*)self)->SetOnDragOver((DragThreeFunc)_func);
}
EWXWEXPORT(void,ELJDropTarget_SetOnLeave)(void* self,void* _func)
{
((ELJDropTarget*)self)->SetOnLeave((DragZeroFunc)_func);
}
EWXWEXPORT(void,wxDropTarget_GetData)(void* self)
{
((wxDropTarget*)self)->GetData();
}
EWXWEXPORT(void,wxDropTarget_SetDataObject)(void* self,void* _dat)
{
((wxDropTarget*)self)->SetDataObject((wxDataObject*)_dat);
}
EWXWEXPORT(void*,ELJDragDataObject_Create)(void* self,wxString* _fmt,void* _func1,void* _func2,void* _func3)
{
#if (wxVERSION_NUMBER < 2900)
return (void*)new ELJDragDataObject(self, const_cast<wxChar*>(_fmt->c_str()), (DataGetDataSize)_func1, (DataGetDataHere)_func2, (DataSetData)_func3);
#else
return (void*)new ELJDragDataObject(self, *(_fmt), (DataGetDataSize)_func1, (DataGetDataHere)_func2, (DataSetData)_func3);
#endif
}
EWXWEXPORT(void,ELJDragDataObject_Delete)(void* self)
{
delete (ELJDragDataObject*)self;
}
EWXWEXPORT(void*,wxDataObjectComposite_Create)()
{
return (void*)new wxDataObjectComposite();
}
EWXWEXPORT(void,wxDataObjectComposite_Delete)(void* self)
{
delete (wxDataObjectComposite*)self;
}
EWXWEXPORT(void,wxDataObjectComposite_Add)(void* self,void* _dat,bool _preferred)
{
((wxDataObjectComposite*)self)->Add((wxDataObjectSimple*)_dat, _preferred);
}
}