ITI0011-13-HW3-Kimp
Allikas: Lambda
								
												
				Tagasi ITI0011 lehele.
Joonistamisprogramm Kimp
Tuleb kirjutada graafilise kasutajaliidesega joonistamis-programm. Programm võimaldab kasutajal hiirega vabakäe kujundeid joonistada ja kujunditega teatud operatsioone sooritada.
Põhiosa 5p
- Programm kuvab kasutajale graafilise kasutajaliidese (akna) ja sellel vabakäe kujundeid joonistada
 - Joonistamise alustamiseks kasutaja vajutab ja hoiab all vasakut hiire nuppu. Hiirt lohistades kuvab programm hiire liikumise trajektoori joonega. Kujundi joonistamine lõpeb vasaku hiirenupu vabastamisega.
 - Programm võimaldab joonistada suvalise arvu kujundeid.
 - Joonistada peab saama ka punkti (hiire klikk ilma hiirt vahepeal liigutamata - joone algus- ja lõpp-punkt on samad).
 - Akna parameetrite muutmisel - suurendamisel/vähendamisel, nihutamine, osaliselt või täielikult teiste akendega peitmine ei tohi joonistatud kujundeid visuaalselt rikkuda.
 -  Programmist peab olema võimalik väljuda vajutades klahvi <escape>
- Enne väljumist kuvab programm dialoogakna, küsides kasutajalt kinnitust
 - Vajutades kinnitamise dialoogaknas klahvi <escape> - programmi väljumine katkestatakse
 - Vajutades <enter> lõpetab programm täielikult
 
 
Lisaosa 3p
-  Programm võimaldab joonistatud kujundite liigutamist ...
- Hoides all <control> nuppu liigub kasutaja kujundile, mida soovib liigutada. Kõik järgnev tegevus toimub <control> nuppu all hoides.
 - Sihtmärgiks olev kujund tõstetakse esile (highlight) eristades see teistest kontrastse värviga - näiteks punaselt.
 - Vajutades alla vasaku hiirenupu algab kujundi liigutamine. Programm liigutab kujundit vastavalt hiire lohistamise trajektoorile.
 - Liigutamine lõpeb hiirenupu vabastades. Hoides all <control> nuppu võib kasutaja jätkata kujundite liigutamist.
 
 -  ... ja kustutamist
- Sarnaselt kujundi liigutamisele hoiab Kasutaja all <control> nuppu ja liigub hiirega kujundile, mida soovib kustutada. Kõik järgnev tegevus toimub <control> nuppu all hoides.
 - Vastav kujund tuuakse esile kontrastse värviga - näiteks punane.
 - Vajutades paremat hiirenuppu eemaldatakse kujund.
 
 
Lisaosa 2p
-  Programm puhverdab Kasutaja tegevused, et saaks tagasi võtta (i.k. undo)
- Kujundi lisamine/joonistamine
 - Kujundi liigutamine
 - Kujundi kustutamine
 
 - Kasutaja saab tegevusi tagasi võtta vajutades <escape> klahvi.
 - <escape> võtab tegevusi tagasi seni, kuni neid on. Kui rohkem tegevusi tagasi võtta ei saa, alustatakse programmist väljumist kuvades kinnituse dialoogakna sarnaselt põhiosale
 -  Selle lisaosa tegemine eeldab, et kujundi liigutamine ja kustutamine on realiseeritud.
- Kui kujundi liigutamine ja kustutamine ei ole realieeritud, võib saada redo+undo eest kokku 1 punkti.
 
 
Lisaosa 1p
-  Lisaks puhvrist tagasivõtmisele (undo) on võimalik tegevusi korrata (i.k. redo). Kui kasutaja on mõned tegevused tagasi võtnud, saab need samad tegevused uuesti teha
- Kujundi lisamine/joonistamine
 - Kujundi liigutamine
 - Kujundi kustutamine
 
 - Kasutaja saab tegevusi korrata vajutades <space> (tühik) klahvi.
 - Korrata saab vaid neid tegevusi, mis on tagasi võetud.
 - Lisaks peavad undo ja redo jaoks olema realiseeritud nupud (vabalt valitud paiknemisega). Üks nupp teeb redo, teine teeb undo.
 
Selle lisaosa tegemine on triviaalne, kui puhverdamise lisaosa on sobivalt tehtud.