Kimp

Allikas: Lambda

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.
  • 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 näitab kasutaja kujundile, mida soovib liigutada.
    • 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 näitab hiirega kujundile, mida soovib kustutada.
    • 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