Newsgroup: it.comp.programmare
Titolo: Chi usa ancora le "barre di scorrimento"?

E' arrivato il momento di implementare le barre di scorrimento, ma prima
vorrei sapere se qualcuno ha qualcosa di meglio da consigliarmi.
Non ho intenzione di fare un clone di Windows quindi ho piena libertà.
Qualche consiglio?
Kiuhnm



RICOVERATELOOOOOOO :))
--------------------------------
Inviato via 
http://usenet.libero.it

 wrote in
news:zoDx9.72003$
aL4.2...@news1.tin.it
: 

Finora le barre di scorrimento sembrano essere la soluzione migliore 
per gestire un area scrollabile.
Soddisfano due requisiti fondamentali:
- fanno capire che l'area è scrollabile, in che direzione è 
scrollabile e, in molti casi, quanta parte dell'area totale è 
visibile in un dato momento.
- permettono di scrollare in modo intuitivo, semplice e preciso.
Non sono una prerogativa di Windows (che dal punto di vista della GUI 
è veramente poco originale) e sono utilizzate sia da MacOS (sia nella 
versioni "classic" che nella versione X), dalle GUI, window managers 
e toolkit basati su X Windows e dai sistemi palmari.
Possono essere migliorate rispetto a quelle standard di windows 
raddoppiando le freccette alle estremità se la barra è molto lunga 
(si evita di dover fare movimenti ampi con il mouse per cambiare la 
direzione di scroll) e supportando eventuali funzioni di scroll 
supportate dal mouse (rotella o tasto scroll).
Le barre di win32 rispetto alle loro "antenate" a 16 bit (windows 2 e  
3) supportano la larghezza/lunghezza del "thumb" proporzionale 
all'area di scroll, funzionalità indubbiamente ergonomica.
L'unica soluzione alternativa che ho visto è quella di fornire un 
rettangolo che rappresenta tutta l'area scrollabile con all'interno 
evidenziato un altro rettangolo con l'area effettivamente 
visualizzata. Può essere utile per visualizzare mappe, disegni o 
informazioni con una pesante componente grafica, ma diventa 
"intrusivo" (occupa parte dell'area dedicata ai contenuti o comunque 
la limita) se utilizzato per testi, pagine web, tabelle e contenuti 
prevalentemente testuali.
Forse questo rettangolo potrebbe essere reso disponibile attraverso 
la scroll bar, magari con un bottoncino "zoom" che apre un pop-up.
-- 
Valter Minute
vmi...@inwind.it
 (the reply address of this message is invalid)

 vorrei sapere se qualcuno ha qualcosa di meglio da consigliarmi.
Intendi le barre di scorrimento grafiche?
Dipende, comunque, dall'informazione che devi rappresentare... se essa è più
"intuitivamente" rappresentata con una barra di scorrimento, oppure con un
"punta e clicca"...
*** Azimuth ***


Stai realizzando un sistema operativo? E' proprio così importante
realizzare una interfaccia grafica autonoma? Potresti utilizzare quelle
già esistenti, o no?
ciao

 e toolkit basati su X Windows e dai sistemi palmari.
