mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-07-11 22:03:01 -06:00
syncing uppdev
git-svn-id: svn://ultimatepp.org/upp/trunk@1505 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
5115f8d8e7
commit
71f5755ad8
7 changed files with 110 additions and 87 deletions
10
uppdev/DrawingReport/DrawingReport.upp
Normal file
10
uppdev/DrawingReport/DrawingReport.upp
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
uses
|
||||
CtrlLib,
|
||||
Report;
|
||||
|
||||
file
|
||||
main.cpp;
|
||||
|
||||
mainconfig
|
||||
"" = "GUI";
|
||||
|
||||
5
uppdev/DrawingReport/init
Normal file
5
uppdev/DrawingReport/init
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
#ifndef _DrawingReport_icpp_init_stub
|
||||
#define _DrawingReport_icpp_init_stub
|
||||
#include "CtrlLib/init"
|
||||
#include "Report/init"
|
||||
#endif
|
||||
43
uppdev/DrawingReport/main.cpp
Normal file
43
uppdev/DrawingReport/main.cpp
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
#include <CtrlLib/CtrlLib.h>
|
||||
#include <Report/Report.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
void Print(String text)
|
||||
{
|
||||
int top = 1;
|
||||
int left = 1;
|
||||
int sizex = 4600;
|
||||
int sizey = 6800;
|
||||
|
||||
Size sz(sizex-(2*top),sizey-(2*left));
|
||||
|
||||
String txt = "[ $$0,0#00000000000000000000000000000000:Default]\n[{_} \n[s0; [*1 Seite $$P]&]\n[s0;*1 &]\n[ {{10000<64;h1;^t/13b/4@(229) [s0; [*1 Artikel]]\n::@2 [s0; [1 1]]\n:: [s0; [1 2]&]\n[s0; [1 3]]\n:: [s0; [1 040114]]\n:: [s0; [1 5]]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0; [1 xxx]]\n:: [s0; [1 xxx]]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]\n:: [s0;1 ]}}&]\n[s0;*2 ]";
|
||||
|
||||
Report rep;
|
||||
rep.SetPageSize(sz);
|
||||
|
||||
rep.Put(txt);
|
||||
|
||||
Size size(rep.GetSize());
|
||||
Report report(size);
|
||||
|
||||
Perform(rep,"Original");
|
||||
|
||||
const Array <Drawing>& aDw = rep.GetPages();
|
||||
|
||||
for(int i = 0; i < aDw.GetCount(); i++)
|
||||
{
|
||||
if(i>0)
|
||||
report.NewPage();
|
||||
report.DrawDrawing(size,aDw[i]);
|
||||
}
|
||||
|
||||
Perform(report,"copy");
|
||||
}
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
Print("Just a test!");
|
||||
}
|
||||
|
||||
|
|
@ -1,87 +0,0 @@
|
|||
#include "CtrlLib/CtrlLib.h"
|
||||
|
||||
#define LAYOUTFILE <GuiMT/Divisors.lay>
|
||||
#include <CtrlCore/lay.h>
|
||||
|
||||
struct Divisors : public WithDivisorsLayout<TopWindow> {
|
||||
typedef Divisors CLASSNAME;
|
||||
|
||||
void TestNumber();
|
||||
void ShowResult(int line, String result);
|
||||
void SetTitle();
|
||||
|
||||
Divisors();
|
||||
~Divisors();
|
||||
};
|
||||
|
||||
|
||||
struct DivisorsInfo {
|
||||
int line;
|
||||
uint64 number;
|
||||
Divisors *gui;
|
||||
};
|
||||
|
||||
void WorkerThread(DivisorsInfo f)
|
||||
{
|
||||
String r;
|
||||
int divisors = 0;
|
||||
uint64 max = (uint64)sqrt((double)f.number) + 1;
|
||||
for(uint64 i = 1; i < max; i++) {
|
||||
if(Thread::IsShutdownThreads())
|
||||
break;
|
||||
if(f.number % i == 0) {
|
||||
r << ' ' << i;
|
||||
PostCallback(callback2(f.gui, &Divisors::ShowResult, f.line, "working..." + r));
|
||||
divisors++;
|
||||
}
|
||||
}
|
||||
r << ' ' << f.number;
|
||||
PostCallback(callback2(f.gui, &Divisors::ShowResult, f.line, AsString(divisors + 1) + ": " + r));
|
||||
}
|
||||
|
||||
void Divisors::TestNumber()
|
||||
{
|
||||
if(IsNull(editor))
|
||||
return;
|
||||
DivisorsInfo f;
|
||||
f.number = stou64((String)~editor);
|
||||
f.line = table.GetCount();
|
||||
table.Add(AsString(f.number), "working...");
|
||||
f.gui = this;
|
||||
Thread().Run(callback1(WorkerThread, f));
|
||||
SetTitle();
|
||||
}
|
||||
|
||||
void Divisors::ShowResult(int line, String result)
|
||||
{
|
||||
table.Set(line, 1, result);
|
||||
SetTitle();
|
||||
}
|
||||
|
||||
void Divisors::SetTitle()
|
||||
{
|
||||
Title(AsString(Thread::GetCount()) + " threads");
|
||||
}
|
||||
|
||||
Divisors::Divisors()
|
||||
{
|
||||
CtrlLayout(*this, "Window title");
|
||||
Sizeable().Zoomable();
|
||||
push <<= THISBACK(TestNumber);
|
||||
editor.SetFilter(CharFilterDigit);
|
||||
table.AddColumn("Number");
|
||||
table.AddColumn("Divisors");
|
||||
table.ColumnWidths("135 527");
|
||||
table.NoCursor();
|
||||
SetTitle();
|
||||
}
|
||||
|
||||
Divisors::~Divisors()
|
||||
{
|
||||
Thread::ShutdownThreads();
|
||||
}
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
Divisors().Run();
|
||||
}
|
||||
52
uppdev/GuiMTtest/main.cpp
Normal file
52
uppdev/GuiMTtest/main.cpp
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
#include <CtrlLib/CtrlLib.h>
|
||||
|
||||
using namespace Upp;
|
||||
|
||||
struct App : TopWindow {
|
||||
Thread work;
|
||||
|
||||
void Work();
|
||||
|
||||
ArrayCtrl list;
|
||||
|
||||
typedef App CLASSNAME;
|
||||
|
||||
App();
|
||||
~App();
|
||||
};
|
||||
|
||||
void App::Work()
|
||||
{
|
||||
int q = 0;
|
||||
for(;;) {
|
||||
Sleep(1);
|
||||
GuiLock __;
|
||||
if(Thread::IsShutdownThreads())
|
||||
break;
|
||||
DLOG("BEGIN");
|
||||
if(list.GetCount() > 100)
|
||||
list.Clear();
|
||||
list.Add((int64)Random());
|
||||
DLOG("END");
|
||||
}
|
||||
}
|
||||
|
||||
App::App()
|
||||
{
|
||||
list.AddColumn("Test");
|
||||
list.AddColumn("Test2", 20);
|
||||
Add(list.SizePos());
|
||||
work.Run(THISBACK(Work));
|
||||
}
|
||||
|
||||
App::~App()
|
||||
{
|
||||
Thread::ShutdownThreads();
|
||||
work.Wait();
|
||||
}
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
App app;
|
||||
app.Run();
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue