Skip to content
Snippets Groups Projects
Commit 890b7252 authored by Barna Réka Emese's avatar Barna Réka Emese
Browse files

Upload New File

parent c66c8016
No related branches found
No related tags found
No related merge requests found
app.cpp 0 → 100644
#include "app.hpp"
#include <stdexcept>
using namespace genv;
Alkalmazas::Alkalmazas(int szelesseg, int magassag)
: szelesseg(szelesseg), magassag(magassag), buffer(szelesseg, magassag)
{
if (!genv::gout.open(szelesseg, magassag)) {
throw std::runtime_error("Nem sikerult megnyitni az ablakot!");
}
genv::gout << genv::refresh;
}
Alkalmazas::~Alkalmazas() {
for (Widget* w : widgetek) {
delete w;
}
}
void Alkalmazas::widgetRegisztral(Widget* w) {
widgetek.push_back(w);
}
void Alkalmazas::esemenyhurok() {
genv::event ev;
int fokusztalt = -1;
while (genv::gin >> ev) {
if (ev.type == ev_key) {
std::string azonosito;
switch (ev.keycode) {
case genv::key_up: azonosito = "up"; break;
case genv::key_down: azonosito = "down"; break;
case genv::key_left: azonosito = "left"; break;
case genv::key_right: azonosito = "right"; break;
case genv::key_enter: azonosito = "enter"; break;
case genv::key_escape: azonosito = "escape"; break;
case genv::key_space: azonosito = "space"; break;
default: break;
}
if (!azonosito.empty()) {
akcio(azonosito);
}
}
if (ev.type == ev_mouse && ev.button == btn_left) {
for (size_t i = 0; i < widgetek.size(); i++) {
if (widgetek[i]->kivalasztva(ev.pos_x, ev.pos_y)) {
fokusztalt = i;
widgetek[i]->kezel(ev);
}
}
}
buffer << genv::move_to(0, 0) << genv::color(50, 50, 50) << genv::box(szelesseg, magassag);
for (Widget* w : widgetek) {
if (w) {
w->rajzolBuffer(buffer);
}
}
genv::gout << genv::stamp(buffer, 0, 0) << genv::refresh;
// 1. Háttér rajzolása
buffer << move_to(0, 0) << color(50, 50, 50) << box(szelesseg, magassag);
// 2. Widgetek rajzolása
for (Widget* w : widgetek) {
if (w) {
w->rajzolBuffer(buffer);
}
}
// 3. Feliratok rajzolása (új sor)
Alkalmazas* sajatApp = dynamic_cast<Alkalmazas*>(this);
if (sajatApp) {
sajatApp->rajzolFeliratokat();
}
// 4. Képernyő frissítése
gout << stamp(buffer, 0, 0) << refresh;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment