(toiminnot)

hwechtla-tl: Laiteriippumaton käyttöliittymä

Kierre.png

Mikä on WikiWiki?
nettipäiväkirja
koko wiki (etsi)
viime muutokset


Koska "laiteriippumattomuus" itse asiassa määrittyy sen kautta, mitä laitteita osaa ottaa huomioon, kerron tässä, mitä laitteita itse haluan huomioida:

  1. Graafinen ympäristö (ruutu ei kokonaan omassa käytössä, tarkka kontrolli sijoitteluun ja ulkonäköön)
  2. Curses (muuten niin kuin graafinen, mutta pelkkiä merkkejä käytettävissä, sijoittelu merkin tarkkuudella, tyypillisesti koko ruutu hallinnassa, yksi implisiittinen kursori koko ruudulla)
  3. Nopea virta, esim. perinteinen Unix-I/O vaikkapa tyhmälle tty:lle (ei voi liikkua ympäriinsä ruudulla, uusi teksti tulee aina edellisten alle/jälkeen)
  4. Hidas virta, esim. puhesynteesi (käyttäjä tarvitsee enemmän mahdollisuuksia hallita käyttöliittymää, esim. keskeyttää sen)

Olennaista on se, että käyttöliittymän ei pidä olla määritelty perinteisellä widget-tasolla: erilaisten visuaalisten elementtien luettelu ei anna riittävästi informaatiota interaktioon näissä medioissa; pitää edetä kohti loogisia widgettejä, jotka kuvaavat varsinaista koneen ja ihmisen vuorovaikutusta, eli mitä tietoja kone tarvitsee ihmiseltä jne.

Olen yrittänyt kerätä näitä widgettejä sillä perusteella, mitä elementtejä erilaiset ohjelmat sisältävät. Niiden irrallisuus representaatiosta on vielä vähän niin ja näin, mutta ovat ne parempia kuin useimpien widget toolkitien valikoima:

di-widgetien toteutuksia

Näitä kaikkia on modaalisia (widget pitää "käsitellä" ennen kuin voi tehdä muuta) että moodittomia (widget toimii yhdessä ja asynkronisesti muiden samaan modaaliseen ryhmään kuuluvien widgetien kanssa). Lisäksi olisi mukavaa, jos jotkin widgetit voisivat olla interaktiivisia, esim. selection, jossa vaihtoehtolista muuttuu kontekstuaalisesti -- tällaisella voisi toteuttaa esim. file browserin. Jokaisella widgetillä pitäisi myös olla "title", joka vastaa perinteisten widgetien labelia, ja "explanation", jossa on pitempi selitys aiheesta.

Näistä pitäisi voida myös rakentaa seuraavia korkean tason semanttisia widgetejä:

Ajattelin toteuttaa näitä ensin Pythonilla nopeille virroille. Pitäisi olla verrattain helppoa myöhemmin tehdä niistä bindingeja muihin ympäristöihin.

kategoria: projektit


kommentoi (viimeksi muutettu 27.06.2005 15:41)