ultimatepp/reference/GuiLock/main.cpp
cxl af76ef90d2 reference: GuiLock updated to reflect new MT rules
git-svn-id: svn://ultimatepp.org/upp/trunk@6168 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2013-07-06 11:51:25 +00:00

60 lines
703 B
C++

#include <CtrlLib/CtrlLib.h>
using namespace Upp;
struct App : TopWindow {
Thread work;
void Work();
void AskQuit(bool *quit);
ArrayCtrl list;
typedef App CLASSNAME;
App();
~App();
};
void App::AskQuit(bool *quit)
{
*quit = PromptYesNo("Quit?");
}
void App::Work()
{
for(;;) {
Sleep(1);
GuiLock __;
if(IsShutdownThreads())
break;
if(list.GetCount() > 100) {
bool quit;
Call(PTEBACK1(AskQuit, &quit));
if(quit) {
Break();
return;
}
list.Clear();
}
list.Add((int64)Random());
}
}
App::App()
{
list.AddColumn("Test");
Add(list.SizePos());
work.Run(THISBACK(Work));
}
App::~App()
{
ShutdownThreads();
}
GUI_APP_MAIN
{
App app;
app.Run();
}