Tue, 27 Jan 2015 09:59:32 +0100
added event handler for menus (WPF)
// Dies ist die Haupt-DLL. #include "stdafx.h" #include <stdio.h> #include "toolkit.h" #using "UIcore.dll" void* ObjectToPtr(Object ^obj) { GCHandle handle = GCHandle::Alloc(obj); IntPtr pointer = GCHandle::ToIntPtr(handle); return pointer.ToPointer(); } Object^ PtrToObject(void *ptr) { GCHandle h = GCHandle::FromIntPtr(IntPtr(ptr)); Object^ object = h.Target; h.Free(); return object; } // EventWrapper EventWrapper::EventWrapper(UIcallback callback, void *eventdata) { this->callback = callback; this->userdata = eventdata; action = gcnew Action<IntPtr>(this, &EventWrapper::Callback); } Action<IntPtr>^ EventWrapper::GetAction() { return action; } void EventWrapper::Callback(IntPtr uiobj) { if (callback) { callback(uiobj.ToPointer(), userdata); } } UI_EXPORT void __stdcall UIinit(char *appname) { UI::Application ^app = UI::Application::GetInstance(); app->Name = gcnew String(appname); } UI_EXPORT void __stdcall UImain() { Thread ^thread = UI::Application::GetInstance()->Start(); thread->Join(); } UI_EXPORT void __stdcall UIshow(void *wptr) { UI::MainWindow ^window = (UI::MainWindow^)PtrToObject(wptr); window->ShowWindow(); }