Második beadandó feladatok
A feladat egy widget létrehozása, egy számbeállító vagy egy
kiválasztó
widget. A beadandóra szünettel együtt négy hét áll rendelkezésre.
A leadási határidő: ápr. 22, reggel 8 óra.
A választási lehetőség az egyes widgetek megjelenítésében és működésében
van.
1. számbeállító widget
1.a. számot ábrázoló kijelző, mellette egy növelő és egy csökkentő
gomb.
1.b. húzható kapcsoló, a két szélén egyesével léptető gombokkal
1.c. számjegyenként egy-egy növelő és csökkentő gomb
1.d. tetszőleges egyéb, előre megbeszélt vizualizáció, ami nem kizárólag
billentyűzetről olvas számjegyeket
2. kiválasztó widget
2.a. menü, a kiválasztott elem más (háttér)színű (a képen a felső
esetet kell megoldani, ahol csak egy elem lehet kiválasztva)
2.b. legördülő menü, a kiválaszott elem látszik csak, egérgombra legördül
egy menü, a kiválasztás után a menü eltűnik, és a kiválasztott elem veszi
át a helyet. Valamivel jelezni kell a legördítés lehetőségét (általában
lefelé mutató háromszög)
2.c. rádiógomb. A kiválasztott elem előtt nem üres a doboz/karika (mindig
csak egy lehet kiválasztva, de lehetséges, hogy egyik sem!)
2.d. a kiválasztott elem látszik csak, egér fölévitelekor megjelenik az
előző/következő két-három lehetőség függőlegesen, ami az egérgörgővel
görgethető. (
ilyesmi, csak
ennyire nem kell animálni)
2.e. tetszőleges egyéb, előre megbeszélt vizualizáció
Közös követelmények
(ebből van több):
A beadandónak tartalmaznia kell a widgetet, egy őswidget osztályt,
egy tesztelő main.cpp programocskát, ami a képernyőre teszi a widget
két példányát, és egy billentyű nyomására (eseményciklusban közvetlenül is szabad elkapni) az aktuálisan beállított
értékeket ellenőrzésképpen megjeleníti vagy fájlba írja
A beadandó maximális pontot akkor kaphat, ha a widgetek egy előre
lefordított könyvtárban vannak, amiket ebben az állapotban használ a
tesztelő főprogram. Ebben az esetben a .cbp fájl is feltöltendő a forráskód mellé.
a tesztprogramnak, vagy a könyvtárnak a része az a mechanizmus, amelyik
egyszerre kezel tetszőleges számú ilyen widgetet, kihasználva a
polimorfizmust
a számbeállító widgetnek intervallumot lehet adni konstruktorban, amiből nem enged
kimenni
a számbeállító widgeteknek kezelniük kell a le-föl és pageup-pagedown billentyűket.
a kiválasztó widget vector<string>-a paraméterrel hozható létre,
és van metódusa új választási lehetőség felvételére. A sorrend tetszőleges a
választási lehetőségek között.
a méretváltoztató widgetek kis és nagy méretét is meg lehessen adni
a kiválasztó widgetben görgetni kell a túl sok lehetőséget, ha nem
fér el a választék a widgetnek megadott területen
az "egyéb" vizualizációs lehetőségeket a gyakorlatvezetővel egyeztetni kell
Emlékeztető: a későbbiekben ezt a komponenst újra és újra fel kell
majd használnod, tehát nem érdemes kapkodni vagy összecsapni, mert akkor
később meggyűlhet vele a bajod. Igyekezz olyan működési stratégiát
kitalálni, amit a későbbiekben is szívesen használsz majd.