Si, ma le scroll-bar proporzionali (quelle usate da Win95+) sono nate su 
Amiga... Nel 1985 o giů di li... ;)
-- 
Luc.

 
Il workbench di Amiga era sicuramente una GUI più innovativa rispetto 
al contemporaneo equivalente microsoft (windows 2 e poi 3), così come 
lo erano GEM (sia su PC che su Atari, anche se era pensato come mac-
clone e risentiva di questa influenza, pur fornendo più funzionalità 
di windows 1.x), DesqView e il successivo DesqView/X (che mescolavano 
interfaccia a carattere e GUI vera e propria) e altre GUI dell'epoca 
(anche limitate a un solo applicativo, come d'uso sotto ms-dos).
Windows non ha portato grandi innovazioni nel campo delle GUI, tanto 
che apple era anche ricorsa alle vie legali contro quello che 
riteneva un "plagio" del mac (a sua volta ripreso dalla GUI inventata 
da Xerox a cui, però, apple aveva pagato dei diritti).



Sì, sì, no.
Kiuhnm

 la scroll bar, magari con un bottoncino "zoom" che apre un pop-up.
Mi hai dato una bellissima idea: non potrei utilizzare la finestra stessa
come rettangolo-mappa?
Tenendo premuto il terzo tasto del mouse (per es.) si può fare scorrere un
cursore (trasparente) che assumerà le dimensioni dell'aria visibile in quel
momento (sia in larghezza che in altezza). Mentre si scorre col mouse sulla
finestra (il cursore può essere trascinato o semplicemente posto in un
punto) il contenuto della finestra cambia di conseguenza.
In questo modo non avrei bisogno delle due barre di scorrimento (H e V) e
risparmierei anche un po' di spazio.
Inoltre sarebbe innovativo o se non altro "non così comune" :-)
Kiuhnm

 
Credo che nel design di una GUI si debba ricercare soprattutto 
l'intuitività, la semplicità e la comodità d'uso, la funzionalità e 
non soluzioni "innovative" fini a se stesse. Progettare 
un'interfaccia utente non è compito banale e un'iterfaccia mal 
concepita può rendere inutile (in quanto inutilizzabile) anche il più 
performante dei programmi.
Prima di passare alla pratica ti consiglio di leggere "the design of 
everyday things" di Donald Norman. E' un libretto di meno di 200 
pagine, scritto con un linguaggio semplice e comprensibile.
Ci sono già troppe GUI pensate più per stupire che per essere 
utilizzate produttivamente.


 Inoltre sarebbe innovativo o se non altro "non cosě comune" :-)
Sarebbe solo contro il normale funzionamento delle piů comuni GUI, quindi 
renderai "nervosi" gli utenti del tuo programma cosi progettato.
Ovviamente, perň, č un ottimo esercizio. ;)
-- 
Luc.

 utilizzate produttivamente.
Non mi affido ai libri per queste cose.
Ci vuole fantasia e inventiva.
Tra 10 anni apparirà un altro libro che stabilirà altre modalità, ecc...
Secondo me questo tipo d'interfaccia può funzionare senza problemi e
sostituire le scomodissime (almeno per me) barre di scorrimento.
Prima realizzerò un'interfaccia del genere in Windows (per fare prima) poi,
se mi soddisferà, la metterò in pratica.
Se vuoi, ti manderò il programma per Windows con la pseudo-interfaccia così
potrai dirmi che cosa ne pensi e consigliarmi qualche modifica o bocciare il
progetto!!!
Ovviamente terrò conto anche del parere di altre persone.
Kiuhnm

 Ovviamente, però, è un ottimo esercizio. ;)
No, sarà tutto fuorchè un esercizio.
Comunque grazie per aver espresso il tuo parere (di cui terrò conto).
Kiuhnm

 creando sistemi operativi sempre più bimbo-oriented.
Beh, deformazione professionale, i ns. programmi vengono utilizzati dai 
giornalisti... Per forza li dobbiamo progettare baby-oriented... ;)
-- 
Luc.

 Ovviamente terrò conto anche del parere di altre persone.
E perchè non di quello di Donald Norman?


 pagine, scritto con un linguaggio semplice e comprensibile.
Bellissimo! Consiglio, caldamente.
Anche "Il computer invisibile". Un must.
*** Azimuth ***

 Inoltre sarebbe innovativo o se non altro "non così comune" :-)
