mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 14:16:07 -06:00
38 lines
693 B
C++
38 lines
693 B
C++
#include <CtrlLib/CtrlLib.h>
|
|
|
|
using namespace Upp;
|
|
|
|
class Test: public TopWindow{
|
|
public:
|
|
typedef Test CLASSNAME;
|
|
MenuBar menu;
|
|
|
|
void Worker(){
|
|
Progress pi("Working on many items at once...", 100*1000);
|
|
std::atomic<int> ii(0);
|
|
CoDo([&] {
|
|
for(int i = ii++; i < 100; i = ii++) {
|
|
for(int q = 0; q < 1000; q++) {
|
|
if(pi.StepCanceled()) // ideally call Canceled every 1-10ms
|
|
return;
|
|
Sleep(1); // work simulation
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
void MainMenu(Bar &bar){
|
|
bar.Add("Process...", THISFN(Worker));
|
|
}
|
|
|
|
Test(){
|
|
AddFrame(menu);
|
|
menu.Set([=](Bar& bar) { MainMenu(bar); });
|
|
}
|
|
};
|
|
|
|
GUI_APP_MAIN
|
|
{
|
|
Test test;
|
|
test.Run();
|
|
}
|