ui/wpf/UIwrapper/UIwrapper/toolkit.cpp

changeset 83
a38aec91bd66
parent 82
0cdb8089a29f
child 135
b9dc9cdfa23a
--- a/ui/wpf/UIwrapper/UIwrapper/toolkit.cpp	Tue Jan 27 09:59:32 2015 +0100
+++ b/ui/wpf/UIwrapper/UIwrapper/toolkit.cpp	Sat Jan 31 11:51:54 2015 +0100
@@ -23,22 +23,36 @@
 
 // EventWrapper
 
-EventWrapper::EventWrapper(UIcallback callback, void *eventdata) {
+ObjEventWrapper::ObjEventWrapper(UIcallback callback, void *eventdata) {
 	this->callback = callback;
-	this->userdata = eventdata;
-	action = gcnew Action<IntPtr>(this, &EventWrapper::Callback);
+	this->eventdata = eventdata;
+	action = gcnew Action<IntPtr>(this, &ObjEventWrapper::Callback);
 }
 
-Action<IntPtr>^ EventWrapper::GetAction() {
+Action<IntPtr>^ ObjEventWrapper::GetAction() {
 	return action;
 }
 
-void EventWrapper::Callback(IntPtr uiobj) {
+void ObjEventWrapper::Callback(IntPtr uiobj) {
 	if (callback) {
-		callback(uiobj.ToPointer(), userdata);
+		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);
@@ -49,7 +63,6 @@
 	thread->Join();
 }
 
-UI_EXPORT void __stdcall UIshow(void *wptr) {
-	UI::MainWindow ^window = (UI::MainWindow^)PtrToObject(wptr);
-	window->ShowWindow();
+UI_EXPORT void __stdcall UIshow(gcroot<UI::MainWindow^> *window) {
+	(*window)->ShowWindow();
 }

mercurial