E`, se ho capito bene, esattamente la stessa cosa che fa Gimp, ma
potresti aggiungere un rettangolo (tipo i movimenti wireframe delle
finestre nei wm) per dare l'idea delle dimensioni totali.
Mi sa che per spiegarlo bene dovrei fare un disegno :)
Bye.

 Mi sa che per spiegarlo bene dovrei fare un disegno :)
Ho visto gli screenshot di Gimp e mi pare che usi delle normali barre di
scorrimento.
Comunque avevo pensato di usare un rettangolo trasparente anzichč un
rettangolo wireframe.
Kiuhnm

 rettangolo wireframe.
Si`, usa delle barre di scorrimento, ma da uno screenshot non puoi
capire il sistema di scrolling, perche` e` invisibile.
In pratica premi il tasto centrale sull'immagine e trascini il mouse. Se
vai a destra vedi nuove parti a sinistra, un po' come avere un foglio
sotto una lente di ingrandimento, poggiarci la mano (sul foglio)e spostarlo,
continuando a vedere attraverso la lente.
Io proponevo di perfezionare il sistema sovrapponendo all'immagine un
rettangolo (diciamo circa al centro della finestra) che rappresenta il
"tutto" e inscrivendoci un altro rettangolo che rappresenta l'area
visibile. Muovendo il mouse si vede il rettangolo inscritto che si
sposta, facendo capire quale parte dell'immagine di vede o si vedra` una
volta rilasciato il tasto.
Non so se mi sono spiegato :)
Bye.

 
Questo funziona solo se la finestra e l'immagine hanno un rapporto di 
dimensioni tra altezza e larghezza o se la finestra rappresenta una 
porzione significativa dell'immagine. 
Altrimenti il rettangolo può essere complicato da scalare. Pensa a una 
finestra di 400x300 pixel su un'immagine (o un testo, o una pagina web) 
di 400x6000 pixel.
Credo che un sistema simile possa essere affiancato alle scroll-bar in 
alcuni casi, ma non sostituirle completamente.
Ricordo un'applet per enlightenment (esempio di una GUI costruita più 
per soddisfare la vista che per facilitare il lavoro) che visualizzava 
i vari desktop "virtuali" come miniature e permetteva di spostarsi tra 
i desktop (senza scroll) o trascinare le finestre da un desktop 
all'altro. Questa potrebbe essere un'approssimazione di un sistema di 
scroll adatto a mappe, grafici, immagini e disegni di grandi dimensioni 
ma diventa complicato per finestre con molto testo (illeggibile) e 
richiede parecchio tempo per il rendering delle "miniature".


 creando sistemi operativi sempre più bimbo-oriented.
Non mi pare sia stato detto me devi pensare anche per quanto verrà usato il 
tuo programma.
Se verrà usato mediamente una volta al mese pochi avranno voglia di 
imparare una cosa nuova. Diverso se il programma verrà usato per 8 ore al 
giorno, in tal caso una fatica iniziale potrebbe aiutare molto in un 
secondo tempo.
-- 
Marco Barisione (ICQ 84277092)

 richiede parecchio tempo per il rendering delle "miniature".
Infatti il mio sistema non prevede miniature dell'immagine, solo due
rettangoli sovrapposti all'immagine. Il piu` grande a rappresentare la
totalita` della "finestra virtuale", il piu` piccolo l'attuale "finestra
reale". Spostando il mouse si vede il rettangolo piu` piccolo che si
muove all'interno di quello piu` grande, bloccandosi al tocco coi bordi.
Si potrebbe scegliere di aggiornare dinamicamente l'immagine sotto (come
fa gimp) o semplicemente aggiornarla solo quando si rilascia il tasto
centrale, per aumentare le prestazioni ed evitare scatti sulle schede
grafiche piu` lente.
Non entro nel merito della user-friendliness di un sistema del genere
relativamente all'uso delle classiche barre, ma credo sia piu` intuitivo
di quello attuale di gimp, per esempio.
Bye.


