diff --git a/upptst/MtDraw/MtDraw.upp b/upptst/MtDraw/MtDraw.upp new file mode 100644 index 000000000..c010b983a --- /dev/null +++ b/upptst/MtDraw/MtDraw.upp @@ -0,0 +1,11 @@ +uses + CtrlLib, + PdfDraw; + +file + main.cpp; + +mainconfig + "" = "GUI SSE2 MT", + "" = "GUI SSE2"; + diff --git a/upptst/MtDraw/init b/upptst/MtDraw/init new file mode 100644 index 000000000..451e1cb6a --- /dev/null +++ b/upptst/MtDraw/init @@ -0,0 +1,5 @@ +#ifndef _MtDraw_icpp_init_stub +#define _MtDraw_icpp_init_stub +#include "CtrlLib/init" +#include "PdfDraw/init" +#endif diff --git a/upptst/MtDraw/main.cpp b/upptst/MtDraw/main.cpp new file mode 100644 index 000000000..4b4005a53 --- /dev/null +++ b/upptst/MtDraw/main.cpp @@ -0,0 +1,59 @@ +#include +#include + +using namespace Upp; + +struct MyApp : TopWindow { + RichTextCtrl ctrl; + TopWindow win; + + void Do(int i); + + void Perform(); + + typedef MyApp CLASSNAME; + + MyApp(); +}; + +void MyApp::Do(int i) +{ + String qtf; + qtf << "Here goes Image " + << "@@iml:" << Random(100) * 10 + 100 << "*" << Random(150) * 10 + 100 << "`CtrlImg:exclamation` !!!" + << "&This was pass: " << i; + if(i & 1) { + RLOG("About to lock, main: " << Thread::IsMain()); + GuiLock __; + ctrl <<= qtf; + } + else { + PdfDraw w; + ParseQTF(qtf).Paint(w, 0, 0, 3000); + SaveFile(GetHomeDirFile(AsString(i % 100)), w.Finish()); + } +} + +void MyApp::Perform() +{ + Open(); + int i = 0; + CoWork co; + while(IsOpen()) { + co & THISBACK1(Do, i++); + Ctrl::ProcessEvents(); + } + RLOG("EXITING!!!!!!!!!!!!!!"); + while(!co.IsFinished()) + Ctrl::ProcessEvents(); +} + +MyApp::MyApp() +{ + Add(ctrl.SizePos()); +} + +GUI_APP_MAIN +{ + MyApp().Perform(); +} diff --git a/upptst/StringUtil/StringUtil.cpp b/upptst/StringUtil/StringUtil.cpp new file mode 100644 index 000000000..15b9fafe0 --- /dev/null +++ b/upptst/StringUtil/StringUtil.cpp @@ -0,0 +1,37 @@ +#include + +using namespace Upp; + +void TestTrimLeft(String what, String s, String r) +{ + for(int i = 0; i < 3; i++) { + ASSERT(TrimLeft(what, s) == r); + ASSERT(TrimLeft(~what, s) == r); + ASSERT(TrimLeft(~what, what.GetLength(), s) == r); + r = s; + what = i == 1 ? "" : ""; + } +} + +void TestTrimRight(String what, String s, String r) +{ + for(int i = 0; i < 3; i++) { + ASSERT(TrimRight(what, s) == r); + ASSERT(TrimRight(~what, s) == r); + ASSERT(TrimRight(~what, what.GetLength(), s) == r); + r = s; + what = i == 1 ? "" : ""; + } +} + +CONSOLE_APP_MAIN +{ + String h = "http://www.website.org"; + DDUMP(TrimLeft("test", h)); + DDUMP(TrimLeft("http://", h)); + DDUMP(TrimRight("test", h)); + DDUMP(TrimRight(".org", h)); + + TestTrimLeft("http://", "http://www.website.org", "www.website.org"); + TestTrimRight(".org", "www.website.org", "www.website"); +} diff --git a/upptst/StringUtil/StringUtil.upp b/upptst/StringUtil/StringUtil.upp new file mode 100644 index 000000000..f967f4257 --- /dev/null +++ b/upptst/StringUtil/StringUtil.upp @@ -0,0 +1,9 @@ +uses + Core; + +file + StringUtil.cpp; + +mainconfig + "" = "SSE2"; + diff --git a/upptst/StringUtil/init b/upptst/StringUtil/init new file mode 100644 index 000000000..908d9828b --- /dev/null +++ b/upptst/StringUtil/init @@ -0,0 +1,4 @@ +#ifndef _StringUtil_icpp_init_stub +#define _StringUtil_icpp_init_stub +#include "Core/init" +#endif