clros ha scritto:Ecco alcune delle caratteristiche che mi piacerebbe vedere nelle prossime release di OS4:
IntuitionSG
La vecchia libreria intuition (così come Gadtools) dovrebbe essere lasciata solo per compatibilità, la nuova libreria dovrebbe avere queste caratteristiche:
-Nessun gadget built-in; deve supportare solo gadget BOOPSI esterne (???)
Fa tanta differenza se alcuni (depth, resize, close) sono già inclusi ?
-La notifica IDCMP deve avvenire non solo a livello di finestra, ma a livello di ogni singolo oggetto BOOPSI (attualmente non è possibile perché un gadget per ricevere un messaggio da intuition deve essere attivo). Questo vuol dire che dovrei poter specificare i vari flag IDCMP_* anche a livello di singolo gadget. Utile nel caso in cui voglio che un determinato oggetto reagisca all'inserimento o alla rimozione di un disco (vabbè, questo forse si può fare anche con le notifiche.), ma anche per altri motivi, immaginate che voglio far si che la rotellina del mouse scorra il contenuto del gadget su cui attualmente mi trovo con il pointer.Questo oggi si può fare, ma richiede un intervento da parte del programmatore.
Appesantirebbe parecchio le cose, ma non è un'idea malvagia.
-Possibilità di notificare al gadget quando il puntatore è al suo interno, quando si sposta e quando esce dalla sua area. Utile quando si vuole cambiare lo stato (evidenziare) un gadget al passaggio del pointer
E' già possibile farlo, ma in maniera "manuale".
-Possibilità di "attaccare" i gadget e gli oggetti BOOPSI non solo alle finestre o al layout.gadget, ma anche a altri gadget o agli schermi.
Faccio presente che potrebbe essere utile a questo punto implementare un sistema OO anche per la GUI, magari simile a quello di Java (AWT/SWING); molto elegante a mio avviso ma anche molto pesante!
Ecco, ti sei gia risposto.
Nuovi gadget/classi BOOPSI:
-Treeview (analoga a quella di windows. ci posso pensare io?

)
listbrowser.gadget supporta già le alberature. Vedi lo screenshot che ho fatto di Kickedit.
-Pixmap (simile alle pixmap di amigaDE/Intent; area rettangolare con possibilità di scegliere in maniera assoluta le dimensioni, la posizione e la "profondità" (posizione sull'asse Z), di associare una immagine, di disegnare direttamente con alcune primitive grafiche proprie della classe (clip automatico) e di aggiungere direttamente su di essa altre pixmap o altri oggetti BOOPSI. IMHO utile per creare un browser web "nativo"
Non ti sembra un'overkill ? Cmq esiste filler.image che fa alcune delle cose che elenchi. E' usato ad esempio in BiosUpdater, sulla sinistra della finestra.
-Datatype (oggetto BOOPSI che integra un datatype con metodi simili agli altri oggetti; utile per non passare dalla Datatype.library e per dare un senso di uniformità al tutto)
-Screen.class (come la window.class solo che questa è per gli schermi)
Avessimo il tempo (e risorse) per farlo, magari. Ma ci sono MOLTE cose molto più urgenti. Tu stai solo sfiorando la superficie degli attuali problemi architetturali di AOS.
Ad esempio, che so, rifare tutto il blocco graphics/p96/layers/3d ?
Già solo per quello ne basta per un 4.1; e poi che mi dici del Workbench, che è un accrocchio pazzesco pure single-threaded ? E magari uno stack TCP IPv6 ? E forse un filesystem nativo (non di 3e parti come JXFS) che abbia delle caratteristiche non innovative ma almeno attuali ?
Vuoi che continuo ?
Ok: un framework ben fatto per le preferenze, basato su XML (volevamo farlo ma non c'è stato il tempo); una nuova interfaccia tra dos.library e i filesystem, per evitare l'orgia di messaggi che vanno avanti ed indietro con l'attuale packet interface; uno stack USB che supporti USB 2.0 con OHCI e EHCI; un sistema di stampa ben fatto che si basi su CUPS; una documentazione sviluppatori (e utenti) DECENTE.
Mi fermo qui ma potrei andare avanti per un pezzo.
BOOPSI e intuition sono le cose che hanno meno bisogno di aggiornamento di tutte.
Datatype che dovrebbero essere inclusi
-PDF
-HTML
-Altri formati multimediali (ma Raffaele mi diceva che prima ci vuole exstream.)
Dimentichi che l'attuale framework dei datatypes non permette nulla che si avvicini ad un PDF o HTML.
Anche quello andrebbe rifatto da zero (o quasi).