Hai ragione: non l'ho specificato.
E' un po' come il Softice che all'inizio ha un'interfaccia piuttosto ostica
(visto che si fa praticamente tutto tramite comandi scritti) però alla fine
si rivela veramente potente.
Il mio programma è nato come kernel debugger (e quindi concorrente del
Softice), ma continuando ad aggiungere funzionalità mi sono ritrovato con
una buona parte di sistema operativo e così mi sono chiesto: perchè non fare
un ambiente di debugging anzichè un semplice debugger?
Quindi è praticamente un sistema operativo all'interno del sistema operativo
(Windows) e viene richiamato tramite una pressione di Hot Key.
Kiuhnm

 Non so se mi sono spiegato :)
Ti sei spiegato perfettamente e devo dire che è proprio quello che voglio
fare.
Mi credi se ti dico che ero proprio arrivato a questa idea prima di leggere
il tuo msg? :-)
Comunque voglio anche dotare il tutto di posizionamento assoluto, ma devo
pensare un modo comodo.
Kiuhnm

 Hai ragione: non l'ho specificato. [...]
Uff, e pensare che sapevo anche cosa stavi scrivendo...
Io ti consiglio di aggiungere le caratteristiche che vuoi, ma di non 
togliere quelle a cui l'utente è abituato come le scroll bar.


 consigliarmi.
qualcosa di contestuale, che sfrutti la posizione in cui si trova il 
mouse al momento, per non dover andare a caccia di venti pixel a bordo 
schermo (quando va bene) - il famoso principio "il punto più facile da 
raggiungere è quello in cui ci si trova". Buono il mirino con il terzo 
tasto, da quando ho il mouse nuovo non uso altro - effettivamente 
cancella qualsiasi utilità delle barre di scorrimento, tranne come modo 
molto efficiente in termini di spazio per mostrare la posizione in cui 
ci si trova. Fai qualcosa di simile. Magari, se non ti va di dipendere 
dal terzo tasto, sfrutta appieno il destro: se lo usi per il menu 
contestuale, usa i menu a torta e il mirino come caso particolare del 
menu, o usa il trascinamento per richiamare il mirino e il click per 
richiamare il menu
-- 
 < 
http://www.reactos.com/
 >  Open source clone of Windows NT. Current
     Don't stand, REACT!      version 0.0.20. C, C++ and ASM developers
                              and beta testers are welcome!

 e il click per richiamare il menu
Adesso sto facendo qualche prova con Windows.
Appena l'interfaccia mi sembrerà soddisfacente posterò un piccolo "demo"
(un text viewer).
Kiuhnm

 Stai realizzando un sistema operativo?
praticamente. E' un kernel debugger, se ricordo bene


 praticamente. E' un kernel debugger, se ricordo bene
Sě, ma ormai penso che cambierň descrizione dato che non si sono mai visti
kernel debugger con multitasker in Ring 0 o roba del genere.
Diciamo che č un piattaforma di debugging (che si appoggia a Windows ed
esamina programmi per Windows).
Kiuhnm

 togliere quelle a cui l'utente è abituato come le scroll bar.
Era li che volevo arrivare... Evitare le "fighettate"...
-- 
Luc.


Le barre di scorrimento non erano "fighettate" prima che le usassero per la
prima volta?
Kiuhnm

 prima volta?
Assolutamente no. Le scroll bar sono nate assieme alle scroll bitmap... 
no?
-- 
Luc.


E all'inizio non erano "fighettate"?
Kiuhnm


E poi perchè le cose nuove e "cool" devono essere per forza anche scomode?
Sto realizzando un semplice TextViewer in Win32 così posso mostrarvi
l'interfaccia :-)
Il prog. è quasi finito (non è che ci volesse molto) e per ora mi pare che
la nuova interfaccia sia comodissima! (e in più non ruba spazio ai bordi!)
Kiuhnm

 E all'inizio non erano "fighettate"?
Non dipende dal contenuto delle bitmap?
*** Azimuth ***
PS: :-)


Il PS non era necessario... ;-)