diff --git a/mester.cpp b/mester.cpp index d7e1d2f9dc091ac1d2e39d4acb8359b81651c638..0901d21ceda2b6c0f0381f0a55a52fdf38c1b8a0 100644 --- a/mester.cpp +++ b/mester.cpp @@ -8,10 +8,14 @@ using namespace genv; Mester::Mester(Palya* _p) : p(_p) {} void Mester::iranyitas(Palyamezo* f, event ev) { - if(f->hozzaer(ev) && !f->filled) + if(f->hozzaer(ev) && !f->filled && !f->chosen){ f->chosen_draw(); - if(!f->hozzaer(ev) && !f->filled) + f->set_chosen(); + } + if(!f->hozzaer(ev) && !f->filled && f->chosen){ f->draw(); + f->reset_chosen(); + } if(f->select(ev) && !f->filled) lepes = true; } diff --git a/palyamezo.cpp b/palyamezo.cpp index 05d2efa139f39190fcc263179f68a8c5a579b2a2..bda2805f9d3759eaa39330000ccb29d4c58d12de 100644 --- a/palyamezo.cpp +++ b/palyamezo.cpp @@ -12,10 +12,19 @@ void Palyamezo::draw(){ gout << move_to(x+1,y+1) << color(t,t,t) << box(w-2,h-2); } -void Palyamezo::chosen_draw() -{ +void Palyamezo::chosen_draw(){ int t = 175; gout << move_to(x+1,y+1) << color(t,t,t) << box(w-2,h-2); } +void Palyamezo::set_chosen(){ + if(!chosen) + chosen = true; +} + +void Palyamezo::reset_chosen(){ + if(chosen) + chosen = false; +} + Palyamezo::~Palyamezo() {} diff --git a/palyamezo.h b/palyamezo.h index 85c6abddf394e2fee5d960de5e6881d9836ad976..af4b2d3c574aa3d188aaaa1c80729e514297b288 100644 --- a/palyamezo.h +++ b/palyamezo.h @@ -12,6 +12,9 @@ public: void draw() override; void chosen_draw(); bool filled = false; + bool chosen = false; + void set_chosen(); + void reset_chosen(); }; #endif // PALYAMEZO_H diff --git a/widget.cpp b/widget.cpp index 7684c8e8fa7b62b5d2263a4734eee704ca0665bc..61c0f6f10c9c874df015156ed0f2652ebd3e7b29 100644 --- a/widget.cpp +++ b/widget.cpp @@ -2,18 +2,16 @@ using namespace genv; -Widget::Widget(Palya* _p, int _x, int _y, int _w, int _h) : p(_p), x(_x), y(_y), w(_w), h(_h){} +Widget::Widget(Palya* _p, int _x, int _y, int _w, int _h) : p(_p), x(_x), y(_y), w(_w), h(_h) {} -bool Widget::hozzaer(event ev) -{ +bool Widget::hozzaer(event ev){ if(ev.pos_x > x && ev.pos_x < x+w && ev.pos_y < y+h && ev.pos_y > y) return true; else return false; } -bool Widget::select(event ev) -{ +bool Widget::select(event ev){ if(hozzaer(ev) && ev.button==btn_left) return true; if(!hozzaer(ev) && ev.button==btn_left) diff --git a/widget.h b/widget.h index fedfd3a2c7ec70cc49f50504fdf18123f87052e8..437787a8c01f7ccf0ca7a689891508e4ffb1899f 100644 --- a/widget.h +++ b/widget.h @@ -4,7 +4,8 @@ class Palya; -class Widget{ +class Widget +{ protected: int x,y,w,h; Palya* p;