INTERACTIUNEA - INTERFETE
1. UTILIZARE MOUSE
Primul dispozitiv de calculator pentru a puncta a fost light pen-ul. Cu acesta în mâna se puncta pe ecran ca si cu un creion. Utilizarea light pen-ului pe un ecran risipeste controlul motor fin al degetelor si ne forteaza la un control grosolan al muschilor bratului, care nu pot asigura precizia pentru a putea puncta cu acuratete si este foarte dificil de desenat pe o suprafata verticala sprijinind mâna pe ea. Nefiind practic pentru calculator deci au fost inventate alte dispozitive - mouse-ul.
Pe masura ce utilizam un mouse observam un simbol vizual/cursor care se misca la fel. Prima data când un utilizator foloseste mouse-ul are senzatia ca mouse-ul si cursorul sunt conectate, o senzatie greu de uitat. Deplasarea mouse-ului fata de cursor nu este de obicei de unu la unu, dar deplasarea este proportionala. Pe majoritatea PC-urilor cursorul traverseaza întreg ecranul de 30 cm în aproximativ 4 cm de deplasare mouse. Având mouse-ul în mâna sprijinita ferm pe masa, degetele pot deplasa mouse-ul cu mare acuratete, chiar si pentru o rata de deplasare de 1:8.
Mouse-ul ne permite sa punctam obiectele de pe un ecran vertical fara a avea de-a face cu dezavantajele inerente ale punctarii sau desenarii pe o suprafata verticala. Faptul ca putem introduce scriere cursiva cu un pen dar nu o putem face cu un mouse sugereaza faptul ca un pen este manevrabil cu mai multa precizie si acuratete decât un mouse. Când apare problema scrierii pe verticala un mouse este mult mai bun. Când display-urile plane vor deveni ieftine si uzuale în mod inevitabil ele vor migra spre pozitia orizontala.
Când deplasam mouse-ul pe ecran exista o linie de divizare, distincta între deplasari apropiate si deplasari distante. Mutarea cursoului de mouse de-a lungul ecranului pentru a actiona un control obliga o schimbare de la fin la grosolan pentru controlul motor. Apasarea butonului de mouse necesita un control motor fin. Aceasta înseamna ca în timp ce este posibil un compromis între controlul motor fin si cel grosolan privind aspectul de deplasare al mouse-ului atunci când se pune problema apasarii butonului utilizatorul trebuie sa aiba mai întâi mâna bine fixata, obligatoriu fiind fortat un control fin.
Pentru a manipula un simbol vizual/gizmo cu mouse-ul, pentru a pozitiona cursorul cu precizie pentru un check-box sau push-button, utilizatorul trebuie sa foloseasca controlul motor fin. Daca însa cursorul este departe de acel simbol vizual, întâi va trebui sa utilizeze controlul motor grosolan pentru a aduce cursorul mai aproape de simbol vizual si va trece la controlul motor fin pentru terminare actiune. Deci orice program care îsi plaseaza zonele de clic distantate la mai mult de cîtiva pixeli învita în mod deschis la neplaceri.
Daca un control dat necesita un clic aici si unul foarte departe este vorba de o proiectare gresita. Totusi omniprezentul scrollbar este o astfel de creatie. Daca dorim sa realizam scroll-down într-un document apasam sageata de jos de câteva ori pâna gasim ceea ce cautam, folosind un control motor fin dar s-ar putea sa fi depasit destinatia, fiind necesar sa revenim. Pentru a realiza acest lucru apasam sageata de sus, dar pentru a face acest lucru trebuie realizata o miscare grosolana de deplasare si una fina de localizare a pozitiei. Dar sagetile scrollbar-ului sunt separate de întreaga lungime a barei fiind simetric, dar mai greu de utilizat. Daca sagetile ar fi fot plasate adicent la unul din capete schimbarea directiei de scroll ar fi fost realizata printr-o simpla miscare deci un control 131c28b fin. (vezi figura de mai jos).
Cei carora le lipseste dexteritatea manuala considera mouse-ul problematic. Uneori si multi utilizatori calculatoristi/ în particular cei care introduc date - considera mouse-ul uneori dificil. Pntru multe din task-urile bazate pe date, tastatura este superioara mouse-ului. Este frustant sa fi nevoit sa iei mâna de pe tastatura pentru a pozitiona cursorul cu mouse-ul pentru ca apoi sa revii din nou la tastatura.
Programele trebuie sa suporte din plin atât mouse-ul cât si tastatura pentru toate miscarile si task-urile.
2. BUTOANE MOUSE
Inventatorii mouse-ului au încercat sa îsi imagineze cât de multe butoane sa puna pe el, dar nu au ajuns la nici un rezultat. Unii au pledat pentru un buton, altii pentru doua sau chiar mai multe. În prezent unul din marile dezavantaje ale Macintosh-ului este mouse-ul sau cu un singur buton.
Un singur buton sacrifica puterea majoritatii utilizatorilor de calculatoare în schimbul simplitatii pentru începatori. Butonul drept de mouse este privit ca un buton suplimentar, butonul stâng fiind singurul de care utilizatorul are nevoie cu adevarat. Aceasta afirmatie devine tot mai putin adevarata pe masura ce interfata utilizator Windows evolueaza.
În general butonul stâng de mouse este utilizat pentru toate functiile principale de manipulare directa sau pentru controale de actionare, pentru selectare, pentru desenare. Prin deductie aceasta înseamna ca functiile pe care butonul stâng nu le suporta trebuie sa nu fie functii majore. Întelesul cel mai comun pentru butonul stâng de mouse este activare sau selectare. Pentru un control ca push-button sau check-box butonul stâng de mouse înseamna apasarea butonului sau marcarea casetei. Daca se face clic stânga pe date în general aceasta înseamna selectare.
Timp îndelungat acest buton a fost tratat ca inexitent de Microsoft dar si de multi altii. Când Borland International a înglobat orientarea pe obiect în întreaga companie, butonul drept de mouse a fost utilizat ca un instrument pentru accesarea unei casete de dialog care sa prezinte proprietatile obiectului. Acest lucru a fost acceptat dar si criticat de Mac-uri care aveau un buton dar si de Microsoft care dispretuia firma Borland. Totusi aceste lucruri s-au schimbat odata cu Windows 95 când firma Microsoft a urmat linia deschisa de Borland si a consacrat butonul drept.
Butonul drept are ca scop furnizarea accesului direct la proprietati. În Windows 3.x Microsoft a avut tentativa de a defini butonul drept de mouse ca fiind un buton shortcut. Adica operatiile care sunt disponibile si prin alte idiomuri sunt disponibile prin butonul drept de mouse. În Windows 95 i s-au atribuit butonului drept actiunile specifice de context (context-specific actions) o modalitate desteapta de a spune proprietati.
Acest buton nu poate fi utilizat decât pentru shortcut. De fapt Microsoft statuteaza ca butonul din mijloc ar trebui asignat operatiilor si functiilor care sunt deja prezente în interfata - definitie pe care altadata a rezervat-o butonului drept de mouse.
Cel mai frecvent folosim un mouse cu doua butoane, dar unele calculatoare au un mouse de tip Logitech cu trei butoane. Aproape niciodata nu ajungem în situatia de a cauta functionalitate suplimentara pe butonul din mijloc. Cei care îl utilizeaza, o fac ca shortcut pentru dublu clic pe buton stâng mouse, o caracteristica care poate fi creata prin configurarea soft-ului de driver mouse, care este de fapt un siretlic la care aplicatia ramâne ignoranta.
3. ACTIUNI REALIZATE CU MOUSE
Din punct de vedere fizic un mouse poate fi mutat de ici colo pentru a puncta diferite lucruri si putem apasa pe buton. Acesta sunt primitivele vocabularului discutate într-un curs anterior. În afara de point si clic orice alte actiuni ale mouse-ului vor fi realizate prin combinarea uneia sau a mai multor astfel de actiuni numite componente.
Actiunile mouse-ului pot fi alterate folosind meta-chei: CTRL, SHIFT,ALT. Setul complet de actiuni mouse ce pot fi realizate fara a utiliza meta-chei este prezentat în lista de mai jos. Pentru a se putea discuta despre ele, i s-a asignat fiecarei actiuni un nume scurt precizat în paranteza.
a) Point (Point)
Aceasta operatie simpla este piatra de temelie a interfetelor grafice utilizator si baza tuturor operatiilor cu mouse-ul. Utilizatorul muta mouse-ul pâna când cursorul corespunzator de pe ecran puncteaza sau este plasat peste obiectul vizat.
b) Point, click, release (Click)
În timp ce utilizatorul tine mouse-ul într-o pozitie ferma el face click cu butonul si-l elibereaza. În general aceasta actiune este definita ca actiunea de schimbare a starii unui simbol vizual sau selectarea unui obiect. Într-o matrice de text sau celule click înseamna - de adus acolo punctul de selectare. Pentru un simbol vizual push-button, o schimbare de stare înseamna ca în timp ce butonul de mouse e apasat (down) si mouse-ul este directionat peste simbol vizual, butonul se va afunda si va ramâne apasat (pushed). Când se elibereaza butonul de mouse butonul simbol vizual este actionat si actiunea lui asociata se produce.
Daca totusi utilizatorul în timp ce tine butonul apasat muta cursorul de pe un simbol vizual, un simbol vizual de tip push-button revine în starea anterioara (unpushed). Daca apoi utilizatorul elibereaza butonul de mouse nu se întâmpla nimic. Aceasta comportare furnizeaza o cale de escape convenabila în cazul în care utilizatorul se razgândeste. Dezavantajul unei astfel de cai pentru escape este faptul ca ea consuma unul dintre cele mai reci idiomuri: a face drag cu un push-button undeva. Butonul sau buticonul poate fi translatabil deci ar trebui creat un idiom care sa permita o gramatica verb-obiect în plus fata de norma normala obiect-verb.
c) Point, click, drag, release (Click&Drag)
Aceasta operatie are multe utilizari comune incluzând selectare, reformatare, repozitionare, desenare si drag&drop. Ele vor fi discutate mai pe larg în cursurile urmatoare.
d) Point, click, release, click, release(Dublu-Click)
Daca simplu click selecteaza ceva, dublu click selecteaza ceva si realizeaza o actiune. Aceasta interpretare fundamnetala provine de la Machintosh si ramâne un standard în toate interfetele grafice utilizator contemporane.
În ciuda unor divergente rolul lui dublu-click în Windows 95 este diminuat semnificativ. În timp ce dublu-click pe date este binevenit, dublu-click pe majoritatea simbol vizual-urilor nu au nici o semnificatie iar un click suplimentar este respins. Multe simboluri vizuale nu reping un click dar îl ignora. Daca un simbol vizual ramâne pe loc se va interpreta ca un al doilea click pe el. În functie de simbol vizual acest click suplimentar poate fi benign sau problematic.
Daca e vorba de un buton on-off se va constata ca s-a revenit în starea din care s-a pornit. Daca în schimb este vorba de un simbol vizual care dispare dupa primul click, precum butonul OK dintr-o caseta de dialog, rezultatele pot fi imprevizibile.
e) Point, click, click alt buton, release, release (Chord-Click)
Chord-clicking înseamna apasarea a doua butoane de mouse simultan desi nu este neaparata nevoie sa fie apasate sau eliberate exact în acelasi timp. Pentru a fi recunoscut drept chord-click al doilea buton de mouse trebuie apasat putin înaninte de eliberarea primului buton.
Exista 2 variante de chord-click. Prima este mai simpla când utilizatorul puncteaza mai degraba ceva si apasa ambele butoane în acelasi timp. Acest idiom nu este prea uzual în soft-ul actual desi unii programatori creativi l-au implementat ca pe un substituent pentru cheia Shift de selectare. A doua varianta utilizeaza chord-clicking pentru a termina un drag. Drag începe ca un simplu drag cu un buton, apoi utilizatorul foloseste al doilea buton. Desi aceasta tehnica este putin ciudata ea si-a gasit o larga utilizare deoarece ea se potriveste perfect pentru anularea operatiilor de drag.
f) Point, click, release, click, release, click, release (Triplu-Click)
Exista programe care au actiuni ce implica triplu-click. De exemplu în Word triplu-click este utilizat pentru a selecta paragrafe întregi. Logica este simpla - un simplu click selecteaza un caracter, dublu-click selecteaza un cuvânt, iar un triplu-click selecteaza un paragraf.
Pentru aplicatiile suverane orizontale care au o utilizare larga, precum procesoarele de text si spreadsheet-urile merita sa se implementeze triplu-click. Pentru programele care sunt mai putin utilizate câteva ore zilnic este caraghios. În timp ce recurgem la acest idiom trebuie sa asiguram utilizatorului si alte metode pentru realizarea aceluiasi task. De exemplu în Word pentru a selecta un paragraf fara triplu-click putem proceda astfel:
dublu click în marginea din stânga
click în marginea din stânga dupa prima linie si drag în jos pâna la ultimul cuvânt
click la începutul primului cuvânt si drag pâna la sfârsitul ultimului cuvânt
click la începutul primului cuvânt si CTRL-SHIFT-RIGHT-ARROW pâna când toate cuvintele din paragraf sunt selectate
click la începutul primului cuvânt si CTRL-SHIFT-PAGEDOWN
dublu-click la începutul primului cuvânt si drag pâna la sfârsitul ultimului cuvânt
g) Point, click, release, click, drag, release (Dublu-Drag)
Executia unui dublu-click si drag cere o îndemânare deosebita. Ca si triplu-click este util doar în aplicatiile suverane, orizontale. În Word putem utiliza dublu-drag în permanenta ca instrument de selectare. Un dublu-click pe text selecteaza întreg cuvântul; extintând functia se poate extinde selectia cuvânt cu cuvânt prin dublu-drag. De exemplu faca dorim sa stergem o fraza în mijlocul unei secvente facem dublu-click în mijlocul primului cuvânt apoi drag pâna selectez toata fraza. Este greu de procedat astfel dar Microsoft a adaugat o caracteristica în Word care extinde automat selectia, la limita de cuvânt, în mod implicit. Pentru cei carora nu le place caracteristica poate fi pusa pe off tolerând dublu-drag. În aplicatii mari suverane, astfel de idiomuri sunt corespunzatoare.
Oricare dintre aceste actiuni enumerate mai sus (exceptând chord-click) poate fi realizata cu oricare din butoanele unui mouse cu doua butoane. Teoretic este posibil un cvadruplu-click sau un cvintuplu-click .dar si un triplu-click necesita îndemânare, iar un dublu click adesea demoralizeaza o persoana neîntemânatica. Windows 95 este proiectat pentru a se putea lucra cu el 100% doar cu primele trei actiuni.
Tratare evenimente actionare mouse
De fiecare data când un utilizator apasa pe un buton de mouse, programul are de tratat doua evenimente discrete: evenimentul button-down si button-up. Când se selecteaza un obiect selectia trebuie sa aiba loc întotdeauna la button-down deoarece acesta reprezinta primul pas dintr-o secventa drag. Prin definitie nu se poate face drag cu ceva înaninte de a-l selecta deci selectia trebuie sa aiba loc la button-down. Daca nu utilizatorul va trebui sa realizeze o cerere de dublu-drag.
Design tip - Button down înseamna selectare de date
Pe de alta parte daca cursorul este pozitionat mai degraba, peste un simbol vizual decât pe date selectabile, actiunea asociata evenimentului button-down este tentativa de a activa tranzitia de stare pentru simbol vizual. Când simbol vizual-ul vede evenimentul button-up el înregistraza tranzitia de stare.
Design tip - Button-down înseamna propunere de actiune;
button-up înseamna înregistrarea actiunii pentru simbol vizual
Acesta este un mecanism care permite utilizatorului sa se aplece gratios la un click necorespunzator. De exemplu pe un push-button, utilizatorul poate sa mute mouse-ul în afara butonului iar selectia va fi dezactivata chiar daca butonul mouse-ului e apasat. Pentru un check-box semnificatia e simulara: la button-down în mod vizual check-box-ul arata ca este activat, dar marcarea nu apare pâna la tranzitia button-up.
Cursor mouse
Cursorul este reprezentarea vizibila pe ecran a pozitiei mouse-ului. Prin conventie în mod normal este o mica sageata indicând usor Vest spre Nord, dar sub controlul programului poate fi modificat la orice forma cât timp ramâne relativ mic: 32 x 32 pixeli. Deoarece cursorul trebuie sa se rezume la un singur pixel, trebuie sa existe cale pentru ca acesta sa indice precis pixelul punctat. Acest lucru se realizeaza desemnând întotdeauna un singur pixel al oricarui cursor drept focus curent pentru punctare numit hotspot.
Pe parcursul mutarii mouse-ului pe ecran unele obiecte pe care mouse-ul le puncteaza ramân inerte. Denumim orice obiect sau zona de pe ecran care reactioneaza la o actiune mouse ca fiind pliant , având flexibilitate. Un simbol vizual push-button este pliant deoarece poate fi apasat prin cursorul de mouse. Orice obiect care poate fi luat si translatat este pliant - orice icon de director sau fisier din Explorer.
Când obiectele de pe ecran sunt pliante acest fapt trebuie comunicat utilizatorului. Daca faptul nu este facut evident, idiomurile înceteaza de a mai fi utile. Exista trei metode de a comunica utilizatorului faptul ca un obiect este pliant: prin propietatile vizuale statice ale obiectului însusi, prin schimbarea dinamica a propietatilor sale vizuale sau prin schimbarea proprietatilor vizuale ale cursorului cînd trece peste obiect.
Daca flexibilitatea obiectului este comunicata prin propietatile vizuale statice ale obiectului însusi prin schimbarea dinamica a proprietatilor sale vizuale statice ale obiectului însusi numim aceasta sugerare vizuala statica (static visual hinting). Sugerare vizuala statica indica mai degraba modalitatea prin care obiectul este desenat pe ecran. Unele obiecte vizuale nu sunt chiar atât de evidente fie datorita faptului ca sunt prea mici sau sunt ascunse.
Daca obiectul direct manipulabil este în afara zonei centrale a programului - scrollbar-uri, bara Status de la baza ecran - se poate întâmpla ca utilizatorul sa nu înteleaga ca acele obiecte sunt direct manipulabile. Acest caz cere o sugerare vizuala mai agresiva pe care o numim sugerare vizuala activa (active visual hinting). Ea functioneaza astfel - când cursorul trece peste un obiect pliant obiectul îsi schimba aparenta printr-o deplasare animata. Aceasta actiune intervine mai degraba când cursorul trece peste obiect înainte ca oricare dintre butoanele mouse-ului sa fie apasate.
Daca flexibilitatea obiectului este comunicata printr-o schimbare a cursorului când trece peste obiect, numim aceasta sugerarea cursorului (cursor hinting). Deoarece cursorul se schimba dinamic, sugerarea acestuia este activa.
Majoritatea soft-urilor deja populare mixeaza sugerarea vizuala cu sugerarea cursorului. De exemplu push-buttonul este redat tridimnesional iar forma sa indica în mod clar ca obiectul este ridicat si permite sa fie apasat dar când cursorul trece peste el nu se modifica. Când cursorul trece peste frame-ul unei ferestre cumulate, se modifica într-o sageata cu doua capete, aratând axele dupa care fereastra poate fi redimensionata. Simbol vizual-urile ofera în mod uzual sugerare vizuala statica în timp ce datele liante ofera frecvent sugerarea cursorului. Sugerarea cursorului implica schimbarea acestuia într-o forma care indica care este tipul de actiune de manipulare directa acceptabila, totusi rolul sau cel mai important este de a face ca utilizatorului sa îi fie clar faptul ca acel obiect este pliant.
Exista o a treia varianta e sugerare a cursorului numita sugerarea cursorului wait (wait cursor hinting). Ori de câte ori programul executa ceva care necesita un volum semnificativ de timp (în termeni umani) programul schimba cursorul într-o indicatie vizuala, în sensul ca programul a devenit stupid, în Windows aceasta imagine este familiara clepsidra. Alte sisteme de operare au utilizat ceasuri de mâna, tamburines au tobe, sfârleze si cesti de cafea aburinde.
Problema interfetei utilizator apare deoarece cursorul apartine sistemului si este doar împrumutat de un program atunci când invadeaza spatiul acestuia. Într-un sistem ne-preemptiv precum Windows 3.x, folosirea cursorului pentru a indica Wait este un idiom rezonabil. În lumea multitasking preemptiv din Windows 95 când un program devine stupid nu mai e necesar ca si alte programe care se executa sa devina stupide. În acest caz cursorul nu poate fi folosit pentru a indica starea ocupat a unui singur program. Windows 95 a fortat Microsoft sa regândeasca cursorul Wait. S-a dorit pastrarea idiomului familiar pentru sugerarea cursorului Wait. S-a decis ca programele sa arate cursorul clepsidra doar în cadrul ferestrelor proprii , ceea ce logic este corect. Daca din neatentie utilizatorul muta cursorul de pe fereastra principala a unui program ocupat pe cea a unui program care se executa cursorul va reveni la forma normala, deci sugerarea vizuala este eronata. În ultima instanta fiecare program trebuie sa indice starea sa de ocupat prin schimbarea vizuala a propriei imagini. Daca starea de ocupat depinde de unde puncteaza cursorul, nu merge utilizarea acestuia pentru indicarea starii de ocupat, deci multitasking-ul preemptiv va omorî ideea de cursor Wait.
Meta chei
Meta-cheile (meta-keys) pot fi utilizate în
conjunctie cu mouse-ul. Meta-cheile includ - CTRL,
E o idee buna sa folosim sugerarea cursorului pentru a ilustra semnificatia meta-cheilor, în ansamblu si multe programe ar trebui sa o faca. De asemenea asa ceva trebuie facut în mod dinamic. Când meta-cheia este apasata (down) cursorul ar trebui sa se schimbe imediat pentru a reflecta noua intentie a idiom-ului.
Allen Cooper prefere sa
utilizeze
4. UTILIZARE MOUSE PENTRU SELECTII
Cu ajutorul mouse-ului putem realiza doua lucruri de baza - sa alegem ceva si sa selectam ce sa facem cu ce am ales. Aceste actiuni de alegere sunt referite ca selectie (selection).
Obiect-verb
Într-o interfata utilizator o aparitie fundamentala o reprezinta secventa în care sunt date comenzile. Fiecare comanda are o operatie si unul sau mai multi operanzi. Operatia descrie actiunea iar operanzii reprezinta tinta operatiei. Proiectantii interefetelor utilizator utilizeaza terminologia urmatoare: operatie = verb (verb) si operand = obiect (object). Putem specifica verbul urmat de obiect sau specificam obiectul urmat de verb. Acestea se numesc ordine verb-obiect (verb-object) si respectiv obiect-verb (object-verb). Interfetele moderne utilizator le folosesc pe amândoua.
În epoca în care compilatorele unor limbaje (Cobol,Fortran) erau vârful înaltei tehnologii toate limbajele de calculator utilizau ordonarea verb-obiect. Scriitorii de compilatoare au facilitat transformarea codului sursa în cod executabil dar nu s-a pus problema ca ordonarea verb-obiect este cea mai corecta. Când au aparut interfetele grafice utilizator ordonarea verb-obiect a creat o problema. Într-o interfata înteractiva daca utilizatorul alege un verb atunci sistemul trebuie sa intre într-o stare care difera de norma -asteptarea unui obiect. În mod normal utilizatorul va alege un obiect si toate vor fi OK. Însa utilizatorul poate doreste sa actioneze asupra mai multor obiecte, caz în care programul trebuie sa accepte toti operanzii pâna utilizatorul va introduce o comanda speciala de terminare a listei de obiecte.
Prin inversarea ordinii comenzii în obiect-verb nu mai avem nevoie de terminatie, utilizatorul selecteaza obiectele asupra carora va opera, apoi va indica ce verb va fi executat asupra acestora. În loc ca programul sa tina minte verbul în timp ce utilizatorul specifica unul sau mai multe obiecte, solicitam programului sa memoreze unul sau mai multe obiecte în timp ce utilizatorul alege verbul. Procedând astfel avem nevoie de un mecanism pentru a identifica, marca si tine minte operatorii alesi. Selectia este mecanismul prin care utilizatorul informeaza programul despre obiectele tinute minte de el.
Într-o interfata interactiva precum casetele de dialog conceptul de selectie nu este neaparat necesar întotdeauna. În mod natural casetele de dialog vin cu o comanda de terminare a listei de obiecte - buton OK. Utilizatorul poate alege mai întâi o functie apoi obiectul sau invers deoarece întreaga operatie nu se produce decât dupa apasarea butonului de confirmare - buton OK. Deci ordonarea obiect-verb nu este utilizata în majoritatea casetelor de dialog.
În varianta cea mai simpla teoretica selectia este realizata astfel: utilizatorul puncteaza folosind cursor de mouse pe un obiect de date, face click si obiectul e selectat. În practica sunt implementate mai multe variante.
Date concrete si discrete
Unele programe reprezinta datele ca obiecte vizuale distincte, care pot fi manipulate independent de alte obiecte. Aceste obiecte sunt selectate independent una de cealalta. Ele sun date discrete(discrete data) iar selectia care le cuprinde se numeste selectie discreta(discrete selection). Datele discrete nu sunt în mod necesar omogene iar selectia discreta nu este în mod necesar continua. Alte programe îsi prezinta datele ca o matrice de piese de date contigue. Textul dintr-un procesor de text sau celulele unui spreadsheet sunt concretizarea a sute de mii de obiecte similare care formeaza împreuna un întreg coerent. Adesea aceste obiecte sunt selectate în grupuri solide pe care le numim date concrete (concrete data) iar selectia lor - selectie concreta (concrete selection).
Ambele tipuri de selectie suporta selectia simplu clcik si cea clik&drag. Simplu click selectaza cantitatea discreta cea mai mica posibila iar click&drag selecteaza o cantitate ceva mai mare. Natura unei selectii discrete este discontinua în timp ce selectia concreta este continua. Într-un document procesor de texte exista o ordine naturala a textului- date concrete. Stricând ordinea literelor se distruge sensul textului. Datele discrete nu au o ordine inerenta. Într-un program de desenare obiectele sunt independente.
Majoritatea programelor de desenare ofera o facilitate de grupare care permite gruparea împreuna, logica a mai multor obiecte discrete pentru a forma un singur obiect discret nou. Putem selecta mai mult de un obiect discret dar acestea ramân o serie de selectii independente si nu un subset de date ordonate.
Insertie si înlocuire
Selectia indica datele asupra carora va opera urmatoare functie. Daca aceasta este o comanda write - datele introduse se vor scrie în datele selectate. Într-o selectie discreta sunt selectate mai multe obiecte iar datele sunt oferite obiectelor selectate, discrete care le prelucreaza în maniera proprie. Acestea ar putea provoca o actiune de înlocuire (replacement) în care datele introduse înlocuiesc obiectul selectat.
Într-o selectie concreta datele introduse înlocuiesc întotdeauna datele selectate în mod curent. Selectia concreta arata o remarca unica legata de insertie, acolo unde selectia poate sa se reduca la un singur punct care indica locul dintre doi biti de date. Acest loc se numeste punct de insertie (insertion point). O alta modalitate de a gândi despre punctul de insertie este selectia nula. Prin definitie tastând într-o selectie aceasta se înlocuieste prin noile caractere, dar daca selectia e nula, noile caractere nu înlocuiesc nimic mai degraba sunt inserate. Deci cu alte cuvinte insertia este un caz ordinar al înlocuirii.
În general când se realizeaza o selectie, orice selectie anterioara este anulata. Aceasta comportare se numeste excludere mutuala (mutual exclusion) cât timp selectia uneia exclude selectia celeilalte. Excluderea mutuala este regula atât pentru selectia discreta cât si pentru cea concreta. Unele sisteme permit ca un obiect selectat sa fie deselectat prin click pe el a doua oara; trebuie decis daca acest lucru este sau nu corespunzator pentru program.
Selectie aditiva
Este de neimaginat un program de selectie concreta si care sa nu aiba excludere mutuala, deoarece utilizatorul nu poate vedea ce efect vor avea actiunile sale. Sa ne imaginam ca putem selecta paragrafe de text independente într-un document amplu, problema o reprezinta scroll-ul, majoritatea programelor avînd datele selectabile concret sunt scroll-abile. Daca punem excluderea mutuala pe off într-o selectie discreta avem de-a face cu cazul simplu în care mai multe obiecte independente pot fi selectate mai degraba prin click pe câteva din ele. Aceasta este selectia aditiva.
Majoritatea sistemelor de selectie discreta implementeaza implicit excluderea mutuala utilizând o meta-cheie. Cea mai utilizata meta-cheie este SHIFT. Sistemele cu selectie concreta nu ar trebui sa permita niciodata selectie aditiva deoarece nu ar trebui sa existe mai mult de o selectie într-un sistem concret. Sistemele cu selectie concreta nu au nevoie sa asigure extensia selectiei unice pentru aceasta utilizându-se meta-chei - se pot utiliza CTRL sau SHIFT. În Word cheia SHIFT determina selectarea a orice se afla între selectia initiala si SHIFT-click. Exista alte programe care au functii de selectie aditiva similare si optiuni diferite pentru meta-chei. Oricum între alternative exista putine diferente practice.
Selectie de grup
Operatia clic&drag este baza pentru selectia de grup. Într-o matrice de text sau celule înseamna extinde slelectia de la punctare mouse-down la punctare mouse-up. O astfel de selectie se poate modifica si cu meta-chei. Aplicatiile ar trebui sa-si îmbogateasca interactiunea cu cât mai multe variante posibile. Utilizatorii experimentati vor ajunge sa le memoreze si sa le utilizeze atâta timp cât varinatele sunt simple din punct de vedere manual.
În general într-o colectie de obiecte discrete, operatia click&drag începe printr-o deplasare drag&drop. Daca butonul mouse-ului este apasat în zona "open dintre obiecte mai degraba decât pe fiecare obiect specific semnificatie este una aparte - se creaza un dreptunghi-drag (dragrect).
Un dragrect este un dreptunghi dinamic al carui colt din stânga-sus este punctarea mouse-down, iar coltul dreapta-jos este punctarea mouse-up. Atunci când butonul a fost eliberat orice obiect si cele incluse în dreptunghiul virtual deci în dragrect sunt selectate ca un grup.
Dar trebuie sa fim siguri ca oricine poate indica usor prin simpla inspectare care este obiectul selectat si care nu. Nu este sificient sa putem vedea ca sunt doar diferite. De asemenea un numar semnificativ de persoane nu percep culoarea, deci doar ea singura nu este suficienta pentru a distinge selectii.
Indicare vizuala selectie
În mod traditional selectia se realizeaza prin inversare (inversion) - prin inversarea pixelilor obiectului selectat. Pe un ecran monocrom înseamna comutarea tuturor pixelilor albi în negri si a celor negri în albi. Tehnica utilizata pentru inversare de Apple a fost prin intermediul unui Xor (sau exclusiv) aplicat asupra pixelilor obiectului selectat. Nu întâmplator Xor este una din operatiile cele mai rapide pe care le poate executa un CPU. Un Xor este si inversabil operatia putând fi anulata repetând un Xor identic.
Microsoft a continuat aceasta tehnica chiar daca nu a fost niciodata un sistem monocrom. Gaselnita a fost aceea ca rezultatul unei operatii Xor este definit doar când operanzii sunt binari - on sau off (unu sau zero). Colorul este reprezentat prin mai mult de un singur bit. Un ecran de 256 culori utilizeaza 8 biti. Când Xor se foloseste cu numere mai complexe bitii individuali se inverseaza fiabil însa apare o problema când noua valoare este transmisa ecranului video-fizic. Diferitele driver-e video interpreteaza acesti biti în maniere diferite. Rezultatul este acela ca desi operatia Xor va fi reprezentata consistent pe un calculator va fi complet diferita pe un altul.
Procesoarele de text si spreadsheet-urile arata întotdeauna text albastru pe background alb, deci este rezonabil sa se utilizeze Xor pentru a arata selectia inversata. Inversarea functioneaza chiar si când se folosesc culorile dar rezultatelor le va lipsi estetica.
În versiunea Windows 3.0 Microsoft a definit doua noi setari de sistem - COLOR_HIGHLIGHT si COLOR_HIGHLIGHTTEXT. Aceste constante reprezinta culori modificabile decât culori fixate. Fiecare utilizator poate modifica definitia acestor variabile care vor ramâne constante apoi pentru toate aplicatiile. Odata cu acestea a mai aparut un standard nou de utilizat - când un obiect e selectat culoarea sa se modifica în oricare ar fi culoarea reprezentata de COLOR_HIGHLIGHT. Orice text sau pixeli de contrastare din cadrul obiectului selectat se schimba în oricare ar fi culoarea reprezentata de COLOR_HIGHLIGHTTEXT.
Design tip - Folositi COLOR_HIGHLIGHT si COLOR_HIGHLIGHTTEXT
pentru a arata selectia.
Daca sunteti responsabil cu selectia intensiva pentru un program precum un procesor de text sau spreadsheet ar fi bine sa folositi inversarea Xor pentru a indica selectia. Daca doriti sa o faceti corect si sa aratati tuturor abilitatea practica folositi COLOR_HIGHLIGHT.
În cazul în care avem de-a face cu obiecte multicolore singura solutie decenta pe care putem sa o utilizam este sa adaugam imaginii indicatoare de selectie decât sa schimbam culoare imaginii selectate prin inversare sau COLOR_HIGHLIGHT.
Indiferent de culoarea pe care o alegem într-un mediu puternic colorat selectia ar putea fi pierduta vizual. Solutia utilizata este de a marca vizual selectia printr-un grafic aditional care arata conturul acesteia. Aceasta se realizeaza cu mici casete care înconjoara obiectul selelctat numite grapples. Aceste casete se pot pierde în programele puternice de manipulare a imaginilor. Exista o modalitate de asigura ca selectia va fi mereu vizibila, referitor la culorile utilizate - indicare selectiei prin miscare.
|