From 8f2c211c5a15d2e30adc655bdee00db03e560498 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Papp=20Benj=C3=A1min?= <papbe5@cortex.itk.ppke.hu> Date: Sun, 19 May 2024 10:10:29 +0200 Subject: [PATCH] =?UTF-8?q?eg=C3=A9r=20jav=C3=ADt=C3=A1s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mester.cpp | 8 ++++++-- palyamezo.cpp | 13 +++++++++++-- palyamezo.h | 3 +++ widget.cpp | 8 +++----- widget.h | 3 ++- 5 files changed, 25 insertions(+), 10 deletions(-) diff --git a/mester.cpp b/mester.cpp index d7e1d2f..0901d21 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 05d2efa..bda2805 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 85c6abd..af4b2d3 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 7684c8e..61c0f6f 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 fedfd3a..437787a 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; -- GitLab