Coder Social home page Coder Social logo

caronte's People

Stargazers

 avatar

Watchers

 avatar  avatar

caronte's Issues

image()

Immagine(url, position, title)

  • url (default: null)
    Se true, cerca in app_path/img/ un'immagine chiamata come la funzione corrente (estensione: default_image_type)
    Se false, non mostra alcuna immagine (questa chiamata serve a non far riutilizzare l'ultima immagine mostrata).
    Se null, riutilizza l'immagine mostrata l'ultima volta che immagine() è stata chiamata (se non era false).
  • position: [ sx, center, dx ](default: center)
  • title; Attributo title per il tag IMG.

DIPENDS:

  • oggetto themes

localize()

localizzazione

DOMANDE APERTE:

  • anche le applicazioni devono essere localizzabili; questo richiede modifiche a localize()?

FUTURO:

  • formati date
  • formati monete
  • attributi HTML lang e dir

Oggetto SW

In kernel.js, l'unica variabile globale dovrà essere SW.
Tutte le variabili e le funzioni dovranno essere spostate dentro quell'oggetto per motivi di performance.

extSaveMe

Togliere la gestione delle situazioni salvate e i bottoni da kernel.js. Implementare un'estensione.

Sarebbe bello:

  • permettere di salvare lo stato delle estensioni che hanno i metodi sleep() e awake();
  • comprimere i salvataggi evitando di scrivere il nome delle variabili;
  • permettere di salvare array e oggetti;
  • permettere più di un salvataggio ove possibile.

DIPENDE DA: tinybox, oggetto SW

Keyboard navigation

One should be able to select links/controls only using his keyboard:

  • L/R arrows: select prev/next link
  • U/D arrows: skip to prev/next box
  • one key to move through menu sections
  • Some (user-configurable) accesskeys for menu controls
  • toggle images

tinybox

Aggiungere come libreria tinybox o similare. Deve essere usato dai messaggi di errore e da extSaveMe.

dictionary

I bridge sono le localizzazioni dei nomi delle funzioni.
I nomi delle funzioni di IDRA e delle estensioni presenti nella distribuzione dovranno essere in inglese.
Per compatibilità con il vecchio IDRA e per facilità d'uso, i nomi di funzioni dovranno essere localizzabili in un file bridge.
Il bridge verrà scelto in base all'opzione di Applicazione bridge.

Provare prima questo modo:
window.text.name = "testo";

Se name è di sola lettura (anche solo in alcuni browser) usare:
window.testo = window.text;
, e provare:
delete window.testo;

Il bridge dovrà essere proprio in questa forma, anche se implica che chi non conosce JavaScript non scriverà bridge. IDRA non deve diventare pesante.

Tempo

In una estensione, implementare due tipi di timer:

  • basato sui turni
  • basato sull'ora del computer.
    Deve essere possibile impostarne un numero illimitato. EndPage e/o BeginPage controllano se un timer è scaduto, e chiamano una funzione definita dall'autore.
    Notare che l'esecuzione non deve proseguire.

menu.enableControl() menu.disableControl()

Indipendente dal tipo di Controllo.
Togliere l'elemento dal DOM senza cancellarlo dalla variabile che lo contiene.
enable() non fa altro che riassegnare la variabiel

Dependencies

The Plugin Loader will recursively check for dependencies before loading each plugin. If it has dependencies, those will be loaded first. Dependency is: plugin name + version. If a dependency is not present, a graceful error message will be displayed. Each dependency could be an array of possible plugins - first one is the preferred, but if one of the others is present it's ok. The PL will also check if the Dependency Tree is a valid tree or a circular structure.

  • Incompatibilities: a plugins can declare it's incompatible with another. However, Application authors can force them to coexist.
  • There will also be suggestions. Suggestions are not dependencies, i.e. they're not mandatory. But user can optionally check if more plugins are suggested.

Syntax

Implementare un nuovo tipo di plugin chiamato Syntax, che effettua una serie di espressioni regolari per formattare il testo.
Sarà possibile applicarne 0, 1 o più di 1, al testo scritto su un qualsiasi box.
Inizialmente, scriverne uno molto semplice che implementa grassetto, corsivo, header e hr in stile Wikipedia.

box -> window

Tutti i box (eccetto boxMain) devono poter essere trasformabili in finestre JavaScript, implementate in qualche classe già esistente.
La libreria window ha troppi bug.
Investigare framework come jQuery: potrebbe esserci quello che serve, estrapolabile dal resto della libreria.

themes

  • funzione menuList() che imposta i CSS disponibili, chiamabile sia da file data/conf.js sia da apps/.../conf.js
  • Funzione setMenu() che carica il CSS main del tema scelto, e tenta di caricarne uno per ogni estensione. Tutti i link ai CSS esistenti vengono eliminati.
  • Opzione IDRA _defaultTheme
  • ctrlDropDown che chiama setMenu()
  • info sui temi, se disponibili

Aggiungere un altro tema (magari con il menu ridimensionabile)

Netscape 9

  • Why gui() doesn't work on Netscape 9?
  • Need a simpler version of tinybox for Netscape 9

showInfo()

showInfo() deve mostrare le informazioni in una finestra modale

extLibGeneral

Spostare in una estensione:

  • oggetto Eventi
  • fraseCasuale()
    In futuro potrà contenere piccole feature che non meritano un'estensione tutta loro.

SAREBBE BELLO:

  • Labirinto()

server

Ability to work as a network XML server
Libs which could be used:

  • GNU Guile???

There will be a gui server version, with an identical API.
Its methods will create XML instructions which will tell to the client how it must modify its interface. Those instructions will be sent via gui.send().

Check for updates

IDRA, plugins and Applications will be able to offer a control (from the info box) which checks if there is a newer version at a specified URL. Will also tell if the upgrade is compatible with current APIs, and if contains critical/security bugfixes. There will also be detailed instructions about how to download the upgrade.

callAppFunc()

Una funzione per chiamare le funzioni che dovrebbero essere definite all'interno dell'Applicazione.
Se sono undefined, mostra un messaggio di errore chiaro.

Caricamento librerie

link() dovrebbe caricare le librerie con document.write piuttosto che creare oggetti DOM, per motivi di performance.
Se su qualche browser va più veloce il contrario, cambiare il comportamento a seconda del browser.

Screen readers

What should be done to optimize IDRA for screen readers?

extSound

Estensione con i seguenti metodi:

  • music(nome_file)
  • sound(nome_file)
  • enableMusic/Sound(boolean)

Crea due oggetti audio (uno per la musica e uno per i suoni) senza aggiungerli al DOM.
nome_file può essere un array di file (in diversi formati per effetti cross browser).
Con un ctrlDropDown si controllano i due differenti volumi.
Anche un ctrlSwitch per il loop, se funziona.

RIFERIMENTO:
http://dev.opera.com/articles/view/html5-audio-radio-player/

In una versione futura sarebbe bello implementare un controllo audio.

armor() for some objects

In order to make IDRA more robust, prevent adventure / plugins from changing what they should not change.

Function armor() should use:

  • Object.seal()
  • Object.preventExtensions()
    Remember that some browsers don't support these methods

Opzioni di IDRA

Sia l'URL sia l'Applicazione, devono poter sppecificare delle variabili che influenzano il comportamento del kernel di IDRA.
Queste si distinguono dalle Opzioni di Applicazione perchè cominciano con il carattere "_".
Per cominciare, anche per avere un esempio, ne implementeremo 1:

  • _showInfo - In quale menu vengono mostrate le info. 0 per disabilitare. Default: "menu"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.