diff -r e624b6fa4c78 -r 04c81be1c5a0 ui/wpf/UIwrapper/UIwrapper/controls.cpp --- a/ui/wpf/UIwrapper/UIwrapper/controls.cpp Sat Feb 14 10:30:45 2015 +0100 +++ b/ui/wpf/UIwrapper/UIwrapper/controls.cpp Sat Feb 14 13:26:00 2015 +0100 @@ -15,4 +15,55 @@ *button = UI::Controls::Button(*container, gcnew String(label), handler); return button; -} \ No newline at end of file +} + + +UI_EXPORT void* __stdcall UItextarea(gcroot *container, char *text) { + String ^str = nullptr; + if (text) { + str = gcnew String(text); + } + + gcroot *textarea = new gcroot(); + *textarea = UI::TextArea::CreateTextArea(*container, str); + + return textarea; +} + +UI_EXPORT void __stdcall UItextarea_set(gcroot *textarea, char *str) { + (*textarea)->SetText(gcnew String(str)); +} + +UI_EXPORT char* __stdcall UItextarea_get(gcroot *textarea) { + String ^str = (*textarea)->GetText(); + return (char*)(void*)Marshal::StringToHGlobalAnsi(str); +} + +UI_EXPORT char* __stdcall UItextarea_getsubstr(gcroot *textarea, int begin, int end) { + String ^str = (*textarea)->GetSubString(begin, end); + return (char*)(void*)Marshal::StringToHGlobalAnsi(str); +} + +UI_EXPORT void __stdcall UItextarea_insert(gcroot *textarea, int position, char *str) { + // TODO +} + +UI_EXPORT int __stdcall UItextarea_position(gcroot *textarea) { + return (*textarea)->Position(); +} + +UI_EXPORT void __stdcall UItextarea_selection(gcroot *textarea, int *begin, int *end) { + // TODO +} + +UI_EXPORT int __stdcall UItextarea_length(gcroot *textarea) { + return (*textarea)->Length(); +} + +UI_EXPORT void __stdcall UItextarea_remove(gcroot *textarea, int begin, int end) { + // TODO +} + +UI_EXPORT void __stdcall UIfreestr(char *str) { + Marshal::FreeHGlobal((IntPtr)(void*)str); +}