RancioLib: Difference between revisions

From ciapini
Jump to navigation Jump to search
No edit summary
No edit summary
Line 5: Line 5:
un menu e' un albero, terminato da foglie  
un menu e' un albero, terminato da foglie  


la struttura del menu e' definita in un array di strutture:
la struttura del menu e' definita con un array di strutture C:


[''id'']
struct node
   node_name=string // nome
{
   node_parent=''id'' // id del padre
   char node_name[16]; // nome
   uint16_t parent_node_id; // id del padre
  uint16_t node_type_id; // id del tipo
};


le foglie sono definite in un array di strutture:


[''id'']
i tipi dei dati sono definiti in un array di strutture C:
  leaf_name=string // nome
  parent_index=''id'' // id del padre
  type_index=''id'' // id del tipo


i tipi dei dati sono definiti in un array di strutture:
struct type
 
{
[''id'']
   uint32_t value_min // valore minimo
   type=int // un tipo dati C
   uint32_t value_max=n // valore massimo
  min=n // valore minimo
   uint32_t enum[16] // valori predeterminati
   max=n // valore massimo
   uint32_t step[16] // incrementi possibili
   enum=[] // valori predeterminati
}
   step=[] // incrementi possibili


== Input ==
== Input ==

Revision as of 10:18, 17 September 2013

interfaccia menu testuale minimale

Struttura

un menu e' un albero, terminato da foglie

la struttura del menu e' definita con un array di strutture C:

struct node {

 char node_name[16]; // nome
 uint16_t parent_node_id; // id del padre
 uint16_t node_type_id; // id del tipo

};


i tipi dei dati sono definiti in un array di strutture C:

struct type {

 uint32_t value_min // valore minimo
 uint32_t value_max=n // valore massimo
 uint32_t enum[16] // valori predeterminati
 uint32_t step[16] // incrementi possibili

}

Input

la navigazione richiede ALMENO 6 tasti:

  • UP seleziona il fratello precedente
  • DOWN seleziona il fratello sucessivo
  • LEFT decrementa il valore
  • RIGHT incrementa il valore
  • IN entra nel nodo selezionato
  • OUT entra nel padre

Output

gli elementi grafici eventualmente visualizzabili sono:

  • nome del nodo padre
  • nome del nodo fratello precedente
  • nome del nodo corrente necessario se foglia
  • nome del nodo selezionato necessario se non-foglia
  • nome del nodo fratello successivo
  • valore del nodo (se foglia) necessario

Altre lib