-
Notifications
You must be signed in to change notification settings - Fork 0
/
window.cpp
104 lines (91 loc) · 2.67 KB
/
window.cpp
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
//Plik zawiera metody klas z pliku window.h
#include <iostream>
#include <vector>
#include <limits>
#include "window.h"
//--------------Component-------------------------------------------------------
int Component::check(int x_axe, int y_axe)//funkcja sprawdzajaca na co kliknal uzytkownik, jako parametry dostaje wspolrzedne ktore nalezy sprawdzic
{
if (x_axe>=(this->x) && x_axe<=(this->x)+(this->length))
{
if(y_axe>=(this->y) && y_axe<=(this->y)+(this->high)) return 1;
else return 0;
}
else return 0;
}
//------------Text--------------------------------------------------------------------
void Text::click()
{
std::cout<<endl<<text_show<<endl;
}
string Text::return_value()//zwraca przechowywaną zawartość - potrzebne do listy
{
return text_show;
}
//-----------Button--------------------------------------------------------------------
void Button::click()//funkcja klikajaca na obiekt
{
std::cout<<endl<<"Button clicked!"<<endl<<endl;
}
//-----------Checkbox------------------------------------------------------------------
void Checkbox::click()//funkcja klikajaca na obiekt
{
if (if_ticked)
{
if_ticked=false;
std::cout<<endl<<"Checkbox unticked!"<<endl<<endl;
}
else
{
if_ticked=true;
std::cout<<endl<<"Checkbox ticked!"<<endl<<endl;
}
}
//----------Input_table-----------------------------------------------------------------
void Input_table::click()//funkcja klikajaca na obiekt
{
std::cout<<"Current sentence: "<<endl<<text_show<<endl<<"Type new sentence:"<<endl;
type_in();
}
void Input_table::type_in()
{
std::cin>>text_show;
std::cout<<endl;
}
//----------List------------------------------------------------------------------------
void List::click()
{
for(int i=0; i<3; i++)
{
Text* button_1 = new Text(this->x,(this->y)+8 , 20, 8, "Option ");//tworzenie rozwijanej listy
lista[i] = button_1;
}
choose();//wybór elementu
for(int i=0; i<3; i++)
{
delete lista[i];//zwijanie listy
}
}
void List::choose()
{
int ans;
std::cout<<"Current choice: "<<text_show<<endl<<"Choose option from the list:"<<endl;
for(int i=0; i<3; i++)
{
lista[i]->click();
}
while(1)
{
cin>>ans;
if(!std::cin)
{
std::cin.clear();
std::cin.ignore(numeric_limits<streamsize>::max(),'\n');
}
else if (ans>2 || ans<0) continue;
else break;
}
if(ans==0) text_show = lista[0]->return_value();//zapisanie wybranej opcji
else if (ans==1) text_show = lista[1]->return_value();//zapisanie
else text_show = lista[2]->return_value();//zapisanie
}