>> Mit problem er så at jeg syntes at det må kunne gøres nemmer, men jeg ved
>> bare hvordan.
>
> Jeg lavede en gang denne:
>
http://home20.inet.tele.dk/midgaard/snip/menu.html
>
Ja, jeg bryggede noget meget tilsvarende sammen, dog uden rekursiviteten.
(jeg blev så nødt til manuelt at gemme positionen ned gennem menustrukturen
i et array, for at kunne "finde tilbage")
Dine menupunkter kan sikkert opdeles i nogle kategorier, f.eks.
- NumericEdit hvor du skal hente en værdi et sted fra , editere den mellem
nogle grænser, og tilsidst gemme den eller andet sted.
- ItemChooser, hvor brugeren kan vælge mellem en række ting, f.eks lydløs,
vibrer , vibrer&ring
(Ringetone profilerne fra min mobil)
- ActionConfirm - Det skal nok lykkes nogen at finde på et menupunkt hvor du
får brug for speciel håndtering, så kaldes funktionen bare, evt med en
"yes/no" confirm før f.eks. en Reset kaldes
Alle disse ting der ligner hinanden kunne du så beskrive i nogle structs
typedef int (*valueRetrievalFunc_t)(void)
typedef void (*valueDeliveryFunc_t)(int value)
typedef struct {
int minValue;
int maxValue;
valueDeliveryFunc_t pDelFunc;
valueRetrievalFunc_t pRetFunc;
}NumericEdit_t
typedef void (*actionFunc_t)(void)
typedef struct {
unsigned showYes : 1;
unsigned showNo : 1;
unsigned showCancel : 1;
actionFunc_t pFunc;
}
Hvis du til din "menu item" tilføjer en felt der angiver typen og en pointer
til data'ene, kunne du lade din "menu executer" kalde din generiske
NumericEdit funktionalitet med de data der hører til dette menu punkt etc
etc.
Der er mange muligheder ...
tpt