-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmainwindow.cpp
More file actions
110 lines (97 loc) · 3.44 KB
/
Copy pathmainwindow.cpp
File metadata and controls
110 lines (97 loc) · 3.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::fracFunc_p MainWindow::fracFunctionsList[FCOUNT] = { &MainWindow::fracCantor,
&MainWindow::fracSerpinskiTriangle,
&MainWindow::fracDragon,
&MainWindow::ffracIFS,
&MainWindow::fracKoh,
&MainWindow::fracLevy,
&MainWindow::randSerpinski,
&MainWindow::fracMandelbrot };
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
wgt = NULL;
ui->setupUi(this);
connect(ui->fractalsList,SIGNAL(doubleClicked(QModelIndex)),SLOT(on_drawButton_clicked()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::fracCantor()
{
wgt = new FracCantor(ui->scrollArea);
ui->scrollArea->setWidget(wgt);
}
void MainWindow::fracSerpinskiTriangle()
{
wgt = new SerpinskiTriangle(ui->scrollArea);
ui->scrollArea->setWidget(wgt);
}
void MainWindow::fracKoh()
{
wgt = new FracKoh(ui->scrollArea);
FracKoh *koh_p = static_cast<FracKoh*>(wgt);
ui->horizontalLayout->insertWidget(0, koh_p->text);
ui->horizontalLayout->insertWidget(1, koh_p->sbox);
ui->scrollArea->setWidget(wgt);
}
void MainWindow::fracLevy()
{
wgt = new FracLevy(ui->scrollArea);
FracLevy *levy_p = static_cast<FracLevy*>(wgt);
ui->horizontalLayout->insertWidget(0, levy_p->text);
ui->horizontalLayout->insertWidget(1, levy_p->sbox);
ui->scrollArea->setWidget(wgt);
}
void MainWindow::randSerpinski()
{
wgt = new RandSerpinski(ui->scrollArea);
RandSerpinski *serpinski_p = static_cast<RandSerpinski*>(wgt);
ui->horizontalLayout->insertWidget(0, serpinski_p->sbox);
ui->horizontalLayout->insertWidget(1, serpinski_p->button);
ui->scrollArea->setWidget(wgt);
}
void MainWindow::fracMandelbrot()
{
wgt = new FracMandelbrot(ui->scrollArea);
FracMandelbrot *m_p = static_cast<FracMandelbrot*>(wgt);
ui->horizontalLayout->insertWidget(0, m_p->min);
ui->horizontalLayout->insertWidget(1, m_p->slider);
ui->horizontalLayout->insertWidget(2, m_p->max);
ui->horizontalLayout->insertWidget(3, m_p->button);
ui->scrollArea->setWidget(wgt);
}
void MainWindow::ffracIFS()
{
wgt = new fracIFS(ui->scrollArea);
fracIFS *ifs_p = static_cast<fracIFS*>(wgt);
ui->horizontalLayout->insertWidget(0, ifs_p->text);
ui->horizontalLayout->insertWidget(1, ifs_p->sbox);
ui->scrollArea->setWidget(wgt);
}
void MainWindow::fracDragon()
{
wgt = new FracDragon(ui->scrollArea);
FracDragon *dragon_p = static_cast<FracDragon*>(wgt);
ui->horizontalLayout->insertWidget(0, dragon_p->zoomOut);
ui->horizontalLayout->insertWidget(1, dragon_p->zoomOrig);
ui->horizontalLayout->insertWidget(2, dragon_p->zoomIn);
ui->scrollArea->setWidget(wgt);
}
void MainWindow::on_drawButton_clicked()
{
if (NULL != wgt)
delete wgt;
int row = ui->fractalsList->currentRow();
fracFunc_p fp = (fracFunctionsList[row]);
if (NULL != fp)
(this->*fp)();
if(!isMaximized())
{
adjustSize();
resize(minimumWidth()+500, minimumHeight()+200);
}
}