5.4.1. Pakkaaja (packer)

Pakkaaja pack on yleisempi ja tehokkaampi ohjainten järjestelijä kuin asettaja place. Pakkaajalle määritellään aseteltavat ohjaimet ja niid en järjestys toisiinsa nähden, jonka jälkeen pakkaaja sijoittelee ohjaimet ikkunaan. Ohjelmoijan ei tarvitse huolehtia ikkunan koordinaateista tai esimerkiksi ikkunan koon muuttamisesta, vaan pakkaaja asettelee jokaisen muutoksen jälke en ohjaimet omille paikoilleen. 

Esimerkiksi

pack .ohjain1 .ohjain2 -side top

asettaa ohjaimet .ohjain1 ja .ohjain2 päällekkäin ikkunaan -side-option arvosta top johtuen.

Pakkaajalle määritellään optioita, joiden avulla se tietää halutun järjestyksen. Mahdollisia optioita on lueteltu seuraavassa listassa:

-after window

määrittelee, minkä ohjaimen jälkeen käsiteltävä ohjain asetetaan.

-anchor side

määrittelee ohjaimen paikan ikkunan tai toisen kehyksen sisällä. Ohjaimen voi sijoittaa ikkunan tai kehyksen sisällä ylös keskelle (n), ylös oikealle (ne), oikelle (e), alas oikealle (se), alas (s), alas vasemmalle (sw), vasemmalle (w), ylös vasemmalle (nw) tai keskelle (center).

-before window

määrittelee, mitä ohjainta ennen käsiteltävä ohjain asetetaan.

-expand boolean

ohjain ottaa käyttöönsä kaiken ylimääräisen tilan ikkunassa.

-fill style

määrittelee ohjaimen kasvun suunnan (none, x, y, both).

-in master

määrittelee, minkä ikkunan sisään ohjain sijoitetaan.

-ipadx distance

määrittelee ohjaimen sisälle jätettävän ylimääräisen tilan x-suunnassa.

-ipady distance

määrittelee ohjaimen sisälle jätettävän ylimääräisen tilan y-suunnassa.

-padx distance

määrittelee ohjaimen ulkopuolelle jätettävän ylimääräisen tilan x-suunnassa.

-pady distance

määrittelee ohjaimen ulkopuolelle jätettävän ylimääräisen tilan y-suunnassa.

-side side

määrittelee pakkausjärjestyksen ohjainten kesken (top, bottom, left, right). Oletuksena top.

 Seuraavassa esimerkkiohjelmassa käytetään eri pakkausoptioita hyväksi (kuva 5.18).

frame .top

frame .bottom -bd 2 -relief sunken

label .top.etiketti -bitmap @/usr/include/X11/bitmaps/flagdown

label .top.kirjoitus -text "E-mail:"

entry .top.syotto -width 15

button .bottom.ok -text Ok -command {exit}

button .bottom.cancel -text Cancel -command {puts "heippa"}

pack .top.etiketti -anchor ne ;# pakataan ylös oikealle

pack .top.kirjoitus -anchor w ;# pakataan vasemmalle

pack .top.syotto -anchor sw ;# pakataan alas vasemmalle

pack .bottom.ok .bottom.cancel -side top -fill x ;# pakataan molemmat painikkeet samanlevyisiksi

pack .bottom.ok -pady 2m ;# määrätään ohjaimen ympärille tilaa y- suunnassa

pack .bottom.cancel -ipadx 2m ;# määrätään ohjaimen sisälle tilaa x-suunnassa

pack .top .bottom -side top

Ensin ob luotu kaksi etikettiä, kuva ja tekstiä sekä syöttökenttä. Sen lisäksi on tehty kaksi painiketta. Ensin on pakattu ylätaso .top siten, että kuva sij oitetaan oikeaan ylänurkkaan, teksti vasemmalle ja syöttökenttä kehyksen .top alareunaan vasemmalle. Sen jälkeen on pakattu kehyksen .bottom sisään kaksi painiketta päällekkäin. Ok-painike piirtyy Cancel-painikkeen levyisenä option -fill x avulla.

 

Kuva 5.18. Esimerkki pakkaajasta.


previous gif next gif
Luk-tutkielma: Tcl/Tk -opiksi ja iloksi.