Sat, 31 Jan 2015 11:51:54 +0100
added box layout and button (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 ObjEventWrapper::ObjEventWrapper(UIcallback callback, void *eventdata) { this->callback = callback; this->eventdata = eventdata; action = gcnew Action<IntPtr>(this, &ObjEventWrapper::Callback); } Action<IntPtr>^ ObjEventWrapper::GetAction() { return action; } void ObjEventWrapper::Callback(IntPtr uiobj) { if (callback) { callback(uiobj.ToPointer(), eventdata); } } EventWrapper::EventWrapper(UIcallback callback, void *eventdata) { this->callback = callback; this->eventdata = eventdata; } void EventWrapper::Callback(Object ^sender, RoutedEventArgs ^e) { if (callback) { callback(NULL, eventdata); } } 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(gcroot<UI::MainWindow^> *window) { (*window)->ShowWindow(); }