void comboSelector_SelectedIndexChanged(GuiGraphicsComposition* sender, GuiEventArgs& arguments) { comboSelector->SetEnabled(false); this->GetBoundsComposition()->SetAssociatedCursor(GetCurrentController()->ResourceService()->GetSystemCursor(INativeCursor::LargeWaiting)); GetApplication()->InvokeAsync(Curry<void(TextBoxColorizerWindow*)>([](TextBoxColorizerWindow* window) { Ptr<GuiTextBoxColorizerBase> colorizer; WString text; switch(window->comboSelector->GetSelectedIndex()) { case 0: text= L";This is a comment\r\n" L"[Section1]\r\n" L"Name=John Smith\r\n" L"ID=008\r\n" L"\r\n" L"[Section2]\r\n" L"Name=Kyon\r\n" L"ID=009\r\n" ; break; case 1: text= L"<books>\r\n" L"\t<!--Comment-->\r\n" L"\t<book name=\"C++Primer\">\r\n" L"\t\tContent\r\n" L"\t</book>\r\n" L"\t<![CDATA[<xml/>]]>\r\n" L"</books>\r\n" ; break; case 2: text= L"#include <iostream>\r\n" L"using namespace std;\r\n" L"\r\n" L"int main()\r\n" L"{\r\n" L"\t//This is a comment\r\n" L"\t/**This*is/another\r\n" L"\tcomment**/\r\n" L"\tcout<<\"Hello, world!\"<<endl;\r\n" L"\treturn 0;\r\n" L"}\r\n" ; break; } GetApplication()->InvokeInMainThreadAndWait([text, window]() { window->textBox->SetColorizer(0); window->textBox->SetText(text); }); switch(window->comboSelector->GetSelectedIndex()) { case 0: colorizer=new IniColorizer; break; case 1: colorizer=new XmlColorizer; break; case 2: colorizer=new CppColorizer; break; } GetApplication()->InvokeInMainThreadAndWait([colorizer, window]() { window->textBox->SetColorizer(colorizer); window->GetBoundsComposition()->SetAssociatedCursor(GetCurrentController()->ResourceService()->GetDefaultSystemCursor()); window->comboSelector->SetEnabled(true); }); })(this)); }