packages feed

wxcore-0.10.1: wxc/src/ewxw/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.c_str()) != 0;
}

extern "C"
{

EWXWEXPORT(void*, ELJFileDropTarget_Create)(void* _obj, void* _func)
{
	return (void*) new ELJFileDropTarget(_obj, (FileDropFunc)_func);
}

EWXWEXPORT(void, ELJFileDropTarget_Delete)(void* _obj)
{
	delete (ELJFileDropTarget*)_obj;
}

EWXWEXPORT(void*, ELJTextDropTarget_Create)(void* _obj, void* _func)
{
	return (void*) new ELJTextDropTarget(_obj, (TextDropFunc)_func);
}

EWXWEXPORT(void, ELJTextDropTarget_Delete)(void* _obj)
{
	delete (ELJTextDropTarget*)_obj;
}

EWXWEXPORT(void*, TextDataObject_Create)(void* _txt)
{
	return (void*) new wxTextDataObject((wxChar*)_txt);
}

EWXWEXPORT(void, TextDataObject_Delete)(void* _obj)
{
	delete (wxTextDataObject*)_obj;
}

EWXWEXPORT(size_t, TextDataObject_GetTextLength)(void* _obj)
{
	return ((wxTextDataObject*)_obj)->GetTextLength();
}

EWXWEXPORT(int, TextDataObject_GetText)(void* _obj, void* _buf)
{
	wxString result =((wxTextDataObject*)_obj)->GetText();
	return copyStrToBuf(_buf, result);
}

EWXWEXPORT(void, TextDataObject_SetText)(void* _obj, const 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* _obj)
{
	delete (wxFileDataObject*)_obj;
}

EWXWEXPORT(void, FileDataObject_AddFile)(void* _obj, void* _fle)
{
	((wxFileDataObject*)_obj)->AddFile((wxChar*)_fle);
}

EWXWEXPORT(int, FileDataObject_GetFilenames)(void* _obj, void* _lst)
{
	wxArrayString arr = ((wxFileDataObject*)_obj)->GetFilenames();
	if (_lst)
	{
		for (unsigned int i = 0; i < arr.GetCount(); i++)
			((const wxChar**)_lst)[i] = wxStrdup (arr.Item(i).c_str());
	}
	return arr.GetCount();
}


EWXWEXPORT(void*, BitmapDataObject_Create)(void* _bmp)
{
	return (void*) new wxBitmapDataObject(*((wxBitmap*)_bmp));
}

EWXWEXPORT(void*, BitmapDataObject_CreateEmpty)()
{
	return (void*) new wxBitmapDataObject();
}

EWXWEXPORT(void, BitmapDataObject_Delete)(void* _obj)
{
	delete (wxBitmapDataObject*)_obj;
}

EWXWEXPORT(void, BitmapDataObject_SetBitmap)(void* _obj, void* _bmp)
{
	((wxBitmapDataObject*)_obj)->SetBitmap (*((wxBitmap*)_bmp));
}

EWXWEXPORT(void, BitmapDataObject_GetBitmap)(void* _obj, void* _bmp)
{
	*((wxBitmap*)_bmp) = ((wxBitmapDataObject*)_obj)->GetBitmap ();
}


EWXWEXPORT(void*, DropSource_Create)(wxDataObject* data, void* win, void* copy, void* move, void* none)
{
#if (wxCHECK_VERSION(2,5,0) && defined(__WXMAC__)) || defined(__WIN32__)
	return (void*) new wxDropSource(*data, (wxWindow*)win, *((wxCursor*)copy), *((wxCursor*)move), *((wxCursor*)none));
#else
	return (void*) new wxDropSource(*data, (wxWindow*)win, *((wxIcon*)copy), *((wxIcon*)move), *((wxIcon*)none));
#endif
}

EWXWEXPORT(void, DropSource_Delete)(void* _obj)
{
	delete (wxDropSource*)_obj;
}

EWXWEXPORT(int, DropSource_DoDragDrop)(void* _obj, int _move)
{
	return (int)((wxDropSource*)_obj)->DoDragDrop(_move != 0);
}

EWXWEXPORT(void*, ELJDropTarget_Create)(void* _obj)
{
	return (void*) new ELJDropTarget(_obj);
}

EWXWEXPORT(void, ELJDropTarget_Delete)(void* _obj)
{
	delete (ELJDropTarget*)_obj;
}

EWXWEXPORT(void, ELJFileDropTarget_SetOnData)(void* _obj, void* _func)
{
	((ELJFileDropTarget*)_obj)->SetOnData((DragThreeFunc)_func);
}

EWXWEXPORT(void, ELJFileDropTarget_SetOnDrop)(void* _obj, void* _func)
{
	((ELJFileDropTarget*)_obj)->SetOnDrop((DragTwoFunc)_func);
}

EWXWEXPORT(void, ELJFileDropTarget_SetOnEnter)(void* _obj, void* _func)
{
	((ELJFileDropTarget*)_obj)->SetOnEnter((DragThreeFunc)_func);
}

EWXWEXPORT(void, ELJFileDropTarget_SetOnDragOver)(void* _obj, void* _func)
{
	((ELJFileDropTarget*)_obj)->SetOnDragOver((DragThreeFunc)_func);
}

EWXWEXPORT(void, ELJFileDropTarget_SetOnLeave)(void* _obj, void* _func)
{
	((ELJFileDropTarget*)_obj)->SetOnLeave((DragZeroFunc)_func);
}

EWXWEXPORT(void, ELJTextDropTarget_SetOnData)(void* _obj, void* _func)
{
	((ELJTextDropTarget*)_obj)->SetOnData((DragThreeFunc)_func);
}

EWXWEXPORT(void, ELJTextDropTarget_SetOnDrop)(void* _obj, void* _func)
{
	((ELJTextDropTarget*)_obj)->SetOnDrop((DragTwoFunc)_func);
}

EWXWEXPORT(void, ELJTextDropTarget_SetOnEnter)(void* _obj, void* _func)
{
	((ELJTextDropTarget*)_obj)->SetOnEnter((DragThreeFunc)_func);
}

EWXWEXPORT(void, ELJTextDropTarget_SetOnDragOver)(void* _obj, void* _func)
{
	((ELJTextDropTarget*)_obj)->SetOnDragOver((DragThreeFunc)_func);
}

EWXWEXPORT(void, ELJTextDropTarget_SetOnLeave)(void* _obj, void* _func)
{
	((ELJTextDropTarget*)_obj)->SetOnLeave((DragZeroFunc)_func);
}

EWXWEXPORT(void, ELJDropTarget_SetOnData)(void* _obj, void* _func)
{
	((ELJDropTarget*)_obj)->SetOnData((DragThreeFunc)_func);
}

EWXWEXPORT(void, ELJDropTarget_SetOnDrop)(void* _obj, void* _func)
{
	((ELJDropTarget*)_obj)->SetOnDrop((DragTwoFunc)_func);
}

EWXWEXPORT(void, ELJDropTarget_SetOnEnter)(void* _obj, void* _func)
{
	((ELJDropTarget*)_obj)->SetOnEnter((DragThreeFunc)_func);
}

EWXWEXPORT(void, ELJDropTarget_SetOnDragOver)(void* _obj, void* _func)
{
	((ELJDropTarget*)_obj)->SetOnDragOver((DragThreeFunc)_func);
}

EWXWEXPORT(void, ELJDropTarget_SetOnLeave)(void* _obj, void* _func)
{
	((ELJDropTarget*)_obj)->SetOnLeave((DragZeroFunc)_func);
}

EWXWEXPORT(void, wxDropTarget_GetData)(void* _obj)
{
	((wxDropTarget*)_obj)->GetData();
}

EWXWEXPORT(void, wxDropTarget_SetDataObject)(void* _obj, void* _dat)
{
	((wxDropTarget*)_obj)->SetDataObject((wxDataObject*)_dat);
}

EWXWEXPORT(void*, ELJDragDataObject_Create)(void* _obj, void* _fmt, void* _func1, void* _func2, void* _func3)
{
	return (void*) new ELJDragDataObject(_obj, (wxChar*)_fmt, (DataGetDataSize)_func1, (DataGetDataHere)_func2, (DataSetData)_func3);
}

EWXWEXPORT(void, ELJDragDataObject_Delete)(void* _obj)
{
	delete (ELJDragDataObject*)_obj;
}

EWXWEXPORT(void*, wxDataObjectComposite_Create)()
{
	return (void*) new wxDataObjectComposite();
}

EWXWEXPORT(void, wxDataObjectComposite_Delete)(void* _obj)
{
	delete (wxDataObjectComposite*)_obj;
}

EWXWEXPORT(void, wxDataObjectComposite_Add)(void* _obj, void* _dat, int _preferred)
{
	((wxDataObjectComposite*)_obj)->Add((wxDataObjectSimple*)_dat, _preferred != 0);
}

}