#include "c4d_listview.h" #include "c4d_general.h" #include "c4d_basecontainer.h" #include "c4d_gui.h" #include "c4d_baseselect.h" GeListView::GeListView(void) { cd = nullptr; lv = (_GeListView*)C4DOS.Cu->GeListView_Alloc(); } GeListView::~GeListView(void) { C4DOS.Cu->GeListView_Free(lv); lv = nullptr; cd = nullptr; } void GeListView::LvCallBack(Int32& res_type, void*& result, void* secret, Int32 cmd, Int32 line, Int32 col, void* data1) { } Int GeListView::LvCallBackLong(void* secret, Int32 cmd, Int32 line, Int32 col, void* data1) { Int32 res_type = 0; void* result = nullptr; LvCallBack(res_type, result, secret, cmd, line, col, data1); if (res_type != LV_RES_INT) return 0; return (Int)result; } void GeListView::LvSuperCall(Int32& res_type, void*& result, void* secret, Int32 cmd, Int32 line, Int32 col) { C4DOS.Cu->GeListView_LvSuperCall(lv, res_type, result, secret, cmd, line, col); } void GeListView::Redraw(void) { C4DOS.Cu->GeListView_Redraw(lv); } void GeListView::DataChanged(void) { C4DOS.Cu->GeListView_DataChanged(lv); } Bool GeListView::ExtractMouseInfo(void* secret, MouseDownInfo& info, Int32 size) { return C4DOS.Cu->GeListView_ExtractMouseInfo(lv, secret, info, size); } void GeListView::ShowCell(Int32 line, Int32 col) { C4DOS.Cu->GeListView_ShowCell(lv, line, col); } Bool GeListView::ExtractDrawInfo(void* secret, DrawInfo& info, Int32 size) { return C4DOS.Cu->GeListView_ExtractDrawInfo(lv, secret, info, size); } Bool GeListView::SendParentMessage(const BaseContainer& msg) { return C4DOS.Cu->GeListView_SendParentMessage(lv, &msg); } Int32 GeListView::GetId(void) { return C4DOS.Cu->GeListView_GetId(lv); } static void ListViewCallBackFunc(Int32& res_type, void*& result, void* userdata, void* secret, Int32 cmd, Int32 line, Int32 col, void* data1) { GeListView* lv = (GeListView*)userdata; if (lv) lv->LvCallBack(res_type, result, secret, cmd, line, col, data1); } Bool GeListView::AttachListView(GeDialog* cd, Int32 id) { return C4DOS.Cu->GeListView_Attach(lv, cd->Get(), id, ListViewCallBackFunc, this); } SimpleListView::SimpleListView() { // okay ... because the parent class allocates already a gelistview C4DOS.Cu->GeListView_Free(lv); lv = (_GeListView*)C4DOS.Cu->SimpleListView_Alloc(); } SimpleListView::~SimpleListView() { } Bool SimpleListView::SetLayout(Int32 columns, const BaseContainer& data) { return C4DOS.Cu->SimpleListView_SetLayout((_SimpleListView*)lv, columns, data); } Bool SimpleListView::SetItem(Int32 id, const BaseContainer& data) { return C4DOS.Cu->SimpleListView_SetItem((_SimpleListView*)lv, id, data); } Bool SimpleListView::GetItem(Int32 id, BaseContainer* data) { return C4DOS.Cu->SimpleListView_GetItem((_SimpleListView*)lv, id, data); } Int32 SimpleListView::GetItemCount(void) { return C4DOS.Cu->SimpleListView_GetItemCount((_SimpleListView*)lv); } Bool SimpleListView::GetItemLine(Int32 num, Int32* id, BaseContainer* data) { return C4DOS.Cu->SimpleListView_GetItemLine((_SimpleListView*)lv, num, id, data); } Bool SimpleListView::RemoveItem(Int32 id) { return C4DOS.Cu->SimpleListView_RemoveItem((_SimpleListView*)lv, id); } void SimpleListView::LvCallBack(Int32& res_type, void*& result, void* secret, Int32 cmd, Int32 line, Int32 col, void* data1) { } Int32 SimpleListView::GetSelection(BaseSelect* selection) { return C4DOS.Cu->SimpleListView_GetSelection((_SimpleListView*)lv, selection); } Bool SimpleListView::SetSelection(BaseSelect* selection) { return C4DOS.Cu->SimpleListView_SetSelection((_SimpleListView*)lv, selection); } Bool SimpleListView::SetProperty(Int32 id, Int32 val) { return C4DOS.Cu->SimpleListView_SetProperty((_SimpleListView*)lv, id, val); } Int32 SimpleListView::GetProperty(Int32 id) { return C4DOS.Cu->SimpleListView_GetProperty((_SimpleListView*)lv, id); } void SimpleListView::ShowCell(Int32 line, Int32 col) { return C4DOS.Cu->SimpleListView_ShowCell((_SimpleListView*)lv, line, col); }